李成成, 王廣林, 潘旭東, 李躍峰
(1.蘭州交通大學機電工程學院 蘭州,730070) (2.哈爾濱工業大學機電工程學院 哈爾濱,150001)
負載模擬器是一種重要的半實物仿真設備,其主要功能是模擬飛機、火箭等飛行器舵機在測試中舵軸受到的期望力矩,從而實現在地面進行舵機各項技術指標檢測的目的。負載模擬器能將具有破壞性的空中全實物檢測轉換為地面試驗室中的半實物檢測,從而達到的縮短舵機開發周期、降低開發成本和提高可靠性的目的。按照能量來源,負載模擬器可以分為電液負載模擬器、氣動負載模擬器和電動負載模擬器。與其他兩種負載模擬器相比,電動模擬器在小力矩情況下具有穩定性強、精度高和可靠性好等優點[1-3]。由于負載模擬器一般按照雙向擺動狀態運行,運行過程中所受摩擦力在動靜摩擦力之間反復交替,因而對于具有高精度加載要求的電動負載模擬器而言,摩擦力的影響是不能忽視的。因此,為了提高電動負載模擬器的力矩加載精度,需要對其運行過程中受到的摩擦力影響的問題展開研究。
經典摩擦模型一般從靜態角度推導運動速度與摩擦力的關系,主要方法包括Dahl模型[4]、Leuven模型[5]、LuGre模型[6]和Generalized Maxwell-Slip模型[7]等;然而上述模型都是不連續的摩擦模型。不連續的或者分段連續的摩擦模型會使控制器變的復雜且會增加系統的不穩定,不能滿足負載模擬器高精度的力矩加載要求。因此,筆者引入一種連續可微的摩擦模型替代傳統不連續摩擦模型。
Yang等[8]提出的CSA算法同PSO, GA等算法類似,都屬于啟發式的搜索算法,但是CSA算法較其他啟發式算法具有先天的優勢。CSA算法有效克服了上述啟發式算法容易陷入局部最優的缺陷,提高了收斂速度,降低了計算量。近年來CSA算法被廣泛應用在圖像識別[9]、參數辨識[10]、控制理論[11]及醫療衛生[12]等領域,但是由于CSA算法的判定概率pa及搜索步長S在整個搜索過程中為固定數值,影響了CSA算法搜索性能的進一步提高。筆者針對電動負載模擬器運行過程中受到的摩擦力影響的問題,采用連續摩擦模型,提出一種改進CSA算法的電動負載模擬器連續摩擦模型參數辨識方法。該方法根據總的迭代次數和當前迭代次數自動調整判定概率pa和搜索步長S的數值,平衡了收斂速度和搜索精確度之間的矛盾關系,提高了CSA算法的收斂速度和搜索精度,并通過仿真和試驗驗證了該方法的有效性和準確性。
本研究進行參數辨識的數據來源于圖1所示的試驗臺。該試驗臺為筆者自行設計的電動負載模擬器試驗樣機,其中:執行機構為倫茨永磁同步伺服電機MCS14L1,額定力矩為40 Nm,驅動器為倫茨配套的9400Highline,舵機為航天某所研制的彈用舵機,額定力矩為40 Nm,最大擺角為±30°;舵機角度傳感器為雷尼紹RGH20圓光柵,與其配套使用的計數器板卡為研華PCI-1784,加載系統角速度由9400Highline驅動器反饋,扭矩傳感器為北京中航科電ZH07;被加載舵機驅動器內置PID位置閉環控制器;工控機為研華IPC610L,模擬量輸入輸出分別采用研華PCL-818HD和研華PCI-1720。各個器件主要參數見表1。

圖1 電動負載模擬器試驗臺Fig.1 Experimental setup of ELS

表1 試驗樣機的主要部件參數
筆者采用永磁同步伺服電機作為電動負載模擬器的執行元件,驅動模式為電流反饋型脈寬逆變。在磁路不飽和、定子三相電流產生的空間磁勢和轉子磁通按正弦分布的理想情況下,不考慮轉子磁場的凹極效應,并且永磁同步電機采用id=0控制模式的情況下,電動負載模擬器的動力學模型可描述為

(1)
其中:Jm為電機轉子和加載軸的綜合轉動慣量,本研究中Jm取值為0.012 35 kgm2;Bm為阻尼和黏性摩擦因數;ωm為加載電機的角速度;Tl為扭矩傳感器的輸出力矩值;Tm為電機驅動力矩;Km為輸入控制電壓u和驅動力矩Tm之間的比例系數,Tm=Kmu,本研究Tm=0;Tf為庫倫摩擦力值。

具有死區和庫倫摩擦等明顯非線性特點的系統在單一運行速度情況下可以用線性模型來表示[13]。但是,如果系統運行在雙向擺動的狀態下,且系統控制精度要求很高,那么系統死區和庫倫摩擦的影響就不能被忽略。通過對目前的幾種摩擦模型的分析,筆者選擇一種連續可微的摩擦模型來描述負載模擬器運行過程中的摩擦特性。該摩擦模型主要是為了解決高精度控制系統中傳統摩擦模型不連續造成的控制器不連續和系統穩定性差的問題[14]。該摩擦模型的表達式為

(2)
其中:γi∈R?i=1,2,…,6為未知的正常數。
式(2)中所示的連續摩擦模型具有如下的特性:
1) 該摩擦模型為對稱摩擦模型;


該連續摩擦模型共有6個待辨識參數,且為非線性模型。筆者采用啟發式優化算法——CSA算法,將參數辨識問題轉化為非線性系統優化問題[15]。
CSA算法的實質是布谷鳥如何通過Lévy飛行機制和寄生育雛的方式尋找到一個最優的鳥巢來免費孵化自己的卵。在自然界中,布谷鳥用一種隨機的或者近似隨機的方式來尋找寄生鳥巢的位置。為了模仿布谷鳥的這種搜索方式,在尋找鳥巢的過程中,有以下理想化假設:①每一個布谷鳥同時只產一個卵,且將它的卵放在一個隨機選擇的鳥巢中;②適合產卵的最好的鳥巢會被繼承到下一代;③可供選擇的鳥巢的數量是固定的,且布谷鳥所產的卵被鳥巢主人發現的幾率為pa∈[0,1]。一旦卵被發現,鳥巢主人就會放棄這個鳥巢去建立一個新的鳥巢,這個卵也就被遺棄了,即所有的鳥巢都有pa的幾率被替換為新的鳥巢[16-17]。
式(3)表示在算法中搜索下一代鳥巢位置的方式,以Lévy飛行機制產生下一代鳥巢的位置

(3)
其中:運算符⊕表示逐次相乘;α>0為步長控制因子;levy(λ)為列維飛行機制。
舊鳥巢替換原則如下:選擇一個服從均勻分布的隨機數ε∈[0,1],如果ε>pa,那么產生一個新的鳥巢替代舊鳥巢;否則,舊鳥巢被保留。
最優鳥巢判定原則如下:將每一個鳥巢輸入目標函數,將使得目標函數值最小的那一個鳥巢作為本次最優鳥巢,并與所設定的迭代精度對比;如果目標函數值小于所設定的迭代精度,迭代結束;否則,繼續下一次迭代優化,直到達到迭代精度或者完成迭代次數。
2.2.1 判定概率pa的調整策略
在CSA算法中,是否產生一個新的鳥巢是由隨機數ε和判定概率pa共同決定的,因此最終的優化結果是受到判定概率pa的影響。筆者通過多次試驗和計算發現:如果pa太小,算法收斂速度加快但很難收斂到最優解;相反,如果pa過大,算法的收斂速度緩慢。根據這一規律,應該在優化前期取較小的pa加快收斂速度,優化后期取較大的pa提高搜索精度。筆者提出了如式(4)所示的pa調整策略
pa(t)=pa,max+(pa,min-pa,max)e-r1(t/tmax)p1
(4)
其中:pa,max和pa,min為判定概率的最大值和最小值,分別取0.75和0.05;t為當前迭代次數;tmax為最大迭代次數;r1為限制因子,本研究取值為10;p1為一個整數,本研究 中取值為10。
2.2.2 迭代步長S的調整策略
通過分析CSA算法可以發現,迭代步長S對算法能否達到全局最優解及設定的搜索精度起到關鍵的作用。較大的迭代步長能夠幫助算法跳出局部最優,同時也會降低搜索精度和收斂速度;相反,較小的迭代步長容易獲得局部最優解。因此,關鍵點是如何找到一個合適的迭代步長以避免獲得局部最優,同時提高收斂速度和搜索精度。筆者提出了如式(5)所示的迭代步長調整策略
S(t)=Smin+(Smax-Smin)e-r2(t/tmax)p2
(5)
其中:Smin和Smax分別為迭代步長的最大值和最小值,分別取0.01和0.5;r2為限制因子,本研究取值為100;t為當前迭代次數;tmax為最大迭代次數;p2為一個整數,本研究取值為10。
2.2.3 標準函數的仿真測試
為了驗證筆者提出的改進CSA算法的有效性,進行了仿真驗證測試。選取7個常用的全局最優測試函數進行仿真驗證,這7個測試函數分別如下:
1) Schwefel 函數
(-500≤xi≤500)
2) Rosenbrock 函數
(-2.048≤xi≤2.048)
3) Griewank 函數
(-600≤xi≤600)
4) Rastrigin 函數
(-5.12≤xi≤5.12)
5) Sphere 函數
6) Drop-wave 函數
(-5.12≤xi≤5.12)
7) Branin 函數
(-5≤x1≤10,0≤x215)
Schwefel 函數在其定義域內有許多局部最小和一個全局最小值f1(X*)=0,X*=420.968 7,…,420.968 7;Rosenbrock 函數有一個全局最小值f2(X*)=0,X*=1,…,1;Griewank 函數有許多規則分布的局部最小值和一個全局最小值f3(X*)=0,X*=0,…,0;Rastrigin 函數有很多規則分布的局部最小值,Sphere 函數有n個局部最小值,且這兩個函數具有相同的唯一全局最小值f4(X*)=f5(X*)=0,X*=0,…,0;Drop-wave 函數有一個全局最小值f6(X*)=-1,X*=0,0;Branin 函數有3個相同的全局最小值f7(X*)=0.397 887,X*=(±π,2.275),(9.425,2.425)。
測試的目的是利用ICSA和CSA算法搜索所有7個測試函數的全局最小值,并對2種算法搜索過程的指標進行對比。測試中傳統CSA的參數設置為:鳥巢個數n=25;判定概率pa=0.25;步長S=0.03。ICSA參數見式(4)和式(5)。2種算法分別運行30次,且當迭代到達150次時停止。
圖2為7個測試函數的某次仿真測試曲線,從圖中可以看出,ICSA算法比傳統CSA算法的收斂速度更快,收斂精度更高。

圖2 ICSA和CSA算法的搜索曲線Fig.2 Search curves of ICS and CS algorithms
表2為7個測試函數在應用2種算法的情況下運行30次搜索運算所獲得的最優解、解的平均值及方差的具體數值。對比表2中的仿真結果可知,CSA算法和ICSA算法均能成功獲得全局最小值,但是ICSA算法獲得的最優解和解的平均值更準確。通過計算30次運算結果的方差可知,ICSA算法的穩定性更好。

表2 不同方法獲得的解的對比
2.3.1 摩擦力測量試驗
連續摩擦模型的參數是通過對電動負載模擬器的角速度-摩擦力曲線的辨識得到。本研究中的速度-摩擦力曲線是通過具體試驗獲得的。在試驗中,舵機由專門的PID閉環控制器控制,能保證運行過程中的角速度準確跟隨輸入指令。
通過式(1)可知,當舵機按照某一角速度指令勻速運行時,轉動慣量的影響被消除且負載模擬器空載運行,此時記錄當前傳感器的輸出值,即為當前摩
擦力的值。因此,舵機按照一系列的角速度指令分別做勻速運動,記錄這些速度對應的摩擦力值,即可得到電動負載模擬器的速度-摩擦力曲線[18]。
在本研究中,舵機的角速度取值范圍為[-1,1] rad/s,共進行100組試驗,正負兩側各50組。為了能比較準確的反映摩擦模型的特性,在角速度為0~0.1 rad/s的范圍內進行25組試驗,其余25組試驗在角速度為0.1~1 rad/s的范圍內進行。負角速度方向對稱地進行上述試驗。
將得到的100組試驗數據進行多項式曲線擬合得到的結果如圖3所示,擬合曲線近似描述了電動負載模擬器角速度與摩擦力對應的關系。

圖3 摩擦力試驗數據和擬合曲線Fig.3 Experimental data and fitting curve of friction
2.3.2 目標函數的確定
根據式(2)可知,本研究需要辨識的連續摩擦模型的模型結構是已知的,因此參數辨識問題轉化為優化問題,優化的目的是系統輸出和模型輸出的差值使得目標函數的函數值最小。因此,需要設計一個適合辨識模型的目標函數,使得該函數能夠描述模型輸出逼近系統測量輸出的程度。
待辨識的連續摩擦模型參數包括6個,定義這6個需要辨識的參數為:Ξ=[γ1γ2γ3γ4γ5γ6]T∈R6。定義逼近誤差為

(7)
其中:Tf[ωi]為負載模擬器以ωi的恒定速度運行時傳感器輸出力矩(摩擦力的值);Tfs[Ξ,ωi]為負載模擬器以ωi的速度運行時,根據當前辨識參數Ξ,通過連續摩擦模型計算得到的摩擦力值。
本研究定義的目標函數如下

(8)
2.3.3 參數辨識結果及分析
為了說明ICSA算法對非線性模型參數辨識的有效性及其較CSA算法的優勢,筆者分別設計了以下2組試驗:①以CSA算法為搜索方法進行辨識試驗;②以ICSA算法為搜索方法進行辨識試驗。2組試驗分別運行30次并計算平均值,其中CSA算法和ICSA算法的參數選擇如表3所示。

表3 CSA算法和ICSA算法的參數選擇
表4列出了運行30次的ICSA算法和CSA算法的參數辨識結果的平均值。
圖4為某次運算的CSA和ICSA對比曲線,其中:黑色實線表示傳統CSA算法搜索過程中目標函數與迭代次數的關系曲線;紅色實線表示ICSA算法搜索過程中目標函數與迭代次數的關系曲線。不難看出,在迭代進行的前25次中ICSA算法能快速地收斂到最優解附近,而傳統CSA算法在迭代進行到75次左右時,才收斂到與ICSA算法25次迭代附近相同的目標函數值。當迭代進行到最大迭代次數300次時,ICSA算法比傳統CSA算法具有更高的收斂精度。由表4可知,進行30次辨識運算獲得的ICSA算法的目標函數值的平均值較CSA算法的目標函數值的平均值減小了45.2%。因此,ICSA算法比CSA算法收斂速度更快,且收斂精度更高。

表4 參數辨識結果

圖4 某次運算中ICSA算法和CSA算法的目標函數值Fig.4 Objective function value of ACSA and CSA in one time
2.3.4 辨識結果驗證試驗
上節的試驗得到了各個參數的具體數值,這些數值是否是系統參數的真實值還需要進行進一步的驗證。雖然這些參數不能通過試驗的方式直接獲得,但是只要能驗證利用這些辨識的參數得到的系統估計輸出和系統測量輸出吻合,就能證明辨識得到的參數是系統的真實值。
筆者設計了以下的驗證試驗:首先,舵機按照最大速度0.04 rad/s、頻率1Hz的正弦規律運動,即w=0.04sin(2πt) rad/s,試驗樣機數據采樣時間為0.001 s。由于加速度引入的力矩為0.003 1 Nm,遠遠小于摩擦力的大小,可忽略,因此認為此時傳感器輸出的扭矩值全部為系統摩擦力;其次,將得到的各個系統辨識參數帶入連續摩擦數學模型中,同時確保摩擦模型的輸入與實際系統的輸入相同,然后計算出摩擦力的估計值。圖5中黑色實線表示系統實際的摩擦力測量值,紅色實線表示利用ICSA算法得到辨識參數的摩擦力估計值,藍色實線表示利用傳統CSA算法得到辨識參數的摩擦力估計值。從圖中可以看出,當舵機運動速度在零速度附近時,ICSA算法和CSA算法的摩擦力估計值都能與測量值很好地吻合,但當舵機運動速度在最大速度附近時,ICSA算法的摩擦力估計值能很好地與測量值吻合,而CSA算法的摩擦力估計值與測量值誤差較大,因而證明了所設計的ICSA算法能更準確地獲得摩擦模型的各個參數。

圖5 驗證試驗結果Fig.5 Experimental verification
1) 電動負載模擬器具有較高的控制精度要求,傳統的不連續的摩擦模型不利于負載模擬器高精度控制器的設計。為解決這個問題,引入了連續可微的摩擦模型,并針對該模型提出了改進的CSA算法的參數辨識方法。
2) 利用提出的ICSA算法進行辨識試驗,獲得了非線性摩擦模型的6個參數的數值。對30次搜索結果求平均值發現,ICSA算法的目標函數值較CSA算法減小了45.2%。通過試驗驗證了所提出的ICSA算法較大地提高了摩擦模型參數辨識的精確度和收斂速度。
3) 文中給出的判定概率pa和步長S的調整策略僅僅表達了在辨識過程中pa和步長S變化趨勢對CSA算法收斂速度及收斂精度的影響,其具體數值并不一定是最優值,更優化的調整策略有待進一步的研究。