單片機(jī)在倒立擺控制系統(tǒng)的應(yīng)用
倒立擺作為一種典型的控制系統(tǒng)實(shí)驗(yàn)裝置,具有非線性、自然不穩(wěn)定等特性,常用來作為檢驗(yàn)?zāi)撤N控制理論或方法是否合理的典型方案。一階倒立擺系統(tǒng)能用多種理論和方法來實(shí)現(xiàn)其穩(wěn)定控制,如PID、自適應(yīng)、狀態(tài)反饋、模糊控制及人工神經(jīng)元網(wǎng)絡(luò)等多種理論和方法都能在倒立擺系統(tǒng)控制上得到實(shí)現(xiàn)。
1系統(tǒng)構(gòu)成及工作原理
圖1為一階旋轉(zhuǎn)倒立擺結(jié)構(gòu)示意圖。直流電機(jī)作為唯一的動力裝置,與旋臂保持剛性連接,帶動旋臂在水平面內(nèi)旋轉(zhuǎn),旋臂的一端通過轉(zhuǎn)軸(本系統(tǒng)選用電位器角度傳感器)與擺桿連接,擺桿可做垂直于旋臂的圓周運(yùn)動。在自然狀態(tài)下,擺桿為豎直下垂?fàn)顟B(tài)。倒立擺控制的目的是通過控制直流電動機(jī)的運(yùn)動狀態(tài),使擺桿保持倒立狀態(tài)。
圖1倒立擺結(jié)構(gòu)示意圖
系統(tǒng)工作原理如下:擺桿擺動時,角度傳感器檢測擺桿的角度,根據(jù)角度傳感器的輸出特性,其輸出電壓經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換成電壓數(shù)字量,該數(shù)字量與期望的值進(jìn)行比較產(chǎn)生偏差,通過單片機(jī)對該偏差進(jìn)行處理,即PID控制運(yùn)算,根據(jù)運(yùn)算結(jié)果產(chǎn)生控制信號控制電機(jī)和旋臂的轉(zhuǎn)動,使擺桿的角度與期望的角度更接近。
倒立擺控制系統(tǒng)結(jié)構(gòu)框圖如圖2所示,單片機(jī)(51單片機(jī))為控制器,直流電機(jī)為執(zhí)行器,倒立擺為被控對象,倒立擺角度為被控量,角度傳感器和模數(shù)轉(zhuǎn)換器構(gòu)成反饋回路。
圖2倒立擺控制系統(tǒng)結(jié)構(gòu)框圖
2 倒立擺控制系統(tǒng)的硬件設(shè)計(jì)
2.1單片機(jī)最小系統(tǒng)
該系統(tǒng)中選用了STC90C51單片機(jī),該型單片機(jī)
具有以下特點(diǎn):①八位MCU核,與傳統(tǒng)8051兼容;②大容量存儲空間,包括64kB程序空間,1280B
SRAM等;③具有4個八位并行I/O口,3個定時/計(jì)數(shù)器,2個外部中斷源和1個全雙工UART傳輸口;④5V供電時,最高支持80MHz振蕩頻率,具備高速浮點(diǎn)運(yùn)算能力,適合倒立擺系統(tǒng)等較為復(fù)雜的控制系統(tǒng)使用。51單片機(jī)最小系統(tǒng)如圖3所示。
圖3 51單片機(jī)最小系統(tǒng)
2.2擺桿角度檢測
檢測擺桿角度所用到的角度傳感器種類非常多,常用的有電位器式角度傳感器、光電編碼器、陀螺儀模塊等。由于電位器式角度傳感器原理簡單,檢測精度取決于所用A/D轉(zhuǎn)換器的精度,成本相對較低,因此,綜合多方面要求,本系統(tǒng)選用電位器式角度傳感器。
傳感器返回的電壓信號無法被單片機(jī)直接識別,所以需要通過A/D轉(zhuǎn)換,將模擬電壓信號轉(zhuǎn)換為二進(jìn)制數(shù)的形式,然后單片機(jī)才能計(jì)算出偏差,進(jìn)而產(chǎn)生相應(yīng)的輸出。A/D轉(zhuǎn)換器常用的有8位和12位輸出,在本系統(tǒng)中選用8位A/D轉(zhuǎn)換器即可滿足控制要求,其型號選用ADC0809,相應(yīng)電路原理圖見圖4。
圖4 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換器的時鐘脈沖為單片機(jī)ALE引腳輸出的脈沖經(jīng)74LS74芯片分頻之后得到,A/D轉(zhuǎn)換器的8位數(shù)字信號通過單片機(jī)的P0口進(jìn)行采集與處理。
2.3驅(qū)動電路
本系統(tǒng)選用的直流電機(jī)額定電壓為24V,額定功率為30W,單片機(jī)的I/O口不足以提供如此大的驅(qū)動能力,故需采用驅(qū)動電路。常用的直流電機(jī)驅(qū)動芯片為L298N,可驅(qū)動兩路直流電機(jī),最大驅(qū)動電壓為46V,最大電流2A~3A,滿足設(shè)計(jì)要求。直流電機(jī)驅(qū)動電路如圖5所示。
圖5 直流電機(jī)驅(qū)動電路
圖5中,L298N的ENA為使能端,可作為單片機(jī)PWM(脈寬調(diào)制)控制端,控制直流電機(jī)轉(zhuǎn)速;IN1和IN2為信號輸入端,OUT1和OUT2為輸出端,輸出
狀態(tài)與輸入狀態(tài)對應(yīng),控制直流電機(jī)轉(zhuǎn)向。輸出端的二極管為續(xù)流二極管,起保護(hù)電動機(jī)線圈的作用。
3倒立擺控制系統(tǒng)的軟件設(shè)計(jì)
3.1控制算法
本系統(tǒng)采用PID控制算法,PID算法適用于負(fù)荷變化大、容量滯后較大、控制品質(zhì)要求高的控制系統(tǒng)。PID算法有3個可設(shè)定參數(shù),即比例放大系數(shù)KP、積分時間常數(shù)TI、微分時間常數(shù)TD。比例調(diào)節(jié)的作用是使調(diào)節(jié)過程趨于穩(wěn)定,但會產(chǎn)生穩(wěn)態(tài)誤差;積分作用可消除被調(diào)量的穩(wěn)態(tài)誤差,但由于積分飽和等原因可能會使系統(tǒng)振蕩甚至使系統(tǒng)不穩(wěn)定;微分作用能有效地減小動態(tài)偏差[4]。其傳遞函數(shù)為:
其中:u(k)為第k個采樣時刻的輸出;e(k)為第k個采樣時刻的偏差值;T為采樣周期;KP為比例放大系數(shù);TI為積分時間常數(shù);TD為微分時間常數(shù)。
在實(shí)時性要求較高的倒立擺系統(tǒng)中,積分作用常常使系統(tǒng)對偏差的調(diào)節(jié)變慢,使動態(tài)相應(yīng)變慢。因此要盡量弱化或者消除積分作用,使用PD調(diào)節(jié)規(guī)律即可。在該系統(tǒng)中,輸入變量為給定值與實(shí)際檢測到角度的差值,輸出變量控制所產(chǎn)生的PWM波形的占空比。由于旋臂、擺桿以及電動機(jī)的各項(xiàng)參數(shù)很難準(zhǔn)確把握,且干擾較多,難以建立精確的數(shù)學(xué)模型,因此采用試驗(yàn)法整定參數(shù)的數(shù)值,即根據(jù)系統(tǒng)表現(xiàn)出的狀態(tài),調(diào)節(jié)各參數(shù)的數(shù)值,直至系統(tǒng)達(dá)到穩(wěn)定。
3.2程序流程圖
倒立擺系統(tǒng)主程序流程圖見圖6。其中,U為PID運(yùn)算的輸出值,為輸出PWM波形的占空比,由于所選單片機(jī)不具備專用PWM輸出引腳,需要利用定時器T0模擬其波形輸出,定時器T0中斷子程序流程圖見圖7。在本系統(tǒng)中,采樣周期選擇為10ms,由定時器T1控制,定時器T1中斷子程序流程圖見圖8。
4系統(tǒng)測試
本系統(tǒng)測試所用到的倒立擺模型為自制簡易模型,測試過程如下:外力將擺桿拉起至接近倒立狀態(tài)(與倒立狀態(tài)相差20°左右);給系統(tǒng)上電,同時撤去外力,觀察到擺桿迅速呈倒立狀態(tài),經(jīng)過幾次調(diào)整,即可長時間保持倒立狀態(tài)。系統(tǒng)達(dá)到穩(wěn)定狀態(tài)的效果如圖在擺桿保持倒立狀態(tài)時,施加一擾動,即輕碰擺桿或旋臂,系統(tǒng)經(jīng)過短時間的調(diào)整之后,仍可以自動調(diào)節(jié)至穩(wěn)定狀態(tài),說明該系統(tǒng)具備較強(qiáng)的魯棒性。
5結(jié)論
本系統(tǒng)采用單片機(jī)作為一階旋轉(zhuǎn)倒立擺系統(tǒng)的控制器,執(zhí)行了數(shù)據(jù)采集、數(shù)據(jù)處理(PID運(yùn)算)、控制直流電機(jī)運(yùn)行狀態(tài)等操作,成功使該系統(tǒng)穩(wěn)定,其經(jīng)濟(jì)性和實(shí)用性得到了很好的展現(xiàn)。同時也體現(xiàn)了經(jīng)典PID控制理論在一階倒立擺系統(tǒng)中使用時良好的控制效果。