張麗雯,姜金華
(1.上海第二工業(yè)大學(xué)資源與環(huán)境工程學(xué)院,上海 201209;2.上海第二工業(yè)大學(xué)智能制造與控制工程學(xué)院,上海 201209)
振動(dòng)[1]是物體的往復(fù)運(yùn)動(dòng),是自然界和工程界的普遍現(xiàn)象。人與機(jī)械交互時(shí),噪聲問題也通常被歸為振動(dòng)問題[2]。工業(yè)生產(chǎn)制造中難免會(huì)產(chǎn)生振動(dòng),而這種振動(dòng)會(huì)影響到工業(yè)生產(chǎn)。特別是對于精密器件和超精密加工設(shè)備的使用,任何微小的振動(dòng)干擾都很有可能對測量數(shù)據(jù)和設(shè)備本身產(chǎn)生嚴(yán)重的影響。因此,如何有效地控制振動(dòng)一直是國內(nèi)外深入研究的課題。
主動(dòng)噪聲控制(active noise control,ANC)是一種振動(dòng)控制的新技術(shù)[3]。與被動(dòng)振動(dòng)控制相比,主動(dòng)振動(dòng)控制對于低頻的隔振效果更好,而且對外界環(huán)境有較強(qiáng)的適應(yīng)能力。如今,主動(dòng)振動(dòng)控制被廣泛應(yīng)用于工業(yè)領(lǐng)域。自適應(yīng)濾波算法是主動(dòng)噪聲控制研究的重點(diǎn)。對于復(fù)雜設(shè)備與裝置可能存在的結(jié)構(gòu)非線性與時(shí)變環(huán)節(jié),自適應(yīng)濾波算法具有較好的技術(shù)特點(diǎn)與優(yōu)勢[4]。常用的自適應(yīng)濾波算法是基于維納濾波的最小均方(least mean suqare,LMS)算法。該算法具有結(jié)構(gòu)簡單、性能穩(wěn)定、計(jì)算復(fù)雜度低和易于實(shí)現(xiàn)等特點(diǎn)。
20世紀(jì)80年代,Morgan、Widrow及Burgess提出了獲得廣泛應(yīng)用的濾波-x最小均方(filtered-x least mean suqare,FxLMS)算法[5],解決次級(jí)通道引起的系統(tǒng)不穩(wěn)定問題。2011年,周亞麗等提出了基于反正切變換的濾波-x最小均方算法(filtered-x arctangent least mean suqare,FxatanLMS)[6],解決了脈沖噪聲高尖峰特性引起的系統(tǒng)不穩(wěn)定問題。2013年,Wu提出了Fair算法[7],利用Fair函數(shù)對誤差信號(hào)進(jìn)行非線性變換。Fair函數(shù)的特性是連續(xù)平滑且僅有一個(gè)可調(diào)閾值參數(shù),避免了選擇參數(shù)和估測閾值的麻煩,算法性能更好。
Oh.J等利用FxLMS算法對懸臂梁主動(dòng)振動(dòng)控制系統(tǒng)進(jìn)行了試驗(yàn)研究,驗(yàn)證了FxLMS算法的可行性[8]。Meng等提出了一種基于壓電堆作動(dòng)器的直升機(jī)機(jī)身多輸入多輸出多諧波前饋?zhàn)赃m應(yīng)自動(dòng)電壓控制(automatic roltagecontrol,AVC)方法。該方法由諧波系數(shù)辨識(shí)和多輸入多輸出多諧波(multi-input multi-output multi-harmonic,MIMOMH)前饋FxLMS算法組成[9]。Li等將反饋FxLMS算法和比例積分微分(proportional integral differential,PID)控制器相結(jié)合,提出了混合PID-FxLMS算法,并將其應(yīng)用于壓電懸臂梁振動(dòng)控制中[10]。王歡等通過有限元模型,應(yīng)用正位反饋技術(shù)研究了多階模態(tài)的主動(dòng)振動(dòng)控制[11]。
本文首先在傳統(tǒng)FxLMS算法的理論基礎(chǔ)上,根據(jù)反雙曲正弦函數(shù),提出了一種新的FxLMS算法,即FxasinhLMS算法;然后分別在Simulink和機(jī)械系統(tǒng)的力學(xué)自動(dòng)分析(automatic dynamic analysis of mechanical system,ADAMS)中建立了FxLMS控制仿真系統(tǒng)和懸臂梁有限元模型,連接兩者進(jìn)行聯(lián)合仿真。在聯(lián)合仿真控制系統(tǒng)中,分別對FxLMS、Fair、FxatanLMS算法和本文提出的FxasinhLMS算法進(jìn)行仿真測試。仿真測試結(jié)果證明了FxasinhLMS算法在懸臂梁振動(dòng)主動(dòng)控制應(yīng)用中的有效性和優(yōu)越性。
LMS算法是線性自適應(yīng)濾波器算法,其作用是調(diào)整濾波器的權(quán)系數(shù)。LMS算法以最小均方誤差(mean square error,MSE)為判據(jù),使期望信號(hào)與濾波器輸出信號(hào)之差的平方的期望值最小[12]?;贚MS算法的自適應(yīng)濾波器結(jié)構(gòu)如圖1所示。
圖1 基于LMS算法的自適應(yīng)濾波器結(jié)構(gòu)圖
自適應(yīng)濾波器W(z)采用有限脈沖響應(yīng)(finite impulse response,F(xiàn)IR)結(jié)構(gòu)。圖1中:x(n)為輸入信號(hào);d(n)為期望信號(hào);y(n)為濾波器輸出信號(hào);e(n)為誤差信號(hào);權(quán)系數(shù)矢量W根據(jù)最小均方判據(jù)調(diào)整。
對于FIR濾波器,n時(shí)刻的濾波器輸出為:
(1)
式中:T為轉(zhuǎn)置符;X(n)為n時(shí)刻的輸入矢量;N為濾波器的階數(shù);wi(n)為n時(shí)刻第i個(gè)權(quán)系數(shù),i=0,1,...,N-1。
根據(jù)圖1,均方誤差ε表示為:
ε=E[e2(n)]=E[d(n)-y(n)]2
(2)
將式(1)代入式(2),可得:
ε=E[d(n)-WT(n)X(n)]2
(3)
從式(3)可以看出,均方誤差是權(quán)系數(shù)矢量W的二次型函數(shù),在均方誤差達(dá)到最小時(shí),權(quán)矢量W*達(dá)到最優(yōu)。W*一般采用迭代算法來求解,常用方法是最速下降法,即:
(4)
式中:u為步長;W(n)為n時(shí)刻的濾波器權(quán)系數(shù)矢量;(n)為第n次迭代的梯度矢量;W(n+1)采用最速下降法,可以逼近最佳值。
對于LMS算法,第n次迭代的梯度矢量表示為:
(5)
用瞬時(shí)值代替式(5)中的數(shù)學(xué)期望,得到的梯度估計(jì)值稱為瞬時(shí)梯度。則有:
(n)=-2e(n)X(n)
(6)
顯而易見,瞬時(shí)梯度矢量是真實(shí)梯度矢量的無偏估計(jì)。此時(shí),式(4)的迭代公式可寫成:
W(n+1)=W(n)+ue(n)X(n)
(7)
為了確保算法的穩(wěn)定性,步長的取值范圍為:
(8)
式中:tr(R) 為輸入信號(hào)自相關(guān)的跡,等于R對角線上的元素之和。
(9)
為了修正LMS算法的誤差梯度估計(jì)值,在LMS的基礎(chǔ)上增加了次路徑模型??紤]到次路徑的影響,為了確保系統(tǒng)的穩(wěn)定性,需要對LMS算法的瞬時(shí)梯度估計(jì)作修正。xf(n)取代了LMS中的參考輸入信號(hào)x(n)。xf(n)是參考輸入信號(hào)x(n)經(jīng)次路徑S(z)濾波后得到的,所以這種算法被稱為FxLMS算法。前饋FxLMS算法結(jié)構(gòu)如圖2所示。
圖2 前饋FxLMS算法結(jié)構(gòu)圖
前饋FxLMS算法的步驟如下。
①采集輸入信號(hào)x(n)。
②計(jì)算濾波器的輸出信號(hào)u(n):
(10)
式中:N為濾波器階數(shù)。
③輸入信號(hào)u(n)至次路徑。
④計(jì)算濾波-x信號(hào)xf(n):
(11)
⑤計(jì)算誤差信號(hào)e(n):
e(n)=d(n)-y(n)
(12)
⑥采用FxLMS算法,更新W(z)的權(quán)系數(shù):
W(n+1)=W(n)-u×e(n)×xf(n)
(13)
FxLMS算法的迭代穩(wěn)定性會(huì)受到誤差信號(hào)e(n)的影響。為了保證算法的穩(wěn)定性,本文提出一種改進(jìn)方法,即設(shè)計(jì)一種新的非線性變換函數(shù)對誤差信號(hào)e(n)作處理。
本文利用反雙曲正弦函數(shù)對誤差信號(hào)e(n)進(jìn)行變換,提出FxasinhLMS算法。變換后的誤差信號(hào)函數(shù)只有一個(gè)可調(diào)參數(shù)。其參數(shù)確定方法簡單,避免了選擇參數(shù)和估測閾值參數(shù)的麻煩。其誤差變換函數(shù)為:
(14)
式中:α為系數(shù);sinh-1為反雙曲正弦。
將式(14)代入式(13),則濾波器進(jìn)行自適應(yīng)更新的迭代公式為:
W(n+1)=W(n)-u×φ[e(n)]×xf(n)
(15)
使用反雙曲正弦函數(shù)對誤差信號(hào)進(jìn)行非線性變換,使變換后的誤差信號(hào)具有界二階矩。反雙曲正弦函數(shù)的特點(diǎn)是連續(xù)單調(diào)有界、奇對稱,即當(dāng)x→0時(shí),f(x)→0,可以保證函數(shù)的收斂性和穩(wěn)定性。假設(shè)X是一個(gè)符合正態(tài)分布的隨機(jī)變量,定義Y=sinh-1(X)。因?yàn)榉措p曲正弦函數(shù)具有奇對稱特性,所以其期望E(Y)=0。根據(jù)方差的計(jì)算公式,Y的方差為:
s(Y)=E[Y-E(Y)]2
(16)
(17)
由維納濾波器原理可知,n時(shí)刻濾波器一定存在一個(gè)使得誤差最小的最優(yōu)解。因此,需要確定u的取值范圍,以確保算法收斂。
假設(shè)w0是最優(yōu)權(quán)系數(shù)矢量,w0xf(n)≈-d(n),則偏差矢量ε(n)為:
ε(n)=w0-W(n)
(18)
在式(16)兩端分別減去w0,有:
W(n+1)-w0=W(n)-w0-uφ[e(n)]xf(n)
(19)
ε(n+1)=ε(n)+uφ[e(n)]xf(n)
(20)
定義均方偏差σ(n)為:
(21)
式(20)兩邊取歐式2范數(shù)并求期望,得到:
(22)
考慮到:
(23)
(24)
假設(shè):
εT(n)xf(n)=[w0(n)-w(n)]xf(n)≈-[d(n)-y(n)]=-e(n)
(25)
那么,式(23)可以寫成:
Δ(n)=σ(n+1)-σ(n)<0
(26)
當(dāng)算法收斂,步長應(yīng)該滿足下列條件:
(27)
系統(tǒng)核心是基于FxLMS算法的自適應(yīng)濾波器,采用Matlab Function進(jìn)行FxLMS算法的編寫。
控制仿真系統(tǒng)利用兩個(gè)傳遞函數(shù)模塊分別替代實(shí)際懸臂梁的主通道和次級(jí)通道。假設(shè)理想情況下次級(jí)通道和次級(jí)通道估計(jì)的傳遞函數(shù)相同。
本文以懸臂梁作為研究對象,借助ADAMS軟件建立懸臂梁有限元模型。ADAMS的工作柵格為默認(rèn)的笛卡爾坐標(biāo)系,以steel作為懸臂梁材料。懸臂梁材料的長、寬、高分別為900 mm、25 mm、1 mm,密度為7.80×10-6kg/m。楊氏模量為2.07×105Pa,泊松比為0.29。懸臂梁受到外界刺激會(huì)發(fā)生變形,所以要把懸臂梁構(gòu)件變成柔性體再作進(jìn)一步的處理。本文采用ADAMS/ViewFlex建立柔性體,以代替原先的剛性體。
聯(lián)合仿真需要ADAMS和Simulink兩個(gè)軟件進(jìn)行數(shù)據(jù)通信:首先,定義ADAMS的輸入變量為添加在懸臂梁根部和中間位置的兩個(gè)控制力,定義ADAMS的輸出變量為懸臂梁上五個(gè)標(biāo)記點(diǎn)位置的變化;然后,采用varval()函數(shù)對定義的輸入變量進(jìn)行處理,使得輸入變量與Simulink中的輸入信號(hào)進(jìn)行相關(guān)聯(lián);最后,完成ADAMS和Simulink這兩個(gè)軟件之間的數(shù)據(jù)通信。
定義ADAMS的輸入輸出變量后,將懸臂梁有限元模型通過Control Plant模塊導(dǎo)出。
聯(lián)合仿真的目的是實(shí)現(xiàn)機(jī)械系統(tǒng)和控制系統(tǒng)一體化。首先,在Matlab/Simulink中輸入ADAMS模塊。ADAMS模塊如圖3所示。
圖3 ADAMS模塊
將圖3中的ADAMS模塊與基于FxLMS算法的控制仿真系統(tǒng)相連接,得到機(jī)械系統(tǒng)與控制系統(tǒng)一體化的懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)。懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)如圖4所示。
圖4 懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)
在懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)中,輸入信號(hào)為正弦信號(hào)。該信號(hào)的頻率為一階模態(tài)頻率14 Hz。因?yàn)樵诘碗A頻率振動(dòng)條件下,一階模態(tài)存在的能量是最大的。一階模態(tài)頻率14 Hz是通過給定ADAMS模塊一個(gè)掃頻信號(hào),然后對模塊的輸出信號(hào)作頻譜分析所得到的。
聯(lián)合仿真試驗(yàn)中,F(xiàn)xLMS算法通過跟隨輸入信號(hào)產(chǎn)生輸出信號(hào),利用其控制器產(chǎn)生控制力,再將其作用到懸臂梁模型需要消除振動(dòng)的位置,與輸入信號(hào)在該位置產(chǎn)生的響應(yīng)相互抵消,從而實(shí)現(xiàn)降低懸臂梁振動(dòng)。
本文使用Matlab2016b、ADAMS2020這兩個(gè)仿真軟件,分別采用FxLMS、Fair、FxatanLMS和本文提出的FxasinhLMS算法在懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)中進(jìn)行仿真。通過仿真獲取每種算法的控制效果,并采用量化標(biāo)準(zhǔn)進(jìn)行控制效果的比對,從而比較四種算法的性能。四種算法的仿真結(jié)果如圖5所示。
圖5 四種算法的仿真結(jié)果
設(shè)定仿真試驗(yàn)參數(shù)如下:作為控制器的自適應(yīng)濾波器階數(shù)為8;Fair算法中,閾值c=5;FxasinhLMS算法中,α=3;FxLMS、Fair、FxatanLMS、FxasinhhLMS算法中,固定步長μ=0.0 000 001;采樣頻率為0.001 Hz;采樣時(shí)間為400 s。
給定一個(gè)幅值1 V、頻率14 Hz的正弦信號(hào)作為激勵(lì)信號(hào),利用FxLMS、Fair、FxatanLMS、FxasinhhLMS算法分別進(jìn)行聯(lián)合仿真。
對輸入信號(hào)x和FxLMS、Fair、FxatanLMS、FxasinhhLMS四種算法進(jìn)行頻譜分析。頻域結(jié)果如圖6所示。
圖6 頻域結(jié)果
圖6中,因?yàn)榧?lì)信號(hào)的頻率是14 Hz,所以四種算法均在14 Hz時(shí)功率譜出現(xiàn)尖峰。當(dāng)頻率大于14 Hz后,隨著頻率增大,四種算法穩(wěn)態(tài)誤差的功率譜均呈逐漸衰減趨勢。在頻率為14 Hz時(shí),四種算法對懸臂梁的振動(dòng)都有衰減。該結(jié)果表明,四種算法均對懸臂梁振動(dòng)有著一定的控制效果。其中,F(xiàn)xasinhhLMS算法的衰減效果最好。
主動(dòng)振動(dòng)控制應(yīng)用中,算法的控制效果通常采用穩(wěn)態(tài)誤差和收斂速度這兩個(gè)指標(biāo)來評(píng)估。在本文的懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)仿真試驗(yàn)中,將系統(tǒng)達(dá)到穩(wěn)定時(shí)對應(yīng)的采樣點(diǎn)作為起點(diǎn),往后取100個(gè)采樣點(diǎn);以這100個(gè)采樣點(diǎn)對應(yīng)誤差的平均值作為穩(wěn)態(tài)誤差指標(biāo),并以系統(tǒng)達(dá)到穩(wěn)定時(shí)所用的迭代次數(shù)作為收斂速度指標(biāo)。通過聯(lián)合仿真得到的四種算法穩(wěn)態(tài)誤差和迭代次數(shù)如表1所示。
表1 四種算法穩(wěn)態(tài)誤差和迭代次數(shù)
由表1可知,基于FxasinhhLMS算法的仿真系統(tǒng)穩(wěn)態(tài)誤差為3.56×10-4,經(jīng)過160 000次迭代達(dá)到穩(wěn)定,其穩(wěn)態(tài)誤差和迭代次數(shù)均小于其他三種算法。經(jīng)過比對,F(xiàn)xasinhhLMS算法的穩(wěn)態(tài)誤差減少了37%~52%、迭代次數(shù)減少了19%~57%。
本文在Simulink中建立懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng),采用FxLMS算法作為自適應(yīng)濾波算法,并基于傳統(tǒng)FxLMS算法提出一種新的主動(dòng)振動(dòng)控制FxasinhLMS算法。該算法在原有的算法基礎(chǔ)上對誤差信號(hào)進(jìn)行了改進(jìn),并利用反雙曲正弦函數(shù)對誤差信號(hào)進(jìn)行非線性變換。分別將FxLMS、Fair、FxatanLMS、FxasinhhLMS算法在懸臂梁振動(dòng)主動(dòng)控制聯(lián)合仿真系統(tǒng)中進(jìn)行仿真。對比仿真結(jié)果可知,與FxLMS、Fair、FxatanLMS相比,F(xiàn)xasinhhLMS算法的系統(tǒng)穩(wěn)態(tài)誤差減小了37%~52%、迭代次數(shù)減少了19%~57%。FxasinhhLMS算法有效地解決了傳統(tǒng)FxLMS算法無法平衡穩(wěn)態(tài)誤差和收斂速度的問題,使系統(tǒng)性能得到了明顯的改善。