本發(fā)明屬于伺服控制器的控制算法技術(shù)領(lǐng)域,涉及一種適用于伺服控制器的控制算法。
背景技術(shù):
伺服控制器是現(xiàn)代運動控制的重要組成部分,普遍采用基于矢量控制的電流、速度、位置三閉環(huán)控制算法,廣泛應(yīng)用于高精度的定位系統(tǒng),實現(xiàn)高精度的傳動系統(tǒng)定位。伺服控制器要求調(diào)節(jié)范圍寬、定位精度高、有足夠的傳動剛性和速度穩(wěn)定性、無超調(diào)等特點,而PID控制正好符合了伺服控制器的要求。因為PID控制結(jié)構(gòu)簡單、易于實現(xiàn)且魯棒性強,所以它使用于超過90%的控制系統(tǒng)中。但是,隨著工業(yè)過程復(fù)雜度越來越高,外界環(huán)境不確定,對象結(jié)構(gòu)和參數(shù)的變化也越來越復(fù)雜,傳統(tǒng)的PID控制器在復(fù)雜工業(yè)中變得不適用。隨著智能算法如模糊控制、神經(jīng)網(wǎng)絡(luò)以及專家算法的普及,如何將先進的預(yù)測模型算法和傳統(tǒng)經(jīng)典PID控制算法有效結(jié)合起來,更好地服務(wù)于大工業(yè)生產(chǎn),成為算法研究的熱點。現(xiàn)如今伺服控制器要求反應(yīng)更加靈敏、控制精度更高、位置定位更加準確,新的復(fù)雜的組合式算法逐漸成為算法首選。但是并不是所有的算法組合都能達到事半功倍的效果,比如多種功能相同的算法組合到一塊,不僅不能得到滿意的效果,還可能造成算法過于冗雜,影響系統(tǒng)性能。而只有讓組合結(jié)構(gòu)中各種算法各司其職,才能設(shè)計出適合于伺服控制器的算法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種適用于伺服控制器的控制算法,提出了一種大范圍調(diào)整+小范圍控制+參數(shù)優(yōu)化的模式,既能降低伺服控制器原有結(jié)構(gòu)參數(shù)所造成的系統(tǒng)誤差,又能減少來自工業(yè)現(xiàn)場各種干擾信號對伺服控制系統(tǒng)的影響。
本發(fā)明所采用的技術(shù)方案是,一種適用于伺服控制器的控制算法,具體包括以下步驟:
步驟1,利用粒子群優(yōu)化算法求PID控制器的Kp、Ki、Kd;
步驟2,在模糊控制器輸入端輸入e、ec,按照模糊規(guī)則,得出Kp、Ki、Kd的變化值ΔKp、ΔKi、ΔKd;
步驟3,將ΔKp、ΔKi、ΔKd分別與Kp、Ki、Kd相加,作為新的PID控制器的參數(shù),輸入給PID控制器,即可進行控制。
本發(fā)明的特點還在于,
其中步驟1的具體步驟如下:
步驟1.1,初始化種群粒子規(guī)模、迭代次數(shù)、監(jiān)測鄰域粒子濃度上限δ,設(shè)置粒子速度與空間搜索范圍,設(shè)置輸出量和輸入量之間的標準誤差e0(t),并對第一代粒子進行PID參數(shù)編碼;
步驟1.2,計算當前代粒子群適合度值,找到當前粒子的最佳位置Pbestij和種群最佳位置Gbestj;
步驟1.3,將粒子所在的當前代數(shù)與步驟1.1初始化代數(shù)進行比較,判斷粒子所在的當前代數(shù)是否達到最大代數(shù),若達到最大代數(shù),則轉(zhuǎn)到步驟1.8步執(zhí)行;反之,執(zhí)行步驟1.4;
步驟1.4,根據(jù)步驟1.3找到的當前粒子的最佳位置Pbestij和種群最佳位置Gbestj,計算監(jiān)測鄰域中的粒子個數(shù),判斷粒子種群是否滿足多樣性要求:若滿足,則跳轉(zhuǎn)至步驟1.6;反之,則執(zhí)行步驟1.5;
步驟1.5,根據(jù)步驟1.2所得的粒子群適合度值,計算粒子被選中變異的概率,根據(jù)計算的變異概率確定進行變異的粒子;
步驟1.6,將步驟1.5選取的變異粒子進行變異,更新每一個粒子的位置,代數(shù)迭代加1;
步驟1.7,將當代粒子的輸出量和輸入量之間的誤差e(t)與步驟1.1預(yù)設(shè)的標準誤差e0(t)進行比較,當e(t)≤e0(t)時,執(zhí)行步驟1.8,反之,則返回執(zhí)行步驟1.2;
步驟1.8,輸出PID控制器中的Kp、Ki、Kd參數(shù)。
其中步驟1.2的具體過程如下:
步驟1.2.1,據(jù)PID的特性以及誤差的要求,選取適合度函數(shù)f(t)的公式如下:
步驟1.2.2,根據(jù)如下公式(2)計算粒子適合度值fitnessi:
fitnessi=f(t)|(b(k,i),b(k-1,i),b(k-2,i),...,b(1,i)) (2);
其中,fitnessi表示第i個粒子的適合度,b(i,j)表示第i個粒子在第j維的位置,j=1,2,3…k,k表示粒子在空間上的最大維數(shù)。
其中步驟1.4的具體過程如下:
步驟1.4.1,定義監(jiān)測鄰域φ為:
φ={Pbestij|||Pbestij-Gbestj||2<ε} (3);
其中,||Pbestij-Gbestj||2表示粒子個體i最優(yōu)位置Pbestij與全局最優(yōu)位置Gbestj的空間距離,ε為粒子個體i最優(yōu)位置Pbestij與全局最優(yōu)位置Gbestj之間的標準距離,ε趨于0,ε表示監(jiān)測鄰域大小;
其中,Q表示尋優(yōu)空間維數(shù),Pbestij和Gbestj分別是第i個粒子和全局粒子當前所經(jīng)過的第j維最佳位置;
步驟1.4.2,記Nφ為監(jiān)測鄰域φ中的粒子個數(shù),Nφ開始會被初始化為0,當計算監(jiān)測鄰域φ的粒子數(shù)量時,每計算出一個滿足公式(3)要求的粒子的時,Nφ加1;
步驟1.4.3,根據(jù)如下公式(5)計算種群預(yù)設(shè)的粒子數(shù)量:
Nδ=N×δ (5);
其中:Nδ表示在預(yù)設(shè)的粒子濃度下,監(jiān)測鄰域應(yīng)有的粒子數(shù)量;N為種群粒子數(shù),即種群粒子規(guī)模;
當Nφ≥Nδ成立時,表明監(jiān)測鄰域中粒子濃度過高,種群多樣性有損失太多的危險,必須增加種群的多樣性,即滿足增加種群多樣性的要求;
當Nφ<Nδ,則Nφ歸0,此種情況不滿足增加種群多樣性的要求。
其中步驟1.5的具體過程如下:
根據(jù)如下公式(6)計算粒子被選中進行變異的概率:
其中,Psi表示第i個粒子被選為變異的概率,其中,i=1.2....Nφ,fitnessj表示第i個粒子在第j維的適合度,粒子的適合度越大,被選為變異的概率越大;
將計算出的從大到小進行排序,并從最大值開始,選取60%Nφ~70%Nφ個粒子,作為進行變異的粒子。
其中步驟1.6中進行變異的具體過程如下:
針對監(jiān)測鄰域φ中的每個粒子產(chǎn)生一個隨機數(shù)randi,randi∈[0,Psi],此時,由如下公式式子(7)對被選粒子進行隨機變異:
Pbestij=aj+(bj-aj)*rand(0,1) (7);
式中,Pbestij是在Nφ個粒子中被選中變異的第i個粒子當前所經(jīng)過的第j維最好位置;aj,bj分別為粒子第j維尋優(yōu)范圍的下限和上限。
其中步驟2的具體過程如下:
步驟2.1,在模糊控制器輸入端輸入e、ec,根據(jù)參數(shù)e、ec、Kp、Ki、Kd對控制系統(tǒng)的影響來制定模糊規(guī)則庫;
步驟2.2,參數(shù)模糊推理器時刻監(jiān)測e、ec的變化,按照步驟2.1制定的規(guī)則庫確定Kp、Ki、Kd的輸出變化值ΔKp、ΔKi、ΔKd。
本發(fā)明的有益效果是,本發(fā)明提出的一種適用于伺服控制器的控制算法,采用大范圍調(diào)整+小范圍控制+參數(shù)優(yōu)化模式,這種模式也可適用于其他的一些控制系統(tǒng),無論e、ec波動多不穩(wěn)定,根據(jù)模糊規(guī)則總能輸出合理的ΔKp、ΔKi、ΔKd值。采用粒子群優(yōu)化算法得到PID控制器的Kp、Ki、Kd預(yù)設(shè)值,減少一些低級誤差對系統(tǒng)的影響。采用基于適合度指數(shù)定標的概率變異的方式,來減少粒子群在后期陷入局部最優(yōu)的概率,這種算法結(jié)構(gòu)使伺服控制器的算法簡單明了,不僅提供了一種新的設(shè)計思路,同時也可以作為一種標準用于評判一種算法的好壞,而且本發(fā)明繼續(xù)沿用了PID的算法,這也充分考慮到了PID性能的優(yōu)越性,符合現(xiàn)在伺服控制器對快速性、穩(wěn)定性、準確性以及魯棒性的要求。
附圖說明
圖1是本發(fā)明一種適應(yīng)于伺服控制器的算法的原理框圖;
圖2是常規(guī)PID控制系統(tǒng)結(jié)構(gòu)原理框圖;
圖3是模糊控制系統(tǒng)結(jié)構(gòu)原理框圖;
圖4是模糊PID控制系統(tǒng)結(jié)構(gòu)原理框圖。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明進行詳細說明。
本發(fā)明一種適用于伺服控制器的控制算法,本發(fā)明提供的算法原理框圖如圖1所示,具體包括以下步驟:
步驟1,利用粒子群優(yōu)化算法求PID控制器的Kp、Ki、Kd;
步驟1的具體過程如下:
步驟1.1,初始化種群粒子規(guī)模(即種群粒子的個數(shù)N)、迭代次數(shù)、監(jiān)測鄰域粒子濃度上限δ,設(shè)置粒子速度與空間搜索范圍,設(shè)置輸出量和輸入量之間的標準誤差e0(t),并對第一代粒子進行PID參數(shù)編碼;
步驟1.2,計算當前代粒子群適合度值,找到當前粒子的最佳位置Pbestij和種群最佳位置Gbestj;
步驟1.2.1,據(jù)PID的特性以及誤差的要求,選取適合度函數(shù)f(t)的公式如下:
步驟1.2.2,根據(jù)如下公式(2)計算粒子適合度值fitnessi:
fitnessi=f(t)|(b(k,i),b(k-1,i),b(k-2,i),...,b(1,i)) (2);
其中,fitnessi表示第i個粒子的適合度,b(i,j)表示第i個粒子在第j維的位置,j=1,2,3…k,k表示粒子在空間上的最大維數(shù)。
步驟1.3,將粒子所在的當前代數(shù)與步驟1.1初始化代數(shù)進行比較,判斷粒子所在的當前代數(shù)是否達到最大代數(shù),若達到最大代數(shù),則轉(zhuǎn)到步驟1.8步執(zhí)行;反之,執(zhí)行步驟1.4;
步驟1.4,根據(jù)步驟1.3找到的當前粒子的最佳位置Pbestij和種群最佳位置Gbestj,計算監(jiān)測鄰域中的粒子個數(shù),判斷粒子種群是否滿足多樣性要求:若滿足,則跳轉(zhuǎn)至步驟1.6;反之,則執(zhí)行步驟1.5;
步驟1.4.1,定義監(jiān)測鄰域φ為:
φ={Pbestij|||Pbestij-Gbestj||2<ε} (3);
其中,||Pbestij-Gbestj||2表示粒子個體i最優(yōu)位置Pbestij與全局最優(yōu)位置Gbestj的空間距離,ε為粒子個體i最優(yōu)位置Pbestij與全局最優(yōu)位置Gbestj之間的標準距離,ε趨于0,ε表示監(jiān)測鄰域大??;
其中,Q表示尋優(yōu)空間維數(shù),Pbestij和Gbestj分別是第i個粒子和全局粒子當前所經(jīng)過的第j維最佳位置;
步驟1.4.2,記Nφ為監(jiān)測鄰域φ中的粒子個數(shù),Nφ開始會被初始化為0,當計算監(jiān)測鄰域φ的粒子數(shù)量時,每計算出一個滿足公式(3)要求的粒子的時,Nφ加1;
步驟1.4.3,根據(jù)如下公式(5)計算種群預(yù)設(shè)的粒子數(shù)量:
Nδ=N×δ (5);
其中:Nδ表示在預(yù)設(shè)的粒子濃度下,監(jiān)測鄰域應(yīng)有的粒子數(shù)量;N為步驟1.1初始化的種群粒子數(shù),即種群粒子規(guī)模;
當Nφ≥Nδ成立時,表明監(jiān)測鄰域中粒子濃度過高,種群多樣性有損失太多的危險,必須增加種群的多樣性,即滿足增加種群多樣性的要求;
當Nφ<Nδ,則Nφ歸0,此種情況不滿足增加種群多樣性的要求。
步驟1.5,根據(jù)步驟1.2所得的粒子群適合度值,計算粒子被選中變異的概率,根據(jù)計算的變異概率確定進行變異的粒子;
根據(jù)如下公式(6)計算粒子被選中進行變異的概率:
其中,Psi表示第i個粒子被選為變異的概率,其中,i=1.2....Nφ,fitnessj表示第i個粒子在第j維的適合度,粒子的適合度越大,被選為變異的概率越大;
將計算出的從大到小進行排序,并從最大值開始,選取60%Nφ~70%Nφ個粒子,作為進行變異的粒子。
步驟1.6,將步驟1.5選取的變異粒子進行變異,更新每一個粒子的位置,代數(shù)迭代加1;
對粒子進行變異,指的是對粒子的位置進行改變,讓聚集在局部的粒子分散開來,針對監(jiān)測鄰域φ中的每個粒子產(chǎn)生一個隨機數(shù)randi,randi∈[0,Psi],此時,由如下公式式子(7)對被選粒子進行隨機變異:
Pbestij=aj+(bj-aj)*rand(0,1) (7);
式中,Pbestij是在Nφ個粒子中被選中變異的第i個粒子當前所經(jīng)過的第j維最好位置;aj,bj分別為粒子第j維尋優(yōu)范圍的下限和上限,這里采用隨機變異,有利于提高種群的多樣性。
步驟1.7,將當代粒子的輸出量和輸入量之間的誤差e(t)與步驟1.1預(yù)設(shè)的標準誤差e0(t)進行比較,當e(t)≤e0(t)時,執(zhí)行步驟1.8,反之,則返回執(zhí)行步驟1.2;
步驟1.8,輸出PID控制器中的Kp、Ki、Kd參數(shù)。
步驟2,在模糊控制器輸入端輸入e、ec,按照模糊規(guī)則,得出Kp、Ki、Kd的變化值ΔKp、ΔKi、ΔKd;
步驟2.1,在模糊控制器輸入端輸入e、ec,根據(jù)參數(shù)e、ec、Kp、Ki、Kd對控制系統(tǒng)的影響來制定模糊規(guī)則庫;
步驟2.2,參數(shù)模糊推理器時刻監(jiān)測e、ec的變化,按照步驟2.1制定的規(guī)則庫確定Kp、Ki、Kd的輸出變化值ΔKp、ΔKi、ΔKd。
步驟3,將ΔKp、ΔKi、ΔKd分別與Kp、Ki、Kd相加,作為新的PID控制器的參數(shù),輸入給PID控制器,即可進行控制。
本發(fā)明一種適用于伺服控制器的控制算法中采用的幾種控制方式如下:
1.常規(guī)PID控制
常規(guī)PID控制系統(tǒng)主要有模擬PID控制器和被控對象兩部分構(gòu)成,是一種線性控制器。它由預(yù)設(shè)值和實際輸出值之差作為系統(tǒng)的控制輸入,而PID中的比例、積分、微分參數(shù)都是固定的。其控制規(guī)律可以被描述為如下公式:
具體結(jié)構(gòu)如圖2所示,主要參數(shù)有Kp、Ki、Kd等,作用有:
(1)比例環(huán)節(jié)Kp:成比例地反映控制系統(tǒng)的偏差信號e(t),偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用,減少偏差。
(2)積分環(huán)節(jié)Ki:主要用于消除靜差,提高系統(tǒng)的無差度。積分作用的強弱取決于積分時間常數(shù)T1,T1越大,積分作用越弱,反之,則越強。
(3)微分環(huán)節(jié)Kd:反映偏差信號的變化趨勢(變化速率),并能在偏差信號變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減少調(diào)節(jié)時間。
2.模糊PID控制
相比較常規(guī)PID,模糊PID有其突出優(yōu)點:首先,有自動辨識被控過程參數(shù)、自動調(diào)整控制器參數(shù)、能夠適應(yīng)被控過程參數(shù)的變化等一系列優(yōu)點;其次,又具有常規(guī)PID控制器結(jié)構(gòu)簡單、魯棒性好、可靠性高、熟知度高等優(yōu)點。模糊控制結(jié)構(gòu)原理圖如圖3所示,主要有參數(shù)模糊推理器、被控對象構(gòu)成。模糊PID控制結(jié)構(gòu)原理圖如圖4所示,主要由參數(shù)模糊推理器、PID控制器、被控對象構(gòu)成。
設(shè)定參數(shù):預(yù)設(shè)值與實際輸出之差為e,e的變化率為ec,PID控制器的比例、積分、微分參數(shù)分別為Kp、Ki、Kd。
首先,要根據(jù)參數(shù)e、ec、Kp、Ki、Kd對控制系統(tǒng)的影響來制定模糊規(guī)則庫。其中,Kp、Ki、Kd對系統(tǒng)的影響在上文已經(jīng)討論過;參數(shù)e、ec對系統(tǒng)的影響如表1所示。參數(shù)模糊推理器時刻監(jiān)測e、ec的變化,按照規(guī)則庫確定Kp、Ki、Kd的輸出變化值ΔKp、ΔKi、ΔKd?;谒欧刂破鞯奶卣?,本發(fā)明制訂了參考模糊規(guī)則庫,如表2、3、4所示。
表1 e、ec對控制系統(tǒng)的影響
表2參數(shù)ΔKp的模糊規(guī)則
表3參數(shù)ΔKi的模糊規(guī)則
表4參數(shù)ΔKd的模糊規(guī)則
其中,NB、NM、NS、O、PS、PM、PB分別表示負大、負中、負小、不變、正小、正中、正大;e表示輸入與實際輸出之間的差值,ec表示差值的變化率。
3.改進型粒子群優(yōu)化算法
根據(jù)伺服控制器系統(tǒng)的固有特性,以及模糊PID算法的具體要求,我們首先要給PID控制器的參數(shù)Kp、Ki、Kd寫入預(yù)設(shè)參數(shù),為減少預(yù)設(shè)參數(shù)對系統(tǒng)的影響,我們利用改進型粒子群優(yōu)化算法對輸入值進行優(yōu)化。
粒子群優(yōu)化算法具有群智能的優(yōu)點,比如靈活性、穩(wěn)健性、自組織性等,在智能算法領(lǐng)域中應(yīng)用極其廣泛。但也存在著一些缺點,比如在后期往往因?qū)?yōu)空間維數(shù)擴大而容易引起維數(shù)災(zāi)難、種群陷入局部極值點,速度變慢,尋優(yōu)結(jié)果大打折扣。本發(fā)明提出伺服控制器算法中采用了一種改進型粒子群優(yōu)化算法:優(yōu)化的每一步都監(jiān)測粒子群的運動狀態(tài),一旦粒子群陷入局部最優(yōu),則進行粒子變異,確保種群多樣性、健壯性、智能性。
本發(fā)明一種適用于伺服控制器的控制算法中,采用粒子群優(yōu)化算法對伺服控制器的PID控制部分的參數(shù)提前優(yōu)化,減少了系統(tǒng)的原有誤差對系統(tǒng)的影響(參數(shù)優(yōu)化);采取模糊控制算法讓控制參數(shù)在最初以最快速度趨近到最優(yōu)范圍內(nèi)(大范圍調(diào)整),這樣可以以最快的速度消除來自工業(yè)現(xiàn)場的干擾,防止超調(diào),實現(xiàn)系統(tǒng)參數(shù)自調(diào)整,在線自整定,擴大的伺服控制器的適用范圍;然后通過與粒子群優(yōu)化算法的輸出值相結(jié)合,得出最優(yōu)控制參數(shù),最后輸出給控制器(小范圍控制),以最快的速度得到最精準的控制輸出,響應(yīng)速度快,魯棒性強。
本發(fā)明在利用粒子群優(yōu)化算法求PID控制器的Kp、Ki、Kd時,根據(jù)監(jiān)測的粒子群最優(yōu)鄰域內(nèi)粒子的數(shù)量來判斷粒子是否陷入了局部最優(yōu),如果陷入局部最優(yōu)則根據(jù)適合度選取合適的粒子進行變異,提高粒子多樣性,能有效地減少粒子群在后期陷入局部極值點的概率。