司俊超 崔偉
1.北京信息科技大學(xué)傳感器重點(diǎn)實(shí)驗(yàn)室,北京 100101;2.中國航天科工集團(tuán)第二研究院206所,北京100854
隨著經(jīng)濟(jì)的發(fā)展,科學(xué)技術(shù)不斷的進(jìn)步,工程機(jī)械開始從傳統(tǒng)的機(jī)械傳動(dòng)向機(jī)械——液壓系統(tǒng)傳動(dòng)轉(zhuǎn)變,同時(shí)工程機(jī)械在施工時(shí)開始逐漸實(shí)現(xiàn)自動(dòng)化與智能化。在工程機(jī)械施工過程中,其自身姿態(tài)的監(jiān)測對(duì)于其安全性尤為重要。傾角傳感器作為一款測量載體傾斜角的裝置被應(yīng)用在工程機(jī)械自身姿態(tài)的檢測中。
傾角傳感器在工程機(jī)械應(yīng)用領(lǐng)域主要被使用在兩方面:
第一,傾角傳感器所測量的數(shù)據(jù)用于顯示,在工程機(jī)械施工的過程中其數(shù)據(jù)作為調(diào)整自身姿態(tài)的參考;
第二,傾角傳感器所測量的數(shù)據(jù)反饋給控制系統(tǒng),為工程機(jī)械控制系統(tǒng)進(jìn)行自動(dòng)化、智能化控制提供參考數(shù)據(jù)。
針對(duì)現(xiàn)有的集成三軸傾角儀所存在的測量精度較低、安裝可控度不高、安裝角度調(diào)節(jié)不便等因素,我們?cè)O(shè)計(jì)了以STM32為核心的、以三個(gè)SCA830-D07傾角儀為敏感單元的雙軸傾角測量系統(tǒng)。由于不同的使用環(huán)境對(duì)傾角傳感器數(shù)據(jù)的更新效果有不同的要求,為了得到較好的數(shù)據(jù)效果,在STM32運(yùn)算能力承受范圍內(nèi),使用了自適應(yīng)算法與低通濾波相結(jié)合的復(fù)合濾波算法。根據(jù)數(shù)據(jù)的跟隨性和穩(wěn)定性的矛盾,結(jié)合系統(tǒng)本身設(shè)計(jì)了可行的軟件解決方案。
系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示。在傾角的測量過程中,本系統(tǒng)將以單片機(jī)STM32F103RBT6為控制核心,由電源模塊、測量模塊、通信模塊等組成。測量模塊由三個(gè)SCA830-D07組成,工作時(shí)敏感元件分別測量其敏感軸方向上的重力加速度的分量,經(jīng)過A/D轉(zhuǎn)換,通過SPI接口傳輸給控制核心—單片機(jī),單片機(jī)經(jīng)過一系列的數(shù)據(jù)處理、轉(zhuǎn)換,通過通信模塊傳輸給上位機(jī)以實(shí)現(xiàn)顯示,或者為工程機(jī)械的自動(dòng)控制提供姿態(tài)數(shù)據(jù)。
(1)傾角測量模塊
在測量系統(tǒng)中,敏感元件使用的是VTI公司的SCA830-D07傾角儀。SCA830-D07是基于3D-MEMS電容技術(shù),由MEMS加速度傳感元件和SPI數(shù)字接口組成(見圖2(a)),支持標(biāo)準(zhǔn)的四線制SPI接口和脈沖寬度調(diào)制(PWM)輸出,單軸傾角測量(Y方向),測量范圍 +1g~-1g,90°~-90°。在載體的傾斜角度穩(wěn)定在-3°~+3°的范圍波動(dòng)時(shí),其測量靈敏度是0.00179°/count。而且傾角儀輸出的數(shù)據(jù)是16位的數(shù)字量,其分辨率達(dá)到了1/32000。測量時(shí)溫度范圍較大,輸出頻率適中。電路連接圖如圖2(b)所示。
SCA830-D07在測量載體的傾斜角度時(shí),其內(nèi)含加速度計(jì)輸出的是重力加速度在其敏感軸方向上的分量,而我們需要的數(shù)據(jù)是載體的傾斜角度。因此在單片機(jī)得到傾角儀的測量結(jié)果后,需要根據(jù)反正弦公式求出載體的傾斜角度,計(jì)算公式如下:
其中,θ—傳感器載體的傾斜角度;
a—重力加速度在傾角儀敏感軸方向上的分量;
g—重力加速度的值。
本文采用三個(gè)單軸傾角儀組合成一個(gè)空間直角坐標(biāo)系模型進(jìn)行兩個(gè)角度的測量,原理如圖2(c)所示。在SCA830-D07安裝到載體上面時(shí),由于三個(gè)傾角儀的安裝是兩兩正交的,所以傾角傳感器可任意測量三個(gè)坐標(biāo)軸中其中兩個(gè)方向上的傾斜角度,在本傳感器中我們安裝測量的是x軸和y軸方向上的傾斜角度。即在傾角傳感器開始測量傳感器載體x軸方向的傾斜角度時(shí),y軸方向上的傾斜角度不變,那么重力加速度就會(huì)在x軸和z軸方向上都有分量,只需測量出x軸和z軸其中一個(gè)方向上的分量即可。
(2)微控制器模塊
系統(tǒng)的主控單元是STM32F103RBT6,它是意法半導(dǎo)體研發(fā)的STM32 系列中的一款,其72MHz的內(nèi)核運(yùn)行頻率足夠系統(tǒng)數(shù)據(jù)處理的需要,在存儲(chǔ)器的零等待周期訪問時(shí)可達(dá)1.25DMIPS/MHz,而且具有單周期乘法和硬件除法功能[1]。同時(shí),STM32擁有豐富的外設(shè),比如在本系統(tǒng)中需要使用的USART、SPI等。STM32擁有足夠的外部引腳,對(duì)系統(tǒng)中片選的使用有足夠的選擇余地。在STM32的開發(fā)過程中,它擁有廠家提供的庫函數(shù),便于單片機(jī)的開發(fā)使用,有效地減輕了開發(fā)人員的負(fù)擔(dān)。
圖3為STM32F103RBT6電路圖,在設(shè)計(jì)中,我們使用了STM32的USART2、SPI1以及它的一些調(diào)試端口。其中PA2、PA3是USART端口,與MAX3232通信芯片相連接,實(shí)現(xiàn)與上位機(jī)的通信。PA4、PA8、PB1作為三個(gè)傾角儀的片選端口,實(shí)現(xiàn)單片機(jī)與傾角儀的片選通信。端口PA5、PA6、PA7作為單片機(jī)與傾角儀的SPI通信端口,實(shí)現(xiàn)單片機(jī)對(duì)傾角儀測量數(shù)據(jù)的獲取。在單片機(jī)與傾角儀、通信芯片連接后,單片機(jī)從傾角儀中獲得數(shù)據(jù),進(jìn)行濾波、反正弦變換后經(jīng)過通信芯片發(fā)送給上位機(jī)。
(3)通訊模塊
在本傳感器設(shè)計(jì)時(shí),考慮到與上位機(jī)的通信要求,我們使用的通信芯片是MAX3232。MAX3232通信芯片收發(fā)器具有專有的低壓差發(fā)送器輸出級(jí),可通過雙電荷泵實(shí)現(xiàn)3.0V至5.5V電源的真正RS-232性能。MAX3232芯片在最差的工作條件下, 保證以120kbps的速率運(yùn)行的同時(shí),還可以保持RS-232輸出電平,一般情況下,MAX3232工作在235kbps的數(shù)據(jù)速率[2]。在傳感器的供電電源設(shè)計(jì)中全部使用3.3V電源供電,而根據(jù)MAX3232的性能安全能夠滿足傳感器與上位機(jī)通信的需求。MAX3232通訊模塊如圖4所示。
(4)電源模塊
在本測量系統(tǒng)中,微控制器STM32F103RBT6、通信模塊MAX3232和測量模塊SCA830-D07使用的都是3.3V電壓,但是由于微控制需要較大的電流,而敏感元件需要較為精確的電壓值,同時(shí)要求測量模塊的輸入電壓統(tǒng)一,因此我們分別使用了AMS1117給微控制器、通信模塊供電,使用REF196給敏感元件供電。本系統(tǒng)使用外部的5V電源,經(jīng)過電源模塊保護(hù)電路進(jìn)入AMS1117和REF19X,其電路原理圖如圖5所示。
在傳感器上電后,傳感器中各模塊開始工作。單片機(jī)部分主要是端口、SPI、USART等進(jìn)行初始化,同時(shí)傾角儀上電后開始測量載體的傾斜角度。單片機(jī)初始化完成后,當(dāng)傾角儀采樣定時(shí)器中斷時(shí),單片機(jī)開始從傾角儀中獲取測量數(shù)據(jù),而后進(jìn)行濾波、反正弦運(yùn)算,得到的載體傾斜角度在數(shù)據(jù)發(fā)送定時(shí)器中斷后發(fā)送給上位機(jī)。系統(tǒng)的軟件流程圖如圖6所示。
工程機(jī)械在工作過程中,需要發(fā)動(dòng)機(jī)和電機(jī)提供動(dòng)力,在發(fā)動(dòng)機(jī)或者電機(jī)運(yùn)行過程中不可避免會(huì)產(chǎn)生震動(dòng),傾角傳感器在工程機(jī)械上測量載體傾角時(shí)就會(huì)受到干擾,所輸出的數(shù)據(jù)就會(huì)產(chǎn)生波動(dòng),而數(shù)據(jù)的劇烈波動(dòng)會(huì)對(duì)控制系統(tǒng)或顯示產(chǎn)生干擾,因而無法準(zhǔn)確地判斷工程機(jī)械自身的姿態(tài)。另外,在本系統(tǒng)測量單元中使用的傳感器是MEMS傾角儀,其自身在測量載體角度時(shí)所輸出的信號(hào)就摻雜著噪聲。
由圖2所示,SCA830-D07主要測量的是重力加速度在傾角儀敏感軸方向上的加速度分量,而后經(jīng)過初步濾波再進(jìn)行A/D轉(zhuǎn)換,最后輸出加速度數(shù)據(jù)。雖說SCA830-D07內(nèi)部經(jīng)過濾波,但是其濾波只能濾除較小范圍噪聲,而在經(jīng)A/D轉(zhuǎn)換過程中或轉(zhuǎn)換后數(shù)字量的干擾沒有濾除。
為了得到較為精確的數(shù)據(jù),我們就需要對(duì)傾角傳感器所輸出的數(shù)據(jù)進(jìn)行處理——濾波處理。本系統(tǒng)中主要采用的是巴特沃斯低通濾波器[3]。
巴特沃斯低通濾波器可用如下振幅的平方對(duì)頻率的公式表示:
其中,n—巴特沃斯低通濾波器的階數(shù);
ωc—巴特沃斯低通濾波器的截止頻率(振幅下降為-3dB時(shí)的頻率)。
●不論n的取值,當(dāng)ω=ωc時(shí)有,所以ωc是巴特沃斯低通濾波器的截止頻率。
●它的最大平坦性:當(dāng)ω=0時(shí),可以證明其前2n-1階導(dǎo)數(shù)都為0,這就表示巴特沃斯低通濾波器在ω=0的附近一段范圍內(nèi)是比較平直的,以它的原點(diǎn)最大平坦性來逼近理想的低通濾波器[4]。
●巴特沃斯低通濾波器具備良好的相頻特性。
●由式(1)可得,不論n的值為幾,其幅頻特性曲線都會(huì)在-3dB處相交,而且隨著n的增大,頻帶的邊沿下降的越陡峭,也就越接近理想的特性。
●巴特沃斯低通濾波器衰減率有如下特性:巴特沃斯低通慮波器階數(shù)是2階時(shí)衰減率為12dB/倍頻,3階時(shí)巴特沃斯低通濾波器的衰減率為18dB/倍頻,以此類推。
(1)濾波器階數(shù)確定
首先,我們將傾角儀SCA830-D07所輸出的數(shù)據(jù)進(jìn)行巴特沃斯低通濾波處理,階數(shù)分別選擇n=2,4,6,其處理結(jié)果如圖7所示。
根據(jù)系統(tǒng)的要求,通過數(shù)據(jù)經(jīng)濾波器濾波后的波動(dòng)大小以及濾波效果來看,本系統(tǒng)選擇巴特沃斯低通濾波器的階數(shù)為2階。
(2)濾波器截止頻率確定
由于機(jī)械種類和施工環(huán)境的不同,傾角傳感器在測量傾斜角度時(shí)所受到干擾以及反應(yīng)速度的要求也不盡相同。因此對(duì)比了2階低通濾波器在截止頻率分別為1Hz和5Hz時(shí)的濾波效果。如圖8所示。
由圖8的濾波效果比較可得出:在低通濾波器的階數(shù)確定后,可以根據(jù)傾角傳感器工作狀態(tài)的不同,選擇不同的截止頻率。在穩(wěn)定狀態(tài)下,為了得到較好的濾波效果,選擇的截止頻率為1Hz,但在角度變化過程中,存在低截止頻率跟隨性不好,而高截止頻率的濾波效果不好的矛盾。為解決這一問題,在系統(tǒng)中引入自適應(yīng)算法,使得低通濾波器在傾角傳感器的不同測量狀態(tài)使用不同的截止頻率。
自適應(yīng)就是在處理和分析數(shù)據(jù)的過程中,根據(jù)所處理數(shù)據(jù)的數(shù)據(jù)特征自行調(diào)整對(duì)數(shù)據(jù)的處理方法、處理順序、處理參數(shù)或約束條件,使得所處理的數(shù)據(jù)達(dá)到我們所需要的處理效果。自適應(yīng)過程是一個(gè)不斷逼近、不斷調(diào)整參數(shù)的過程。
在該系統(tǒng)的濾波過程中,自適應(yīng)算法主要判斷傳感器載體的狀態(tài)。根據(jù)傳感器載體狀態(tài)的不同,調(diào)節(jié)巴特沃斯低通濾波器的濾波參數(shù),如圖9所示。在本系統(tǒng)中將取的數(shù)據(jù)數(shù)量定為8個(gè)。
數(shù)據(jù)經(jīng)過低通濾波器濾波后輸出,經(jīng)過反正弦運(yùn)算,求出傳感器載體的傾斜角度。
在濾波模塊中,二階低通巴特沃斯數(shù)字濾波是利用重復(fù)計(jì)算差分方程,得出遞推公式來實(shí)現(xiàn)線性時(shí)不變離散系統(tǒng)的,根據(jù)線性時(shí)不變系統(tǒng)的直接I型和直接II型或規(guī)范型結(jié)構(gòu),系統(tǒng)的輸入與輸出滿足[5]:
圖10是數(shù)據(jù)濾波的流程圖。在數(shù)據(jù)開始濾波后,根據(jù)先求得傳感器載體狀態(tài)的要求,首先滑動(dòng)取值8個(gè)并求取平均值,再將新得到的數(shù)據(jù)與進(jìn)行比較。如果連續(xù)5個(gè)新值皆>或皆<,則判定傳感器載體狀態(tài)是不穩(wěn)定的,表明夾角逐漸增大或減小,取fc=5Hz;與此相反,如果新值在均值上下無規(guī)則浮動(dòng)(連續(xù)大于或小于的次數(shù)<5),表明傳感器載體是穩(wěn)定的,取fc=1Hz。
要說明的是,在判斷傳感器載體過程中,由于環(huán)境的干擾頻率是20Hz~50Hz,傾角儀中ADC的采樣頻率是125Hz。為了減小干擾數(shù)據(jù)對(duì)求取均值的影響,求均值時(shí)所取數(shù)據(jù)的量應(yīng)該大于6,
其中,a(1)、a(2)和b(0)、b(1) —與濾波器的截止頻率相關(guān)的參數(shù)。
在設(shè)計(jì)傳感器濾波算法過程中,我們將不同的濾波方法進(jìn)行了對(duì)比,試驗(yàn)是在實(shí)驗(yàn)室中模擬實(shí)際工作環(huán)境下測試的,在實(shí)際環(huán)境下主要干擾為20Hz~50Hz,程序的采樣頻率是125Hz。采樣數(shù)據(jù)、巴特沃斯低通濾波器截止頻率為1Hz濾波輸出、巴特沃斯低通濾波器截止頻率為5Hz濾波輸出、自適應(yīng)巴特沃斯低通濾波器濾波輸出的誤差對(duì)比結(jié)果如圖11所示。
由圖11可知,自適應(yīng)濾波算法與fc=5Hz的巴特沃斯低通濾波器相比,在運(yùn)動(dòng)狀態(tài)的跟隨性、濾波效果方面一致,而在靜態(tài)情況下具有較大優(yōu)勢。而自適應(yīng)濾波算法與fc=1Hz的巴特沃斯低通濾波器相比,靜態(tài)情況下的濾波效果一致,在動(dòng)態(tài)情況下的跟隨性優(yōu)于后者,由此可見自適應(yīng)濾波在濾波的效果方面有較大優(yōu)勢。
本文設(shè)計(jì)了一種基于STM32的雙軸傾角傳感器,針對(duì)現(xiàn)有的集成三軸傾角儀所存在的測量精度較低、安裝可控度不高、安裝角度調(diào)節(jié)不便等因素,提出了使用三個(gè)單軸傾角儀組合成一個(gè)空間直角坐標(biāo)系模型進(jìn)行兩個(gè)角度的測量。文章首先介紹了傾角傳感器的整體硬件結(jié)構(gòu)設(shè)計(jì)和軟件設(shè)計(jì)流程,然后根據(jù)系統(tǒng)所選的MCU性能和傳感器對(duì)提供數(shù)據(jù)效果的要求,提出了低通濾波與自適應(yīng)算法相結(jié)合的濾波算法,最后通過實(shí)驗(yàn)以及實(shí)驗(yàn)數(shù)據(jù)對(duì)所設(shè)計(jì)的測量系統(tǒng)進(jìn)行了分析和驗(yàn)證。結(jié)果表明,在STM32運(yùn)算能力范圍內(nèi),自適應(yīng)算法與低通濾波器結(jié)合的復(fù)合濾波相較于單純的低通濾波器有很大提高,驗(yàn)證了該復(fù)合濾波算法的優(yōu)越性以及系統(tǒng)的可用性。