賀巖松,蔣 昊,張志飛,周 桃
(1.重慶大學機械與運載工程學院,重慶 400030;2.重慶市埃庫特科技有限責任公司,重慶 400000)
主動噪聲控制(active noise control,ANC)通過產生一個與目標噪聲幅值相同、相位相反的聲音,來達到降噪的效果。諸多研究已經表明ANC 對車內低頻噪聲有良好的消減效果,但僅僅降低噪聲水平,特別是發(fā)動機噪聲,往往并不能滿足駕駛員的聽覺感受,因此需要通過主動噪聲均衡(active noise equalization,ANE)的方法來調整發(fā)動機噪聲,以滿足駕駛員對于發(fā)動機聲音的期望。
Kuo 等在陷波FxLMS 系統(tǒng)的基礎上引入增益因子來調節(jié)噪聲中窄帶分量的幅值,提出了ANE 系統(tǒng),并在ANE系統(tǒng)中加入二級自適應濾波器構成濾波誤差最小均方根(filtered-error least mean square,FELMS)系統(tǒng),用以消除噪聲中與參考信號無關的隨機成分,實現主動聲品質控制(active sound quality control,ASQC)。Wang 等將FELMS 算法與EMD 分解和頻域塊方法相結合,提出了HVA-EMDFELMS算法,在仿真中驗證了該方法能對非穩(wěn)態(tài)噪聲的響度進行有效控制。為使ANE系統(tǒng)能有更快的收斂速度以適應發(fā)動機加速噪聲的控制,de Oliveira等提出在ANE 系統(tǒng)上加入歸一化濾波的NEX-LMS 系統(tǒng),該系統(tǒng)能在緩慢加速時取得良好的控制效果。ANE系統(tǒng)雖然能實現噪聲的消除、增強和衰減,但在增強模式下卻對次級通路模型的準確性非常敏感,因此,Rees 和Elliott 提出Command-FxLMS 系統(tǒng),它能實現與ANE 系統(tǒng)相同的功能且有更好的系統(tǒng)穩(wěn)定性,并在該算法的基礎上提出能發(fā)出更小次級聲的PSC-FxLMS(phase scheduled command FxLMS)算法。由于PSC-FxLMS 算法需要對初級噪聲的估計值進行傅里葉變換來提取相位,因此,次級通路的估計誤差對其控制效果的影響較大,Patel 等提出MPSC-FxLMS(modified PSC-FxLMS)算法,在相位提取部分加入一種具有閾值參數的自適應滯后開關機制,使PSC-FxLMS系統(tǒng)獲得了更好的穩(wěn)定性。
在進行發(fā)動機噪聲主動控制時,除了要求目標位置處的噪聲達到預期的水平以外,還應該確保揚聲器發(fā)出的次級聲對其它位置沒有過多的干擾,快速準確地提取初級噪聲信號的相位是PSC-FxLMS算法能比Command-FxLMS 算法發(fā)出更小次級聲的前提,但當前的相位提取方法并不能滿足此要求,因此,本文針對PSC-FxLMS算法對次級通路估計偏差敏感的問題,提出改進的PSC-FxLMS 算法,并進一步提出FPSC-FxLMS(filter PSC-FxLMS)算法以解決改進PSC-FxLMS 算法中存在的傅里葉變換無法快速提取各頻率相位的問題,通過Simulink仿真和某SUV 內基于DSP 控制系統(tǒng)的實車試驗,驗證了FPSC-FxLMS 算法能夠在與Command-FxLMS算法達到相同控制效果的前提下,發(fā)出更小的次級聲。
發(fā)動機噪聲具有周期性,并包含有許多諧波分量,從頻譜上看屬于離散的窄帶噪聲,因此可以用自適應陷波算法進行消除。發(fā)動機各階次噪聲的頻率f為
式中:為發(fā)動機噪聲的階次;為發(fā)動機轉速。
自適應陷波算法利用聲音在傳播過程中的幅值和相位會改變、但頻率不會改變的原理,提取發(fā)動機轉速生成頻率為f的參考信號x(),再經過自適應濾波以后生成頻率為f的次級聲y(),由此實現對發(fā)動機第階噪聲的消除。其原理框圖如圖1所示。
圖1 自適應陷波濾波原理框圖
在對發(fā)動機噪聲進行控制時,往往希望某些階次得到增強,另一些階次被衰減,以得到符合聲品質控制目標的發(fā)動機噪聲。Command-FxLMS 算法就可以使發(fā)動機噪聲控制系統(tǒng)在收斂時,誤差信號()中頻率為f的分量達到某一特定值c(),而不是衰減為0。其原理框圖如圖2所示。
圖2 Command-FxLMS原理框圖
圖中:c()為Command 信號;為增益系數;()為偽誤差信號;()為實際誤差信號。c()由參考信號生成:
偽誤差信號()由誤差信號()減去c()得到:
當系統(tǒng)收斂時,偽誤差信號()中頻率為f的分量等于0,()中頻率為f的分量等于c(),此時:
由于()由系統(tǒng)的外部條件決定,因此c()-()就決定了次級聲y()的大小。令c()的初相位為?,()中頻率為f的分量初相位為?,根據正弦信號的疊加原理,在增益相同的情況下,次級聲大小與?-?的關系如圖3 所示??梢姡绻傻腃ommand 信號c()與()中頻率為f的分量相位相同,即?= ?,則y()的幅值最小,次級聲源發(fā)出的聲音最??;如果兩者相位相差π,則y()的幅值最大,次級聲源發(fā)出的聲音最大。
圖3 次級聲大小與相位差關系示意圖
圖4 PSC-FxLMS原理框圖
式中:f為第階次的頻率;為采樣頻率。
初級噪聲()中所包含的頻率為f的噪聲分量d()主要由發(fā)動機產生:
式中:為幅值;為采樣頻率;?為()中頻率為f的分量的初相位。
圖5 改進的PSC-FxLMS算法原理圖
為證明所提改進方法的有效性,將其與PSCFxLMS算法作仿真對比,對一發(fā)動機轉速為3 000 r/min時的2 階噪聲進行控制,采樣頻率為2 000 Hz,將誤差傳聲器處接收到的2 階噪聲幅值控制在0.002 V,在運行PSC-FxLMS 算法時,每200 個點,即0.1 s,提取一次相位。仿真結果如圖6 所示。從圖中可以看出,兩種系統(tǒng)的控制效果基本沒有差別,但改進的PSC-FxLMS 算法卻只須提取一次相位信息,降低了算法的復雜度,且相位信息提取的準確性不會受到次級通路估計準確性的影響。
圖6 兩種系統(tǒng)的控制效果對比
改進的PSC-FxLMS 算法雖然能消除次級通路估計誤差所帶來的影響,且通過減少相位提取的次數降低了計算復雜度,但基于傅里葉變換的相位提取方法存在采樣時間與頻率分辨率無法兼顧的問題,想要提高頻率分辨率,就必須加長采樣時間,采樣時間與頻率分辨率的關系為
以四缸發(fā)動機轉速在1 575 r/min 時系統(tǒng)對2 階發(fā)動機噪聲進行控制為例,由式(1)可得發(fā)動機2 階噪聲的頻率為52.5 Hz,此時要想利用傅里葉變換的方法提取出該階噪聲的初相位,頻率分辨率至少應為0.1 Hz,因此采樣時間應至少為10 s,無論是PSC-FxLMS 系統(tǒng)還是改進的PSC-FxLMS 系統(tǒng),都在系統(tǒng)開啟至少10 s 后才能得到c(),顯然這不符合實時應用的要求。
因此,需要一種方法能夠在各轉速下,快速準確地得到特定階次噪聲的相位,以使Command 信號c()與頻率為f的階次噪聲保持相位相同,本文中提出FPSC-FxLM 算法來滿足上述要求,FPSCFxLMS 算法的噪聲控制方法與改進的PSC-FxLMS算法相同,但它是利用FIR 濾波器和反三角函數來提取相位?,其相位提取原理如圖7所示,由此就可以直接得到第時刻噪聲分量的相位?()并用以生成Command信號c()。
圖7 FPSC-FxLMS算法相位提取原理圖
FPSC-FxLM 算法的控制效果很大程度上取決于所選用的FIR 濾波器,因此,在設計FIR 帶通濾波器時,應該保證所設計的濾波器能夠將各個階次噪聲單獨分離出來,發(fā)動機轉速越低,發(fā)動機各階次、半階次噪聲之間的頻率越相近,所以FIR 濾波器應該具有較窄的帶通范圍,但當帶通范圍變窄時,想要在截止頻率處達到相同的衰減率,就必須使長度增加,導致計算量和相位延遲增大。例如,想要控制發(fā)動機在1 000 r/min以上的階次噪聲時,FIR濾波器的通帶寬度至多為8 Hz,設計一個階通帶為29-37 Hz的帶通FIR 濾波器就可以用來提取發(fā)動機轉速為1 000 r/min時的2階噪聲,得到的濾波器幅頻響應曲線如圖8所示。
圖8 FIR帶通濾波器的幅頻響應
除了關注FIR 濾波器的濾波范圍以外,對初級噪聲進行FIR 濾波也會導致相位延遲,但FIR 濾波相位延遲呈線性特性,如圖9 所示,因此,可以通過根據階次頻率和所選用的FIR 濾波器階數的不同來對FIR濾波器造成的相位延遲進行補償。
圖9 FIR帶通濾波器的相頻響應
為驗證所提算法的有效性,分別搭建多通道FPSC-FxLMS 系統(tǒng)和Command-FxLMS 系統(tǒng)的Simulink 仿真模型,其中包括4 個揚聲器和4 個傳聲器,模型中次級通路的估計值由附加隨機噪聲法得到。為使仿真更切合實際,采集某SUV 內揚聲器到頭枕位置處傳聲器之間的傳遞函數作為次級通路。主動噪聲控制關心的是低頻段的噪聲,但由于揚聲器的低頻響應有限,因此依次讓4 個揚聲器發(fā)出50-500 Hz 的掃頻信號,由誤差傳聲器接收,由此得到4 × 4 個128 位的FIR 濾波器來模擬次級通路,如圖10 所示。需要說明的是,為消除硬件設備所引入的干擾,該次級通路為電通路,即驅動揚聲器發(fā)聲的電信號到誤差傳聲器接收到的電信號之間的通路。
圖10 仿真所用次級通路估計
仿真中以某SUV 空擋工況下轉速為3 000 r/min時,位于左前(FL)、右前(FR)、左后(RL)、右后(RR)4 個座椅頭枕處傳聲器測得的噪聲信號為初級噪聲信號,由轉速計測得的轉速信號用以生成參考信號,在多通道Command-FxLMS 系統(tǒng)和多通道PSCFxLMS 系統(tǒng)中,對2 階發(fā)動機噪聲進行消除、3 階發(fā)動機噪聲進行增強,4 個位置處的2 階和3 階噪聲所設定的幅值如表1 所示。在系統(tǒng)收斂后,對仿真得到的誤差傳聲器處的噪聲信號和驅動揚聲器的電壓信號進行頻譜分析,并將驅動電壓信號的幅值進行對比,如圖11、圖12和表2所示。
表1 各位置的噪聲控制目標幅值 V
結合圖11、圖12 和表2 可以看出,兩個系統(tǒng)都能夠將誤差噪聲控制在給定水平,但多通道PSCFxLMS 系統(tǒng)發(fā)出的次級聲更小,說明該系統(tǒng)能夠在保證達到與多通道Command-FxLMS 系統(tǒng)相同控制效果的前提下,發(fā)出更小的次級聲,可減小對其它未進行噪聲控制區(qū)域的干擾。
圖11 4個位置處的誤差信號頻譜
表2 各位置驅動揚聲器的電壓信號
圖12 4個位置處的次級聲信號頻譜
為進一步驗證FPSC-FxLMS 算法在車輛運行過程中的控制效果,在另一輛配備四缸四沖程發(fā)動機的SUV 上進行試驗,所需設備在表3 中列出。試驗車如圖13(a)所示,數字傳聲器位于座椅頭枕下方,如圖13(b)所示,頭枕揚聲器通過夾具固定在座椅頭枕兩側,如圖13(c)所示,DSP 與MCU、AD2428、數字功放都集成于一塊PCB 電路板上,如圖13(d)所示。
表3 設備說明
圖13 試驗所用部分設備
多通道FPSC-FxLMS 系統(tǒng)的原理框圖如圖14所示,MCU 解析CAN 信號并從中提取轉速信號,上發(fā)給DSP 用以生成參考信號和選擇帶通濾波器,A2B 傳聲器接收到誤差信號后,通過由主收發(fā)器AD2428和從收發(fā)器AD2426構成的A2B鏈路將誤差信號上傳至DSP,DSP 將傳聲器信號放入一個存儲器中,當存儲器達到一定長度以后,運行FPSCFxLMS 算法并生成次級聲信號,該信號再經過數模轉換和功放輸出到揚聲器,驅動揚聲器發(fā)聲。多通道Command-FxLMS 系統(tǒng)的原理框圖與圖14 相同,只是寫入DSP的算法有所區(qū)別。
圖14 硬件原理框圖
為排除其它因素的干擾和保證多次試驗的一致性,本次試驗在周圍環(huán)境安靜的條件下進行,且該SUV處于原地穩(wěn)速工況。在確認周圍環(huán)境達到試驗要求后,使發(fā)動機處于怠速800 r/min 工況和空擋1 900 r/min 工況,分別對駕駛員和駕駛員后排乘員的左右耳處這4 個位置的發(fā)動機4 階和2 階噪聲進行控制,每個位置放置兩個揚聲器和傳聲器,分別位于頭枕的兩側,如圖13(b)和圖13(c)所示,依次將這4 個位置命名為左前(FL)、右前(FR)、左后(RL)、右后(RR)。在發(fā)動機轉速穩(wěn)定后,保存多通道FPSC-FxLMS 系統(tǒng)和多通道Command-FxLMS 系統(tǒng)的誤差傳聲器所收集到的數據和驅動揚聲器發(fā)聲的電壓信號,驗證當發(fā)動機處于不同轉速時,FPSCFxLMS算法與Command-FxLMS 算法相比,能否在控制車內發(fā)動機階次噪聲達到相同水平的前提下,發(fā)出更小的次級聲。
為了更明顯地看出兩種系統(tǒng)的噪聲信號特點并驗證初級噪聲的前后一致性,采集兩次降噪系統(tǒng)關閉時發(fā)動機在怠速800 r/min和空擋1 900 r/min下的噪聲信號,進行傅里葉變換并得到其頻譜,如圖15和圖16 所示。根據式(1)可得到怠速工況下的4 階噪聲頻率為53.33 Hz,空擋1 900 r/min 工況下的2階噪聲頻率為63.33 Hz,從圖中可以看出,當發(fā)動機轉速穩(wěn)定時,初級噪聲的前后一致性較好,并參考圖中兩轉速下的初級噪聲幅值,在Command-FxLMS系統(tǒng)和FPSC-FxLMS 系統(tǒng)中,將4 個傳聲器處接收到的發(fā)動機噪聲目標幅值設置為表4中的值。
表4 各位置階次噪聲控制目標幅值
圖15 800 r/min噪聲頻譜
圖16 1 900 r/min噪聲頻譜
在轉速達到穩(wěn)定以后,分別開啟多通道Command-FxLMS 系統(tǒng)和多通道FPSC-FxLMS 系統(tǒng)。在系統(tǒng)開啟后,DSP 自動同時儲存5 s 的誤差傳聲器電壓信號和5 s 的驅動揚聲器發(fā)出次級聲的電壓信號,在測試結束后,經由串口上發(fā)至PC 端。經計算得到在800 和1 900 r/min 轉速下,兩種系統(tǒng)分別開啟時,誤差傳聲器處的噪聲信號和驅動揚聲器電壓信號的頻譜,如圖17~圖20 所示。兩系統(tǒng)得到的誤差噪聲信號幅值和電壓信號幅值的對比如表5 和表6 所示。結合圖17~圖20 及表5 和表6 可以看出,無論發(fā)動機轉速是在800 還是1 900 r/min,多通道Command-FxLMS 系統(tǒng)和多通道FPSC-FxLMS 系統(tǒng)都可以將發(fā)動機階次噪聲控制到給定幅值,但顯然多通道FPSC-FxLMS系統(tǒng)驅動揚聲器的電壓信號更小,即發(fā)出的次級聲更小。通過實車驗證,說明所提出的多通道FPSC-FxLMS 系統(tǒng)能夠在保證控制車內發(fā)動機噪聲達到目標幅值的基礎上,發(fā)出更小的次級聲,減小對其他位置聽音感受的干擾。
圖17 800 r/min誤差信號頻譜
圖18 800 r/min驅動揚聲器電壓信號頻譜
圖19 1 900 r/min誤差信號頻譜
圖20 1 900 r/min驅動揚聲器電壓信號頻譜
表5 控制后的階次噪聲幅值
表6 驅動揚聲器電壓信號幅值
(1)在PSC-FxLMS 算法的基礎上提出了FPSCFxLMS 算法,通過將系統(tǒng)的相位提取和噪聲控制模塊進行分離,避免系統(tǒng)多次提取相位和次級通路估計不準確所帶來的影響,利用FIR 濾波器和反三角函數提取初級噪聲的相位信息,解決了FFT 提取相位所需時間過長的問題。
(2)基于某SUV 4 個座椅頭枕位置處測得的噪聲信號,建立多通道FPSC-FxLMS 系統(tǒng)和Command-FxLMS系統(tǒng)仿真模型。仿真結果顯示,與Command-FxLMS算法相比,所提算法控制2和3階噪聲的次級聲幅值降低34.3%以上。
(3)在另一輛SUV 上進行基于DSP 控制器的多通道FPSC-FxLMS 系統(tǒng)和Command-FxLMS 系統(tǒng)的實車對比試驗。分別對800 r/min 怠速工況下的4 階噪聲和空擋1 900 r/min 轉速的2 階噪聲進行控制,與Command-FxLMS 算法相比,所提算法在4 個位置上發(fā)出的次級聲幅值降低25%以上。表明所提算法有效可行,能夠在不同轉速保持同樣的控制效果情況下發(fā)出比Command-FxLMS算法更小的次級聲。