摘要
倒立擺控制系統(tǒng)是一個復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng)。本設(shè)計在研究倒立擺運動規(guī)律的基礎(chǔ)上,構(gòu)建其運動軌跡的數(shù)學(xué)模型,使用MATLAB進行仿真分析,在對倒立擺模型認識以后,使用k60微控制器結(jié)合PID算法給出信號驅(qū)動直流減速電機,進而對倒立擺系統(tǒng)進行控制,在倒立的過程中使用編碼器采集擺桿角度,對擺桿反饋的角度進行處理,針對角度,角速度的方向,電機運行方向進行處理,運用PD算法調(diào)節(jié)擺桿倒立,PI參數(shù)調(diào)節(jié)電機速度,通過雙回路PD\PI控制方案實現(xiàn)了對旋轉(zhuǎn)臂位置和擺桿偏角的同時閉環(huán)控制。
目 錄
一、系統(tǒng)方案 1
1.1 主控芯片的論證與選擇 1
1.2 擺桿的角度測量的論證與選擇 1
1.3 電機的論證與選擇 1
二、系統(tǒng)結(jié)構(gòu) 2
2.1機械結(jié)構(gòu) 2
2.2測控電路結(jié)構(gòu) 2
三、理論分析與計算 3
3.1倒立擺的基本模型 3
3.2模型分析與參數(shù)測量 3
3.3基于狀態(tài)反饋的倒立控制 4
四、電路與程序設(shè)計 5
4.1系統(tǒng)的硬件設(shè)計 5
4.2系統(tǒng)軟件設(shè)計 7
五、測試方案與測試結(jié)果 10
5.1基本要求(1) 10
5.2基本要求(2) 10
5.3基本要求(3) 10
5.4發(fā)揮要求(1) 10
5.5發(fā)揮要求(2) 11
5.6發(fā)揮要求(3) 11
六.其他的拓展部分 12
七、參考文獻 12
附錄 13
一、系統(tǒng)方案 本系統(tǒng)主要有五大部分組成,即控制部分、電機部分、傳感器部分、電源部分和人機交互部分。傳感器采用兩個光電式旋轉(zhuǎn)編碼器,分別用于測量擺桿角度、電機轉(zhuǎn)速。結(jié)合傳感器反饋信息運用PID算法將控制信號傳輸給電機驅(qū)動使電機運行,帶動旋轉(zhuǎn)臂轉(zhuǎn)動,進而控制擺桿,形成雙閉環(huán)控制網(wǎng)絡(luò)。
1.1 主控芯片的論證與選擇方案一:采用AT89S52單片機
優(yōu)點:AT89S52是CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。具有低功耗,價格便宜,控制簡單等一系列優(yōu)點。 缺點:片內(nèi)資源少,沒有集成的正交解碼寄存器,需要外擴才能實現(xiàn),而且難以實現(xiàn)快速和精準的反映控制。
方案二:采用飛思卡爾KinetisK60微控制器。 優(yōu)點:是一款高性能的32位微控制器,片內(nèi)資源豐富,內(nèi)置PIT定時器、FTM定時器,有兩路編碼器AB相正交解碼的功能,時鐘頻率50MHZ,具有高速的計運算能力。
缺點:頻率的提高功耗也隨之增大。
總結(jié):由以上方案分析,為了可以高精度、高速度的進行系統(tǒng)控制,同時由于編碼器使用過程中需要正交解碼功能,AT89S52不滿足以上要求,故本系統(tǒng)選擇方案二,使用飛思卡爾Kinetis K60微控制器。
1.2 擺桿的角度測量的論證與選擇 方案一:采用光電編碼器。
優(yōu)點:無累計誤差,精度高、數(shù)字信號接口。
缺點:價格偏高。
方案二:采用傾角傳感器。
優(yōu)點:無累計誤差。
缺點:被測物體有其他加速度則無法準確計算。
方案三: 采用角速度傳感器。
優(yōu)點:直接測出角速度,理論上不受移動等其他運動影響。
缺點:角度由積分產(chǎn)生,累計誤差可能導(dǎo)致系統(tǒng)不穩(wěn)定。
總結(jié):由以上方案分析,為提高測量精度,同時考慮到傳感器安裝的難易程度,所以我們選擇方案一測量擺桿角度。
1.3 電機的論證與選擇方案一:采用空心杯直流減速電機。
優(yōu)點:空心杯電動機屬于直流、永磁、伺服微特電機。空心杯電動機具有杰出的節(jié)能特性、靈敏方便的控制特性和穩(wěn)定的運行特性。
缺點:輻射產(chǎn)生電磁波干擾,減速箱存在機械虛位。
方案二:采用步進電機。
優(yōu)點:步進電機是純粹的數(shù)字控制電動機,它將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰疲竭M電機屬于開環(huán)控制,累計誤差小,成本相對低廉。 缺點:步進電機角度分辨率低,且轉(zhuǎn)動時伴隨著強烈的振動,這對旋轉(zhuǎn)臂及擺桿的穩(wěn)定性是不利的。
方案三:采用伺服電機。
優(yōu)點:伺服電機是一種補助馬達間接變速裝置。其用作執(zhí)行元件,把所收到的電信號轉(zhuǎn)換成電動機軸上的角位移或角速度輸出,可使控制速度,位置精度非常準確。
缺點:減速箱存在機械虛位。
總結(jié):由以上方案分析,考慮到系統(tǒng)的穩(wěn)定性,性價比等因素,我們選擇方案一,采用空心杯減速電機。該電機自帶精密行星減速箱和光電式編碼器,同時通過對減速箱的改造可以減少機械虛位的影響,完全可以滿足題目相關(guān)要求。
二、 系統(tǒng)結(jié)構(gòu)
2.1機械結(jié)構(gòu)機械結(jié)構(gòu)的穩(wěn)定性直接影響系統(tǒng)的穩(wěn)定性。故該倒立擺采用鋼底座,穩(wěn)固性能好,支架和擺桿采用鋁合金打造,具有密度小、強度高、易加工等特點。機械結(jié)構(gòu)圖如下:
0.png (9.79 KB, 下載次數(shù): 116)
下載附件
2017-6-3 17:44 上傳
0.png (10.7 KB, 下載次數(shù): 124)
下載附件
2017-6-3 17:44 上傳
三、理論分析與計算3.1倒立擺的基本模型 旋轉(zhuǎn)臂由轉(zhuǎn)軸處的直流減速電機驅(qū)動, 可繞轉(zhuǎn)軸在垂直于電機轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動. 旋臂和擺桿之間由關(guān)節(jié)相連, 當旋臂轉(zhuǎn)動時, 擺桿可繞關(guān)節(jié)在垂直于關(guān)節(jié)轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動,根據(jù)一定的控制算法, 計算出控制規(guī)律, 并轉(zhuǎn)化為電壓信號提供給驅(qū)動電路, 以驅(qū)動直流減速電機的運動, 通過電機帶動旋轉(zhuǎn)臂的于關(guān)節(jié)轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動,進而通過電機帶動旋轉(zhuǎn)臂的轉(zhuǎn)動來控制擺桿的運動。
0.png (10.13 KB, 下載次數(shù): 117)
下載附件
2017-6-3 17:45 上傳
圖3 倒立擺的模型結(jié)構(gòu)
3.2模型分析與參數(shù)測量建立比較精確的數(shù)學(xué)模型是控制系統(tǒng)設(shè)計的基礎(chǔ). 如圖3所示, 在非慣性系S2 中對擺桿有:
0.png (30.3 KB, 下載次數(shù): 91)
下載附件
2017-6-3 17:46 上傳
…………此處省略內(nèi)容請下載51hei附件查看…………
可知系統(tǒng)是不穩(wěn)定的, 且是完全能控和完全能觀的. 因此可以設(shè)計一個基于狀態(tài)反饋的控制器對系統(tǒng)進行極點配置 , 使得系統(tǒng)在原點附近保持穩(wěn)定. 由于倒立擺裝置中沒有直接測量角速度的器件, 我們采用角度的差分進行近似,在角度測量上, 硬件和軟件部分都采用了濾波手段. 經(jīng)過極點配置設(shè)計, 得到態(tài)反饋矩陣為:
0.png (51.94 KB, 下載次數(shù): 91)
下載附件
2017-6-3 17:48 上傳
由以上可知倒立擺系統(tǒng)是一個不穩(wěn)定但能控能觀系統(tǒng)。
四、電路與程序設(shè)計4.1系統(tǒng)的硬件設(shè)計系統(tǒng)的硬件主要由四大部分組成,即電源部分、主控部分、電機驅(qū)動部分、人機交互部分。各部分電路設(shè)計和功能介紹如下:
4.1.1電源部分
該系統(tǒng)電源部分有2部分組成,分別由一塊7.2V蓄電池和一塊11.1V鋰電池供電。其中一塊鋰電池經(jīng)穩(wěn)壓后為8.5V后為電機驅(qū)動模塊供電;另一塊電池為系統(tǒng)提供2組電源,即5V和3.3V,其中5V用于編碼器、語音模塊等部分的供電。3.3V用于單片機、液晶顯示等部分的供電;其中8.5V和5V電源部分采用采用LM2596開關(guān)電壓調(diào)節(jié)器,其具有可靠的工作性能、較高的工作效率和較強的輸出電流驅(qū)動能力,功耗小等特點,從而為系統(tǒng)穩(wěn)定、可靠地工作提供有力的保障,3.3V電源采用2塊LM1117系列線性穩(wěn)壓器并聯(lián),其具有穩(wěn)定性好,負載響應(yīng)快。輸出紋波小,價格低廉的優(yōu)點。
0.png (239.64 KB, 下載次數(shù): 90)
下載附件
2017-6-3 17:49 上傳
0.png (56.78 KB, 下載次數(shù): 86)
下載附件
2017-6-3 17:49 上傳
4.1.2電機驅(qū)動部分 電機驅(qū)動采用雙BTS7970大功率H橋驅(qū)動,其為高強度電流的半橋電機驅(qū)動芯片。我們利用兩片BTS7970B構(gòu)成一個完整的全橋驅(qū)動,電流最大可達70A,并利用光耦與單片機隔離,有效保護單片機。可以很好實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)、能耗制動。
4.1.3人機交互部分人機交互模塊由TFT彩屏、鍵盤、語音模塊組成,實時顯示播報參數(shù)及數(shù)據(jù)的變化,也方便我們調(diào)節(jié)控制。
0.png (7.44 KB, 下載次數(shù): 126)
下載附件
2017-6-3 17:50 上傳
4.2系統(tǒng)軟件設(shè)計4.2.1系統(tǒng)流程圖
0.png (11.17 KB, 下載次數(shù): 92)
下載附件
2017-6-3 17:51 上傳
4.2.2 擺桿的倒立狀態(tài)檢測擺桿狀態(tài)的檢測,即擺桿角度的檢測是本設(shè)計的重要點,角度大小檢測的精準度直接影響到電機帶動旋轉(zhuǎn)臂的旋轉(zhuǎn),進而影響到擺桿的狀態(tài)。擺桿自由下擺在最下方進行編碼器脈沖輸出零位校準;編碼器為500線,擺桿運動一周,編碼器脈沖輸出計數(shù)為500,即當從最低點運動至最高點時,編碼器輸出脈沖計數(shù)為250,再次運動到最低點時編碼器輸出脈沖計數(shù)為500,由此判斷擺桿當前角度。為了提高精度,通過將編碼器A相和B相4倍頻后,正交解碼,測量步距變?yōu)樵瓉淼?/4,精度提高4倍。如此根據(jù)脈沖計數(shù)值可以判定擺桿擺動方向和擺動度數(shù),進而反饋給單片機,執(zhí)行相關(guān)操作。 程序框圖如下:
…………此處省略內(nèi)容請下載51hei附件查看…………
五 測試方案與測試結(jié)果5.1基本要求(1) 測試方案:擺桿從處于自然下垂狀態(tài)(擺角0°)開始,驅(qū)動電機帶動旋轉(zhuǎn)臂作往復(fù)旋轉(zhuǎn)使擺桿擺動,并盡快使擺角達到或超過-60°~+60°,測量角度并記錄測試結(jié)果。
測試結(jié)果:
表1 擺桿擺動的角度及時間測量 測量次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 偏離角度/°
| 115
| 99
| 115
| 107
| 108
| 122
| 94
| 完成時間/s
| 0.7
| 0.5
| 0.7
| 0.6
| 0.5
| 0.8
| 0.5
| 結(jié)論:達到基本要求(1),擺桿可以快速達到或超過-60°~ +60°,達到題目要求。5.2基本要求(2)測試方案:擺桿從處于自然下垂狀態(tài)(擺角0°)開始,驅(qū)動電機帶動旋
轉(zhuǎn)臂做往復(fù)旋轉(zhuǎn)使擺桿擺動,看是否可以完成圓周運動。
測試結(jié)果:
表2擺桿擺動360度時間測量 測量次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 完成時間/s
| 1.1
| 1.3
| 1.3
| 1.0
| 1.1
| 1.2
| 1.1
|
測試結(jié)果及結(jié)論:目測擺桿開始起擺后迅速可以做圓周運動,并持續(xù)下去,達到基本要求(2)。
5.3基本要求(3)測試方案:當擺桿處于自然下垂狀態(tài)下,外力拉起擺桿至接165°位置,外力撤除時,啟動控制旋轉(zhuǎn)臂,測量擺桿保持倒立狀態(tài)時間,并且測量旋轉(zhuǎn)臂的轉(zhuǎn)動角度。
測試結(jié)果:
表3 擺桿保持倒立時旋轉(zhuǎn)臂的轉(zhuǎn)動角度
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 角度/°
| 12
| 12
| 10
| 8
| 11
| 9
| 11
| 13
| 倒立時間/s
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 結(jié)論:完全達到基本要求(3),擺桿倒立后在很小的角度內(nèi)轉(zhuǎn)動,系統(tǒng)穩(wěn)定。5.4發(fā)揮要求(1)測試方案:從擺桿處于自然下垂狀態(tài)開始,控制旋轉(zhuǎn)臂作往復(fù)旋轉(zhuǎn)運動,盡快使擺桿擺起倒立,保持倒立狀態(tài),并測量擺起的時間。
測試結(jié)果:
表3 擺桿擺起到立起的時間
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 起擺時間/s
| 1.7
| 1.8
| 1.7
| 1.8
| 1.7
| 1.9
| 1.8
| 1.7
| 倒立時間/s
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 長期
| 結(jié)論:擺桿迅速擺起倒立,擺桿擺起后,可長時間倒立下去,并且旋轉(zhuǎn)臂的轉(zhuǎn)動的角度保持在90°內(nèi),達到發(fā)揮要求(1)。
5.5發(fā)揮要求(2)測試方案:在擺桿保持倒立狀態(tài)下,我們施加干擾,即以15cm長細繩栓一只5g砝碼,在擺桿上方將砝碼拉起15°~45°,釋放后用砝碼沿擺桿的切線方向撞擊擺桿上端1~2cm處,觀察擺桿能否繼續(xù)保持倒立狀態(tài)。
測試結(jié)果:
表4砝碼拉起15°時的擺桿的擺動角度
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 角度/°
| 20
| 22
| 25
| 22
| 20
| 19
| 22
| 24
|
表5 砝碼拉起30°時的擺桿的擺動角度
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 角度/°
| 28
| 31
| 30
| 28
| 30
| 32
| 31
| 32
|
表6 砝碼拉起45°時的擺桿的擺動角度
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 角度/°
| 47
| 48
| 42
| 44
| 39
| 45
| 42
| 50
| 結(jié)論:擺桿在有干擾情況下仍能保持直立,在干擾時旋轉(zhuǎn)臂會有不同程度的旋轉(zhuǎn),同時隨著砝碼拉起角度的增大,擺桿轉(zhuǎn)動的角度增大,達到發(fā)揮要求(2)。
5.6發(fā)揮要求(3)測試方案:在擺桿保持倒立狀態(tài)的前提下,旋轉(zhuǎn)臂做圓周運動,看是否能夠單方向轉(zhuǎn)過的角度達到或超過360°。
測試結(jié)果:
表7 擺桿倒立轉(zhuǎn)一周的時間的測量
測試次數(shù)
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 時間/s
| 2.1
| 2.2
| 1.8
| 1.9
| 2.1
| 2.2
| 2.0
| 1.9
| 結(jié)論:達到發(fā)揮要求(3)要求。
六.其他的拓展部分1)該設(shè)計在滿足題目要求的情況下,還對擺桿的穩(wěn)定度實現(xiàn)了更高的控制和優(yōu)化,使擺桿可以很快的達到直立狀態(tài),達到更好的指標。
2)我們采用自制的控制板,添加了了語音模塊,液晶顯示,有良好的人機界面,同時方便測試時觀察。
3)為此我們增添了兩個測試:一為高強度抗干擾測試,即使用50g砝碼,在擺桿上方將砝碼拉起15°~45°,釋放后用砝碼沿擺桿的切線方向撞擊擺桿上端1~2cm處,觀察擺桿能否繼續(xù)保持倒立狀態(tài)。二為快速360°旋轉(zhuǎn)測試,即盡可能快使擺桿倒立旋轉(zhuǎn)N周。
測試結(jié)果:高強度干擾下,擺桿仍能保持直立。力度增加后,擺桿可能會失去倒立平衡,但會迅速恢復(fù)。倒立狀態(tài)下,可以快速進行旋轉(zhuǎn)。
結(jié)論:倒立擺整體性能相當穩(wěn)定。
七、參考文獻【1】從爽,張東軍,單級倒立擺三種控制方法對比研究【J】。系統(tǒng)工程與電子技術(shù),2001,23(1):47-49。
【2】王輝,一類非線性系統(tǒng)的模糊自適應(yīng)控制器設(shè)計【J】。湖南大學(xué)學(xué)報(自然科學(xué)版),2004,31(6)41-45。
【3】馮艷賓,崔紅梅,李鳳,模糊控制理論及其倒立擺中的應(yīng)用【J】。數(shù)學(xué)通報,2003,6:1-3。
【4】黃智偉,全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程【M】,北京:電子工業(yè)出版社,2010。
單片機源程序如下:
- #include "include.h"//電子設(shè)計競賽倒立擺
- s8 iii=1;
- u8 che=1,zhuan=0;
- extern KEY_e KEYX ;
- extern s16 real_L,real_R;
- extern float P=0,D=0,P2,D2,accL,accR;
- extern float I_1,I_2;
- extern u16 bai_flag,textdata1;
- extern s16 angle_bai,speed_ji,speed_bai,bai_speed,angle_ji;
- //電機控制PID
- void motor_control(s16 pwmL,s16 pwmR)
- {
- erR1 = pwmR-speed_ji;
- accR+= I_2*erR1;
- real_R=(s16)(P2*erR1+real_R+D2*(erR1-erR2)+accR);//
- }
- //倒立PID
- void daoli_PID(s16 eagle)
- {
- float P_1,D_1;
- if(eagle<1000)
- erL1=eagle-999;
- else
- erL1=eagle-1000;
- accL+= I_1*erL1;
- if(accL>5000)
- accL=5000;
- if(accL<-5000)
- accL=-5000;
- real_L =(s16)( P_1*erL1 +D_1*speed_bai +real_L+accL);
- }
- 定時器中斷2
- void PIT2_IRQHandler(void)
- {
- angle_bai=FTM2_CNT%2000;//擺桿角度
- if(iii<6)if(angle_bai>850&&angle_bai<1150)bai_flag=1;
-
- if(iii==6)
- {
- if(angle_bai>0&&angle_bai<750)
- bai_flag=1;
- else
- if(angle_bai>1250&&angle_bai<1999)
- bai_flag=2;
- else
- bai_flag=0;
- }
- PIT_Flag_Clear(PIT2); //清中斷標志位
- }
- 定時器中斷3
- void PIT3_IRQHandler(void)
- {
- count_bai++;
- if(count_bai>=5)
- count_bai=0;
- textdata1++;
- if(textdata1>=59999)
- textdata1=0;
- speed_ji=FTM1_CNT;//電機速度
- angle_ji+=speed_ji;
- FTM1_CNT=0;
- spd2=FTM2_CNT;
- speed_bai=spd2-spd1;//擺桿速度
- spd1=spd2;
- if(angle_bai>800&&angle_bai<1300)
- {
- daoli_PID(angle_bai);
- motor_control(0,bai_speed);
- pwm_control(real_L-real_R,0);
-
- }
- PIT_Flag_Clear(PIT3); //清中斷標志位
- }
- //主函數(shù)
- void main()
- {
- LCD_init();
- KEY_init();
- LCD_display_full(BLUE);
- motor_init();
- boma_INIT(6);
- iii=1;
- while(1)
- {
- key_check(); //檢測按鍵狀態(tài)
- if(KEYX==KEY_UP)iii++; //準備開始
- if(KEYX==KEY_DW)iii--; //準備開始
- if(iii==0)iii=7;
- if(iii==8)iii=1;
- for(u8 j=1;j<8;j++)
- {
- if(j==iii)
- {
- LCD_P16x16Str(2,j-1," ",BLACK,BLUE);
- LCD_P16x16Str(7,j-1,"←",BLACK,BLUE);
- }
- else
- {
- LCD_P16x16Str(7,j-1," ",BLACK,BLUE);
- LCD_P16x16Str(2,j-1," ",BLACK,BLUE);
- }
- } //GUI(iii);//界面
- if(KEYX==KEY_START) //確認進入當前選項
- {
- key_check();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
完整論文下載(word格式 可編輯):
設(shè)計報告.doc
(551 KB, 下載次數(shù): 197)
2017-6-3 14:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|