吳博文,吳陳毅
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
風(fēng)力擺作為電子設(shè)計(jì)大賽控制系統(tǒng)的一個(gè)題目備受關(guān)注,如今風(fēng)力擺控制系統(tǒng)作為一個(gè)典型的實(shí)驗(yàn)對(duì)象,為理論教學(xué)和課外實(shí)踐搭建了良好的操作平臺(tái)。該項(xiàng)目將理論和實(shí)踐結(jié)合在一起,極大地鍛煉了學(xué)生工程實(shí)驗(yàn)與實(shí)踐的能力,具有重要研究意義[1]。各院校、實(shí)驗(yàn)室為此開展了風(fēng)力擺項(xiàng)目的研究。
風(fēng)力擺控制系統(tǒng)的搭建,旨在訓(xùn)練大學(xué)生理論思維、培養(yǎng)動(dòng)手以及分析解決問題的能力。其核心為PID的控制,三角函數(shù)的熟練運(yùn)用以及李薩如模型的搭建。其中PID廣泛運(yùn)用于各閉環(huán)控制系統(tǒng),原理簡單,通過調(diào)節(jié)參數(shù)即可維持系統(tǒng)的穩(wěn)定。李薩如圖形的花樣由兩個(gè)相互垂直的簡諧振動(dòng)的頻率和相位差決定[2]。
該系統(tǒng)主要由控制模塊、電機(jī)驅(qū)動(dòng)模塊、風(fēng)機(jī)模塊、鍵盤模塊、顯示模塊等模塊組成。各模塊的系統(tǒng)框圖如圖1所示。題目中要求風(fēng)力擺做類似自由擺運(yùn)動(dòng),使激光筆穩(wěn)定地在地面畫出一定誤差范圍內(nèi)的直線和圓,并且具有較好的重復(fù)性。系統(tǒng)采用單片機(jī)控制器讀取風(fēng)力擺上參數(shù)來調(diào)節(jié)四個(gè)風(fēng)機(jī)的轉(zhuǎn)速,構(gòu)成閉環(huán)控制系統(tǒng),從而實(shí)現(xiàn)風(fēng)力擺在一定的角度范圍內(nèi)做類似自由擺動(dòng)以及幅度可控?cái)[動(dòng),并且具有可靠的穩(wěn)定性。
(1)采用并聯(lián)PID控制系統(tǒng)。通過改變i對(duì)角度進(jìn)行控制,PD對(duì)角速度環(huán)進(jìn)行控制的雙閉環(huán)控制系統(tǒng)。
(1)
式(1)中,ki是積分系數(shù),eer1(t)是目標(biāo)角度與當(dāng)前角度之差。
對(duì)于速度: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)是上一時(shí)刻目標(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)采用串級(jí)PID控制系統(tǒng)。將角度環(huán)作為外環(huán),角速度環(huán)作為內(nèi)環(huán),通過外環(huán)比較角度偏差,將角度輸出作為角速度輸入實(shí)現(xiàn)PID的串聯(lián)。
(4)
對(duì)于角速度: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)動(dòng)是非線性運(yùn)動(dòng),但是擺動(dòng)過程中保證單片機(jī)每隔一個(gè)很短的時(shí)間段快速采樣,那么兩相鄰采樣點(diǎn)之間可近似成線性,所以可以將風(fēng)力擺的自由擺運(yùn)動(dòng)近似成“簡諧運(yùn)動(dòng)”[3]。對(duì)于“簡諧運(yùn)動(dòng)”,其運(yùn)動(dòng)軌跡可描述為:
θ=Asin(ωt+φ)
(7)
(8)
(9)
式(7)、(8)、(9)中,θ為擺動(dòng)角度,A為最大擺角,ω為角頻率,φ為初相位,T為擺動(dòng)周期,dis為擺動(dòng)長度,T為桿長,由此通過控制設(shè)置A來設(shè)置擺動(dòng)的最長距離,通過讀取θ可得知當(dāng)前擺角,再測量相應(yīng)的周期,在一個(gè)周期結(jié)束時(shí)利用讀取的θ和A進(jìn)行比較,通過PID算法,即可實(shí)現(xiàn)風(fēng)力擺某一方向的單擺運(yùn)動(dòng)。為提高系統(tǒng)穩(wěn)定性,若在x方向做單擺運(yùn)動(dòng),y方向可通過PID算法將其擺動(dòng)角度及角速度設(shè)置為0。
在擺動(dòng)角度要求不大時(shí),風(fēng)力擺簡諧運(yùn)動(dòng)可單擺運(yùn)動(dòng),其公式為:
(10)
式(10)其中g(shù)是重力加速度。
兩個(gè)相互垂直的簡諧運(yùn)動(dòng)的融合即可構(gòu)成李薩如模型,對(duì)于兩個(gè)垂直方向的擺角與,當(dāng)其滿足一定條件時(shí)可構(gòu)成特殊的圖形:
對(duì)于x、y軸方向的運(yùn)動(dòng):
θx=Asin(ωt+φx)
(11)
θy=Bsin(ωt+φy)
(12)
(2)繪制方向可設(shè)置的直線。對(duì)于XOY平面上任意方向的直線可將其分解在x軸方向和y軸方向上,因此,對(duì)于該平面任意方向的擺角θ在x軸與y軸方向的分量分別為:
θx=θcosα
(13)
θy=θsinα
(14)
其中為設(shè)定方向與x軸正方向的夾角。因此,結(jié)合簡諧運(yùn)動(dòng)得出擺角為:
θx=Asin(ωt+φx)cosα
(15)
θy=Bsin(ωt+φy)sinα
(16)
令A(yù)=B,ω的值隨時(shí)間成線性變化,φx+φy=0,通過控制α即完成了對(duì)直線方向的控制。
R=LtanA
(17)
因此通過設(shè)置A即可完成半徑的設(shè)置,最后,x方向與y方向的角度可表示為:
(18)
(19)
主控板采用STM32F103ZET6單片機(jī),用于控制各種模塊并完成相應(yīng)功能。鍵盤電路設(shè)計(jì)采用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航模電池對(duì)電調(diào)進(jìn)行供電。
當(dāng)系統(tǒng)上電后,OLED顯示屏將呈現(xiàn)較好的人機(jī)界面,與此同時(shí)STM32對(duì)按鍵檢測,選擇工作狀態(tài),設(shè)定起擺方式。通過閉環(huán)PID調(diào)節(jié)及姿態(tài)解算實(shí)現(xiàn)相應(yīng)的功能。
對(duì)于畫圓采用matlab仿真結(jié)果和實(shí)際測試結(jié)果如圖2。
圖2理論值與實(shí)測數(shù)據(jù)對(duì)比
該系統(tǒng)很好地完成了自由擺運(yùn)動(dòng)、設(shè)定長度、角度劃線、快速懸停以及畫圓等功能,具有較強(qiáng)的穩(wěn)定性?;陲L(fēng)力擺的教學(xué)實(shí)踐平臺(tái)將實(shí)踐與理論想結(jié)合,不僅增強(qiáng)了學(xué)生的學(xué)習(xí)的自產(chǎn)性,而且可為學(xué)生提供一個(gè)親身體驗(yàn)、自主學(xué)習(xí)的機(jī)會(huì),提高了學(xué)生的學(xué)習(xí)興趣。