標(biāo)題: 簡(jiǎn)易旋轉(zhuǎn)倒立擺及控制裝置設(shè)計(jì)論文下載 含程序 原理圖等 [打印本頁(yè)]

作者: sfdfjjh    時(shí)間: 2017-6-3 14:49
標(biāo)題: 簡(jiǎn)易旋轉(zhuǎn)倒立擺及控制裝置設(shè)計(jì)論文下載 含程序 原理圖等
摘要
倒立擺控制系統(tǒng)是一個(gè)復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng)。本設(shè)計(jì)在研究倒立擺運(yùn)動(dòng)規(guī)律的基礎(chǔ)上,構(gòu)建其運(yùn)動(dòng)軌跡的數(shù)學(xué)模型,使用MATLAB進(jìn)行仿真分析,在對(duì)倒立擺模型認(rèn)識(shí)以后,使用k60微控制器結(jié)合PID算法給出信號(hào)驅(qū)動(dòng)直流減速電機(jī),進(jìn)而對(duì)倒立擺系統(tǒng)進(jìn)行控制,在倒立的過程中使用編碼器采集擺桿角度,對(duì)擺桿反饋的角度進(jìn)行處理,針對(duì)角度,角速度的方向,電機(jī)運(yùn)行方向進(jìn)行處理,運(yùn)用PD算法調(diào)節(jié)擺桿倒立,PI參數(shù)調(diào)節(jié)電機(jī)速度,通過雙回路PD\PI控制方案實(shí)現(xiàn)了對(duì)旋轉(zhuǎn)臂位置和擺桿偏角的同時(shí)閉環(huán)控制。

目    錄

一、系統(tǒng)方案    1
1.1 主控芯片的論證與選擇    1
1.2 擺桿的角度測(cè)量的論證與選擇    1
1.3 電機(jī)的論證與選擇    1
二、系統(tǒng)結(jié)構(gòu)    2
    2.1機(jī)械結(jié)構(gòu)    2
    2.2測(cè)控電路結(jié)構(gòu)    2
三、理論分析與計(jì)算    3
3.1倒立擺的基本模型    3
    3.2模型分析與參數(shù)測(cè)量    3
    3.3基于狀態(tài)反饋的倒立控制    4
四、電路與程序設(shè)計(jì)    5
    4.1系統(tǒng)的硬件設(shè)計(jì)    5
    4.2系統(tǒng)軟件設(shè)計(jì)    7
五、測(cè)試方案與測(cè)試結(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
七、參考文獻(xiàn)    12
附錄    13

一、系統(tǒng)方案    本系統(tǒng)主要有五大部分組成,即控制部分、電機(jī)部分、傳感器部分、電源部分和人機(jī)交互部分。傳感器采用兩個(gè)光電式旋轉(zhuǎn)編碼器,分別用于測(cè)量擺桿角度、電機(jī)轉(zhuǎn)速。結(jié)合傳感器反饋信息運(yùn)用PID算法將控制信號(hào)傳輸給電機(jī)驅(qū)動(dòng)使電機(jī)運(yùn)行,帶動(dòng)旋轉(zhuǎn)臂轉(zhuǎn)動(dòng),進(jìn)而控制擺桿,形成雙閉環(huán)控制網(wǎng)絡(luò)。
1.1 主控芯片的論證與選擇方案一:采用AT89S52單片機(jī)

優(yōu)點(diǎn):AT89S52是CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。具有低功耗,價(jià)格便宜,控制簡(jiǎn)單等一系列優(yōu)點(diǎn)。

缺點(diǎn):片內(nèi)資源少,沒有集成的正交解碼寄存器,需要外擴(kuò)才能實(shí)現(xiàn),而且難以實(shí)現(xiàn)快速和精準(zhǔn)的反映控制。

方案二:采用飛思卡爾KinetisK60微控制器。

優(yōu)點(diǎn):是一款高性能的32位微控制器,片內(nèi)資源豐富,內(nèi)置PIT定時(shí)器、FTM定時(shí)器,有兩路編碼器AB相正交解碼的功能,時(shí)鐘頻率50MHZ,具有高速的計(jì)運(yùn)算能力。
缺點(diǎn):頻率的提高功耗也隨之增大。
總結(jié):由以上方案分析,為了可以高精度、高速度的進(jìn)行系統(tǒng)控制,同時(shí)由于編碼器使用過程中需要正交解碼功能,AT89S52不滿足以上要求,故本系統(tǒng)選擇方案二,使用飛思卡爾Kinetis K60微控制器。
1.2 擺桿的角度測(cè)量的論證與選擇    方案一:采用光電編碼器。
    優(yōu)點(diǎn):無累計(jì)誤差,精度高、數(shù)字信號(hào)接口。
    缺點(diǎn):價(jià)格偏高。
    方案二:采用傾角傳感器。
    優(yōu)點(diǎn):無累計(jì)誤差。
    缺點(diǎn):被測(cè)物體有其他加速度則無法準(zhǔn)確計(jì)算。
    方案三:  采用角速度傳感器。
    優(yōu)點(diǎn):直接測(cè)出角速度,理論上不受移動(dòng)等其他運(yùn)動(dòng)影響。
    缺點(diǎn):角度由積分產(chǎn)生,累計(jì)誤差可能導(dǎo)致系統(tǒng)不穩(wěn)定。
總結(jié):由以上方案分析,為提高測(cè)量精度,同時(shí)考慮到傳感器安裝的難易程度,所以我們選擇方案一測(cè)量擺桿角度。
1.3 電機(jī)的論證與選擇方案一:采用空心杯直流減速電機(jī)。
    優(yōu)點(diǎn):空心杯電動(dòng)機(jī)屬于直流、永磁、伺服微特電機(jī)?招谋妱(dòng)機(jī)具有杰出的節(jié)能特性、靈敏方便的控制特性和穩(wěn)定的運(yùn)行特性。
缺點(diǎn):輻射產(chǎn)生電磁波干擾,減速箱存在機(jī)械虛位。
方案二:采用步進(jìn)電機(jī)。

優(yōu)點(diǎn):步進(jìn)電機(jī)是純粹的數(shù)字控制電動(dòng)機(jī),它將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰,步進(jìn)電機(jī)屬于開環(huán)控制,累計(jì)誤差小,成本相對(duì)低廉。

缺點(diǎn):步進(jìn)電機(jī)角度分辨率低,且轉(zhuǎn)動(dòng)時(shí)伴隨著強(qiáng)烈的振動(dòng),這對(duì)旋轉(zhuǎn)臂及擺桿的穩(wěn)定性是不利的。
   方案三:采用伺服電機(jī)。
   優(yōu)點(diǎn):伺服電機(jī)是一種補(bǔ)助馬達(dá)間接變速裝置。其用作執(zhí)行元件,把所收到的電信號(hào)轉(zhuǎn)換成電動(dòng)機(jī)軸上的角位移或角速度輸出,可使控制速度,位置精度非常準(zhǔn)確。
    缺點(diǎn):減速箱存在機(jī)械虛位。
    總結(jié):由以上方案分析,考慮到系統(tǒng)的穩(wěn)定性,性價(jià)比等因素,我們選擇方案一,采用空心杯減速電機(jī)。該電機(jī)自帶精密行星減速箱和光電式編碼器,同時(shí)通過對(duì)減速箱的改造可以減少機(jī)械虛位的影響,完全可以滿足題目相關(guān)要求。
二、 系統(tǒng)結(jié)構(gòu)
2.1機(jī)械結(jié)構(gòu)機(jī)械結(jié)構(gòu)的穩(wěn)定性直接影響系統(tǒng)的穩(wěn)定性。故該倒立擺采用鋼底座,穩(wěn)固性能好,支架和擺桿采用鋁合金打造,具有密度小、強(qiáng)度高、易加工等特點(diǎn)。機(jī)械結(jié)構(gòu)圖如下:

三、理論分析與計(jì)算3.1倒立擺的基本模型
    旋轉(zhuǎn)臂由轉(zhuǎn)軸處的直流減速電機(jī)驅(qū)動(dòng), 可繞轉(zhuǎn)軸在垂直于電機(jī)轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動(dòng). 旋臂和擺桿之間由關(guān)節(jié)相連, 當(dāng)旋臂轉(zhuǎn)動(dòng)時(shí), 擺桿可繞關(guān)節(jié)在垂直于關(guān)節(jié)轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動(dòng),根據(jù)一定的控制算法, 計(jì)算出控制規(guī)律, 并轉(zhuǎn)化為電壓信號(hào)提供給驅(qū)動(dòng)電路, 以驅(qū)動(dòng)直流減速電機(jī)的運(yùn)動(dòng), 通過電機(jī)帶動(dòng)旋轉(zhuǎn)臂的于關(guān)節(jié)轉(zhuǎn)軸的鉛直平面內(nèi)轉(zhuǎn)動(dòng),進(jìn)而通過電機(jī)帶動(dòng)旋轉(zhuǎn)臂的轉(zhuǎn)動(dòng)來控制擺桿的運(yùn)動(dòng)

     圖3 倒立擺的模型結(jié)構(gòu)


3.2模型分析與參數(shù)測(cè)量
建立比較精確的數(shù)學(xué)模型是控制系統(tǒng)設(shè)計(jì)的基礎(chǔ). 如圖3所示, 在非慣性系S2 中對(duì)擺桿有:


…………此處省略內(nèi)容請(qǐng)下載51hei附件查看…………

可知系統(tǒng)是不穩(wěn)定的, 且是完全能控和完全能觀的. 因此可以設(shè)計(jì)一個(gè)基于狀態(tài)反饋的控制器對(duì)系統(tǒng)進(jìn)行極點(diǎn)配置 , 使得系統(tǒng)在原點(diǎn)附近保持穩(wěn)定. 由于倒立擺裝置中沒有直接測(cè)量角速度的器件, 我們采用角度的差分進(jìn)行近似,在角度測(cè)量上, 硬件和軟件部分都采用了濾波手段.
經(jīng)過極點(diǎn)配置設(shè)計(jì), 得到態(tài)反饋矩陣為:

由以上可知倒立擺系統(tǒng)是一個(gè)不穩(wěn)定但能控能觀系統(tǒng)。

四、電路與程序設(shè)計(jì)4.1系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的硬件主要由四大部分組成,即電源部分、主控部分、電機(jī)驅(qū)動(dòng)部分、人機(jī)交互部分。各部分電路設(shè)計(jì)和功能介紹如下:
4.1.1電源部分
該系統(tǒng)電源部分有2部分組成,分別由一塊7.2V蓄電池和一塊11.1V鋰電池供電。其中一塊鋰電池經(jīng)穩(wěn)壓后為8.5V后為電機(jī)驅(qū)動(dòng)模塊供電;另一塊電池為系統(tǒng)提供2組電源,即5V和3.3V,其中5V用于編碼器、語(yǔ)音模塊等部分的供電。3.3V用于單片機(jī)、液晶顯示等部分的供電;其中8.5V和5V電源部分采用采用LM2596開關(guān)電壓調(diào)節(jié)器,其具有可靠的工作性能、較高的工作效率和較強(qiáng)的輸出電流驅(qū)動(dòng)能力,功耗小等特點(diǎn),從而為系統(tǒng)穩(wěn)定、可靠地工作提供有力的保障,3.3V電源采用2塊LM1117系列線性穩(wěn)壓器并聯(lián),其具有穩(wěn)定性好,負(fù)載響應(yīng)快。輸出紋波小,價(jià)格低廉的優(yōu)點(diǎn)。


4.1.2電機(jī)驅(qū)動(dòng)部分
    電機(jī)驅(qū)動(dòng)采用雙BTS7970大功率H橋驅(qū)動(dòng),其為高強(qiáng)度電流的半橋電機(jī)驅(qū)動(dòng)芯片。我們利用兩片BTS7970B構(gòu)成一個(gè)完整的全橋驅(qū)動(dòng),電流最大可達(dá)70A,并利用光耦與單片機(jī)隔離,有效保護(hù)單片機(jī)。可以很好實(shí)現(xiàn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、能耗制動(dòng)。

4.1.3人機(jī)交互部分
人機(jī)交互模塊由TFT彩屏、鍵盤、語(yǔ)音模塊組成,實(shí)時(shí)顯示播報(bào)參數(shù)及數(shù)據(jù)的變化,也方便我們調(diào)節(jié)控制。

4.2系統(tǒng)軟件設(shè)計(jì)
  
        
開始
   
   
   
4.2.1系統(tǒng)流程圖


4.2.2 擺桿的倒立狀態(tài)檢測(cè)
擺桿狀態(tài)的檢測(cè),即擺桿角度的檢測(cè)是本設(shè)計(jì)的重要點(diǎn),角度大小檢測(cè)的精準(zhǔn)度直接影響到電機(jī)帶動(dòng)旋轉(zhuǎn)臂的旋轉(zhuǎn),進(jìn)而影響到擺桿的狀態(tài)。擺桿自由下擺在最下方進(jìn)行編碼器脈沖輸出零位校準(zhǔn);編碼器為500線,擺桿運(yùn)動(dòng)一周,編碼器脈沖輸出計(jì)數(shù)為500,即當(dāng)從最低點(diǎn)運(yùn)動(dòng)至最高點(diǎn)時(shí),編碼器輸出脈沖計(jì)數(shù)為250,再次運(yùn)動(dòng)到最低點(diǎn)時(shí)編碼器輸出脈沖計(jì)數(shù)為500,由此判斷擺桿當(dāng)前角度。為了提高精度,通過將編碼器A相和B相4倍頻后,正交解碼,測(cè)量步距變?yōu)樵瓉淼?/4,精度提高4倍。如此根據(jù)脈沖計(jì)數(shù)值可以判定擺桿擺動(dòng)方向和擺動(dòng)度數(shù),進(jìn)而反饋給單片機(jī),執(zhí)行相關(guān)操作。
程序框圖如下:


…………此處省略內(nèi)容請(qǐng)下載51hei附件查看…………

五 測(cè)試方案與測(cè)試結(jié)果5.1基本要求(1)    測(cè)試方案:擺桿從處于自然下垂?fàn)顟B(tài)(擺角0°)開始,驅(qū)動(dòng)電機(jī)帶動(dòng)旋轉(zhuǎn)臂作往復(fù)旋轉(zhuǎn)使擺桿擺動(dòng),并盡快使擺角達(dá)到或超過-60°~+60°測(cè)量角度并記錄測(cè)試結(jié)果。
    測(cè)試結(jié)果:
1 擺桿擺動(dòng)的角度及時(shí)間測(cè)量
  測(cè)量次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  偏離角度/°
  
  115
  
  99
  
  115
  
  107
  
  108
  
  122
  
  94
  
  完成時(shí)間/s
  
  0.7
  
  0.5
  
  0.7
  
  0.6
  
  0.5
  
  0.8
  
  0.5
  
    結(jié)論:達(dá)到基本要求(1),擺桿可以快速達(dá)到或超過-60°~ +60°,達(dá)到題目要求。5.2基本要求(2)測(cè)試方案:擺桿從處于自然下垂?fàn)顟B(tài)(擺角0°)開始,驅(qū)動(dòng)電機(jī)帶動(dòng)旋
轉(zhuǎn)臂做往復(fù)旋轉(zhuǎn)使擺桿擺動(dòng),看是否可以完成圓周運(yùn)動(dòng)。
    測(cè)試結(jié)果:
2擺桿擺動(dòng)360度時(shí)間測(cè)量
  測(cè)量次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  完成時(shí)間/s
  
  1.1
  
  1.3
  
  1.3
  
  1.0
  
  1.1
  
  1.2
  
  1.1
  

測(cè)試結(jié)果及結(jié)論:目測(cè)擺桿開始起擺后迅速可以做圓周運(yùn)動(dòng),并持續(xù)下去,達(dá)到基本要求(2)。
5.3基本要求(3)測(cè)試方案:當(dāng)擺桿處于自然下垂?fàn)顟B(tài)下,外力拉起擺桿至接165°位置,外力撤除時(shí),啟動(dòng)控制旋轉(zhuǎn)臂,測(cè)量擺桿保持倒立狀態(tài)時(shí)間,并且測(cè)量旋轉(zhuǎn)臂的轉(zhuǎn)動(dòng)角度。
   測(cè)試結(jié)果:
3  擺桿保持倒立時(shí)旋轉(zhuǎn)臂的轉(zhuǎn)動(dòng)角度
  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  角度/°
  
  12
  
  12
  
  10
  
  8
  
  11
  
  9
  
  11
  
  13
  
  倒立時(shí)間/s
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
   結(jié)論:完全達(dá)到基本要求(3),擺桿倒立后在很小的角度內(nèi)轉(zhuǎn)動(dòng),系統(tǒng)穩(wěn)定。5.4發(fā)揮要求(1)測(cè)試方案:從擺桿處于自然下垂?fàn)顟B(tài)開始,控制旋轉(zhuǎn)臂作往復(fù)旋轉(zhuǎn)運(yùn)動(dòng),盡快使擺桿擺起倒立,保持倒立狀態(tài),并測(cè)量擺起的時(shí)間。
測(cè)試結(jié)果:
                3  擺桿擺起到立起的時(shí)間
  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  起擺時(shí)間/s
  
  1.7
  
  1.8
  
  1.7
  
  1.8
  
  1.7
  
  1.9
  
  1.8
  
  1.7
  
  倒立時(shí)間/s
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
  長(zhǎng)期
  
    結(jié)論:擺桿迅速擺起倒立,擺桿擺起后,可長(zhǎng)時(shí)間倒立下去,并且旋轉(zhuǎn)臂的轉(zhuǎn)動(dòng)的角度保持在90°內(nèi),達(dá)到發(fā)揮要求(1)。
5.5發(fā)揮要求(2)測(cè)試方案:在擺桿保持倒立狀態(tài)下,我們施加干擾,即以15cm長(zhǎng)細(xì)繩栓一只5g砝碼,在擺桿上方將砝碼拉起15°~45°,釋放后用砝碼沿?cái)[桿的切線方向撞擊擺桿上端1~2cm處,觀察擺桿能否繼續(xù)保持倒立狀態(tài)。
測(cè)試結(jié)果:

表4砝碼拉起15°時(shí)的擺桿的擺動(dòng)角度


  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  角度/°
  
  20
  
  22
  
  25
  
  22
  
  20
  
  19
  
  22
  
  24
  

5   砝碼拉起30°時(shí)的擺桿的擺動(dòng)角度

  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  角度/°
  
  28
  
  31
  
  30
  
  28
  
  30
  
  32
  
  31
  
  32
  

6   砝碼拉起45°時(shí)的擺桿的擺動(dòng)角度

  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  角度/°
  
  47
  
  48
  
  42
  
  44
  
  39
  
  45
  
  42
  
  50
  
     結(jié)論:擺桿在有干擾情況下仍能保持直立,在干擾時(shí)旋轉(zhuǎn)臂會(huì)有不同程度的旋轉(zhuǎn),同時(shí)隨著砝碼拉起角度的增大,擺桿轉(zhuǎn)動(dòng)的角度增大,達(dá)到發(fā)揮要求(2)。
5.6發(fā)揮要求(3測(cè)試方案:在擺桿保持倒立狀態(tài)的前提下,旋轉(zhuǎn)臂做圓周運(yùn)動(dòng),看是否能夠單方向轉(zhuǎn)過的角度達(dá)到或超過360°。
測(cè)試結(jié)果:
7  擺桿倒立轉(zhuǎn)一周的時(shí)間的測(cè)量

  測(cè)試次數(shù)
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  時(shí)間/s
  
  2.1
  
  2.2
  
  1.8
  
  1.9
  
  2.1
  
  2.2
  
  2.0
  
  1.9
  
結(jié)論:達(dá)到發(fā)揮要求(3)要求。
六.其他的拓展部分1)該設(shè)計(jì)在滿足題目要求的情況下,還對(duì)擺桿的穩(wěn)定度實(shí)現(xiàn)了更高的控制和優(yōu)化,使擺桿可以很快的達(dá)到直立狀態(tài),達(dá)到更好的指標(biāo)。
2)我們采用自制的控制板,添加了了語(yǔ)音模塊,液晶顯示,有良好的人機(jī)界面,同時(shí)方便測(cè)試時(shí)觀察。
3為此我們?cè)鎏砹藘蓚(gè)測(cè)試:一為高強(qiáng)度抗干擾測(cè)試,即使用50g砝碼,在擺桿上方將砝碼拉起15°~45°,釋放后用砝碼沿?cái)[桿的切線方向撞擊擺桿上端1~2cm處,觀察擺桿能否繼續(xù)保持倒立狀態(tài)。二為快速360°旋轉(zhuǎn)測(cè)試,即盡可能快使擺桿倒立旋轉(zhuǎn)N周。
測(cè)試結(jié)果:高強(qiáng)度干擾下,擺桿仍能保持直立。力度增加后,擺桿可能會(huì)失去倒立平衡,但會(huì)迅速恢復(fù)。倒立狀態(tài)下,可以快速進(jìn)行旋轉(zhuǎn)。
    結(jié)論:倒立擺整體性能相當(dāng)穩(wěn)定。
七、參考文獻(xiàn)1】從爽,張東軍,單級(jí)倒立擺三種控制方法對(duì)比研究【J】。系統(tǒng)工程與電子技術(shù),2001,23(1):47-49。
【2】王輝,一類非線性系統(tǒng)的模糊自適應(yīng)控制器設(shè)計(jì)【J】。湖南大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,31(6)41-45。
【3】馮艷賓,崔紅梅,李鳳,模糊控制理論及其倒立擺中的應(yīng)用【J】。數(shù)學(xué)通報(bào),2003,6:1-3。
4】黃智偉,全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程【M】,北京:電子工業(yè)出版社,2010。

單片機(jī)源程序如下:
  1. #include "include.h"//電子設(shè)計(jì)競(jìng)賽倒立擺
  2. s8 iii=1;
  3. u8 che=1,zhuan=0;
  4. extern KEY_e KEYX ;
  5. extern s16 real_L,real_R;
  6. extern float P=0,D=0,P2,D2,accL,accR;
  7. extern float I_1,I_2;
  8. extern u16 bai_flag,textdata1;
  9. extern s16 angle_bai,speed_ji,speed_bai,bai_speed,angle_ji;

  10. //電機(jī)控制PID
  11. void motor_control(s16 pwmL,s16 pwmR)
  12. {
  13.     erR1 = pwmR-speed_ji;
  14.     accR+= I_2*erR1;
  15.     real_R=(s16)(P2*erR1+real_R+D2*(erR1-erR2)+accR);//
  16. }
  17. //倒立PID
  18. void daoli_PID(s16 eagle)
  19. {
  20.     float P_1,D_1;
  21.     if(eagle<1000)
  22.         erL1=eagle-999;
  23.     else
  24.         erL1=eagle-1000;
  25.     accL+= I_1*erL1;
  26.     if(accL>5000)
  27.         accL=5000;
  28.     if(accL<-5000)
  29.         accL=-5000;
  30.     real_L =(s16)( P_1*erL1 +D_1*speed_bai +real_L+accL);
  31. }
  32. 定時(shí)器中斷2
  33. void PIT2_IRQHandler(void)
  34. {   
  35.     angle_bai=FTM2_CNT%2000;//擺桿角度
  36.     if(iii<6)if(angle_bai>850&&angle_bai<1150)bai_flag=1;
  37.    
  38.     if(iii==6)
  39.     {
  40.         if(angle_bai>0&&angle_bai<750)
  41.             bai_flag=1;
  42.         else
  43.         if(angle_bai>1250&&angle_bai<1999)
  44.             bai_flag=2;
  45.         else
  46.             bai_flag=0;
  47.     }      
  48.     PIT_Flag_Clear(PIT2);       //清中斷標(biāo)志位
  49. }
  50. 定時(shí)器中斷3
  51. void PIT3_IRQHandler(void)
  52. {
  53.     count_bai++;
  54.     if(count_bai>=5)
  55.     count_bai=0;
  56.     textdata1++;
  57.     if(textdata1>=59999)
  58.         textdata1=0;
  59.     speed_ji=FTM1_CNT;//電機(jī)速度
  60.     angle_ji+=speed_ji;
  61.     FTM1_CNT=0;   
  62.     spd2=FTM2_CNT;
  63.     speed_bai=spd2-spd1;//擺桿速度
  64.     spd1=spd2;
  65.     if(angle_bai>800&&angle_bai<1300)
  66.     {   
  67.         daoli_PID(angle_bai);      
  68.         motor_control(0,bai_speed);
  69.         pwm_control(real_L-real_R,0);
  70.             
  71.     }
  72.     PIT_Flag_Clear(PIT3);           //清中斷標(biāo)志位
  73. }
  74. //主函數(shù)
  75. void main()
  76. {
  77.     LCD_init();
  78.     KEY_init();
  79.     LCD_display_full(BLUE);   
  80.     motor_init();
  81.     boma_INIT(6);
  82.     iii=1;
  83.     while(1)
  84.     {   
  85.         key_check();            //檢測(cè)按鍵狀態(tài)        
  86.         if(KEYX==KEY_UP)iii++;     //準(zhǔn)備開始
  87.         if(KEYX==KEY_DW)iii--;     //準(zhǔn)備開始
  88.         if(iii==0)iii=7;
  89.         if(iii==8)iii=1;
  90.         for(u8 j=1;j<8;j++)
  91.         {
  92.             if(j==iii)
  93.             {
  94.                 LCD_P16x16Str(2,j-1," ",BLACK,BLUE);
  95.                 LCD_P16x16Str(7,j-1,"←",BLACK,BLUE);
  96.             }
  97.             else
  98.             {
  99.                 LCD_P16x16Str(7,j-1," ",BLACK,BLUE);
  100.                 LCD_P16x16Str(2,j-1," ",BLACK,BLUE);
  101.             }
  102.         }        //GUI(iii);//界面
  103.         if(KEYX==KEY_START)     //確認(rèn)進(jìn)入當(dāng)前選項(xiàng)
  104.         {
  105.             key_check();
  106. ……………………

  107. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

完整論文下載(word格式 可編輯):
設(shè)計(jì)報(bào)告.doc (551 KB, 下載次數(shù): 197)




作者: admin    時(shí)間: 2017-6-3 17:55
好資料,51黑有你更精彩!!!
作者: asdfadfa    時(shí)間: 2018-3-28 21:09
好資料,51黑有你更精彩!!!
作者: a472849326    時(shí)間: 2018-3-29 13:08
好資料
作者: cbj921    時(shí)間: 2018-5-22 23:11
需要得資料,急需
作者: 520lzz    時(shí)間: 2018-12-29 17:49
最近在一直學(xué)習(xí)倒立擺相關(guān)內(nèi)容,這個(gè)有很大的幫助,多謝分享
作者: LANDALF    時(shí)間: 2019-2-18 13:23
APPRECITED IT
作者: dddgm    時(shí)間: 2019-3-4 14:28
學(xué)習(xí)學(xué)習(xí)
作者: 6666大飛機(jī)    時(shí)間: 2019-5-8 16:48
樓主有沒有程序的源碼,有償
作者: 804182780    時(shí)間: 2019-5-14 17:10
是一份好的資料。
作者: Qin_Sir    時(shí)間: 2019-7-7 10:51
感謝分享
作者: 五尺六寸    時(shí)間: 2020-1-30 23:56
樓主 MATLAB仿真怎么弄
作者: 836329106    時(shí)間: 2020-2-1 21:25
想問一下 編碼器的線與轉(zhuǎn)軸如何處理的?





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1