吳博文,吳陳毅
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
風(fēng)力擺作為電子設(shè)計大賽控制系統(tǒng)的一個題目備受關(guān)注,如今風(fēng)力擺控制系統(tǒng)作為一個典型的實(shí)驗對象,為理論教學(xué)和課外實(shí)踐搭建了良好的操作平臺。該項目將理論和實(shí)踐結(jié)合在一起,極大地鍛煉了學(xué)生工程實(shí)驗與實(shí)踐的能力,具有重要研究意義[1]。各院校、實(shí)驗室為此開展了風(fēng)力擺項目的研究。
風(fēng)力擺控制系統(tǒng)的搭建,旨在訓(xùn)練大學(xué)生理論思維、培養(yǎng)動手以及分析解決問題的能力。其核心為PID的控制,三角函數(shù)的熟練運(yùn)用以及李薩如模型的搭建。其中PID廣泛運(yùn)用于各閉環(huán)控制系統(tǒng),原理簡單,通過調(diào)節(jié)參數(shù)即可維持系統(tǒng)的穩(wěn)定。李薩如圖形的花樣由兩個相互垂直的簡諧振動的頻率和相位差決定[2]。
該系統(tǒng)主要由控制模塊、電機(jī)驅(qū)動模塊、風(fēng)機(jī)模塊、鍵盤模塊、顯示模塊等模塊組成。各模塊的系統(tǒng)框圖如圖1所示。題目中要求風(fēng)力擺做類似自由擺運(yùn)動,使激光筆穩(wěn)定地在地面畫出一定誤差范圍內(nèi)的直線和圓,并且具有較好的重復(fù)性。系統(tǒng)采用單片機(jī)控制器讀取風(fēng)力擺上參數(shù)來調(diào)節(jié)四個風(fēng)機(jī)的轉(zhuǎn)速,構(gòu)成閉環(huán)控制系統(tǒng),從而實(shí)現(xiàn)風(fēng)力擺在一定的角度范圍內(nèi)做類似自由擺動以及幅度可控擺動,并且具有可靠的穩(wěn)定性。
(1)采用并聯(lián)PID控制系統(tǒng)。通過改變i對角度進(jìn)行控制,PD對角速度環(huán)進(jìn)行控制的雙閉環(huán)控制系統(tǒng)。
(1)
式(1)中,ki是積分系數(shù),eer1(t)是目標(biāo)角度與當(dāng)前角度之差。
對于速度:u2(t)=kp×eer2+kd×(eer2(t)-eer2(t-1))
(2)
式(2)中,kp是比例系數(shù),kd是微分系數(shù),eer2(t)是當(dāng)前角速度與目標(biāo)角速度之差,eer2(t-1)是上一時刻目標(biāo)角速度與當(dāng)前角速度之差。
因此,將角度環(huán)和速度環(huán)并聯(lián)融合:
u(t)=u1(t)+u2(t)
(3)
u(t)即為當(dāng)前風(fēng)機(jī)轉(zhuǎn)速。
(2)采用串級PID控制系統(tǒng)。將角度環(huán)作為外環(huán),角速度環(huán)作為內(nèi)環(huán),通過外環(huán)比較角度偏差,將角度輸出作為角速度輸入實(shí)現(xiàn)PID的串聯(lián)。
(4)
對于角速度:eer2(t)=w+u1(t)×P
(5)
u1(t)=kp×eer2(t)+kd×(eer2(t)-eer2(t-1))
(6)
式(5)、(6)中,w為當(dāng)前角速度,P為可調(diào)常數(shù),u(t)為風(fēng)機(jī)轉(zhuǎn)速。
自由擺運(yùn)動是非線性運(yùn)動,但是擺動過程中保證單片機(jī)每隔一個很短的時間段快速采樣,那么兩相鄰采樣點(diǎn)之間可近似成線性,所以可以將風(fēng)力擺的自由擺運(yùn)動近似成“簡諧運(yùn)動”[3]。對于“簡諧運(yùn)動”,其運(yùn)動軌跡可描述為:
θ=Asin(ωt+φ)
(7)
(8)
(9)
式(7)、(8)、(9)中,θ為擺動角度,A為最大擺角,ω為角頻率,φ為初相位,T為擺動周期,dis為擺動長度,T為桿長,由此通過控制設(shè)置A來設(shè)置擺動的最長距離,通過讀取θ可得知當(dāng)前擺角,再測量相應(yīng)的周期,在一個周期結(jié)束時利用讀取的θ和A進(jìn)行比較,通過PID算法,即可實(shí)現(xiàn)風(fēng)力擺某一方向的單擺運(yùn)動。為提高系統(tǒng)穩(wěn)定性,若在x方向做單擺運(yùn)動,y方向可通過PID算法將其擺動角度及角速度設(shè)置為0。
在擺動角度要求不大時,風(fēng)力擺簡諧運(yùn)動可單擺運(yùn)動,其公式為:
(10)
式(10)其中g(shù)是重力加速度。
兩個相互垂直的簡諧運(yùn)動的融合即可構(gòu)成李薩如模型,對于兩個垂直方向的擺角與,當(dāng)其滿足一定條件時可構(gòu)成特殊的圖形:
對于x、y軸方向的運(yùn)動:
θx=Asin(ωt+φx)
(11)
θy=Bsin(ωt+φy)
(12)

(2)繪制方向可設(shè)置的直線。對于XOY平面上任意方向的直線可將其分解在x軸方向和y軸方向上,因此,對于該平面任意方向的擺角θ在x軸與y軸方向的分量分別為:
θx=θcosα
(13)
θy=θsinα
(14)
其中為設(shè)定方向與x軸正方向的夾角。因此,結(jié)合簡諧運(yùn)動得出擺角為:
θx=Asin(ωt+φx)cosα
(15)
θy=Bsin(ωt+φy)sinα
(16)
令A(yù)=B,ω的值隨時間成線性變化,φx+φy=0,通過控制α即完成了對直線方向的控制。

R=LtanA
(17)
因此通過設(shè)置A即可完成半徑的設(shè)置,最后,x方向與y方向的角度可表示為:
(18)
(19)
主控板采用STM32F103ZET6單片機(jī),用于控制各種模塊并完成相應(yīng)功能。鍵盤電路設(shè)計采用4×4矩陣鍵盤,這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率,用于控制模式切換以及要求參數(shù)的設(shè)定。顯示電路采用基于IIC協(xié)議的OLED,用于顯示當(dāng)前角度、設(shè)定角度、設(shè)定長度、設(shè)定半徑以及所選模式和風(fēng)機(jī)轉(zhuǎn)速。數(shù)據(jù)采集模塊采用MPU6050,可通過串口直接打印當(dāng)前風(fēng)力擺角度、加速度以及加速度等相關(guān)參數(shù)。采用12V航模電池對電調(diào)進(jìn)行供電。
當(dāng)系統(tǒng)上電后,OLED顯示屏將呈現(xiàn)較好的人機(jī)界面,與此同時STM32對按鍵檢測,選擇工作狀態(tài),設(shè)定起擺方式。通過閉環(huán)PID調(diào)節(jié)及姿態(tài)解算實(shí)現(xiàn)相應(yīng)的功能。
對于畫圓采用matlab仿真結(jié)果和實(shí)際測試結(jié)果如圖2。

圖2理論值與實(shí)測數(shù)據(jù)對比
該系統(tǒng)很好地完成了自由擺運(yùn)動、設(shè)定長度、角度劃線、快速懸停以及畫圓等功能,具有較強(qiáng)的穩(wěn)定性。基于風(fēng)力擺的教學(xué)實(shí)踐平臺將實(shí)踐與理論想結(jié)合,不僅增強(qiáng)了學(xué)生的學(xué)習(xí)的自產(chǎn)性,而且可為學(xué)生提供一個親身體驗、自主學(xué)習(xí)的機(jī)會,提高了學(xué)生的學(xué)習(xí)興趣。