李夢凡,王 云,衛麗超
(西安微電子技術研究所,陜西 西安 710054)
無刷直流電機(Brushless DC motor,BLDC)具有工作可靠、效率高、損耗小、調速性能好等優點,在智能家電、航空航天、醫療器械、工業自動化等領域中的應用日漸廣泛。目前,無刷直流電機控制系統依然廣泛采用定參數PID控制器,其結構簡單,技術成熟,但是無刷直流電機具有時變不確定、非線性、耦合性強等特點[1],而定參數PID控制方法的控制參數不能隨著系統的工作狀態調整,且其參數整定依賴于工程經驗,因此這種傳統的控制方法越來越不能滿足無刷直流電機控制系統高精度和控制指標的要求。
近年來,隨著人工智能技術的不斷發展,很多智能算法被應用到PID控制器的參數整定上,例如模糊算法[2]、遺傳算法[3]、粒子群算法[4]等。本文針對標準粒子群算法收斂速度慢、容易陷入局部極值等缺點[5],提出了基于改進的全面學習粒子群(Comprehensive Learning Particle Swarm Optimizer, CLPSO)算法優化PID參數的控制方法,并在MATLAB/Simulink中進行了無刷直流電機控制系統的仿真實驗。
不考慮尺槽效應和磁路飽和,并忽略磁滯、渦流、集膚效應和溫度對參數的影響,無刷直流電機定子三相繞組的電壓平衡方程可表示為:
(1)
其中:ua、ub、uc分別為電機三相繞組的相電壓;ia、ib、ic分別為三相繞組的相電流;ea、eb、ee分別為三相繞組的反電動勢;Ra、Rb、Rc分別為三相繞組的電阻;La、Lb、Lc分別為三相繞組的自感;Mab為A相繞組與B相繞組之間的互感,其他同理。
假定定子繞組對稱,可得Ra=Rb=Rc=R;La=Lb=Lc=Ls;Mab=Mac=Mba=Mbc=Mca=Mcb=M。假定定子三相繞組為Y型接法,且沒有中點,則有:
ia+ib+ic=0.
(2)
由此可得Mia+Mib=-Mic,Mia+Mic=-Mib,Mib+Mic=-Mia。將上述各式代入式(1)整理后可得:
(3)
其中:L=Ls-M。
無刷直流電機的電磁轉矩為:
Te=(eaia+ebib+ecic)/ωm.
(4)
其中:ωm為電機的機械角速度,ωm=2πn/60,n為電機轉速。
轉子運動方程為:
(5)
其中:Te為電磁轉矩;TL為負載轉矩;J為轉子的轉動慣量;ω為電機角速度。
粒子群優化(Particle Swarm Optimization,PSO)算法是Eberhart和Kennedy受鳥群和魚群在覓食過程中群聚行為的啟發,于1995年開發的一種基于群體隨機搜索的優化算法。PSO從一組隨機的初始解出發,通過不斷更新迭代來搜索最優值。與遺傳算法(GA)等進化算法不同的是,PSO沒有交叉和變異等進化因子,因此更加簡單有效,目前,PSO已經應用于函數優化、機器學習、模糊系統控制及自適應控制等多領域。
在標準PSO算法中,粒子的位置信息構成了n維空間所有的潛在解,每個粒子被隨機初始化后便以一定的速度在空間內飛行,其中第i個粒子的位置為xi=(xi1,xi2,…,xin),飛行速度為vi=(vi1,vi2,…,vin)。根據待求解問題可以確定一個適應度函數,每個粒子根據自身不同位置的適應值來確定搜索到的歷史最好位置,記為Pbest,這屬于粒子自身的搜索經驗;通過比較不同粒子的適應度,可以找到整個粒子群搜索到的歷史最好位置,記為Gbest,這屬于粒子群的共同經驗。粒子根據這兩種經驗,按照如下所示的規則不斷迭代,更新自己的速度和位置[6]:
vij(k+1)=wvij(k)+c1r1[pij-xij(k)]+
c2r2[pgj-xij(k)].
(6)
xij(k+1)=xij(k)+vij(k+1)j=1,2,…,n.
(7)
其中:w為慣性權重;vij(k)為第i個粒子第k次迭代時的速度,j為更新的坐標,這一項代表粒子飛行中保持自身慣性的行為;c1為認知因子;r1為[0,1]之間服從均勻分布的隨機數;pij為第i個粒子的個體極值;xij(k)為第i個粒子第k次迭代時的位置,這一項代表粒子對自身飛行經驗的認知和學習;c2為社會因子;r2為[0,1]之間服從均勻分布的隨機數;pgj為群體極值,這一項代表粒子向群體共同經驗的學習能力,使自己不斷趨近群體中的最佳位置。
在求解復雜問題,尤其在多變量、多峰值的系統中,即使當前的Gbest與全局極值點相差甚遠,粒子也很容易受到吸引,并陷入該局部最優解中。此外,由于適應度函數是多維的,某些維度上處于全局最優解領域內的粒子,由于其他維度的影響,適應度可能并不高。因此標準粒子群算法常常具有搜索精度低、收斂速度慢的缺點。
在全面學習粒子群(CLPSO)算法中[7],粒子的速度向量按以下規則來更新:
vij(k+1)=wvij(k)+c1r1(pbestfi(j)(k)-xij(k)).
(8)
(9)
在粒子i的每一維度上都會產生一個隨機數,如果該隨機數大于PC,那么粒子i就會選擇自身的pbest;相反,它會選擇其他粒子的pbest,此時的算法流程概括如下:
(1) 隨機選擇兩個速度向量尚未更新的粒子。
(2) 比較這兩個粒子pbest的適應值,選出適應度更好的粒子。
(3) 用選出粒子的pbest作為其他粒子在這一維度上的學習對象。如果某一粒子所有的學習對象均為其本身的pbest,則隨機選擇一個維度,將相應維度上其他粒子的pbest作為學習對象。
為了提高算法的有效性,定義更新因子m,如果某粒子停止更新超過m次,則為該粒子重新分配學習對象fi。
與PSO算法相比,CLPSO算法中粒子的學習對象不局限于其本身Pbest的和Gbest,而是將范圍擴大至所有粒子的歷史最優解,而且在每一維度上,粒子都將進行學習對象的選擇,因此CLPSO算法具有較強的全局搜索能力,解決了PSO算法易陷入局部極值點的問題。但是,由于不受群體或領域極值的約束,擴大了粒子的飛行范圍,CLPSO算法的收斂速度和收斂精度還有待提升。針對這一問題,將粒子領域中歷史最優解的信息引入CLPSO算法,定義粒子的速度向量更新如下:
(10)
將PID控制器中的3個參數kp、ki、kd看做是粒子的3個參數指標,利用改進的CLPSO算法在3維空間中進行搜索,得到的最優位置的3個參數即為所需的PID參數。為了兼顧控制系統的性能和實時性,在搜索過程中對參數設置一定范圍,并規定了適應度的閾值和計算次數上限。本系統中,粒子群規模取40,計算次數設置為50即可滿足控制要求。
根據無刷直流電機的數學方程,在MATLAB/Simulink中搭建BLDC雙閉環控制系統模型,如圖1所示。其中速度調節采用改進CLPSO算法,BLDC仿真參數設置如下:電樞電阻R=2.875 Ω,電樞電感L=0.008 5 H,轉動慣量J=0.8×10-3kg·m2,電機為2極對,電機額定電壓U=480 V,電機額定轉速n=3 000 r/min,在0.1 s時突加負載TL=3 N·m。
圖1 無刷直流電機控制系統仿真模型
圖2、圖3分別為定參數PID和改進CLPSO PID控制電機的轉速響應曲線,圖4(a)為改進CLPSO PID控制電機轉速響應曲線啟動過程放大圖,圖4(b)為突加負載放大圖。
圖2 定參數PID控制電機轉速響應曲線
圖3 改進CLPSO PID控制電機轉速響應曲線
從圖2~圖4中可以看出,采用改進CLPSO PID控制的系統,電機轉速響應迅速,無超調,突加負載后,轉速下降和調節時間也均小于定參數PID系統。圖5、圖6分別為定參數PID和改進CLPSO PID控制電機的轉矩響應曲線。從圖5、圖6中可以看出,與定參數PID相比,改進CLPSO PID控制中的轉矩波動更小,響應速度更快。表1給出了兩種控制方式下電機性能的對比。仿真結果表明,經過改進CLPSO對PID參數的優化控制,電機控制系統具有更加良好的動靜態性能與魯棒性。
圖4 改進CLPSO PID控制電機轉速響應曲線放大圖
圖5 定參數PID控制電機轉矩響應曲線
本文針對傳統定參數PID控制方法難以滿足無刷直流電機控制指標要求的現狀,提出了基于改進CLPSO算法的無刷直流電機PID參數控制方法。仿真結果表明,與定參數PID控制方法相比,使用改進CLPSO控制方法的電機響應速度快,超調量小,突加負載后,響應速度和波動均優于定參數PID控制方法。該方法具有良好的動靜態特性與魯棒性,能夠滿足電機自適應控制的性能要求。
圖6 改進CLPSO PID控制電機轉矩響應曲線
控制器超調量(%)調節時間(ms)突加負載轉速下降(r/min)突加負載調節時間(ms)轉矩響應時間(ms)突加負載轉矩響應時間(ms)定參數PID2.870146304020改進PID04010455