董如意,孫立勛
(吉林化工學院 信息與控制工程學院,吉林 吉林 132022)
PID控制器由于具有適用性高、結構簡單、魯棒性好和易于控制等特點,被廣泛應用于工業生產當中[1].PID控制器的Kp、Ki、Kd3個參數的整定是影響系統是否具備穩定、準確和快速等特性的關鍵因素,直接決定了系統的控制性能,因此在PID控制器的設計和應用過程中,控制器參數的整定和優化是最重要的問題.傳統的參數整定方法有完全經驗法、臨界比例法、等幅振蕩法等,這些方法在面對工況復雜和參數嚴苛的情況時,往往操作起來過于煩瑣,控制效果也不盡如人意.隨著人工智能的發展,智能優化算法被成功引入PID控制器的應用中,發揮了很好的效果.本文提出一種改進的人工蜂群優化算法,實現對PID控制器的參數整定,實驗結果表明,改進后的算法可以達到理想的優化性能.
PID控制器(比例-積分-微分控制器),是由比例環節P、積分環節I、微分環節D組成的控制器,通過設置Kp、Ki、Kd3個參數來控制系統[2].經典PID控制器常用于線性系統或時不變系統的控制,與其他簡單的控制器不同的是,PID控制器可以根據歷史輸出數據與給定值來調整輸入值,即將系統運行時輸出的各項參數與給定值進行比較,然后計算出新的輸入值反饋回系統,使控制系統輸出數據達到或保持在給定值允許的誤差范圍內,從而使系統更加穩定[3].
PID本質上是一種線性控制器,根據給定值與實際輸出值構成的控制誤差[4],即:
e(t)=r(t)-y(t),
(1)
利用比例、積分和微分的線性組合等方式對控制誤差進行處理,得到相關的控制量,進而對被控對象進行控制,其控制規律為:
(2)
其中,e(t)為控制誤差,Ki=Kp/Ti,Kd=Kp*Td.
用傳遞函數表示,則為:
(3)
其中,Kp表示PID控制器的比例增益;Ti為積分時間常數;Td為微分時間常數.
人工蜂群算法(Artificial Bee Colony,ABC),啟發于蜜蜂群體采蜜的行為,通過不同蜜蜂之間的分工和信息交流來尋找問題的最優可行解,是一種全局優化算法.與其他智能優化算法相比,人工蜂群算法具有參數量少、搜索能力強、實現簡單等優點,被廣泛應用到工程控制、信息挖掘和生產調度等領域[5].
在ABC算法中,主要包含蜜源、雇傭蜂和未雇傭蜂等3個部分.其中,蜜源代表了待優化問題的可行解,蜜源擁有的花蜜量即為對應可行解的適應度值[6];雇傭蜂,也稱引領蜂或采蜜蜂,在數量上與蜜源相等,主要負責對自己搜索到的蜜源進行開采,評估花蜜量,并按照一定的概率將蜜源的信息傳遞給觀察蜂;非雇傭蜂分為觀察蜂和偵查蜂,觀察蜂會通過整理接收到的信息,利用貪婪機制擇優選擇當前最好的蜜源位置進行開采,當經過一定次數的選擇后發現最優的蜜源位置沒有變化,雇傭蜂會離開當前的蜜源,變成偵查蜂,隨機搜索新的蜜源位置.ABC算法的具體流程如圖1所示.

圖1 標準ABC算法流程圖
在隨機初始化蜜源的位置后,3種蜜蜂會根據各自的分工反復迭代搜索流程,尋找全局最優質的可行解,雇傭蜂和偵查蜂尋找新蜜源的搜索方程如公式(4)所示.
vi,j=xi,j+rand(-1,1)*(xi,j-xk,j),
(4)
其中i=1,2,3……n,k=1,2,3……n且k≠i,n為蜜源的數量;xi,j為當前蜜源的位置;rand(-1,1)為(-1,1)之間的隨機數,決定了擾動程度.
通過分析標準人工蜂群算法的流程,可以確定該算法的優化性能主要取決于蜜源的更新方程是否達到理想的效率.在原始更新方程中,新的蜜源位置是當前個體以自身位置為基礎,向另一個體移動隨機距離而得到的,在兩個個體均不是全局最優解的情況下,無法確定新位置的適應度值比原來的更好,即更新可行解的效率很低,從而使得ABC算法在局部優化方面表現較差,整體收斂速度較慢[7].
差分進化算法(Differential Evolution Algorithm,DE)是一種已經非常成熟的優化算法,包括變異、操作和選擇等操作[8].其中差分進化算法的變異算子可以充分利用當前迭代過程的全局最優解,使更新的個體更快地向最優可行解靠近,具有很強的局部優化能力.基于變異算子與ABC算法搜索階段的性質,利用變異算子對更新方程進行改進,得到新的更新方程如公式(5)所示,新的蜜源位置會出現在當前最優解的鄰域內,能夠有效地提升算法收斂速度,但同時也會減少蜜蜂種群探索的多樣性,使算法陷入局部最優.因此,為了平衡算法的全局搜索和局部開發能力,在方程中加入自適應調節參數,如公式(6)所示,加快算法收斂速度的同時避免最優解過早收斂.
vi,j=xbest,j+α*rand(-1,1)*(xi,j-xk,j),
(5)
(6)
其中xbest,j為當前最優解;t為當前迭代的次數;tmax為最大迭代次數.
結合差分進化思想的自適應ABC 算法在PID控制器參數整定的優化過程如下.
Step1:問題的定義.結合傳遞函數和最優參數指標方程,確定PID的控制參數和累計誤差,即確定算法的適應度函數.
Step2:設置參數并初始化.確定蜜蜂及蜜源數量、最大迭代次數、偵查蜂嘗試閾值等參數;初始化單個蜜源和蜜源數組,構建初始全局最優解.
Step3:種群迭代.雇傭蜂在目標附近的鄰域搜索蜜源,觀察蜂根據接收的蜜源信息,采用輪盤賭方法選擇適應度值最優的蜜源;
Step4:偵查蜂搜索.當更新次數超過嘗試閾值但最優解沒有變化時,雇傭蜂轉換為偵查蜂,放棄當前蜜源位置,隨機搜索其他位置的蜜源,產生新的可行解并計算適應度值.
Setp5:更新最優解.比較當前發現的所有蜜源的適應度值,保留全局最優解.若迭代次數小于最大迭代次數,轉至 Step3;否則,輸出最優解,算法結束.
使用二階傳遞函數進行測試,如公式(7)所示.優化過程中,使用誤差絕對值的時間積分函數作為性能參數選擇的最小目標函數,使其得到較為平緩的優化過程控制.為了防止優化力度超出控制,在函數中加入控制輸入的平方項,選取最優參數指標方程式如公式(8)所示[9].穩態誤差通常以適應度值作為評判標準,一般有IAE、ITAE、ISE等公式.其中ITAE是一個單輸入且可以容易地得到好的過程動態性能,本文使用ITAE作為誤差的評判標準公式,如公式(9)所示.
(7)

(8)

(9)
其中e(t)為穩定誤差;u(t)為系統輸出;tu為上升時間;w1、w2、w3為權值.
本文使用window10系統和MATLAB R2018b軟件進行PID整定參數的仿真,選擇單位階躍信號和正弦信號作為PID的輸入信號,正弦信號如公式(10)所示,分別用標準ABC算法和改進的ABC算法進行優化.兩種算法的控制參數相同,即種群數量為50,最大迭代次數為50,采樣周期為0.001 s,為了降低全局搜索的盲目性,設置w1=0.999、w2=0.001、w3=10.
rin=0.5*sin(2πt),
(10)
兩種算法計算出的Kp、Ki、Kd數值、適應度值及迭代次數,進行四舍五入后得到的結果如表1所示.

表1 優化結果平均值
由表1可知,改進ABC算法的收斂速度明顯快于標準ABC算法,且系統的超調量相比標準ABC算法更小.輸入信號為單位階躍信號時,得到的收斂曲線如圖2所示.

迭代次數
階躍響應如圖3所示.兩種算法優化下的上升時間大致相同,但改進ABC算法的調節時間略小,且響應的波動較小,穩態誤差小于標準ABC算法下的優化結果.

t/ms
輸入信號為正弦信號時,其收斂曲線如圖4所示,正弦響應如圖5所示,改進的ABC算法優化結果的誤差明顯小于標準ABC算法,更加貼近給定值,輸出的響應更為理想.由此可知,與標準的ABC算法相比,改進后的ABC算法擁有更快的收斂速度和精確度,在PID的參數整定中實現了更小的響應誤差,具有更良好的系統優化性能.

迭代次數

t/ms
對標準人工蜂群算法的搜索方程進行了改進,引入了最優個體的信息和自適應調節參數,使算法在進行PID控制器的參數整定時,有效避免了傳統方法存在的整體效率低、控制效果差的問題.實驗結果表明,改進后的人工蜂群算法在PID參數整定中擁有更快的收斂速度和精確度,達到了理想的效果.