劉戰(zhàn)峰
(太原科技大學(xué) 太原 030024)
目前,調(diào)平系統(tǒng)被應(yīng)用在多個(gè)領(lǐng)域,在軍工領(lǐng)域,導(dǎo)彈發(fā)射車的調(diào)平系統(tǒng)[1];在建筑領(lǐng)域,需要測(cè)量空間的立體尺寸[2];在光學(xué)領(lǐng)域調(diào)平系統(tǒng)可以利用光的直線傳播原理進(jìn)行方向引導(dǎo)[3];調(diào)平系統(tǒng)還可以為實(shí)驗(yàn)室創(chuàng)造實(shí)驗(yàn)環(huán)境,調(diào)平系統(tǒng)被廣泛運(yùn)用到多個(gè)領(lǐng)域,在測(cè)量行業(yè)也有設(shè)計(jì),測(cè)量系統(tǒng),以及各種工程領(lǐng)域的調(diào)平,比如水平測(cè)距,汽車前照燈,激光發(fā)射儀[4]等。
常用的自動(dòng)調(diào)平技術(shù)采用數(shù)字化的機(jī)械電子技術(shù),實(shí)現(xiàn)了系統(tǒng)的自動(dòng)化。目前大部分的設(shè)計(jì)主要集中在大型和中型設(shè)備上,對(duì)于方便我們實(shí)驗(yàn)研究的小型設(shè)備還不完善。比如在測(cè)量領(lǐng)域,學(xué)生實(shí)驗(yàn)室領(lǐng)域等。對(duì)于某些領(lǐng)域,由于系統(tǒng)承受的負(fù)載比較小,如果采用液壓技術(shù)[5]會(huì)大材小用,再加上需要實(shí)現(xiàn)調(diào)節(jié)快,精度高的特點(diǎn),所以采用電子式[6]。本系統(tǒng)采用高自動(dòng)化的機(jī)械電子設(shè)計(jì)方案,采用機(jī)械調(diào)節(jié)理念,應(yīng)用STM32微處理器和三軸陀螺儀相結(jié)合技術(shù),通過伺服舵機(jī)旋轉(zhuǎn)調(diào)節(jié)平面水平,是一種全新的調(diào)平系統(tǒng)。通過實(shí)驗(yàn)計(jì)算得出,系統(tǒng)不僅能達(dá)到高精度,少時(shí)間,而且生產(chǎn)成本也不高。
調(diào)平系統(tǒng)基于STM32單片機(jī)設(shè)計(jì),此款單片機(jī)集多個(gè)優(yōu)良性能于一體,有多個(gè)串口功能,而且功耗比較低,內(nèi)置嵌入式開發(fā)系統(tǒng)[7]。LSM303DLH三軸陀螺儀[8]用于測(cè)量重力加速度,PID算法[9~11]控制舵機(jī)旋轉(zhuǎn)角度,舵機(jī)采用PWM波控制[12~14],數(shù)據(jù)采集需要進(jìn)行數(shù)字平滑濾波消除誤差,陀螺儀與單片機(jī)利用I2C協(xié)議[15~16]傳輸數(shù)據(jù)。
調(diào)平系統(tǒng)的設(shè)計(jì)結(jié)合了機(jī)械電子技術(shù),在機(jī)械上實(shí)現(xiàn)了兩個(gè)自由度的可控調(diào)節(jié),在電子上實(shí)現(xiàn)了數(shù)電與模電相結(jié)合的優(yōu)勢(shì),還利用了可以控制角度的伺服舵機(jī)作為調(diào)節(jié)載體,陀螺儀與單片機(jī)進(jìn)行數(shù)字的采集和控制,再加上PID算法的快速響應(yīng),在速度和精度上為系統(tǒng)功能的實(shí)現(xiàn)提供了保障。
圖1 調(diào)平系統(tǒng)構(gòu)成
電源管理為整個(gè)系統(tǒng)提供電力支援,兩個(gè)伺服舵機(jī)控制兩個(gè)自由度的旋轉(zhuǎn)體,最小角度包含于1024個(gè)數(shù)字位置平分108°,伺服舵機(jī)最小調(diào)節(jié)角度達(dá)到0.176°。系統(tǒng)在STM32微控制系統(tǒng),伺服舵機(jī)旋轉(zhuǎn)系統(tǒng),陀螺儀反饋系統(tǒng)的控制下進(jìn)行調(diào)平。
調(diào)平系統(tǒng)由兩個(gè)伺服舵機(jī),三個(gè)金屬框架,和陀螺儀等元件組成。系統(tǒng)所用到的機(jī)械結(jié)構(gòu)是由兩個(gè)舵機(jī)作為旋轉(zhuǎn)主動(dòng)力,底端伺服舵機(jī)用金屬框架和底板鏈接,底端伺服舵機(jī)利用圓盤與上端伺服舵機(jī)鏈接,實(shí)現(xiàn)了旋轉(zhuǎn)體的兩個(gè)自由度屬性。上端伺服舵機(jī)通過圓盤與直角金屬固定,直角固定架上面安裝陀螺儀芯片。
旋轉(zhuǎn)體工作原理:調(diào)平系統(tǒng)的底座固定伺服舵機(jī)A,首先伺服舵機(jī)A進(jìn)行旋轉(zhuǎn),由于系統(tǒng)上部分整體連結(jié)在與伺服舵機(jī)A固定的圓盤上,所以伺服舵機(jī)A的旋轉(zhuǎn)會(huì)導(dǎo)致系統(tǒng)上部分即伺服舵機(jī)B和陀螺儀以及支架的整體的旋轉(zhuǎn)。然后伺服舵機(jī)B進(jìn)行旋轉(zhuǎn),伺服舵機(jī)的旋轉(zhuǎn)會(huì)帶動(dòng)直角固定架以及陀螺儀的移動(dòng),這樣就實(shí)現(xiàn)了陀螺儀平面兩個(gè)自由度的旋轉(zhuǎn)。在空間里兩個(gè)自由度能實(shí)現(xiàn)空間任何位置的旋轉(zhuǎn)。
圖2 旋轉(zhuǎn)體
電源管理包含TLE8366-EV5,AMS-1117-3.3,利用開關(guān)電源設(shè)計(jì)方案可將直流7V到45V降壓到5V,由于單片機(jī)供電電壓為3.3V所以利用線性穩(wěn)壓原理,調(diào)節(jié)得到3.3V電壓,同時(shí)也為陀螺儀等供電。
考慮到單片機(jī)I/O口的輸出電壓只有3.3V,并且I/O口能提供的電流也有很大的限制,為了保護(hù)單片機(jī)的I/O口,并且可以在驅(qū)動(dòng)伺服舵機(jī)時(shí)能有一個(gè)較大的電流寬域,設(shè)計(jì)了一種經(jīng)過比較器的上拉電路,使電壓變?yōu)?V,同時(shí)提供可觀的電流。此波形是通過利用單片機(jī)的定時(shí)功能,設(shè)定20ms的周期,改變高低電平的時(shí)間調(diào)節(jié)占空比,產(chǎn)生周期為20ms的方波,峰值為3.3V,通過比較器電路把峰值抬高到需要的5V。
圖3 電源管理
程序數(shù)據(jù)反映在一個(gè)閉環(huán)的調(diào)節(jié)上,數(shù)據(jù)的處理在反復(fù)的進(jìn)行,對(duì)調(diào)平的準(zhǔn)確度起到了不可磨滅的作用。采集到的數(shù)據(jù)和理想位置進(jìn)行對(duì)比,根據(jù)相應(yīng)情況進(jìn)行PID控制算法的計(jì)算,通過STM32產(chǎn)生PWM波,調(diào)節(jié)陀螺儀平面,于此同時(shí)還需要傳感器的反饋,最后調(diào)節(jié)完成一個(gè)周期,如圖4所示。
圖4 數(shù)據(jù)流程圖
本系統(tǒng)包含的軟件程序有輸出兩路PWM波的I/O口控制程序、I2C總線程序、各模塊的初始化程序。各軟件程序功能如下:
1)I/O口控制程序:方波占空比可變,周期為20ms。
2)I2C總線程序:實(shí)現(xiàn)陀螺儀傳感器和STM32數(shù)據(jù)傳輸?shù)墓δ堋?/p>
3)各模塊的初始化程序:上電復(fù)位初始化硬件,做好準(zhǔn)備工作。
圖5 程序流程圖
上電復(fù)位,進(jìn)入主函數(shù),初始化設(shè)備之后進(jìn)入工作狀態(tài),首先測(cè)量重力加速度,判斷加速度情況后,計(jì)算調(diào)節(jié)值。進(jìn)入PID閉環(huán)循環(huán)調(diào)節(jié),直到在誤差循序的范圍之內(nèi)進(jìn)入下一步調(diào)節(jié)(以上方法類似),結(jié)束。
為了能明確地解釋程序設(shè)計(jì)思路,所以結(jié)合機(jī)械結(jié)構(gòu)進(jìn)行說明。首先使裝置計(jì)算周期公式為
其中T表示周期,V表示預(yù)分頻,IV表示初始值。
伺服舵機(jī)A、伺服舵機(jī)B旋轉(zhuǎn)到垂直的外置,如圖6所示。
圖6 系統(tǒng)初始狀態(tài)
觀察系統(tǒng)初始狀態(tài)示意圖,可看到陀螺儀在空間上的x,y,z軸,其中x,y軸所在的平面以理想狀態(tài)與我們需要的平面在一個(gè)平面。z軸和伺服舵機(jī)A旋轉(zhuǎn)主動(dòng)軸是平行的兩條線。所以假使伺服舵機(jī)A旋轉(zhuǎn)那么空間上我們的坐標(biāo)系會(huì)圍繞z軸旋轉(zhuǎn),那么在旋轉(zhuǎn)的過程中,可以使x軸或者y軸與z軸所在的平面與自然界的重力加速度在一個(gè)平面。根據(jù)幾何知識(shí),這樣得到的結(jié)果是自然界的重力加速度在陀螺儀所在的空間坐標(biāo)系上,在x方向或者是在y方向所在的分量接近0,當(dāng)一個(gè)方向的分量接近0后,在通過旋轉(zhuǎn)使另一個(gè)方向的分量同樣也變?yōu)?,所以我們是實(shí)現(xiàn)了x,y軸所在的平面,即我們需要調(diào)平的平面與自然的重力加速度垂直,這樣的旋轉(zhuǎn)使得系統(tǒng)調(diào)平的實(shí)現(xiàn)。
調(diào)平程序控制:(使重力加速度在x軸方向的分量接近于0)根據(jù)系統(tǒng)初始狀態(tài)的仰視圖如圖7所示。
圖7 系統(tǒng)初始仰視圖
利用三角函數(shù)知識(shí)需要轉(zhuǎn)動(dòng)的角度:
伺服舵機(jī)進(jìn)行180°旋轉(zhuǎn)占空比的域度為2.5%到12.5%所以對(duì)應(yīng)于初始狀態(tài)下,需要旋轉(zhuǎn)α角度對(duì)應(yīng)的占空比:
PID控制參數(shù)設(shè)計(jì):PID是比例、積分、微分的縮寫。在一個(gè)具有閉環(huán)的控制過程中,過程的控制方法會(huì)受到環(huán)境的影響,在參數(shù)的整定方面還需要考慮所控制對(duì)象的特點(diǎn),以及干擾的來源于干擾的大小,當(dāng)我們將參數(shù)整定完成后,參數(shù)就不應(yīng)該被改動(dòng),可以適當(dāng)?shù)娜フ{(diào)整設(shè)計(jì)[8]。由于微小誤差的存在為了使結(jié)果更加精確,所以需要引入積分變量,累計(jì)誤差進(jìn)行微小的調(diào)節(jié),誤差的計(jì)算按照公式:
其中:x2為最新得到的重力加速度在x軸的分量;x1為代表上一次測(cè)得的重力加速度在x軸的分量。
PID的控制算法中還需要加入比例項(xiàng),比例項(xiàng)Kp按照公式:
經(jīng)過上述的步驟我們已經(jīng)把重力加速度在x方向的分量調(diào)節(jié)到接近于0,那么接下來按照預(yù)定的思路需要調(diào)節(jié)在y方向的分量。
圖8 系統(tǒng)一次調(diào)節(jié)后狀態(tài)
如上所述:
進(jìn)行PID閉環(huán)調(diào)節(jié)以后,裝置在x,y方向的重力加速度分量接近0,從而我們可以看到系統(tǒng)已經(jīng)達(dá)到了我們所希望的水平狀態(tài),這是,如果去測(cè)量z軸重力加速度的值,可以發(fā)現(xiàn)其值和自然重力加速度幾乎相等。根據(jù)幾何知識(shí)也可以了解到自然重力加速度與z軸幾乎重合。
調(diào)平后,系統(tǒng)狀態(tài)如圖9所示。
圖9 系統(tǒng)調(diào)平狀態(tài)
本文主要針對(duì)STM32微處理器控制伺服舵機(jī)調(diào)平進(jìn)行了設(shè)計(jì),通過機(jī)械電子相結(jié)合實(shí)現(xiàn)了高自動(dòng)化的調(diào)平系統(tǒng)。本系統(tǒng)具有成本低,制作工藝簡(jiǎn)單,發(fā)展前景好的優(yōu)點(diǎn)。本設(shè)計(jì)在時(shí)間上和精度上能滿足絕大部分需求,但是在擔(dān)負(fù)負(fù)載方面還有缺陷,希望以后可以改善。