武志宏,楊瑞峰,郭晨霞,葛雙超
(中北大學儀器與電子學院,山西省自動化檢測裝備與系統工程技術研究中心,太原 030051)
建立電動舵機準確模型是研究伺服系統動態特性的關鍵所在。因此,有必要研究用于精確建立電動舵機的系統辨識策略并進行動態性能分析。系統辨識的定義是1962年由Zadeh[1]提出的:系統辨識是被識別系統按照優化準則在預設模型中優化出與數據擬合最好的模型參數。國內外在舵機參數辨識研究方面提出了很多優化方法,如經典優化算法有最小二乘法[2]、相關函數法[3]和頻率特性法[4]等。這些經典優化算法在優化速度和優化精度方面逐漸暴露了缺點和局限性。近幾十年,智能控制理論不斷發展成熟,形成了多種形式的智能優化算法在參數辨識中的應用,如粒子群算法[5]、人工神經網絡[6]、支持向量機[7]等。
遺傳算法(genetic algorithm,GA)是一種利用自然界“優勝劣汰”的原理來搜索最優解的特點,從而在參數辨識中有著重要的研究意義[8]。相比之下,遺傳算法應用于舵機系統辨識的優點是不受諸如搜索空間和函數可導性等先驗條件的約束[8],但是與其他智能優化算法相比,傳統的遺傳算法存在著早熟收斂、易陷入局部最優以及收斂速度慢的缺點。
為了解決傳統遺傳收斂速度慢和早熟的缺點,提出了一種改進的自適應遺傳算法(improved adaptive genetic algorithm, IAGA),引入改進的交叉算子、變異算子操作、自適應交叉概率和變異概率。改進的算法使群體中最大適應度的個體交叉率和變異率不為零,使優良個體不處于一種停滯狀態從而讓算法跳出局部最優。在此基礎上將該算法應用于舵機系統參數辨識中,辨識結果表明,該算法與人工神經網絡(artificial neural network, ANN)、粒子群算法(particle swarm optimization,PSO)和GA相比具有更好的參數優化精度和優化速度,證明了改進算法的有效性。
系統辨識原理如圖1所示。電動舵機系統是在相同的外部干擾下獲得實際系統輸出和識別模型輸出,然后比較兩者之間的差異來構成誤差函數。最后,誤差函數作為優化算法的適應度函數來不斷校正辨識參數。

圖1 系統辨識原理Fig.1 System identification schematic
采用參數誤差(Epe)和平均參數誤差(Eape)來評估算法的識別精度。Epe和Eape的計算方法為
(1)
(2)
i=1,2,…,m

1.2.1 控制器模型
控制器對控制輸入信號電壓U和反饋電壓Uf的偏差信號進行功率放大,從而驅動電機運動。PWM控制器的傳遞函數為
(3)
式(3)中:ua為電機的直流平均電壓;uc為輸入電壓;U為電源電壓;uDP為輸入信號的最大電壓;KPWM為線性工作區域中的常數;s表示虛變量。
1.2.2 直流電機模型
電動舵機的主要構件是直流電機。當負載為空時其傳遞函數可近似為
(4)
式(4)中:θ為電機旋轉的角度;Km為電機轉矩系數;R為電驅動電路的總電阻;J為折疊到電機軸的慣性矩;Ke為反電動勢系數。
1.2.3 諧波減速器模型
諧波減速器是用于完成舵機轉動所需的角速度和扭矩的機構。在忽略摩擦轉矩和諧波減速器滯后影響的情況下,傳遞函數可以簡化為比例環節,即減速比的倒數:
(5)
式(5)中:θm和θ分別為電機旋轉和方向舵旋轉的角度;i是諧波減速器與驅動負載之間的傳動齒輪半徑比。
舵機系統由電流反饋、速度反饋和角度反饋3個閉環系統組成。現研究角度反饋和控制信號之間的關系,角度反饋電位器輸出電壓為
(6)
式(6)中:δ為舵機轉動的角度;ig為增速齒輪的增速比;up為施加到反饋電位計的電壓;θp為反饋電位計的角位移。
由于igδ/θp通常是常數,則反饋電位器的傳遞函數可以表示為
(7)
滯后特性可以作為模型中的延遲率來執行(可以表示為一階慣性環節)。如圖2所示,k1是由于其他未知非線性因素的影響而導致的電動舵機輸出的校正值。極限d1的物理特性是運動部分的振幅。

圖2 非線性系統簡化模型Fig.2 Nonlinear system simplified model
根據以上描述,當假定機械振幅極限不被觸發時,d1可以忽略。電動舵機系統的輸入輸出為
(8)
整理后得:
(9)

遺傳算法的改進如下:
(1)編碼。將式(9)離散化為
3.每個隊員摸一次,摸球時不準看,每次摸球后都要放回箱子,負責拿箱子的同學晃動箱子,使球混合均勻,接著再摸,摸出紅球多的為勝。
(10)
因此要得到系統傳遞函數,需要辨識的離散模型參數為a1、a2、a3、b1、b2和b3。根據問題的實際情況,采用近似二進制編碼的形式對染色體進行編碼,基因數為m×6,aij和bij為基因項,個體染色體為
(11)
式(11)中:k為染色體種群序號。
(2)生成初始群體。首先隨機產生的N個染色體作為算法迭代的初始值,并被定義為Q,N即為種群規模。
(3)適應度評價。適應度函數的建立是根據具體的實際問題進行設定的,適應度函數表示為
(12)
式(12)中:n為輸入的個數;y為實際對象的輸出;y′為相同輸入下辨識模型的輸出。
(4)選擇操作。為了抑制傳統GA基于適應度比例的選擇策略帶來的早熟現象,將規模為N的群體Q={M1,M2,…,Mn}按個體適應值降序排列為f(a1)≥f(a2)≥…≥f(an),個體i的選擇概率為
(13)
式(13)中:q′為個體被選擇到的概率;r為種群個體的編號。
(14)
式(14)中:α∈(0,1)。
(6)變異算子。為了使優化算法找到全局最優解。假設矩陣(11)的個體染色體基因aij∈[Lk,Uk]為選中的變異,該基因的變異結果為
(15)
式(15)中:r1和r2為[0,1]的均勻隨機變量。
(7)自適應交叉、變異概率的改進。交叉概率Pc和變異概率Pm的選擇對于算法的優化效率有很大影響。為此結合Srinvivas等[9]提出的自適應遺傳算法,作進一步改進,即
(16)
(17)
式中:fmax和favg分別為群體的最大和平均個體適應度;f′為兩個個體適應度大的值;Pc1=0.9,Pc2=0.6,Pm1=0.1,Pm2=0.01。
為了驗證方法的有效性進行了3個試驗,測試設備如圖3所示。試驗1:為了測試改進算法的優化性能采用標準測試函數驗證。試驗2:為了驗證本文提出的辨識方法的精確性,根據第1節建立的系統模型,進行系統辨識優化對比試驗并進行了實際信號跟隨測試。試驗3:為了驗證改進算法具有較強的抗噪聲能力,研究了不同噪聲水平下的參數辨識性能。

圖3 舵機測試設備Fig.3 Electric steering test equipmentdiagram
試驗參數設置為:控制臺PC配置為Intel(R)Core(TM)i7 CPU @ 2.20 GHz CPU和8 GB RAM。為使IAGA的有效性更具說服力、ANN,PSO和GA被應用于下面試驗。GA、PSO和IAGA的種群大小和迭代次數都設置為30和100。PSO的慣性權重w=0.6, 認知和社會加速度常數c1=c2=2。遺傳算法的其他參數設置按照第2節所示,最終結果取30次試驗結果的平均值。
參考CEC2013[10]評價標準選取了包括單峰函數、基本多峰函數的4個最小化標準函數進行仿真試驗,如表1所示。其中從上至下分別為Sphere函數為單峰函數;Rosenbrock為凸病態函數;Rastrigin’s和Schaffer為具有極多局部最小點的多峰函數。表2展現了不同算法之間性能比較的結果。一方面,改進算法對多維函數的優化精度都優于其他傳統智能算法。另一方面,IAGA的標準偏差小于其他算法,因此其優化結果更可靠。

表1 測試函數Table 1 Test function
在表3中,PSO與GA相比得到了相似或更好的識別結果,PSO和GA的識別精度明顯優于ANN。由于系統的強非線性和信號噪聲,ANN可能無法成功識別相關參數。IAGA的識別精度遠大于傳統GA,這表明改進的自適應交叉變異操作和精確保留策略可以有效地提高算法全局搜索性能。在圖4中可以看出,ANN最先收斂到局部最優解,因此很難獲得全局最優參數。PSO的收斂曲線在早期迅速下降,但達到一定精度時下降緩慢。GA的初始解性能很差,但是由于其適當的交叉和變異策略,收斂曲線仍然可以保持下降趨勢。IAGA的收斂曲線呈現穩定快速下降,反映了所提出的IAGA對系統參數識別的良好全局搜索能力。IAGA可以實現更快地收斂到最佳狀態,并獲得比其他解決方案更好的全局最優解決方案。

表2 不同測試算法性能對比Table 2 Performance comparison of different test algorithms
為了充分激勵舵機的各種模態以確保辨識效果,通過電動舵機實際實驗驗證所研究成果的可靠性。將正弦信號用作激勵信號,系統的采樣頻率設置為100 Hz,系統輸入幅度為1 V,初始相位是0°的正弦波。實驗結果如圖5所示,4種算法的誤差曲線如圖6所示。與其他3種算法相比,改進的算法正弦跟隨測試誤差從170 mV左右減小到5 mV左右。因此驗證了改進算法辨識精度較高的特點。

表3 不同算法辨識誤差Table 3 Identification error of different algorithms

圖4 不同算法平均收斂過程對比Fig.4 Compares the average convergence process different algorithm

圖5 正弦響應辨識測試Fig.5 Sinusoidal response identification test

圖6 正弦響應辨識誤差Fig.6 Sinusoidal response identification error
具有不同信噪比(SNR) (90、60和30 dB)的噪聲信號被添加到電動舵機的輸出端。應用MATLAB中的AWGN函數給舵機輸出信號添加不同信噪比噪聲后進行辨識試驗。選擇性能最好的IAGA算法作為試驗的優化算法。
如表4所示,60 dB的參數識別誤差遠大于90 dB的參數識別誤差,這可能是由于電動舵機的死區,間隙和極限振幅等非線性部分的存在造成的。當SNR為30 dB時誤差顯著增加。但是,30 dB以下的某些參數的識別精度仍然很好,可以滿足實際工程應用的要求。

表4 不同信噪比下辨識誤差Table 4 Identification error under different SNR
提出一種新的IAGA辨識參數的方法,該方法具有以下特點。
(1)改進后的GA算法在全局優化和快速收斂能力都有較大的提高,性能上也明顯優于現有的一些傳統優化算法。
(2)經過多維復雜經典函數測試,與其他智能算法相比改進的算法能夠得到很好的優化結果,并且有很高的穩定性。說明改進的算法具有復雜優化問題的通用性。
(3)改進后的算法用于電動舵機系統辨識,通過參數誤差和平均參數誤差評判結果,說明改進算法具有優化精度高、速度快的特點。
(4)經過抗干擾測試檢測,改進算法具有較強的抗噪聲能力,因此具有高的工程實踐價值。