李曉豪,李 鑫
(常熟理工學(xué)院 電氣與自動化工程學(xué)院,江蘇 常熟 215500)
旋轉(zhuǎn)倒立擺系統(tǒng)是一個(gè)非穩(wěn)定、強(qiáng)耦合、非線性的機(jī)械系統(tǒng),可以作為一個(gè)典型控制對象被研究,是進(jìn)行控制理論研究的理想平臺,可以用來檢驗(yàn)控制方法處理非線性、抗干擾性、穩(wěn)定性等問題的能力. 倒立擺在軍事、工業(yè)、生活中都有廣泛的運(yùn)用. 在本系統(tǒng)中,我們運(yùn)用PID控制器控制旋轉(zhuǎn)倒立擺的起擺,穩(wěn)擺等動作,進(jìn)一步檢驗(yàn)了PID控制的實(shí)用性.
圖1 倒立擺運(yùn)動簡圖
圖2 倒立擺系統(tǒng)物理模型
倒立擺的運(yùn)動結(jié)構(gòu)簡圖如圖1所示,通過對圖1的運(yùn)動簡圖進(jìn)行物理建模,得到倒立擺系統(tǒng)的物理模型,如圖2所示. 旋轉(zhuǎn)臂的長度為R,旋轉(zhuǎn)臂的質(zhì)量為m1,水平方向角位移量為θ,擺桿長度為L,重心到桿的長度為l1,豎直方向角位移量為α,擺桿的質(zhì)量為m2.
其中:T1為旋臂轉(zhuǎn)動動能為擺桿旋轉(zhuǎn)動能T3為擺臂水平方向的動能為擺桿沿豎直方向的動能
在倒立擺運(yùn)行過程中,α角度非常小,所以sinα≈α≈0,cosα≈1[1]. 將式(1)~(4)各項(xiàng)計(jì)算合并,并對其進(jìn)行線性化處理可得
倒立擺的Lagrance方程為
其中,qi為廣義坐標(biāo),F(xiàn)qi為作用在系統(tǒng)上的廣義力,這里qi表示角度,所以Fqi即為轉(zhuǎn)矩. 同時(shí),我們定義q(t) =[θ(t)α(t) ]T,其中θ(t)為旋臂旋轉(zhuǎn)過零位的角度,α(t)為擺桿旋轉(zhuǎn)過零位的角度.直流電動機(jī)的輸出轉(zhuǎn)矩則倒立擺系統(tǒng)的Lagrance方程為:
將式(5)代入式(7)可得式(9)
將式(5)代入式(8)可得式(10)
線性化處理后得到的動力學(xué)模型可轉(zhuǎn)化為
簡化矩陣為
又
將式(14)代入式(13)得到式(15)
令x則有
將表1中的參數(shù)代入上述式中,可以解算出:
表1 狀態(tài)方程中各參數(shù)列表
本系統(tǒng)基于STM32F103微控制器,該芯片資源較為豐富,處理速度較快. 其擁有512 KB的FLASH,我們可以利用它對參數(shù)進(jìn)行整定. 4個(gè)通用定時(shí)器,我們選用3個(gè)定時(shí)器,分別給系統(tǒng)提供準(zhǔn)確的5 ms定時(shí),讀取編碼器脈沖數(shù)和產(chǎn)生PWM波輸出. 利用串口進(jìn)行代碼下載以及與上位機(jī)之間數(shù)據(jù)傳輸. 利用一個(gè)12位ADC對角位移傳感器讀取數(shù)值. 利用外部中斷方式實(shí)現(xiàn)按鍵控制.
電機(jī)采用原始轉(zhuǎn)速11 000 rpm、減速比30的直流減速電機(jī),直流電機(jī)驅(qū)動減速器輸出動力,將高速扭矩轉(zhuǎn)換為低速扭矩,提供更強(qiáng)大的動力. 硬件驅(qū)動為TB6612FNG驅(qū)動芯片,并且電機(jī)尾部自帶有編碼器,編碼器的齒輪與減速器輸出軸的齒輪相嚙合,用來檢測旋轉(zhuǎn)臂轉(zhuǎn)過的角度.
角度傳感器選用WWD35D4,通過STM32的AD轉(zhuǎn)換來讀取電阻式角度傳感器測量擺桿的旋轉(zhuǎn)角度,并將其作為檢測變量送入控制器中,經(jīng)過PD運(yùn)算后將角度誤差送入PWM信號提供給驅(qū)動芯片,驅(qū)動直流電機(jī),以帶動旋轉(zhuǎn)臂轉(zhuǎn)動,實(shí)現(xiàn)倒立擺的起擺和倒立[2].
本系統(tǒng)選用OLED屏來調(diào)節(jié)參數(shù),以及觀察旋轉(zhuǎn)倒立擺的擺臂運(yùn)行情況. 通過SPI通信協(xié)議與OLED之間實(shí)現(xiàn)顯示功能. 倒立擺的系統(tǒng)結(jié)構(gòu)圖如圖3所示.
圖3 倒立擺系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)軟件用STM32F103C8T6作為主控芯片,在系統(tǒng)運(yùn)行前,在FLASH里面修改與保存PID參數(shù)與設(shè)定的角位移傳感器和編碼器標(biāo)準(zhǔn)值. 由按鍵觸發(fā)外部中斷啟動系統(tǒng)運(yùn)行. 系統(tǒng)利用定時(shí)器1中斷5 ms的準(zhǔn)確工作周期,利用AD讀取角度傳感器的值來確定懸臂的位置,將角度傳感器與標(biāo)準(zhǔn)值的差值通過PID運(yùn)算后,傳給通過定時(shí)器2配置成PWM模式驅(qū)動的電機(jī),通過定時(shí)器3讀取編碼器值來確定旋轉(zhuǎn)臂的位置,再將編碼器與標(biāo)準(zhǔn)值的差值通過PID運(yùn)算后傳給電機(jī). 以此實(shí)現(xiàn)雙PID閉環(huán)控制. 倒立擺軟件流程圖如圖4所示.
倒立擺的起擺問題是控制工程中一個(gè)比較難解決的經(jīng)典問題. 根據(jù)倒立擺能的數(shù)學(xué)建模公式可得
圖4 倒立擺軟件流程圖
可以將倒立擺的起擺問題轉(zhuǎn)化為其擺臂上豎直方向的能量問題. 由式(17)可以將倒立擺的起擺動態(tài)過程簡化為在這個(gè)過程中count_FZ控制擺臂的振幅,在不斷震蕩的過程中,count_FZ不斷增加,直到其擺臂的振幅能夠達(dá)到穩(wěn)擺的要求.Count_qb控制的是倒立擺的振蕩頻率,不斷加大震蕩的頻率以及增加震蕩的幅度使倒立擺能夠快速達(dá)到穩(wěn)擺的要求.
旋轉(zhuǎn)倒立擺的穩(wěn)擺控制目標(biāo)是:使倒立擺擺桿穩(wěn)定在旋轉(zhuǎn)臂正上方的穩(wěn)定區(qū)域,且使α→0,θ→0.
為了實(shí)現(xiàn)控制目標(biāo),本系統(tǒng)使用了雙PID閉環(huán)控制系統(tǒng). 在控制結(jié)構(gòu)中,使用控制器1對倒立擺擺桿的角度α進(jìn)行控制,控制器的輸出極性為正;控制器2對旋轉(zhuǎn)臂的角速度θ進(jìn)行控制,控制器輸出極性為負(fù)[3].
雙PID控制系統(tǒng)的結(jié)構(gòu)圖如圖5所示. 其中的PID控制器(比例-積分-微分控制器)是一個(gè)工業(yè)控制中常用的反饋控制器,通過被控量與設(shè)定值的偏差作為輸入信號,而控制器本身就是比例、積分、微分這3個(gè)部分的和. 其離散化計(jì)算公式為其中kp是比例調(diào)節(jié)系數(shù),ki是積分調(diào)節(jié)系數(shù),kd是微分調(diào)節(jié)系數(shù).PID控制的基礎(chǔ)是比例環(huán)節(jié);積分控制可消除穩(wěn)態(tài)誤差,但可能增加超調(diào)量;微分控制可加快慣性系統(tǒng)響應(yīng)速度以及減弱超調(diào)趨勢. 本系統(tǒng)采用PD控制即可[1].
圖5 雙PID控制結(jié)構(gòu)圖
經(jīng)過對PID參數(shù)以及倒立擺平衡中值的反復(fù)校正,倒立擺系統(tǒng)能夠?qū)崿F(xiàn)在手動起擺與自動起擺兩種運(yùn)行方式之間順利切換.
倒立擺在起擺時(shí),利用旋轉(zhuǎn)臂瞬間很大的機(jī)械能使擺臂達(dá)到倒立條件. 同時(shí)利用上位機(jī)與下位機(jī)的通信獲取起擺瞬間的擺臂位置曲線,如圖6所示. 圖7為倒立擺實(shí)際運(yùn)行圖.
圖6 擺臂的位置曲線
圖7 倒立擺穩(wěn)擺實(shí)物圖
利用Lagrange方程建立了旋轉(zhuǎn)倒立擺單擺的數(shù)學(xué)模型,采用正反饋控制角速度使倒立擺迅速振蕩,并迅速達(dá)到起擺條件. 使用雙PID控制方式對倒立擺進(jìn)行穩(wěn)擺控制. 由于該系統(tǒng)具有良好的人機(jī)交互界面,且設(shè)置PID參數(shù)較為方便,故適用于實(shí)驗(yàn)教學(xué),方便學(xué)生直觀了解PID控制.