第一篇:線性系統(tǒng)倒立擺實驗
直線倒立擺控制及一級正擺位移和角度控制
一、實驗?zāi)康?/p>
(1)在Matlab Simulink環(huán)境下實現(xiàn)控制伺服電機;(2)完成直線倒立擺建模、仿真與分析;
(3)通過控制器設(shè)計使倒立擺系統(tǒng)穩(wěn)定運行(擺角保持零度附近):
二、實驗內(nèi)容及要求
(1)狀態(tài)空間極點配置控制實驗(一組極點為書上指定,任選另一組,但保證控制效果要好于前者)具體記錄要求:在穩(wěn)定后(先截一張圖),疊加一擾動(僅角度擾動),記錄消除擾動的過程(再截一張圖),同時記錄你所選擇的期望極點組。
(2)線性二次最優(yōu)控制LQR 控制實驗(R,Q選擇為書上指定,任選另一組,但保證控制效果要好于前者)具體記錄要求:在穩(wěn)定后(先截一張圖),疊加一擾動(僅角度擾動),記錄消除擾動的過程(再截一張圖),同時記錄你所選擇的R,Q取值。(3)一級正擺位移和角度控制
借助于正擺實驗平臺,構(gòu)思、設(shè)計控制策略和控制算法,并編程實現(xiàn),通過實驗設(shè)備將物體快速、準(zhǔn)確地運輸?shù)街付ǖ奈恢?,且在吊運的整個過程(起吊,運輸,到達目的地)保持較小的擺動角。要求:系統(tǒng)啟動后,在當(dāng)前位置給正擺施加一角度擾動,當(dāng)平衡(擺角為零)后,讓小車直線運行30厘米,并快速保證平衡(擺角為零)。
三、實驗過程
1.實驗方法
(1)Matlab Simulink仿真環(huán)境下精確控制電機
在MATLAB Simulink仿真環(huán)境中,建立模型,然后進行仿真并分析結(jié)果。(2)直線倒立擺建模、仿真與分析
利用牛頓力學(xué)進行受力分析,然后建立直線一級倒立擺系統(tǒng)的數(shù)學(xué)模型;進行仿真分析。(3)狀態(tài)空間極點配置控制實驗
進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的“Poles Control M File1”。
圖1 直線一級倒立擺狀態(tài)空間極點配置實時控制模塊(程序)
(4)線性二次最優(yōu)控制LQR 控制實驗
打開直線一級倒立擺 LQR 實時控制模塊,(進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQRExperiments”中的“LQR Control Demo”)。
圖2 直線一級倒立擺 LQR 控制實時控制模塊(程序)
(5)一級正擺位移和角度控制
(進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage PendulumExperiment LQR Control Experiments”中的“LQR Control Simulink”)
圖3 直線一級順擺 LQR 實時控制模塊(程序)
2.實驗裝置
觀察下圖我們我們可知直線單級倒立擺控制系統(tǒng)硬件包括計算機、I/O接口設(shè)備、伺服電機系統(tǒng)、倒立擺本體和光電碼盤反饋測量元件等幾大部件,它們正好組成了一個閉環(huán)系統(tǒng)。
圖4 一級倒立擺實驗硬件結(jié)構(gòu)圖
對于倒立擺本體而言,可以根據(jù)光電碼盤的反饋通過換算獲得小車的位移,小車的速度信號可以通過差分法得到。擺桿的角度由光電碼盤檢測并直接反饋到I/O設(shè)備,速度信號可以通過差分法得到。計算機從I/O設(shè)備中實時讀取數(shù)據(jù),確定控制策略(實際上是電機的輸出力矩),并發(fā)送給I/O設(shè)備,I/O設(shè)備產(chǎn)生相應(yīng)的控制量,交與伺服驅(qū)動器處理,然后使電機轉(zhuǎn)動,帶動小車運動,保持?jǐn)[桿平衡。
圖5是一個經(jīng)典的倒立擺裝置圖形。小車由6V的直流電機通過齒輪和齒條機構(gòu)來驅(qū)動。小車可以沿導(dǎo)軌做往復(fù)運動。小車位移通過一個額外的與電機齒輪嚙合的齒輪測得。小車上面通過軸關(guān)節(jié)安裝一個擺桿,擺桿可以繞軸做旋轉(zhuǎn)運動。系統(tǒng)的參數(shù)可以改變以使用戶能夠研究運動特性變化的影響,同時結(jié)合系統(tǒng)詳盡的參數(shù)說明和建模過程,我們能夠方便地設(shè)計自己的控制系統(tǒng)。
圖5 一級倒立擺實驗裝置圖
上面的倒立擺控制實驗儀器,包括:擺桿機構(gòu)、滑塊導(dǎo)軌機構(gòu)基座,其特征在于:其蝸桿通過軸承固定于基座上,與之嚙合的渦輪扇的軸通過軸承固定于動座下邊,大皮帶輪軸一端聯(lián)接電機,另一端電位計由支座固定于動座上并電機共軸,大皮帶輪與2個小皮帶輪通過皮帶連結(jié),并通過軸承固定于動座之上;滑塊固定聯(lián)接于皮帶輪之間的皮帶上,同時滑塊與動座固定的導(dǎo)軌動配合;擺桿機構(gòu)通過下擺支座與滑塊絞接;控制箱連電位計,電機。
四、實驗結(jié)果
(1)狀態(tài)空間極點配置控制實驗 K=-34.8233-17.4150
69.4100
12.4717
我們首先打開電源,輸入一組實驗指導(dǎo)書上指定的極點-10,-10,?2?23.2,?2?23.2 后得到如下提所示的圖。
圖6 直線一級倒立擺參數(shù)修改前穩(wěn)定時的仿真結(jié)果圖
我們選擇的一組期望的閉環(huán)極點是:μ1=-8,μ2=-8,μ3=-2+2*sqrt(3)*i,μ4=-2-2*sqrt(3)*i得到的反饋增益陣為:K=[-34.8299,-17.4150,69.4100,12.4717]
圖7 直線一級倒立擺參數(shù)修改后擾動時的仿真結(jié)果圖
添加一擾動后,系統(tǒng)的輸出圖像如下圖所示,該擾動在0.5秒時加到系統(tǒng)中,上升時間為Tr=2s,最大超調(diào)量為0.635%,系統(tǒng)在4.5秒后回到最大誤差的5%范圍內(nèi),所以系統(tǒng)調(diào)節(jié)時間Ts=4s。
系統(tǒng)穩(wěn)定時的輸出圖像如下圖所示,系統(tǒng)穩(wěn)定時的輸出圖像如下圖所示,從圖中可以看出此時系統(tǒng)的位置Pos穩(wěn)態(tài)誤差為0.06,角度Angle穩(wěn)態(tài)誤差為-3.16。
添加一擾動后,系統(tǒng)的輸出圖像如下圖所示,該擾動在0.5秒時加到系統(tǒng)中,上升時間為Tr=2s,最大超調(diào)量為0.633%,系統(tǒng)在4.5秒后回到最大誤差的5%范圍內(nèi),所以系統(tǒng)調(diào)節(jié)時間Ts=4s。
實驗提高:
1.實驗?zāi)康?/p>
系統(tǒng)啟動后,在當(dāng)前位置給正擺施加一角度擾動,當(dāng)平衡(擺角近似為零,需要有程序自動判斷,不能只用停止若干秒)后,讓小車直線運行40厘米,并快速保證平衡(擺角為零).2.實驗原理
為了實現(xiàn)上述實驗?zāi)康?,我們使用LQR控制器,對其進行配置Q11=1500,Q33=700,R=5。K=17.3205,得到K=17.3205 8.6802-11.5153-0.5016,因為在上述過程中要求指定位置的快速穩(wěn)定,并且在移動過程要保持最小角。用一個SWITCH開關(guān)來控制選擇輸入位置,具體的設(shè)計圖如下圖所示:
3.實驗結(jié)果
實驗結(jié)果如下圖所示
運行1.5秒后,讓最大值為0.4的斜坡信號接入,得到Qmax=17.1°,小車能很快的移到指定位置。(3)實驗結(jié)果分析
極點配置的實驗,輸入?yún)?shù)后從起擺到穩(wěn)定時間適中,穩(wěn)態(tài)后震蕩比LQR大,但振蕩頻率要小。對于LQR控制實驗的結(jié)果與預(yù)期基本相符,當(dāng)我們輸入更大參數(shù)時,擺桿起擺后到達平衡所需時間會變短,但是左右位移會變大,穩(wěn)定后的擺角震蕩的幅度會變小,這些變化與我們對實驗的實驗預(yù)期較吻合,這是因為Q是誤差的權(quán)矩陣,Q增大證明指標(biāo)更看重誤差,于是會用相對大的能量來使靜態(tài)誤差更快的減小,于是過渡時間變小,超調(diào)變大,穩(wěn)態(tài)誤差變小。對于一級正擺位移和角度控制實驗,我們小組提出了多種方法,最終選擇了如上圖所示的方法,基本實現(xiàn)了要求,選擇角度變化最大值越小,則穩(wěn)定所需要的時間就越大,經(jīng)過多次試驗,我們選擇了如上圖所示的一組參數(shù)。
第二篇:倒立擺課程設(shè)計
西北民族大學(xué)2012級自動化3班鐘小龍
摘 要
倒立擺系統(tǒng)作為一個具有絕對不穩(wěn)定、高階次、多變量、強禍合 的典型的非線性系統(tǒng),是檢驗新的控制理論和方法的理想模型,所以 本文選擇倒立擺系統(tǒng)作為研究對象具有重要的理論意義和應(yīng)用價值。相對于其他研究倒立擺系統(tǒng)的控制方法,Backstepping方法最大的優(yōu)點是不必對’系統(tǒng)進行線性化,可以直接對系統(tǒng)進行遞推性的控制器設(shè)計,保留了被控對象中有用的非線性項,使得控制設(shè)計更接近實際情況,而且所設(shè)計的控制器具有很強的魯棒性。
本文主要利用Backstepping方法設(shè)計了直線型一級倒立擺系統(tǒng)控制器并基于MATLAB/Simulink對系統(tǒng)進行了離線仿真。本文所作的主要工作或要達到的主要目的是:(一)建立直線型一級倒立擺系統(tǒng)的數(shù)學(xué)模型,并利用Backstepping方法設(shè)計了該倒立擺系統(tǒng)的控制器,然后對閉環(huán)系統(tǒng)進行了數(shù)值仿真并與其他方法進行了數(shù)值仿真分析比較。與當(dāng)前的倒立擺研究成果相比,具有研究方法新穎、控制效果好的特點。
(二)本文利用所設(shè)計的非線性控制器在MATLAB/Simulink環(huán)境下對系統(tǒng)進行了離線仿真分析,并與固高公司提供的算法進行了仿真效果比較。
關(guān)鍵詞:倒立擺系統(tǒng),Backstepping, MATLAB/Simulink,實時控制
西北民族大學(xué)2012級自動化3班鐘小龍
目 錄
1.倒立擺系統(tǒng)的簡介........................................1 1.1倒立擺系統(tǒng)的研究背景..........................................1 1.2倒立擺系統(tǒng)的研究歷史、現(xiàn)狀及發(fā)展趨勢..........................2 1.3倒立擺的主要控制方法..........................................4 2.一級倒立擺數(shù)學(xué)模型......................................6 2.1一級倒立擺系統(tǒng)的組成..........................................6 2.2一級倒立擺系統(tǒng)數(shù)學(xué)模型的建立..................................7 3.系統(tǒng)控制器的設(shè)計和閉環(huán)系統(tǒng)的數(shù)值仿真....................9 4.直線型一級倒立擺系統(tǒng)的Simulink模型和離線仿真............12 4.1基于線性控制器對線性系統(tǒng)的離線仿真..........................12 4.2基于線性控制器對非線性系統(tǒng)的離線仿真........................15 4.3基于非線性控制器對非線性系統(tǒng)的離線仿真......................16
5.模型的優(yōu)點.............................................18 6.結(jié)論和展望.............................................19 7.參考文獻...............................................20
西北民族大學(xué)2012級自動化3班鐘小龍
1.倒立擺系統(tǒng)的簡介
1.1倒立擺系統(tǒng)的研究背景
在控制理論的研究及其應(yīng)用的發(fā)展過程中,當(dāng)一種新的理論產(chǎn)生,它的正確性及實際應(yīng)用中的可行性都需要一個按其理論設(shè)計的控制器去控制一個典型對象來驗證,而倒立擺就是這樣一個被控制對象。倒立擺是一個多變量、快速、非線性、強藕合、不穩(wěn)定的系統(tǒng),通過對它引入一個適當(dāng)?shù)目刂品椒ㄊ怪蔀橐粋€穩(wěn)定系統(tǒng),來檢驗控制方法對不穩(wěn)定性、非線性和快速性系統(tǒng)的處理能力,而且在倒立擺的控制過程中,它能有效地反映諸如可鎮(zhèn)定性、魯棒性、隨動性以及跟蹤性能等許多自動控制領(lǐng)域中的關(guān)鍵問題。因此受到世界各國許多科學(xué)家的重視,從而用不同的控制方法控制不同類型的倒立擺,成為最具有挑戰(zhàn)性的課題之一。對倒立擺系統(tǒng)的研究不僅僅在其結(jié)構(gòu)簡單、原理清晰、易于實現(xiàn)等特點,而且作為典型的多變量系統(tǒng),可采用實驗來研究控制理論中許多方面的問題。諸如模型的建立、狀態(tài)反饋、觀測器理論、快速控制理論以及濾波理論等都可以用于這類系統(tǒng)。因此,倒立擺實驗?zāi)P蛯ΜF(xiàn)代控制理論的教學(xué)來說,自然成為一個相當(dāng)理想的實驗?zāi)P?,而且也可以作為?shù)控技術(shù)應(yīng)用的典型的對象;另一方面對系統(tǒng)的研究也比較有實用價值,從日常生活中所見到的任何重心在上、支點在下的控制問題,到空間飛行器和各類伺服云臺的穩(wěn)定,都和倒立擺的控制有很大的相似性,故對其的穩(wěn)定控制在實際中有很多應(yīng)用,如海上鉆井平臺的穩(wěn)定控制、衛(wèi)星發(fā)射架的穩(wěn)定控制、火箭姿態(tài)控制、飛機安全著陸、機器人雙足行走機構(gòu)、化工過程控制等都屬這類問題。因此對倒立擺機理的研究具有重要的理論和實際意義,成為控制理論中經(jīng)久不衰的研究課題。
除此之外,由于倒立擺系統(tǒng)的高階次、不穩(wěn)定、多變量、非線性、強耦合等特性,許多現(xiàn)代控制理論的研究人員一直將它們視為研究對象,用它們來描述線性控制領(lǐng)域中不穩(wěn)定系統(tǒng)的穩(wěn)定性和非線性控制領(lǐng)域中的變結(jié)構(gòu)控制、無源性控制、自由行走、非線性觀測器、摩擦補償、非線性模型降階等控制思想,并且不斷從中發(fā)掘出新的控制理論和控制方法,相關(guān)的成果在航空航天和機器人學(xué)方面獲得了廣闊的應(yīng)用??梢姡瑢Φ沽[系統(tǒng)進行研究既具有意義深遠的理論價值,又具有重要的工程背景和實際意義。
倒立擺系統(tǒng)有著很強的工程背景,主要體現(xiàn)在:(l)機器人的站立與行走類似于雙倒立擺系統(tǒng),盡管第一臺機器人在美國問世至今已有三十年的歷史,機器人的關(guān)鍵技術(shù)—機器人的行走控制至今仍未能很好解決。
(2)在火箭等飛行器的飛行過程中為了保持其正確的姿態(tài)要不斷進行實時控 1
西北民族大學(xué)2012級自動化3班鐘小龍
制。
(3)通信衛(wèi)星在預(yù)先計算好的軌道和確定的位置上運行的同時要保持其穩(wěn)定的姿態(tài)使衛(wèi)星天線一直指向地球使它的太陽能電池板一直指向太陽。
(4)偵察衛(wèi)星中攝像機的輕微抖動會對攝像的圖像質(zhì)量產(chǎn)生很大的影響,為了提高攝像的質(zhì)量必須能自動地保持伺服云臺的穩(wěn)定消除震動。
(5)為防一止單級火箭在拐彎時斷裂而誕生的柔性火箭(多級火箭)其飛行姿態(tài)的控制也可以用多級倒立擺系統(tǒng)進行研究。
由于控制理論的廣泛應(yīng)用,由此系統(tǒng)研究產(chǎn)生的方法和技術(shù)將在半導(dǎo)體及精密儀器加工、機器人控制技術(shù)、人工智能、導(dǎo)彈攔截控制系統(tǒng)、航空對接控制技術(shù)、火箭發(fā)射中的垂直度控制、雙足機器人火箭飛行控制、伺服云臺穩(wěn)定、衛(wèi)星飛行中的姿態(tài)控制和一般工業(yè)應(yīng)用等方面具有廣闊的利用開發(fā)前景。因此對倒立擺控制機理的研究具有重要的理論和實踐意義。
倒立擺系統(tǒng)大概可以歸納為如下幾類:平行式倒立擺、平面擺、柔性擺、懸掛式倒立擺和球平衡式倒擺系統(tǒng)。倒立擺的級數(shù)可以是一級、二級、三級乃至多級,倒立擺的運動軌道既可以是水平的,也可以是傾斜的。1.2倒立擺系統(tǒng)的研究歷史、現(xiàn)狀及發(fā)展趨勢
自從20世紀(jì)50年代倒立擺系統(tǒng)成為控制實驗室的經(jīng)典工具以來,關(guān)于倒立擺控制的論述可以分為2個主要的方面: 1)理論方面:依靠計算機仿真對控制方法的可行性進行驗證;2)實驗方面:調(diào)查引起計算機仿真結(jié)果和實時控制之間性能差異的物理不確定性。
在理論方面,1986年,Chung和Litt對單級倒立擺系統(tǒng)的動態(tài)進行了辨識,并分別設(shè)計了自適應(yīng)自整定反饋控制器和PD反饋控制器來保持倒立擺在垂直向上方向的穩(wěn)定。1989年,Anderson和Grantham,運用函數(shù)最小化和Lyapunov穩(wěn)定方法成功產(chǎn)生了一個優(yōu)化反饋控制器。1992年,Renders和Soudak通過相平面分析,得到了一個線性控制器。1995年,任章等應(yīng)用振蕩控制理論,通過在倒立擺支撐點的垂直方向上加入一個零均值的高頻振蕩信號,改善了倒立擺系統(tǒng)本身的穩(wěn)定性。1998年,蔣國飛等將Q學(xué)習(xí)算法和BP神經(jīng)網(wǎng)絡(luò)有效結(jié)合,實現(xiàn)了狀態(tài)未離散化的倒立擺的無模型學(xué)習(xí)控制。2001年,單波等利用基于神經(jīng)網(wǎng)絡(luò)的預(yù)測控制算法對倒立擺的控制進行了仿真。在兩級倒立擺方面,Sabba(1983)把系統(tǒng)穩(wěn)定尺度作為一個無限維不等式,從而避免了方法。1996年,翁正新等利用帶觀測器的H?狀態(tài)反饋控制器對二級倒立擺系統(tǒng)進行了仿真控制。1997年,翁正新等利用同樣的方法對傾斜導(dǎo)軌上的二級倒立擺進行了仿真控制。
Sinha和Joseph2000年,劉妹琴等用進化RBF神經(jīng)網(wǎng)絡(luò)控制二級倒立擺。1994年,2
西北民族大學(xué)2012級自動化3班鐘小龍
利用Lyapunov?Floquet變換得到了三級倒立擺系統(tǒng)的計算機仿真模型(有3個控制輸入)。2001年,李洪興領(lǐng)導(dǎo)的模糊系統(tǒng)和模糊信息研究中心利用變論域自適應(yīng)模糊控制的思想在國際上首次實現(xiàn)了四軸倒立擺的仿真;同年,肖軍等提出一種基于三維模糊組合變量的控制方法,仿真結(jié)果證明了該方法的有效性。在數(shù)學(xué)模型方面,Larcombe(1991 ,1992)得到了在二維坐標(biāo)中的簡單多級倒立擺系統(tǒng)的運動方程。1992年,Larcombe和Torsneyt2發(fā)現(xiàn)了簡單多級倒立擺系統(tǒng)平衡狀態(tài)的辨識方程。隨后,Larcombe(1993)把符號算法應(yīng)用于二級倒立擺系統(tǒng)的開環(huán)線性化動態(tài)方程,并且計算了系統(tǒng)的特征方程和開環(huán)極點。2001年,史曉霞等建立了二級倒立擺的數(shù)學(xué)模型,同年,張葛祥等建立了三級倒立擺的數(shù)學(xué)模型,并分析了系統(tǒng)的可控制性和可觀測性,給出了智能控制算法的思路。
在實驗方面,單級倒立擺系統(tǒng)的實驗最早出現(xiàn)在Roberge(1960)的論文中。1963年,Higdon 和Cannon提出了平行倒立擺的問題。Koenigsberg和Fredrick(1970)則使用了基于觀測器的輸出反饋控制器和狀態(tài)反饋調(diào)節(jié)器。Mori等((1976)設(shè)計了一個組合控制器,既可以擺起倒立擺,還可以維持它在垂直向上方向上的平衡。1992年,Simth和Blackburn利用高頻垂直振蕩獲得穩(wěn)定的倒置狀態(tài),同年,Ostertag和Carvalho?Ostertag開發(fā)了一個帶摩擦力補償?shù)姆€(wěn)定模糊控制器。Wei等(1995)利用bang?bang非線性控制器擺起了倒立擺并穩(wěn)定在垂直向上方向。1996年,張乃堯等實現(xiàn)了倒立擺的雙閉環(huán)模糊控制。1998年,王佳斌用網(wǎng)絡(luò)控制倒立擺。對于二級倒立擺,Loscuttof(1972)認(rèn)為只有全階觀測器才能實現(xiàn)它的穩(wěn)定;但Furuta等((1975)證明了這種結(jié)論的錯誤性,并在1978年利用一個線性函數(shù)觀測器穩(wěn)定了同一系統(tǒng)。1980年,F(xiàn)uruta等控制了傾斜導(dǎo)軌上的同一系統(tǒng),并能保持小車的正確定位。Zu?ren等在1984年運用部分狀態(tài)和線性函數(shù)觀測器結(jié)構(gòu),在模擬計算機上應(yīng)用了同一算法,1987年他
Der Linden和們使用離散二次性能指標(biāo)修改T這一控制器。1993年,Van Lambrechts在運用戈理論設(shè)計倒立擺的控制器時考慮了干摩擦。Yamakita等(1993)運用學(xué)習(xí)控制方法成功擺起了二級倒立擺系統(tǒng),而且在1994年他們運用這相同的控制方法使倒立擺在4種平衡狀態(tài)中互相切換。1995年,程福雁等利用參變量模糊控制對二級倒立擺進行實時控制,取得了較好的效果。1999年,李巖等運用基于PD控制的專家智能控制并實現(xiàn)了二級倒立擺的穩(wěn)定控制。2000年,林紅等利用最優(yōu)反饋調(diào)節(jié)器使其在倒立位置保持平衡,并在鋸齒波信號的作用下有規(guī)律地移動,直至無限遠處。在三級倒立擺方面,F(xiàn)uruta(1984)和Meier等(1990)分別利用帶函數(shù)觀測器和降階觀測器的LQR方法設(shè)計了反饋控制器。1999年,李德毅利用云控制方法有效地實現(xiàn)了單電機控制的一、二、三級倒立擺的多種不同動平衡姿態(tài),并給出了詳細(xì)試驗結(jié)果;同年,張飛舟等采用相平面 3
西北民族大學(xué)2012級自動化3班鐘小龍
分析法并結(jié)合人的控制經(jīng)驗,實現(xiàn)了一、二、三級倒立擺的擬人智能控制。2000年,楊亞煒等利用擬人智能控制成功實現(xiàn)了在傾斜導(dǎo)軌上三級倒立擺的穩(wěn)定,并可以控制三級倒立擺沿水平或傾斜導(dǎo)軌自由行走。
多年來,人們對倒立擺的研究越來越感興趣,倒立擺的種類也由簡單的單級倒立擺發(fā)展為多種形式的倒置系統(tǒng)。目前研究的大部分均為二維空間即平面內(nèi)擺動的擺,另外近年來還出現(xiàn)了球擺、柔性擺、傾斜軌道式倒立擺、旋轉(zhuǎn)式倒立擺等。
國際上每年都有成百篇關(guān)于倒立擺控制研究的論文發(fā)表,其中大部分是建立在計算機基礎(chǔ)上的仿真研究。而且主要是以一級倒立擺作為被控對象進行仿真,用二級倒立擺和平行倒立擺來仿真的文章則很少,而用三級倒立擺乃至多級倒立擺進行仿真研究的更是罕見。三級倒立擺的控制作為控制界的經(jīng)典難題一直為人們所關(guān)注,也一直是研究的熱點。目前,只有很少一部分學(xué)者在對實際物理擺進行設(shè)計、實驗和控制研究。1.3倒立擺的主要控制方法
經(jīng)過幾十年的發(fā)展,對倒立擺這樣的一個典型被控對象的研究,無論在理論上和方法上都在不斷的更新。各種控制理論和方法都可以通過倒立擺控制系統(tǒng)得以充分實踐并且可以促成相互間的有機結(jié)合。目前倒立擺的控制方法主要可分為以下幾類:(I)線性理論控制方法
將倒立擺系統(tǒng)的非線性模型進行近似線性化處理,獲得系統(tǒng)在平衡點附近的線性化模型;然后,再利用各種線性系統(tǒng)控制器設(shè)計方法得到期望的控制器PID ,控制狀態(tài)反饋控制、LQR控制算法,這類方法對一二級的倒立擺(線性化后誤差較小模型較簡單)控制時可以得到較好的控制效果,但對于像非線性較強模型較復(fù)雜的多變量系統(tǒng)(三四級以及多級倒立擺),線性系統(tǒng)設(shè)計方法的局限性就十分明顯,這就要求采用更有效的方法來進行合理的設(shè)計。
(2)變結(jié)構(gòu)控制和自適應(yīng)控制方法
變結(jié)構(gòu)控制是一種非連續(xù)控制,可將控制對象從任意位置控制到滑動曲面上仍然保持系統(tǒng)的穩(wěn)定性和魯棒性,但是系統(tǒng)存在顫抖。變結(jié)構(gòu)控制和自適應(yīng)控制在理論上有較好的控制效果,但由于控制方法復(fù)雜,成本也高,不易在快速變化的系統(tǒng)上實時實現(xiàn)。
(3)智能控制方法
在倒立擺系統(tǒng)中用到的智能控制方法主要有神經(jīng)網(wǎng)絡(luò)控制、模糊控制、擬人智能控制、仿人智能控制和云模型控制。
神經(jīng)網(wǎng)絡(luò)控制一一神經(jīng)網(wǎng)絡(luò)能夠任意充分地逼近復(fù)雜的非線性關(guān)系,能夠?qū)W 4
西北民族大學(xué)2012級自動化3班鐘小龍
習(xí)與適應(yīng)嚴(yán)重不確定性系統(tǒng)的動態(tài)特性,所有定量或定性的信息都等勢分布貯存于網(wǎng)絡(luò)內(nèi)的各種神經(jīng)元,故有很強的魯棒性和容錯性,但是神經(jīng)網(wǎng)絡(luò)控制方法存在的主要問題是缺乏一種專門適合于控制問題的動態(tài)神經(jīng)網(wǎng)絡(luò),而且多層網(wǎng)絡(luò)的層數(shù)隱層神經(jīng)元的數(shù)量激發(fā)函數(shù)類型的選擇缺乏指導(dǎo)性原則等。
模糊控制一一經(jīng)典的模糊控制器利用模糊集合理論,將專家知識或操作人員經(jīng)驗形成的語言規(guī)則直接轉(zhuǎn)化為自動控制策略(通常是專家模糊規(guī)則查詢標(biāo)),其設(shè)計不依靠對象精確的數(shù)學(xué)模型而是利用其語言知識模型進行設(shè)計和修正控制算法,常規(guī)的模糊控制器的設(shè)計方法有很大的局限性,首先難以建立一組比較完善的多維模糊控制規(guī)則,即使能湊成這樣一組不完整的粗糙的模糊控制規(guī)則其控制效果也是難以保證的,但是模糊控制結(jié)合其他控制方法就可能產(chǎn)生比較理想的效果,例如北京師范大學(xué)己經(jīng)采用模糊自適應(yīng)控制理論成功的研制了三級倒立擺裝置并對四級倒立擺系統(tǒng)做了仿真結(jié)果,接著還成功研制了四級倒立擺裝置且穩(wěn)定
效果良好。但是基于這些模糊控制、神經(jīng)網(wǎng)絡(luò)控制等智能控制理論所設(shè)計的系統(tǒng)往往需要龐大的知識庫和相應(yīng)的推理機,不利于實現(xiàn)實時控制,這又阻礙了智能控制理論的發(fā)展。
擬人智能控制一一它的核心是“廣義歸約”和“擬人歸約”是人工智能中的一種問題求解方法,這種方法是將等求解的復(fù)雜問題分解成復(fù)雜程度較低的若干問題集合,再將這些集合分解成更簡單的集合,依此類推最終得到一個本原問題集合,即可以直接求解的問題。另一核心概念是擬人其含義是在控制規(guī)律形成過程中直接利用人的控制經(jīng)驗直覺以及推理分析。
仿人智能控制一一它的基本思想是通過對人運動控制的宏觀結(jié)構(gòu)和手動控制行為的綜合模仿,把人在控制中的動覺智能模型化,提出了仿人智能控制方法研究結(jié)果表明仿人智能控制方法解決復(fù)雜強非線性系統(tǒng)的控制具有很強的實用性。
云模型控制一一利用云模型實現(xiàn)對倒立擺的控制,用云模型構(gòu)成語言值,用語言值構(gòu)成規(guī)則,形成一種定性的推理機制,這種擬人控制不要求給出被控對象精確的數(shù)學(xué)模型,僅僅依據(jù)人的經(jīng)驗、感受和邏輯判斷,將人用自然語言表達的控制經(jīng)驗,通過語盲一原子和云模型轉(zhuǎn)換到語言控制規(guī)則器中,就能解決非線性問題和不確定性問題。
(4)魯棒控制方法
雖然目前對倒立擺系統(tǒng)的控制策略有如此之多,而且有許多控制策略都對倒立擺進行了穩(wěn)定控制,但大多數(shù)都沒考慮倒立擺系統(tǒng)本身的大量不確定因素和外界干擾。
西北民族大學(xué)2012級自動化3班鐘小龍
(5)Backstepping方法
PV及其它是一種新的研究非線性系統(tǒng)的控制思想和方法,它是由Kokotovic 合作者在上世紀(jì)90年代提出的,但目前用此方法研究倒立擺系統(tǒng)的成果還不多見。Backstepping是一種構(gòu)造性方法,它利用系統(tǒng)的結(jié)構(gòu)特性遞推地構(gòu)造出整個系統(tǒng)的Lapunov函數(shù),所以系統(tǒng)Lapunov函數(shù)和控制器的設(shè)計過程有較強的系統(tǒng)性、靈活性和結(jié)構(gòu)性,而且保留系統(tǒng)中有用的非線性項,加上可以控制相對階為n的非線性系統(tǒng),消除了經(jīng)典無源設(shè)計中相對階為1的限制正因為這些優(yōu)點,后來中外學(xué)者把它廣泛地用在非線性系統(tǒng)的狀態(tài)反饋控制、輸出跟蹤控制、自適應(yīng)控制、魯棒控制等領(lǐng)域的研究.2.一級倒立擺數(shù)學(xué)模型
2.1一級倒立擺系統(tǒng)的組成
一級倒立擺控制系統(tǒng)主要由以下4部分組成: 1.在有限長的軌道L上作直線運動的小車;2.與小車鉸接在一起,并能在包含L的平面內(nèi)繞O點轉(zhuǎn)動的擺;3.驅(qū)動小車的直流力矩電機和轉(zhuǎn)輪、鋼絲等傳動部分;4.使擺穩(wěn)定在垂直向上的平衡位置,且使小車穩(wěn)定在軌道中心毛的控制器。
一級倒立擺的結(jié)構(gòu)簡圖如圖1.1所示。
圖1.1倒立擺系統(tǒng)的結(jié)構(gòu)圖
倒立擺系統(tǒng)主要由計算機、A/D , D/A、電機、電位計以及一些機械部件組成。計算機作為數(shù)字控制器實現(xiàn)對系統(tǒng)的實時控制,同時也為操作者提供人機界
西北民族大學(xué)2012級自動化3班鐘小龍
面,完成系統(tǒng)的監(jiān)督管理功能,如實時畫面,數(shù)據(jù)采集;A/D , D/A板插在計算機內(nèi),完成模/數(shù)、數(shù)/模轉(zhuǎn)換;放大器用于電壓和功率放大。電機是系統(tǒng)的執(zhí)行元件;電位計是系統(tǒng)的測量元件,它分別檢測了小車相對于軌道中心點的相對位置、小車的速度,擺和鉛垂線的角度偏移、角速度。倒立擺系統(tǒng)的整套機械部件分別安裝在一塊臺架上,底板上固定著導(dǎo)軌支架、電機底座等裝置。通過導(dǎo)軌支架安裝好小車滑行的導(dǎo)軌,小車用電機和轉(zhuǎn)輪通過傳動鋼絲實現(xiàn)運動。2.2一級倒立擺系統(tǒng)數(shù)學(xué)模型的建立
在忽略了空氣阻力和各種摩擦之后,可將直線型一級倒立擺系統(tǒng)抽象成小車 和勻質(zhì)擺桿組成的系統(tǒng),如圖所示:
圖1.2.1 一級倒立擺系統(tǒng)的力學(xué)示意圖
將擺桿視為剛體,則一級倒立擺系統(tǒng)的參數(shù)為:小車質(zhì)量M,擺桿質(zhì)量m,擺桿重心到鉸鏈的長度l,重力加速度g,小車位置x,擺桿角度?,作用在小車上的驅(qū)動力F。當(dāng)小車在水平方向運動時,若忽略摩擦力矩的非線性,對小車和擺桿進行水平和垂直方向受力分析,如圖:
西北民族大學(xué)2012級自動化3班鐘小龍
圖1.2.2 小車和擺桿的受力分析圖
其中N和P為小車和擺桿間的相互作用力水平和垂直方向上的分量。分析小車水平方向上的合力,由牛頓運動定律可得:
由擺桿水平方向的受力分析可得:
即:
把式子(3.3)代入(3.1)式中,就得系統(tǒng)的第一個運動方程:
對擺桿垂直方向上的合力進行分析并由力矩平衡方程可得:
合并這兩個方程,約去P和N,得到第二個運動方程:
為了后面設(shè)計的方便我們對得到的兩個方程進行化簡和處理可得一級倒立擺系統(tǒng)的數(shù)學(xué)模型如下:
西北民族大學(xué)2012級自動化3班鐘小龍
在這里可以將倒立擺系統(tǒng)(3.8)看作是由小車和擺兩部分組成的具有兩個子系統(tǒng)的組合系統(tǒng)。倒立擺的擺系統(tǒng)控制具有高度非線性,同時考慮到實際設(shè)備長度的約束,我們必須限制小車系統(tǒng)的位移。以前大部分研究工作都是通過對倒立擺數(shù)學(xué)模型中的非線性項進行近似或忽略,從而簡化控制器的設(shè)計。我們采用基于 Lapunov能量反饋的方法對倒立擺進行起擺控制,這實際上是利用正反饋不斷增大擺的能量。針對擺系統(tǒng),采用Backstepping方法設(shè)計非線性控制器,但此時得到的控制器不能實現(xiàn)對小車位移的控制;因此我們結(jié)合線性控制理論的極點配置方法獲得對小車位移和速度控制的部分控制器;兩者結(jié)合則得到整個倒立擺系統(tǒng)的一個非線性穩(wěn)擺控制器。
3.系統(tǒng)控制器的設(shè)計和閉環(huán)系統(tǒng)的數(shù)值仿真
針對直線型一級倒立擺系統(tǒng)的控制器設(shè)計方法很多,包括狀態(tài)反饋控制、LQR最優(yōu)控制、模糊控制和PID控制等方法,同時各種方法的相互結(jié)合使用來設(shè)計倒立擺系統(tǒng)己經(jīng)稱為研究熱點。
針對上面的直線型一級倒立擺系統(tǒng)(x..1??,x2??,x3?x,x4?x),選取M?2.0kg,m?8.0kg,1?0.5m,g?9.8m/s2。我們先考慮擺子系統(tǒng)的動態(tài)模型:
step1令:z1?x1,x2看作是系統(tǒng): 的虛擬控制?,F(xiàn)在我們的控制目的就是設(shè)計虛擬反饋控制;x2??1(x1)去鎮(zhèn)定z1為此,構(gòu)造Lapun函數(shù)v2..1(z1)?(1/z12,)則有v1(z1)?z1z1?z1x2。取?1(x1)??k1z,1k?1為可設(shè)計常數(shù),并引入誤差變量0z2?x2??1(x1),則有:
西北民族大學(xué)2012級自動化3班鐘小龍
故若z2?0,則v1(z1)??k1z12?0,即z1子系統(tǒng)(3.10)被鎮(zhèn)定,下面鎮(zhèn)定:z2
step 2對應(yīng)一個二階系統(tǒng):
此時真正的控制u出現(xiàn)。這一步主要是鎮(zhèn)定z2 構(gòu)造Lapunov函數(shù)V1(z1,z2)?(1/2)z12?(1/2)z2,則
令
其中k2?0為設(shè)計常數(shù),由(3.1 5)求得系統(tǒng)的控制輸入:
2?0,即z1,z2子系統(tǒng)(3.13)被鎮(zhèn)定,所以代入式(3.14),則V(z1,z2)??k1z12?k2z2.進而:z1?0,反推之后可得x1,x2?0,即可得系統(tǒng)(3.9)在控制(3.16)z2?0,作用下被鎮(zhèn)定。而把z1?x1,z2?x2??1(x1)?x2?k1x1代入(3.17)可得系統(tǒng)(3.9)的控制輸入:
其中的k1,k2?0為可設(shè)計常數(shù),可以根據(jù)實際系統(tǒng)的具體要求進行設(shè)計,這一點也是Backstepping方法的特點和優(yōu)點之一。當(dāng)取k1?k2?100,k1k2?1?150時相
西北民族大學(xué)2012級自動化3班鐘小龍
應(yīng)的控制器:
我們先對上面得到的非線性系統(tǒng)(3.8)作近似線性化。考慮擺桿在平衡點(??0)附近擺動微小,對非線性系統(tǒng)(3.8)進行局部線性化,即令cos???,sin???做近似處理后,就得到倒立擺的線性狀態(tài)方程
.式中X?[xT.1,x2,x3,x4]?[?,?,x,x]T,u?F,輸出y?[?,x]T
其中I?(1/3)ml2
用Matlab中的place函數(shù)得到反饋矩陣:
截取K3,K4部分為x3,x4的系數(shù),則可得
西北民族大學(xué)2012級自動化3班鐘小龍
兩者結(jié)合可得:
該控制器可以控制擺桿保持平衡的同時,跟蹤小車的位置。注意:上述F的參數(shù)可以進一步調(diào)試。對整個倒立擺做數(shù)值仿真結(jié)果如下:
圖3-4小車和擺桿的狀態(tài)響應(yīng)曲線
4.直線型一級倒立擺系統(tǒng)的Simulink模型和離線仿真
4.1基于線性控制器對線性系統(tǒng)的離線仿真 在上面所設(shè)計的直線型一級倒立擺的線性控制器
該控制器的設(shè)計采用的是Backstepping方法,類似于極點配置法,設(shè)計的目的是使系統(tǒng)滿足工程師提出的瞬態(tài)和穩(wěn)態(tài)性能指標(biāo)。我們利用Simulink搭建該控制器模型如圖4-1 12
西北民族大學(xué)2012級自動化3班鐘小龍
圖4-1 線性控制器的Simulink模型
其次構(gòu)建直線型一級倒立擺系統(tǒng)的線性系統(tǒng)的Simulink模型為
圖4-2 線性系統(tǒng)的Simulink框圖
最后對控制器模塊和線性模型模塊進行封裝,再連接起來就是倒立擺系統(tǒng)的閉環(huán)系統(tǒng)模型,如下圖4-3。
西北民族大學(xué)2012級自動化3班鐘小龍
圖4-3 倒立擺閉環(huán)系統(tǒng)的Simulink框圖
這樣我們就在MATLAB的Simulink環(huán)境下,搭建出狀態(tài)反饋控制系統(tǒng)仿真試驗研究平臺,通過示波器可以在線觀察系統(tǒng)的狀態(tài)變化,進而可以對倒立擺閉環(huán)系統(tǒng)進行實驗仿真分析了。
圖4-4 倒立擺閉環(huán)系統(tǒng)的Simulink仿真曲線
西北民族大學(xué)2012級自動化3班鐘小龍
4.2基于線性控制器對非線性系統(tǒng)的離線仿真
首先用Simulink搭建的倒立擺系統(tǒng)的非線性系統(tǒng)模型為:
圖4-5 倒立擺系統(tǒng)的非線性系統(tǒng)模型
利用4-7建好的線性控制器模塊和上面建好的非線性系統(tǒng)模型進行封裝,再連接起來就是倒立擺系統(tǒng)的閉環(huán)系統(tǒng)模型,如下圖4-6。
圖4-6 整體閉環(huán)系統(tǒng)Simulink框圖
最后模型建立好后,我們就可以對倒立擺閉環(huán)系統(tǒng)進行離線仿真。如下圖4-7。
西北民族大學(xué)2012級自動化3班鐘小龍
圖4-7 倒立擺閉環(huán)系統(tǒng)的Simulink仿真曲線
從圖4-4和圖4-7可以看出,所設(shè)計的線性控制器對線性化系統(tǒng)控制效果比對非線性系統(tǒng)的好,這說明線性控制器對非線性倒立擺系統(tǒng)的控制較差,而且實驗表明非線性控制器對系統(tǒng)的抗干擾能力和魯棒性強。4.3基于非線性控制器對非線性系統(tǒng)的離線仿真 先建立非線性控制器的Simulink框圖
圖4-8 非線性控制器的Simulink框圖
西北民族大學(xué)2012級自動化3班鐘小龍
圖4-9 非線性部分的Simulink框圖
對非線性控制器模塊進行封裝,再與非線性系統(tǒng)模型模塊連接起來就是倒立擺系統(tǒng)的閉環(huán)系統(tǒng)模型,如下圖4-10。
圖4-10 閉環(huán)系統(tǒng)的Simulink框圖
最后模型建立好后,我們就可以對倒立擺系統(tǒng)進行離線仿真。如下圖4-11。
西北民族大學(xué)2012級自動化3班鐘小龍
圖4-11 倒立擺閉環(huán)系統(tǒng)的Simulink仿真曲線
可以看出非線性控制器的控制效果很好,時間越長穩(wěn)定性越好,內(nèi)有抖動性,但收斂時間稍微有點長,但它的控制效果好,特別是對外界的抗干擾能力等。
5.模型的優(yōu)缺點
該控制算法與其他算法相比,優(yōu)缺點主要有以下幾點:(1)與固高公司提供的LQR最優(yōu)控制算法相比,在穩(wěn)定時間幾乎一樣,由于本文給出的算法里面含有可調(diào)參數(shù),只要合適的調(diào)節(jié)參數(shù),就可以使得穩(wěn)定時間大大縮短,但這樣也會存在使控制量過大,出現(xiàn)系統(tǒng)抖動問題。另一方面本文給出的算法在抗干擾能力方面要強于LQR最優(yōu)控制算法,見最后一章的分析。
(2)與精確線性化方法對比,該方法收斂速度即穩(wěn)定時間要比精確線性化 方法快,而且精確線性化方法對原系統(tǒng)進行了線性化,故理論上與實際的系統(tǒng)模 型有一定的誤差。而本文設(shè)計的控制算法保留了系統(tǒng)的非線性項,控制效果好,但同時也增加了控制器的能量,響應(yīng)時間會受到影響。
(3)與模糊邏輯控制理論相比,該方法收斂速度明顯要快,而且調(diào)節(jié)時間短,穩(wěn)態(tài)性能指標(biāo)也比較好。
(4)變結(jié)構(gòu)控制理論設(shè)計的控制算法使得系統(tǒng)的抖動厲害,而本文給出的算法抖動性小,而且時間越長控制效果越好。
西北民族大學(xué)2012級自動化3班鐘小龍
(5)本文只采用一種控制設(shè)計方法,當(dāng)然與那些多種控制方法結(jié)合使用的設(shè) 計方法相比存在一定的不足。把模糊控制和神經(jīng)網(wǎng)絡(luò)控制結(jié)合控制的效果很好,在穩(wěn)定性、抗干擾性方面優(yōu)勢都很大。事實證明:模糊神經(jīng)網(wǎng)絡(luò)的BP算法比一般神經(jīng)網(wǎng)絡(luò)的BP算法快得多,在受干擾情況下,小車擺桿的恢復(fù)迅速。
6.結(jié)論和展望
倒立擺控制系統(tǒng)作為檢驗控制理論的試金石,對于控制理論研究方面發(fā)揮著 越來越重要的作用,值得進一步的研究和開發(fā)。本文主要利用Backstepping方法設(shè)計了直線型一級倒立擺系統(tǒng)控制器并基于MATLAB/Simulinkk對系統(tǒng)進行了離線仿真。本文所作的主要工作或要達到的主要目的是:(一)建立直線型一級倒立擺系統(tǒng)的數(shù)學(xué)模型,并利用Backstepping方法設(shè) 計了該倒立擺系統(tǒng)的控制器,然后對閉環(huán)系統(tǒng)進行了數(shù)值仿真并與其他方法進行 了數(shù)值仿真分析比較。與當(dāng)前的倒立擺研究成果相比,具有研究方法新穎、控制 效果好的特點。
(二)本文利用所設(shè)計的非線性控制器在MATLAB/Simulink環(huán)境下對系統(tǒng)進 行了離線仿真分析,并與固高公司提供的算法進行了仿真效果比較。
倒立擺系統(tǒng)的種類有很多,本文只是在直線型一級倒立擺中進行了研究和分析,隨著控制理論研究的深入,必將會出現(xiàn)更多新的控制方法,而且新的控制方 法的綜合使用也將是研究的熱點,那么就需要更復(fù)雜的系統(tǒng)進行檢驗,需要對更 復(fù)雜的倒立擺系統(tǒng)進行研究;同時MATLAB/Simulink的廣泛應(yīng)用,必將帶來控制理論和控制實驗方面的進一步深入和豐富。
西北民族大學(xué)2012級自動化3班鐘小龍
7.參考文獻
[1]俞立.現(xiàn)代控制理論【M】.北京:清華大學(xué)出版社,2007.4 [2]中國科學(xué)技術(shù)人學(xué)編.固高擺系統(tǒng)與自動控制實驗【Z】.2002 [3]謝克明.現(xiàn)代控制理論基礎(chǔ)【M】.北京:北京工業(yè)大學(xué)出版社,2003 [4]鄧麗霞.基于Backstepping和MATLAB/Simulink的直線型一級倒立擺系統(tǒng)的控制器設(shè)計與實時控制研究【J】,2008 [5]徐若冰.基于極點配置的倒立擺控制器設(shè)計【J】,2007 [6] Albertalsidori.非線性控制系統(tǒng)(第二版)【M】.比京:電子工業(yè)出版社,2005 [7]宋兆基,徐流美.MATLAB6.5在科學(xué)計算中的應(yīng)用【M】.北京:清華大學(xué)出版社.2005 [8]周黨偉,錢富才.直線倒立擺的穩(wěn)定控制研究【J】.西安理工大學(xué)碩士學(xué)位論文
第三篇:倒立擺專題
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
第1章:緒論
1.1 倒立擺的發(fā)展歷史及現(xiàn)狀
控制理論教學(xué)領(lǐng)域,開展各種理論教學(xué)、控制實驗、驗證新理論的正確性的理想實驗平臺就是倒立擺控制系統(tǒng)。對倒立擺系統(tǒng)的研究能有效的反映控制中的許多典型問題,同時兼具多變性、強非線性和自然不穩(wěn)定性等優(yōu)點,通過對倒立擺的控制,用來檢驗新的控制方法是否有較強的處理非線性和不穩(wěn)定性問題。倒立擺系統(tǒng)作為一個實驗裝置,形象直觀、結(jié)構(gòu)簡單、構(gòu)件組成參數(shù)和形狀易于改變、成本低廉,且控制效果可以通過其穩(wěn)定性直觀地體現(xiàn),也可以通過擺桿角度、小車位移和穩(wěn)定時間直接度量其實驗效果,直觀顯著。因而從誕生之日就受到國內(nèi)外學(xué)者的廣泛研究。
倒立擺系統(tǒng)的最初研究始于二十世紀(jì)50年代末,麻省理工學(xué)院的控制論專家根據(jù)火箭發(fā)射助推器的原理設(shè)計出一級倒立擺實驗設(shè)備。1966年Schaefer和Cannon應(yīng)用Bang Bang控制理論將一個曲軸穩(wěn)定于倒置位置,在60年代后期作為一個典型的不穩(wěn)定嚴(yán)重非線性證例提出了倒立擺的概念,并用其檢驗控制方法對不穩(wěn)定、非線性和快速性系統(tǒng)的控制能力受到世界各國許多科學(xué)家的重視。而后人們又參照雙足機器人控制問題研制出二級倒立擺控制設(shè)備,從而提高了檢驗控制理論或方法的能力,也拓寬了控制理論或方法的檢驗范圍。對倒立擺研究較多的是美國、日本等發(fā)達國家,如Kawamoto-Sh.等討論了有關(guān)倒立擺的非線性控制的問題以及倒立擺的模糊控制的穩(wěn)定性問題為其后的倒立擺模糊控制研究開辟了道路,美國國家航空和宇航局Torres-Pornales,Wilfredo等人研究了從倒立擺的建模、系統(tǒng)分析到非線性控制器設(shè)計的一系列問題,比較深入的研究了倒立擺的非線性控制問題并進行了實物仿真;科羅拉多州大學(xué)的Hauser.J正在從事基于哈密爾頓函數(shù)的倒立擺控制問題的研究;日本東京大學(xué)的Sugihara.Tomorniehi等研究了倒立擺的實時控制問題及其在機器人控制中的應(yīng)用問題。此外,還有如德國宇航中心的Schreiber等研究了倒立擺的零空間運動控制問題,分析了倒立擺的零空間運動特性與其穩(wěn)定性之間的聯(lián)系。
國內(nèi)研究倒立擺系統(tǒng)的控制問題起步雖晚,但成果也還是挺多較早的,如尹征琦等于1985年采用模擬調(diào)節(jié)器,實現(xiàn)了對倒立擺系統(tǒng)的穩(wěn)定控制;梁任秋等于1987年討論了設(shè)計小車一二階倒立擺系統(tǒng)數(shù)學(xué)控制器的一般方法;任章、徐建民于1995年利用振蕩器控制原理,提出了在倒立擺的支撐點的垂直方向上加入一零均值的高頻震蕩信號以改善倒立擺系統(tǒng)的穩(wěn)定性。同年,程福雁先生等研究了使用參變量模糊控制對倒立擺進行實時控制的問題。北京理工大學(xué)的蔣國飛、吳滄浦等實現(xiàn)了狀態(tài)未離散化的倒立擺的無模型學(xué)習(xí)控制。仿真表明該方法不僅能成功解決確定和隨機倒立擺模型的平衡控制具有很好的學(xué)習(xí)效果。
90年代以來,由于數(shù)學(xué)基礎(chǔ)理論、控制理論和計算機技術(shù)的發(fā)展,不斷地有新的控制理論和控制思想問世,使得倒立擺控制系統(tǒng)的研究和應(yīng)用更加廣泛和深入,把這些理論應(yīng)用在實際的實物控制和分析中己經(jīng)成為當(dāng)前控制理論研究和應(yīng)用的核心問題。人們?yōu)榱藱z驗新的控制方法是否具有良好的處理多變量、非線性和絕對不穩(wěn)定型的能力,不斷提升倒立擺系統(tǒng)的復(fù)雜性和難度,如增加擺桿的級數(shù),加大擺桿的長度,改變擺的形狀和放置的形式等。2002年8月,北京師范大學(xué)教授李洪興領(lǐng)導(dǎo)的復(fù)雜系統(tǒng)智能控制實驗室,首次成功實現(xiàn)了直線運動四級倒立擺實物系統(tǒng)控制,2003年10月,他們采用高維變論域自適應(yīng)控制理論,在世界
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
上第一個成功地實現(xiàn)了平面運動三級倒立擺實物系統(tǒng)控制。但是多年來小車一多級擺系統(tǒng)的控制研究主要集中在擺倒立點的穩(wěn)定控制方面,同時也只是針對在水平軌道上的研究,而對于在傾斜軌道上的倒立擺的研究,還不多見。然而對于擺的擺起倒立穩(wěn)定控制,由于小車多級擺擺起倒立穩(wěn)定的高難性,目前國際上罕見小車二級擺以上實際系統(tǒng)的擺起倒立成功的例子。在小車二級擺擺起倒立控制的研究中,一般采用了混雜控制轉(zhuǎn)換的方法,即將控制過程分為擺起和倒立穩(wěn)擺兩個階段。在擺起階段,采取基于能量的控制(K.J.Astrom,K.Furuta,W.spong),通過不斷增加兩擺桿的能量,直至達到倒立穩(wěn)擺的位置。這樣的方法對于小車單擺系統(tǒng)擺起倒立十分有效。然而,由于能量是一個標(biāo)量,基于能量正反饋的方法在擺起過程中,無法兼顧和有效控制欠驅(qū)動多擺桿之間的相對運動,存在著擺桿與擺桿之間相對運動難以協(xié)調(diào)控制的問題。其它的采用直接數(shù)字求解動態(tài)方程獲得理想軌跡,然后將其與實時參數(shù)比較形成閉環(huán)控制的方法,以及部分反饋線性化等方法,但這些方法都同樣存在對擺桿之間相對運動難以協(xié)調(diào)控制的問題。捷克學(xué)者J.Rubl,在研究直線小車二級擺的擺起倒立過程中,運用了數(shù)字方法、最優(yōu)控制與分段線性化結(jié)合的綜合控制方法,解決了水平軌道上小車二級擺擺起倒立控制的實物實現(xiàn)問題。重慶大學(xué)李祖樞教授等人利用仿人智能控制方法分別成功地實現(xiàn)了在水平軌道上和在傾斜軌道上小車二級擺的擺起倒立穩(wěn)定實時控制,而小車三級擺的擺起倒立穩(wěn)定控制,由于控制難度更大,國際上尚無成功的先例。近年來在結(jié)合模糊控制與神經(jīng)網(wǎng)絡(luò)等方面也取得了很多成果。
總之,倒立擺系統(tǒng)是一種能夠有效檢驗控制理論和控制算法的實驗設(shè)備。目前應(yīng)用于倒立擺系統(tǒng)的算法主要有以下幾類:經(jīng)典控制(LMI,PDI)、現(xiàn)代控制(LQR 最優(yōu)控制法,極點配置法)、變結(jié)構(gòu)倒立擺系統(tǒng)最初研究開始于二十世紀(jì) 50 年代,麻省理工學(xué)院的控制論專家們根據(jù)火箭發(fā)射的原理設(shè)計出了一級倒立擺實驗裝置;發(fā)展到今天,倒立擺系統(tǒng)已經(jīng)由原來的一級直線倒立擺衍生出了異常豐富的類別。按照倒立擺擺桿的數(shù)目可以分為一級倒立擺、二級倒立擺、三級倒立擺、四級倒立擺等,且控制難度也隨著擺桿的級數(shù)增加而變大;按照倒立擺系統(tǒng)結(jié)構(gòu)的不同,可以分為:直線倒立擺系統(tǒng)、旋轉(zhuǎn)倒立擺系統(tǒng)、平面倒立擺系統(tǒng)、復(fù)合倒立擺系統(tǒng)等;按照倒立擺擺桿的不同還可以分為剛性倒立擺和柔性倒立擺。在檢驗不同的控制方法對各種復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng)的控制效果中得到廣泛的應(yīng)用,并且越來越受到世界各國科研工作者的重視
2.該課題的意義:
隨著實際工程控制系統(tǒng)的研究發(fā)展的需要,對于理論方面的研究迫切需要一 個平臺去檢驗新理論的正確性和在實際中的可行性,倒立擺系統(tǒng)作為一個具有絕 對不穩(wěn)定、高階次、多變量、強藕合的典型的非線性系統(tǒng),是檢驗控制理論和方 法的理想模型,所以本文選擇倒立擺系統(tǒng)作為研究對象具有重要的理論意義和應(yīng) 用價值。相對于其他研究倒立擺系統(tǒng)的控制方法,Backstepping方法最大的優(yōu)點是不必對系統(tǒng)進行線性化,可以直接對系統(tǒng)進行遞推性的控制器設(shè)計,保留了被控象中有用的非線性項,使得控制設(shè)計更接近實際情況,而且所設(shè)計的控制器具有很強的魯棒性。而且國內(nèi)外用此方法研究倒立擺系統(tǒng)的成果還不多見,因而具有很大的理論研究價值;由于當(dāng)前國內(nèi)外對于倒立擺系統(tǒng)的研究大都仍只局限于理論分析或計算機軟件的數(shù)值仿真而缺少實際的實驗檢驗分析,而MATLABSim-ulink就是提供了進行仿真實驗的良好平臺,它利用自帶的模塊建立系統(tǒng)模型,然后進行仿真,形象直觀,非常有利于研究者進行分析和總結(jié),同
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
時可以利用MATLAB-RTW實時工具箱構(gòu)建實時控制平臺,把設(shè)計好的控制器建立的Simulink仿真樟型連接在實時內(nèi)核中運行,驅(qū)動外部硬件設(shè)備,實現(xiàn)對倒立擺系統(tǒng)的實時控制,倒立擺的控制模型與直立行走機器人的平衡控制、兩輪小車的自平衡控制、導(dǎo)彈攔截控制、火箭發(fā)射時的垂直控制、衛(wèi)星飛行中的姿態(tài)控制和航空對接控制等涉及平衡和角度的控制問題非常相似,所以在機器人、航天、軍工等領(lǐng)域和一般的工業(yè)過程中都有著廣泛的應(yīng)用。倒立擺系統(tǒng)作為研究控制理論的一種典型的實驗裝置,具有較為簡單的結(jié)構(gòu)、可以有效地檢驗眾多控制方法的有效性、參數(shù)和模型易于改變、相對低廉的成本等優(yōu)點,研究控制理論的很多科研人員一直將它們視為主要的研究對象,用它們來描述線性控制領(lǐng)域中不穩(wěn)定系統(tǒng)的穩(wěn)定性以及在非線性控制領(lǐng)域中的無源性控制、變結(jié)構(gòu)控制、非線性觀測器、自由行走、非線性模型降階、摩擦補償?shù)瓤刂扑枷?,且從中不斷開發(fā)出新的控制方法和控制理論,所以倒立擺系統(tǒng)是研究智能控制方法較為理想的實驗裝置。倒立擺系統(tǒng)自身是一個典型的多變量、非線性、高階次、強耦合和絕對不穩(wěn)定系統(tǒng),許多抽象的控制概念如系統(tǒng)的可控性、穩(wěn)定性、系統(tǒng)的抗干擾能力和系統(tǒng)的收斂速度等,都可以由倒立擺系統(tǒng)直觀地展示出來。此外,通過倒立擺系統(tǒng)還可以研究非線性觀測器、變結(jié)構(gòu)控制、目標(biāo)定位控制、摩擦補償和混合系統(tǒng)等。不僅如此,倒立擺系統(tǒng)也是進行控制理論教學(xué)的理想平臺。傳統(tǒng)的教學(xué)中,實驗只是作為理論教學(xué)延伸,往往是理論知識的比重大于實驗,即使有實驗課程也只是學(xué)生完全按照實驗指導(dǎo)書上的指導(dǎo)去完成實驗,整個實驗過程中學(xué)生們完全是消極的被動的接收知識,甚至學(xué)生對實驗方法、內(nèi)容完全沒有興趣。很顯然,這種實驗教學(xué)方法難以培養(yǎng)學(xué)生綜合素質(zhì)和實踐能力。所以必須在實驗環(huán)節(jié)的內(nèi)容和形式上進行改革與創(chuàng)新,以培養(yǎng)學(xué)生的創(chuàng)新意識和實踐動手能力。因此,進行設(shè)計性、開放性的綜合實驗具有極其重要的現(xiàn)實意義。若在控制理論的教學(xué)中,如果構(gòu)建一個高效的合理的倒立擺系統(tǒng)實驗平臺,就可以在深入理解控制理論知識的同時,還可以讓學(xué)生們對硬件回路仿真技術(shù)的開發(fā)流程有一定的了解,并掌握基于 MATLAB 的實時仿真操作,這樣就可以從理論和實踐上提高學(xué)生對控制理論的興趣和認(rèn)識。將倒立擺系統(tǒng)研究應(yīng)用于高校的控制理論教學(xué)和實驗早已在歐美等教育發(fā)達地區(qū)流行多年。因此,倒立擺控制策略的研究在我國高校的控制理論教學(xué)和實驗中具有廣闊的前景。較理想的控制效果,能夠快速穩(wěn)定并且有很強的抗干擾能力。
3.本論文的主要工作:
本論文是對一級倒立擺系統(tǒng)的LQR控制器設(shè)計。驗證算法采用實驗室的倒立擺裝置。用 Matlab 中的 Simulink 搭接仿真的實驗原理圖,編寫恰當(dāng)?shù)哪:?guī)則,通過對隸屬度曲線以及參數(shù)的適當(dāng)調(diào)整,得到理想的仿真曲線。最后,通過倒立擺實驗裝置來驗證所設(shè)計的模糊控制算法的可行性。具體內(nèi)容如下:
第一章是緒論部分,主要概括介紹了倒立擺控制系統(tǒng)研究的發(fā)展歷史及現(xiàn)狀,本課題研究的背景和意義,本文主要研究的內(nèi)容及章節(jié)安排以及本文的創(chuàng)新點。初步了解目前倒立擺的研究現(xiàn)狀以及研究熱點,論述了控制理論在倒立擺系 統(tǒng)運用的不斷發(fā)展和完善,智能控制器越來越受到專家學(xué)者的關(guān)注。
第二章是預(yù)備知識,主要概述了本文主要用到的倒立擺裝置,Matlab仿真平臺簡介及應(yīng)用。
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
第三章詳細(xì)介紹了一級倒立擺控制系統(tǒng)的工作原理、兩輪小車的硬件設(shè)計。包括自平衡小車的組成模塊及工作原理、各模塊硬件設(shè)計。
第四章介紹了MATLAB/Simulink建模原理,利用本文設(shè)計的非線性控制器在 MATLAB環(huán)境下對系統(tǒng)進行了離線仿真分析、能控性分析、能觀性分析,基于卡爾曼濾波器的LQR控制器設(shè)計。對單級倒立擺進行了詳細(xì)的受力分析,建立倒立擺系統(tǒng)的數(shù)學(xué)模型,并對倒立擺系統(tǒng)進行定性分析。證明了倒立擺系統(tǒng)是開環(huán)不穩(wěn)定的,但在平衡點是能觀的和能控的,可以對系統(tǒng)進行控制器的設(shè)計,使系統(tǒng)穩(wěn)定。
第五章介紹了基于MATLAB的倒立擺實時控制系統(tǒng),利用所設(shè)計的非線性控 制器對實際的硬件系統(tǒng)進行了控制實驗,并和固高公司提供的控制器對系統(tǒng)的控 制效果進行了對比,然后利用所設(shè)計的非線性控制器對倒立擺系統(tǒng)進行了實時控 制開發(fā)的研究。
第二章:倒立擺簡介: 1.倒立擺簡介:
倒立擺系統(tǒng)是非線性、強藕合、多變量和自然不穩(wěn)定的系統(tǒng)。在控制過程中,它能有效的反映諸如可鎮(zhèn)定性、魯棒性、隨動性以及跟蹤等許多控制中的關(guān)鍵問 題,是檢驗各種控制理論的理想模型。迄今,人們己經(jīng)利用古典控制理論、現(xiàn)代 控制理論以及各種智能控制理論實現(xiàn)了多種倒立擺系統(tǒng)的控制。因此,對倒立擺 系統(tǒng)的研究無論在理論上還是在實際上均有很大的意義。
倒立擺系統(tǒng)包含倒立擺本體、電控箱及由計算機和運動控制卡組成的控制平臺三大部分,組成了一個閉環(huán)系統(tǒng)。其中電控箱內(nèi)主要有以下部件:(1)交流伺服驅(qū)動器(2)1/0接口板(3)開關(guān)電源
控制平臺主要部分組成:(1)與IBM PC/AI機兼容的PC機,帶PCI/SCI總線插槽(2)GT400-SV-PCI運動控制卡
(3)GT400-SV-PCI運動控制卡用戶接口軟件
電機通過同步帶驅(qū)動小車在滑桿上來回運動,以保持?jǐn)[桿平衡。其工作原理 框圖如圖3-1所示,以直線一級倒立擺為例。電機編碼器和角碼器向運動控制卡反
饋小車和擺桿位置,小車的位移可以根據(jù)光電碼盤1的反饋通過換算獲得,速度信
號可以通過對位移的差分得到,并同時反饋給伺服驅(qū)動器和運動控制卡;擺桿的 角度由光電碼盤2測量得到,而角速度信號可以通過對角度的差分得到,并同時反
饋給控制卡和伺服驅(qū)動器。計算機從運動控制卡中讀取實時數(shù)據(jù),確定控制決策(小車向哪個方向移動,移動速度,加速度等),并由運動控制卡來實現(xiàn)控制決 策,產(chǎn)生相應(yīng)的控制量,使電機轉(zhuǎn)動,帶動小車運動,保持?jǐn)[桿平衡。
硬件部分包括計算機、運動控制卡、電控箱、伺服系統(tǒng)、倒立擺本體和旋轉(zhuǎn)光電編碼器、位移傳感器等幾大部分,它們構(gòu)成一
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
個閉環(huán)
系統(tǒng)。伺服電機通過同步皮帶與小車相連接,并帶動小車同步運動,以此來控制小
車在水平軌道上做直線運動。勻質(zhì)剛體擺桿與小車相連,由小車的水平移動來控制擺桿 的穩(wěn)定豎直倒立。旋轉(zhuǎn)光電編碼器是一種角位移傳感器,其輸出的檢測信號是數(shù)字信號,因此可以直接進入計算機進行處理,而不需放大和轉(zhuǎn)換等過程,使用非常方便。可以用
它準(zhǔn)確的測出倒立擺擺桿的偏轉(zhuǎn)角度。將旋轉(zhuǎn)光電編碼器、位移傳感器、以及狀態(tài)反饋
信息輸入運動控制器,而運動控制卡中采集的這些信息經(jīng)一定的控制算法會得出控制信
息并將被輸入伺服電機。通過這樣一個閉環(huán)系統(tǒng)就能達到倒立擺的穩(wěn)定控制。其中計算
機從運動控制卡實時讀取數(shù)據(jù),計算并確定控制決策,即根據(jù)倒立擺的實時狀態(tài)不斷地
調(diào)用相應(yīng)的函數(shù)程序如速度、加速度等,經(jīng)過電控箱內(nèi)的轉(zhuǎn)換電路產(chǎn)生相應(yīng)的控制量,由此驅(qū)動伺服電機轉(zhuǎn)動的
倒立擺系統(tǒng)由機械部分和電路部分組成。機械部分包括底座、框架、滑軌、齒 輪帶、輪、電機、小車和擺體等。電路部分由測量電位器、C805lF020單片機(A/D 轉(zhuǎn)換器、D/A轉(zhuǎn)換器)、計算機、信號放大與功率放大、電機等組成。計算機作為數(shù)
字控制器實現(xiàn)對系統(tǒng)的實時控制,同時也為操作者提供人一機界面,完成對系統(tǒng)的
監(jiān)督管理功能:如實時畫圖、數(shù)據(jù)采集等。C8051F020單片機(A/D轉(zhuǎn)換器、D/A 轉(zhuǎn)換器)完成模數(shù)、數(shù)模的轉(zhuǎn)換,放大器用于電壓和功率放大。電動機是系統(tǒng)的執(zhí) 行元件和速度反饋元件,電位器是倒立擺角度的反饋測量元件。一級倒立擺系統(tǒng)的
整套機械部件分別安裝在兩塊底板上,底板上固定著導(dǎo)軌支架、電機底座、滾動軸
承等,通過導(dǎo)軌支架安裝好小車滑行導(dǎo)軌,小車用電機和滾動軸承通過傳動皮帶實
現(xiàn)運動,小車連接著角位移電位器。單級倒立擺原理結(jié)構(gòu)圖如圖1.1所示。倒立擺是一個數(shù)字式的閉環(huán)控制系統(tǒng),其工作原理:小車在電動機的拖動下沿 固定的直線軌道進行運動,相應(yīng)的產(chǎn)生了小車的直線位移和倒立擺的轉(zhuǎn)角。小車位
移通過電動機電位器測得,角位移由安裝在倒立擺軸上的電位器測得。角位移經(jīng)過
刀D轉(zhuǎn)換送到計算機經(jīng)過計算機內(nèi)部的實時控制程序運算產(chǎn)生控制指令。該控制指
令經(jīng)D/A變換、再經(jīng)功率放大,然后輸出給電動機,產(chǎn)生相應(yīng)的控制作用,從而實
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
東北大學(xué)碩士學(xué)位論文第1章緒論 現(xiàn)對小車位移和倒立擺角位移的控制。)))))))}}}(臼臼
圖1.1單級倒立擺原理結(jié)構(gòu)圖
Fig.1.1ThePrineiPleofsingleinvertedPendulumstrueturedrawing 倒立擺控制系統(tǒng)是一個復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng),是進行控制理論教學(xué) 及開展各種控制實驗的理想實驗平臺。對倒立擺系統(tǒng)的研究能有效的反映控制中的
許多典型問題:如非線性問題、魯棒性問題、鎮(zhèn)定問題、隨動問題以及跟蹤問題等。
通過對倒立擺的控制,用來檢驗新的控制方法是否有較強的處理非線性和不穩(wěn)定性
問題的能力。同時,其控制方法在軍工、航天、機器人和一般工業(yè)過程領(lǐng)域中都有
著廣泛的用途,如機器人行走過程中的平衡控制、火箭發(fā)射中的垂直度控制和衛(wèi)星
飛行中的姿態(tài)控制等,且對于揭示定性定量轉(zhuǎn)換規(guī)律和策略具有普遍意義
2.MATLAB簡介及應(yīng)用:
第三章 兩輪小車硬件設(shè)計(1、自平衡小車的組成模塊及工作原理
2、各模塊硬件設(shè)計)第四章 一級倒立擺的數(shù)學(xué)建模(1、一級倒立擺的數(shù)學(xué)建模
系統(tǒng)的建模就是用形式化模型或者抽象的表示方法,對事物本身和外部的 某些因素進行描述??茖W(xué)家們通過大量的觀察和實驗,建立了抽象的表示方法
和定律,這些方法和定律是對現(xiàn)實世界中一些已被證明正確的假設(shè)加以形式化。
例如:愛因斯坦的相對論和牛頓萬有引力定律等等。實物系統(tǒng)的建模找出了所
要建模系統(tǒng)的基本性質(zhì),人們可以在模型上進行試驗推理、研究和設(shè)計,從而
獲得控制實物系統(tǒng)的方法。系統(tǒng)建模幫助人們不斷地加深對事物現(xiàn)象的認(rèn)識,并且啟發(fā)人們?nèi)ミM行可以獲得滿意結(jié)果的實驗。因此,系統(tǒng)建模是研究系統(tǒng)的
前提條件和十分有效地手段。
系統(tǒng)建模是對系統(tǒng)進行仿真、分析、設(shè)計、控制和優(yōu)化的基礎(chǔ)。在建模過 程中,要想模型能包含實際系統(tǒng)的全部信息,是難以現(xiàn)實的。這是因為模型中
存在著過多的實體,實體之間又存在相互關(guān)聯(lián)。因此,包含實際系統(tǒng)的全部信
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
息的模型難以獲得,也難以處理。對于建立好的模型,通常存在著兩個相互矛
盾的因素:簡單化和精確性。為了使模型盡可能的精確和簡單,建模者通常要
決定忽略那些次要的因素,忽略次要因素的前提是:忽略這些因素以后不會顯
著地改變整個模型行為,相反能夠使模型更加簡單化
建立系統(tǒng)數(shù)學(xué)模型的方法一般有兩種:第一種是機理建模,根據(jù)現(xiàn)實對象 的特性,分析其存在的因果關(guān)系,找出反映現(xiàn)實對象內(nèi)部的規(guī)律,所建立的模
型一般都具有明確的物理意義或者現(xiàn)實意義。第二種是實驗建模,將現(xiàn)實對象
看作一個“黑箱”,由于內(nèi)部的規(guī)律并不能直接的得到,必須分析現(xiàn)實對象的輸
入數(shù)據(jù)和輸出數(shù)據(jù),用統(tǒng)計學(xué)方法分析。根據(jù)分析得出的結(jié)論,按先前規(guī)定的
標(biāo)準(zhǔn)來選出一個實驗數(shù)據(jù)最符合的模型。這種方法也稱為系統(tǒng)辯識。倒立擺系
統(tǒng)的形狀較為規(guī)則,是一個絕對不穩(wěn)定的系統(tǒng),用實驗建模方法獲取其數(shù)學(xué)模
型有一定的困難。故在下面的論文中采用機理建模對一級倒立擺系統(tǒng)建模。
在忽略了空氣阻力和各種摩擦之后,可將直線型一級倒立擺系統(tǒng)抽象成小車 和勻質(zhì)擺桿組成的系統(tǒng),如圖所示:
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
圖3-2一級倒立擺系統(tǒng)的力學(xué)示意圖 系統(tǒng)中小車和擺桿的受力分析圖如圖 2.2 所示。其中,N 和 P 為小車與擺桿相 互作用力的水平和垂直方向的分量。
將擺桿視為剛體,則一級倒立擺系統(tǒng)的參數(shù)為:小車質(zhì)量M,擺桿質(zhì)量m,擺 桿重心到鉸鏈的長度l,重力加速度g,小車位置x,擺桿角度9,作用在小車上 的驅(qū)動力F。當(dāng)小車在水平方向運動時,若忽略摩擦力矩的非線性,對小車和擺 桿進行水平和垂直方向受力分析,如圖:
1、運用牛頓力學(xué)分析方法建立了一級倒立擺系統(tǒng)的數(shù)學(xué)模型。并對倒立擺系統(tǒng)進
行定性分析。證明了倒立擺系統(tǒng)是開環(huán)不穩(wěn)定的,但在平衡點是能觀的和能控的,可以
對系統(tǒng)進行控制器的設(shè)計,使系統(tǒng)穩(wěn)定。
2、通過建立模糊規(guī)則,研究倒立擺系統(tǒng)的模糊控制算法。本文把擺桿的角度和角 速度作為輸入量,單獨組成一個角度控制器;把小車的位置和速度作為輸入量,組成另
一個位置控制器。從而實現(xiàn)“擺體不倒,小車停住”的總體控制目標(biāo)。
3、倒立擺模糊控制仿真。本文利用Simulink建立倒立擺系統(tǒng)模型,實現(xiàn)了倒立擺
模糊控制系統(tǒng)的仿真。仿真結(jié)果表明:模糊控制器不僅可以使擺桿穩(wěn)定,還可以使小車
穩(wěn)定在特定位置。
由于倒立擺系統(tǒng)存在不確定性、耦合性等特性,在數(shù)學(xué)上完全準(zhǔn)確的描述它
幾乎是不可能的。為簡化系統(tǒng),解決實際系統(tǒng)中的控制問題,我們在建模時要忽
略了一些次要因素,如空氣阻力、伺服電機的靜摩擦力、系統(tǒng)連接處的松弛程度、洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
擺桿連接處質(zhì)量分布不均勻、傳送帶的彈性、傳動齒輪的間隙等,并將小車抽象
為質(zhì)點,認(rèn)為擺桿是勻質(zhì)剛體,從而將二級直線倒立擺簡化成小車和擺桿組成的
系統(tǒng),建立一個較為精確地倒立擺系統(tǒng)的數(shù)學(xué)模型。
目前,對倒立擺系統(tǒng)建模一般采用兩種方法:牛頓力學(xué)分析方法,歐拉—拉
格朗日原理(Lagrange方程)[41]。建立被控對象的數(shù)學(xué)模型常采用牛頓力學(xué)的方法,建立倒立擺系統(tǒng)的數(shù)學(xué)模型先分析小車和各個擺體的受力情況,然后列出小車和
各個擺體在X方向和Y方向的運動方程以及各擺體相對各個轉(zhuǎn)軸處的轉(zhuǎn)動力矩平衡
式。再通過求解各擺體運動方程和各個轉(zhuǎn)軸處的轉(zhuǎn)動力矩平衡方程得到倒立擺系
統(tǒng)的數(shù)學(xué)模型??梢?采用牛頓運動定律建模,需要解算大量的微分方程組,而
且要考慮到質(zhì)點組受到的約束條件,建模將更加復(fù)雜
倒立擺系統(tǒng)的數(shù)學(xué)建模一般有牛頓歐拉法和拉格朗日法兩種。對于結(jié)構(gòu)相對簡單的
一級直線倒立擺可以使用牛頓歐拉法,先對小車和擺桿進行受力分析,并分別求出他們 的運動方程。將線性化后的兩個運動方程進行拉普拉斯變換。最后整理后可以得到系統(tǒng) 的狀態(tài)空間方程 [1-9]。但在對二級、三級以上的倒立擺進行數(shù)學(xué)建模時,這種方法就顯
得有些復(fù)雜。牛頓運動定律來求解質(zhì)點組的運動問題時,計算量會比較大。在許多實際 的運算中,求解微分方程組會遇到較大的困難。有時,還需要確定各質(zhì)點間的位移、相
互作用力、速度、加速度等關(guān)系來解決質(zhì)點組中存在約束情況,聯(lián)立求解這些方程組就 更為困難 [10-13]。為了簡化倒立擺系統(tǒng)的數(shù)學(xué)建模過程,本章采用了分析力學(xué)中的拉格朗 日方程推導(dǎo)直線倒立擺的數(shù)學(xué)模型,并對該系統(tǒng)的可控性進行了分析。
洛陽理工學(xué)院畢業(yè)設(shè)計(論文)
2、能空性分析
3、能觀性分析
4、基于卡爾曼濾波器的LQR控制器設(shè)計)
第五章 基于MATLAB的仿真(1、基于MATLAB的倒立擺模型
于在教學(xué)和工程實驗領(lǐng)域廣泛應(yīng)用的 MATLAB/Simulink平臺,MATLAB 實時控
制軟件實驗平臺,使得實驗和先進算法研究變得無比輕松。在不需要熟練掌握其他編程
語言的基礎(chǔ)上就能做控制理論實驗,只需要把精力集中在控制算法研究上而不需要接觸
艱深的硬件接口?,F(xiàn)在,在此平臺上可以把系統(tǒng)的建模、仿真和實時控制,用戶的建模
和仿真結(jié)果不需要太多修改就可以直接在同一平臺上針對實際物理設(shè)備進行控制實驗 驗證。
MATLAB 實時控制軟件的特點:實控軟件采用了 MATLAB/Simulink 的實時工具箱
RTW(Real-Time Workshop)實現(xiàn)控制任務(wù),運行在 Windows 操作系統(tǒng)基礎(chǔ)上,專用的
實時內(nèi)核代替 Windows 操作系統(tǒng)接管了實時控制任務(wù)。內(nèi)核任務(wù)執(zhí)行的最小周期是
1ms,大大地提高了系統(tǒng)控制的實時性,完全可以滿足 Windows 下較高的實時性控制要
求而不用擔(dān)心 Windows 本身的實時性問題。
2、控制器設(shè)計及實時仿真)
第四篇:基于一階倒立擺的matlab仿真實驗
成都理工大學(xué)工程技術(shù)學(xué)院 基于一階倒立擺的matlab仿真實驗
實驗人員:-------
-------學(xué)
號:--------
---------
實驗日期:20150618 摘要
本文主要研究的是一級倒立擺的控制問題,并對其參數(shù)進行了優(yōu)化。倒立擺是典型的快速、多變量、非線性、強耦合、自然不穩(wěn)定系統(tǒng)。由于在實際中有很多這樣的系統(tǒng),因此對它的研究在理論上和方法論上均有深遠的意義。本文首先簡單的介紹了一下倒立擺以及倒立擺的控制方法,并對其參數(shù)優(yōu)化算法做了分類介紹。然后,介紹了本文選用的優(yōu)化參數(shù)的狀態(tài)空間極點的配置和PID控制。接著建立了一級倒立擺的數(shù)學(xué)模型,并求出其狀態(tài)空間描述。本文著重講述的是利用狀態(tài)空間中極點配置實現(xiàn)方法。最后,用Simulink對系統(tǒng)進行了仿真,得出在實際控制中是兩種比較好的控制方法。
Abstract
This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.目 錄 引言..................................................4 1.1 倒立擺介紹以及應(yīng)用.........................................4 1.2 倒立擺的控制方法...........................................5
2單級倒立擺數(shù)學(xué)模型的建立...............................6 2.1傳遞函數(shù)...................................................8 2.2狀態(tài)空間方程...............................................9
3系統(tǒng)Matlab 仿真和開環(huán)響應(yīng).............................11 4 系統(tǒng)設(shè)計.............................................15 4.1極點配置與控制器的設(shè)計....................................15 4.2系統(tǒng)仿真:................................................16 4.3仿真結(jié)果..................................................17 4.4根據(jù)傳遞函數(shù)設(shè)計第二種控制方法-----PID串級控制............18
5結(jié) 論
...............................................19引言
1.1 倒立擺介紹以及應(yīng)用
倒立擺控制系統(tǒng)是一個復(fù)雜的、不穩(wěn)定的、非線性系統(tǒng),是進行控制理論教學(xué)及開展各種控制實驗的理想實驗平臺。對倒立擺系統(tǒng)的研究能有效的反映控制中的許多典型問題:如非線性問題、魯棒性問題、鎮(zhèn)定問題、隨動問題以及跟蹤問題等。通過對倒立擺的控制,用來檢驗新的控制方法是否有較強的處理非線性和不穩(wěn)定性問題的能力。
通過對它的研究不僅可以解決控制中的理論和技術(shù)實現(xiàn)問題,還能將控制理論涉及的主要基礎(chǔ)學(xué)科:力學(xué),數(shù)學(xué)和計算機科學(xué)進行有機的綜合應(yīng)用。其控制方法和思路無論對理論或?qū)嶋H的過程控制都有很好的啟迪,是檢驗各種控制理論和方法的有效的“試金石”。倒立擺的研究不僅有其深刻的理論意義,還有重要的工程背景。在多種控制理論與方法的研究與應(yīng)用中,特別是在工程實踐中,也存在一種可行性的實驗問題,使其理論與方法得到有效檢驗,倒立擺就能為此提供一個從理論通往實踐的橋梁,目前,對倒立擺的研究已經(jīng)引起國內(nèi)外學(xué)者的廣泛關(guān)注,是控制領(lǐng)域研究的熱門課題之一。
倒立擺不僅僅是一種優(yōu)秀的教學(xué)實驗儀器,同時也是進行控制理論研究的理想實驗平臺。由于倒立擺系統(tǒng)本身具有的高階次、不穩(wěn)定、多變量、非線性和強耦合特性,許多現(xiàn)代控制理論的研究人員一直將它視為典型的研究對象,不斷從中發(fā)掘出新的控制策略和控制方法,相關(guān)的科研成果在航天科技和機器人學(xué)方面獲得了廣闊的應(yīng)用。二十世紀(jì)九十年代以來,更加復(fù)雜多種形式的倒立擺系統(tǒng)成為控制理論研究領(lǐng)域的熱點,每年在專業(yè)雜志上都有大量的優(yōu)秀論文出現(xiàn)。因此,倒立擺系統(tǒng)在控制理論研究中是一種較為理想的實驗裝置。
倒立擺主要應(yīng)用在以下幾個方面:(1)機器人的站立與行走類似于雙倒立擺系統(tǒng),盡管第一臺機器人在美國問世至今已有三 十年的歷史,機器人的關(guān)鍵技術(shù)--機器人的行走控制至今仍未能很好解決。(2)在火箭等飛行器的飛行過程中,為了保持其正確的姿態(tài),要不斷進行實時控制。
(3)通信衛(wèi)星在預(yù)先計算好的軌道和確定的位置上運行的同時,要保持其穩(wěn)定的姿態(tài),使衛(wèi)星天線一直指向地球,使它的太陽能電池板一直指向太陽。(4)偵察衛(wèi)星中攝像機的輕微抖動會對攝像的圖像質(zhì)量產(chǎn)生很大的影響,為了提高攝像的質(zhì)量,必須能自動地保持伺服云臺的穩(wěn)定,消除震動。
(5)為防止單級火箭在拐彎時斷裂而誕生的柔性火箭(多級火箭),其飛行姿態(tài)的控制也可
以用多級倒立擺系統(tǒng)進行研究。
由于倒立擺系統(tǒng)與雙足機器人、火箭飛行控制和各類伺服云臺穩(wěn)定有很大相似性,因此對倒立擺控制機理的研究具有重要的理論和實踐意義。
1.2 倒立擺的控制方法
倒立擺有多種控制方法。對倒立擺這樣的一個典型被控對象進行研究,無論在理論上和方法上都具有重要意義。不僅由于其級數(shù)增加而產(chǎn)生的控制難度是對人類控制能力的有力挑戰(zhàn),更重要的是實現(xiàn)其控制穩(wěn)定的過程中不斷發(fā)現(xiàn)新的控制方法,探索新的控制理論,并進而將新的控制方法應(yīng)用到更廣泛的受控對象中。當(dāng)前,倒立擺的控制方法可分為以下幾類 :
(1)線性理論控制方法
將倒立擺系統(tǒng)的非線性模型進行近似線性化處理,獲得系統(tǒng)在平衡點附近的線性化模型,然后再利用各種線性系統(tǒng)控制器設(shè)計方法,得到期望的控制器。PID控制、狀態(tài)反饋控制、能量控制]、LQR控制算法是其典型代表。
(2)預(yù)測控制和變結(jié)構(gòu)控制方法
預(yù)測控制:是一種優(yōu)化控制方法,強調(diào)的是模型的功能而不是結(jié)構(gòu)。變結(jié)構(gòu)控制:是一種非連續(xù)控制,可將控制對象從任意位置控制到滑動曲面上仍然保持系統(tǒng)的穩(wěn)定性和魯棒性,但是系統(tǒng)存在顫抖。預(yù)測控制、變結(jié)構(gòu)控制和自適應(yīng)控制在理論上有較好的控制效果,但由于控制方法復(fù)雜,成本也高,不易在快速變化的系統(tǒng)上實時實現(xiàn)
2單級倒立擺數(shù)學(xué)模型的建立
在忽略了空氣流動,各種摩擦之后,可將倒立擺系統(tǒng)抽象成小車和勻質(zhì)桿組成的系統(tǒng),如下圖1所示
圖1 單級倒立擺模型示意圖
那我們在本實驗中定義如下變量:
M
小車質(zhì)量
(本實驗系統(tǒng)
1.096 Kg)m
擺桿質(zhì)量
(本實驗系統(tǒng)
0.109 Kg)b
小車摩擦系數(shù)(本實驗系統(tǒng)
0.1 N/m/sec)l
擺桿轉(zhuǎn)動軸心到桿質(zhì)心的長度(0.25 m)I
擺桿慣量
(0.0034 kg*m*m)F
加在小車上的力
x
小車位置
φ
擺桿與垂直向上方向的夾角 θ
擺桿與垂直向下方向的夾角(考慮到擺桿初始位置為豎直向下)下面我們對這個系統(tǒng)作一下受力分析。下圖2是系統(tǒng)中小車和擺桿的受力分析圖。其中,N和P為小車與擺桿相互作用力的水平和垂直方向的分量。
注意:在實際倒立擺系統(tǒng)中檢測和執(zhí)行裝置的正負(fù)方向已經(jīng)完全確定,因而矢量方向定義如圖,圖示方向為矢量正方向。
圖2 倒立擺模型受力分析
分析小車水平方向所受的合力,可以得到等式:
應(yīng)用Newton方法來建立系統(tǒng)的動力學(xué)方程過程如下:
分析小車水平方向所受的合力,可以得到以下方程:
??F?bx??N M?x由擺桿水平方向的受力進行分析可以得到下面等式:
N?md2dt2
(x?lsin?)
?2sin???ml?cos??ml?x即 N?m???
把這個等式代入上式中,就得到系統(tǒng)的第一個運動方程:
??cos??ml??2sin??F??bx??ml?(M?m)?x(1)
為了推出系統(tǒng)的第二個運動方程,我們對擺桿垂直方向上的合力進行分析,可以得到下面方程:
d2P?mg?m2(lcos?)dt??sin??ml??2cos?即:P?mg??ml?
力矩平衡方程如下:
???Plsin??Nlcos??I?
注意:此方程中力矩的方向,由于?????,cos???cos?,sin???sin?,故等式前面有負(fù)號。
21I?mlN3P合并這兩個方程,約去和,由得到第二個運動方程:
43???mglsin???ml??cos?ml2?x(2)
設(shè)?????(?是擺桿與垂直向上方向之間的夾角),假設(shè)?與1(單位是
d?()2?0sin????,dtcos???1,弧度)相比很小,即?《1,則可以進行近似處理:。用u來代表被控對象的輸入力F,線性化后兩個運動方程如下:
4???g?????x?3l?????u???bx??ml?x?(M?m)?(3)
2.1傳遞函數(shù)
對方程組(3)進行拉普拉斯變換,得到
?422?l?(s)s?g?(s)?X(s)s?3?(M?m)X(s)s2?bX(s)s?ml?(s)s2?U(s)?(4)
注意:推導(dǎo)傳遞函數(shù)時假設(shè)初始條件為0。
由于輸出為角度?,求解方程組(4)的第一個方程,可以得到
4gX(s)?[l?2]?(s)3s
把上式代入方程組(4)的第二個方程,得到
?(I?ml2)g??(I?ml2)g?2(M?m)????(s)s?b??2??(s)s?ml?(s)s2?U(s)s?s??ml?ml
整理后得到傳遞函數(shù):
ml2sqs?443?(s)?U(s)bml2qs3?(M?m)mgl2bmgls?sqq
22q?[(M?m)(I?ml)?(ml)] 其中
2.2狀態(tài)空間方程
系統(tǒng)狀態(tài)空間方程為
??AX?BuXy?CX?Du
???,?x方程組(3)對?解代數(shù)方程,得到解如下: ??x??x??4b3mg4??????xx??u(4M?m)(4M?m)(4M?m)??????????3b3g(M?m)3?????x??u??(4M?m)l(4M?m)l(4M?m)l?
整理后得到系統(tǒng)狀態(tài)空間方程:
1???0?x?4b????0??(4M?m)?x?????0??0?????3b??0??????(4M?m)l?03mg(4M?m)03g(M?m)(4M?m)l0?0??x??4???0?????x?(4M?m)??????u1?????0?3??????0?????????(4M?m)l??
?x?????x??1000??x?0??y???????????0?u?0010??????????????
帶入?yún)?shù)可得系統(tǒng)的狀態(tài)空間方程:
???0?x10?????0-0.08831670.629317x???????0??00??????0-0.23565527.8285?????0??x??0??x????0.883160???????u??1???0???????0??2.35655???? ???x?????x??1000??x?0??y???????????0?u?0010?????????????? 3系統(tǒng)Matlab 仿真和開環(huán)響應(yīng)
系統(tǒng)開環(huán)穩(wěn)定性分析
num=[2.35655 0 0];den=[1 0.088167-27.9169-2.30942];sys=tf(num,den)[z,p,k]=tf2zp(num,den);step(sys)%階躍響應(yīng)曲線: grid on
階躍響應(yīng)曲線
rlocus(sys)%根軌跡
根軌跡
bode(sys)%波特圖
[A,B,C,D]=tf2ss(num,den);Q=ctrb(A,B)rank(Q)%系統(tǒng)能控性分析
Q =
1.0000-0.0882 27.9247 0 1.0000-0.0882 0 0 1.0000
ans = 3
由得到的rank(Q)的值可知,原系統(tǒng)的能控性矩陣為3,所以我們可知原系統(tǒng)是不能控的。m=obsv(A,C)rank(m)m = 2.3565 0 0-0.2078 65.7876 5.4423 65.8059-0.3580-0.4798
ans = 3 由得到的rank(m)的值可知,原系統(tǒng)的能觀性矩陣為3,所以我們可知原系統(tǒng)是能觀的。eig(A)ans =
5.2810-5.2864-0.0827
由eig(A)的值可知系統(tǒng)是不穩(wěn)定的。4 系統(tǒng)設(shè)計
4.1極點配置與控制器的設(shè)計
采用極點配置法設(shè)計多輸出的倒立擺系統(tǒng)的控制方案??梢杂猛耆珷顟B(tài)反饋來解決,控制擺桿和小車的位置。
設(shè)計狀態(tài)反饋陣時,要使系統(tǒng)的極點設(shè)計成兩個主導(dǎo)極點和兩個非主導(dǎo)極點,用二階系統(tǒng)的分析方法確定參數(shù)。
根據(jù)系統(tǒng)性能要求: 最大超調(diào)量10%,調(diào)節(jié)時間為 1s
-??運用超調(diào)量計算公式:?%?? 得到??0.707wn?5.66
1-?2 t?3
s??n P2=-4-4.33j 得到兩個主導(dǎo)極點為:P1=-4+4.33j P4=-20 選取兩個非主導(dǎo)極點:P3=-20 根據(jù)MATLAB求取狀態(tài)增益矩陣,程序如下: a=[0 1 0 0 0-0.0883167 0.629317 0 0 0 0 1 0-0.23655 27.8285 0];b=[0 0.883167 0 2.35655];p=[-4+4.33j-6-4.33j-20-20];k=acker(a,b,p)k =
-740.4267-247.3685 646.9576 113.8866
4.2系統(tǒng)仿真:
根據(jù)狀態(tài)空間表達式建立一階倒立擺SimuLink仿真圖,如下:
4.3仿真結(jié)果
系統(tǒng)仿真圖(位置,速度,角度,角速度)
根軌跡
4.4根據(jù)傳遞函數(shù)設(shè)計第二種控制方法-----PID串級控制
PID控制器系統(tǒng)框圖:
經(jīng)過幾次參數(shù)調(diào)試得出Kp=300,Ki=200,Kd=20滿足性能要求,其仿真圖形如下:
5結(jié) 論
本次設(shè)計主要通過PID串級控制和狀態(tài)空間極點配置的方法對直線一級倒立擺進行校正,通過此次課程,掌握MATLAB的基本使用方法。在課程設(shè)計過程中,培養(yǎng)了團隊協(xié)作能力,刻苦鉆研以及編程能力,為今后的學(xué)習(xí)工作打下了良好的基礎(chǔ)。經(jīng)過這次課程,是我受益匪淺。
第一、學(xué)會了如何運用自己所學(xué)的知識結(jié)合實踐
第二、硬件最然需要不斷嘗試,但不是盲目的調(diào)試,而是需要有理論作為指導(dǎo),指明調(diào)整的方向,這樣設(shè)計系統(tǒng)就會事半功倍。第三、Matlab等工具軟件的使用也大大提高了設(shè)計系統(tǒng)的速度。這些都是試驗中珍貴的收獲。
最后再一次感謝老師的耐心講解與精心的教誨,讓我渡過難關(guān),順利完成實驗。
第五篇:倒立擺初步調(diào)式程序
/*/***************************************************** 此為倒立擺程序,共分為六個模式
//************************************************ *************************************************** *********************************************************/ #include
sbit B1=P1^0;//按鍵接口由模式1到模式6,模式6必須在完成模式5所設(shè)定功能啟動 sbit B2=P1^1;sbit B3=P1^2;sbit B4=P1^3;sbit B5=P1^4;sbit B6=P1^5;
sbit Zx=P3^2;
//增量式編碼器接口z用于判斷起點 sbit Ax=P3^3;//A,B聯(lián)立用于判斷方向 sbit Bx=P2^4;
sbit rs=P2^5;
//1602的數(shù)據(jù)/指令選擇控制線
sbit rw=P2^6;
//1602的讀寫控制線
sbit en=P2^7;
//1602的使能控制線
void moshi1();//倒立擺的不同模式函數(shù) void moshi2();void moshi3();void moshi4();void moshi5();void moshi6();//*********************************************** //lcd顯示函數(shù)聲明
void fuzhi1(uchar n2,uchar n3);void fuzhi(uchar n2,uchar n3);void lcd_w1(uchar ff);void lcd_w2(uchar dat);void lcd_init();void display();
//************************************************ //pid參數(shù)及其計算函數(shù)聲明 void PID_init();void chushihua();float PID_jisuang(float shuzhi);//************************************************** void dianji(int v,int s,char m);//電機函數(shù)
int zhuanghua(float shijizhi1);//pid控制量轉(zhuǎn)化為電機運轉(zhuǎn)角度函數(shù)
float zengliangzhi,jiaodu,Py;
uchar flag=1,a=0,j=0,j1=0,su=0,time,time1,time2,y=0;uchar table[]={“jiaodu1=00.00”};uchar table1[]={“p=0000,x=0;”};uint mc,n,Pw,d1,d2,d3,d4,d5,m1;//********************************************************* //延時函數(shù) void deplay(uint ms){
uchar i;
while(ms--)
for(i=0;i<2;i++);
} //*********************************************
void main(){
PID_init();
chushihua();
while(1)
} //************************************************* void chushihua(){ {
while(B1)
moshi1();while(B2)
moshi2();while(B3)
moshi3();while(B4)
moshi4();while(B5)
moshi5();
}
EA=1;
//開總中斷1優(yōu)先級
TMOD=0x01;
//T0定時方式1 TH0=(65536-200)/256;
TL0=(65536-200)%256;
} //****************************************************** void bianmaA()interrupt 2 {
if((time1-time2)>=2)
{
time2=time1;if(Bx)
IT0=1;IT1=1;EX0=1;PX0=1;
//下降沿觸發(fā)
//下降沿觸發(fā)
//開外部中斷0 //外部中斷0高
TR0=1;
//啟用定時器T0 ET0=1;
//控制打開T0
j++;
else
j1++;
}
} //******************************************** void bianmaZ()interrupt 0 {
EX0=0;
EX1=1;
PX1=1;flag=0;}
//*********************************************** void time0()interrupt 1 {
TL0=(65536-200)%256;TH0=(65536-200)/256;su++;time++;while(time==5){
time=0;
time1++;
} } while(su==a)
//脈沖頻率調(diào)節(jié)
{
su=0;Pw++;}
if(su<(a/2))
A2=0;
else
A2=1;
//************************************** //模式1實現(xiàn)倒立擺左右大于60度角功能,具體再看;
void moshi1(){
dianji(6,100,1);
dianji(6,100,0);
} //*************************************** //模式1實現(xiàn)倒立擺運轉(zhuǎn)至少一周功能;具體再看; void moshi2(){
dianji(6,200,1);
dianji(6,200,0);} //*************************************** //模式1實現(xiàn)倒立擺擺桿拿到左邊165度自平衡功能;并顯示角度(100次測量)具體再看; void moshi3(){
while(flag)
{ a=6;
Pw=0;
A1=1;
}
if(1)
{
jiaodu=(j-j1)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,1);
y=1;
}
else { a=0;
jiaodu=(j1-j)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,0);
y=0;} m1++;
if(m1==100)
{
d1=((int)(jiaodu*100))/1000;
d2=((int)(jiaodu*100))%1000/100;
d3=((int)(jiaodu*100))%1000%100/10;
d4=((int)(jiaodu*100))%1000%100%10;
fuzhi(d1,8);
fuzhi(d2,9);
fuzhi(d3,11);
fuzhi(d4,12);
d1=mc/1000;
d2=mc%1000/100;
d3=mc%1000%100/10;
}
d4=mc%1000%100%10;
d5=y;
fuzhi1(d1,2);
fuzhi1(d2,3);
fuzhi1(d3,4);
fuzhi1(d4,5);
fuzhi1(d5,9);
display();
m1=0;
} //************************************************************ //模式1實現(xiàn)倒立擺擺桿拿到右邊165度自平衡功能;并顯示其角度(100次測量)具體再看; void moshi4(){
a=6;
Pw=0;
while(flag)
{
A1=0;
}
if(j>j1)
{
jiaodu=(j-j1)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,1);
y=1;}
else
{
jiaodu=(j1-j)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,0);
y=0;} m1++;if(m1==100)
{
d1=((int)(jiaodu*100))/1000;
d2=((int)(jiaodu*100))%1000/100;
}
d3=((int)(jiaodu*100))%1000%100/10;
d4=((int)(jiaodu*100))%1000%100%10;
fuzhi(d1,8);
fuzhi(d2,9);
fuzhi(d3,11);
fuzhi(d4,12);
d1=mc/1000;
d2=mc%1000/100;
d3=mc%1000%100/10;
d4=mc%1000%100%10;
d5=y;
fuzhi1(d1,2);
fuzhi1(d2,3);
fuzhi1(d3,4);
fuzhi1(d4,5);
fuzhi1(d5,9);
display();
m1=0;
} //********************************************************* //模式1實現(xiàn)倒立擺擺桿由低到最高點平衡功能,平衡后按下B6實現(xiàn)單方向旋轉(zhuǎn)一周;具體再看; void moshi5(){
if(!flag)
{
if(j>j1)
{
jiaodu=(j-j1)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,1);
} else {
jiaodu=(j1-j)*0.36;y=1;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);
dianji(6,mc,0);
y=0;} m1++;
if(m1==100)
{
d1=((int)(jiaodu*100))/1000;
d2=((int)(jiaodu*100))%1000/100;
d3=((int)(jiaodu*100))%1000%100/10;
d4=((int)(jiaodu*100))%1000%100%10;
fuzhi(d1,8);
fuzhi(d2,9);
fuzhi(d3,11);
fuzhi(d4,12);
d1=mc/1000;
d2=mc%1000/100;
d3=mc%1000%100/10;
d4=mc%1000%100%10;
d5=y;
fuzhi1(d1,2);
fuzhi1(d2,3);
fuzhi1(d3,4);
fuzhi1(d4,5);
fuzhi1(d5,9);
display();
m1=0;
}
} else {
a=6;
Pw=0;
while((Pw<200)&&(!flag))
{
A1=1;
}
Pw=0;
while((Pw<200)&&(!flag))
{
A1=0;
} } while(B6)
{
if(((j-j1)>=2)&&((j-j1)<=8))
{
a=50;A1=1;
//此為功能6
}
} else
{
if(j>j1)
jiaodu=(j-j1-5)*0.36;else
jiaodu=(j1-j-5)*0.36;
Py=(int)PID_jisuang(jiaodu);
mc=zhuanghua(Py);dianji(6,mc,0);
} }
//************************************************** //pid算法 struct _pid
{
float shijizhi;
//定義實際值
float piancha;
//定義偏差值
float piancha_1;
//定義上一個偏差值
float piancha_2;
//定義最上前的偏差值
float Kp,Ki,Kd;
//定義比例、積分、微分系數(shù)
}pid;//****************************************************** //數(shù)字增量式pid參數(shù)值的設(shè)定 void PID_init(){
pid.shijizhi=0.0;
pid.piancha=0.0;
pid.piancha_1=0.0;pid.piancha_2=0.0;
pid.Kp=2.0;pid.Ki=0.25;
pid.Kd=0.5;}
//********************************************************** //數(shù)字增量式pid計算誤差 float PID_jisuang(float shuzhi){
pid.piancha=shuzhi;
zengliangzhi=pid.Kp*(pid.piancha-pid.piancha_1)+pid.Ki*pid.piancha+pid.Kd*(pid.piancha-2*pid.piancha_1+pid.piancha_2);
pid.shijizhi+=zengliangzhi;
pid.piancha_2=pid.piancha_1;
pid.piancha_1=pid.piancha;
return pid.shijizhi;} //*************************************************************** //電機調(diào)整角度模塊 void dianji(int v,int s,char m){
} //****************************************** //pid控制量轉(zhuǎn)為步進電機角度函數(shù) int zhuanghua(float shijizhi1){
} float dianjizhuangtai=0.75*sin(shijizhi1);int dianjishuchu=(int)(dianjizhuangtai*127.4);return dianjishuchu;a=v;Pw=0;while(Pw
void lcd_w1(uchar ff)//1602寫命令函數(shù)
{
rs=0;
//選擇指令寄存器
rw=0;
//選擇寫
P0=ff;
//把命令字送入P2
deplay(5);
//延時一小會兒,讓1602準(zhǔn)備接收數(shù)據(jù)
en=1;
//使能線電平變化,命令送入1602的8位數(shù)據(jù)口
en=0;}
void lcd_w2(uchar dat)
//1602寫數(shù)據(jù)函數(shù)
{
rs=1;
//選擇數(shù)據(jù)寄存器
rw=0;
//選擇寫
P0=dat;
//把要顯示的數(shù)據(jù)送入P2
deplay(5);
//延時一小會兒,讓1602準(zhǔn)備接收數(shù)據(jù)
en=1;
//使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口
en=0;}
void lcd_init()
//1602初始化函數(shù)
{
lcd_w1(0x38);
//8位數(shù)據(jù),雙列,5*7字形
lcd_w1(0x0c);
//開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍
lcd_w1(0x06);
//顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位
lcd_w1(0x01);
//清屏
}
void display(){
lcd_init();
//液晶初始化
lcd_w1(0x80);
//顯示地址設(shè)為80H(即00H,)
if(1)
{
for(n=0;n<13;n++)
//將table1[]中的數(shù)據(jù)依次寫入1602顯示
{
lcd_w2(table[n]);
deplay(1);
}
lcd_w1(0x80+0x40);//重新設(shè)定顯示地址
for(n=0;n<11;n++)
//將table1[]中的數(shù)據(jù)依次寫入1602顯示
{
lcd_w2(table1[n]);
deplay(1);
}
}
//***************************************** void fuzhi(uchar n2,uchar n3)
{
switch(n2){
case 0:table[n3]='0';break;case 1:table[n3]='1';break;case 2:table[n3]='2';break;case 3:table[n3]='3';break;case 4:table[n3]='4';break;case 5:table[n3]='5';break;
}
}
} case 6:table[n3]='6';break;case 7:table[n3]='7';break;case 8:table[n3]='8';break;case 9:table[n3]='9';break;default:break;
void fuzhi1(uchar n2,uchar n3)
{
switch(n2){
case 0:table1[n3]='0';break;case 1:table1[n3]='1';break;case 2:table1[n3]='2';break;case 3:table1[n3]='3';break;case 4:table1[n3]='4';break;case 5:table1[n3]='5';break;case 6:table1[n3]='6';break;case 7:table1[n3]='7';break;case 8:table1[n3]='8';break;case 9:table1[n3]='9';break;default:break;
}
}//*****************************************