自動(dòng)控制原理課程設(shè)計(jì)說(shuō)明書
基于雙閉環(huán)PID控制的一階倒立擺控制系統(tǒng)設(shè)計(jì)
1 任務(wù)概述
1.1設(shè)計(jì)概述
1.2 要完成的設(shè)計(jì)任務(wù):
2系統(tǒng)建模
2.1 對(duì)象模型
2.2 模型建立及封裝
3仿真驗(yàn)證
3.1 實(shí)驗(yàn)設(shè)計(jì)
3.2 建立M文件編制繪圖子程序
4 雙閉環(huán)PID控制器設(shè)計(jì)
4.1內(nèi)環(huán)控制器的設(shè)計(jì)
4.2外環(huán)控制器的設(shè)計(jì)
5 仿真實(shí)驗(yàn)
5.1簡(jiǎn)化模型
5.2 仿真實(shí)驗(yàn)
6 檢驗(yàn)系統(tǒng)的魯棒性
6.1 編寫程序求系統(tǒng)性能指標(biāo)
6.2 改變參數(shù)驗(yàn)證控制系統(tǒng)的魯棒性
7 結(jié)論
附錄
1 任務(wù)概述
1.1設(shè)計(jì)概述如圖1 所示的“一階倒立擺控制系統(tǒng)”中,通過(guò)檢測(cè)小車位置與擺桿的擺動(dòng)角,來(lái)適當(dāng)控制驅(qū)動(dòng)電動(dòng)機(jī)拖動(dòng)力的大小,控制器由一臺(tái)工業(yè)控制計(jì)算機(jī)(IPC)完成。 圖1 一階倒立擺控制系統(tǒng) 這是一個(gè)借助于“SIMULINK封裝技術(shù)——子系統(tǒng)”,在模型驗(yàn)證的基礎(chǔ)上,采用雙閉環(huán)PID控制方案,實(shí)現(xiàn)倒立擺位置伺服控制的數(shù)字仿真實(shí)驗(yàn)。 1.2 要完成的設(shè)計(jì)任務(wù):(1)通過(guò)理論分析建立對(duì)象模型(實(shí)際模型),并在原點(diǎn)進(jìn)行線性化,得到線性化模型;將實(shí)際模型和線性化模型作為子系統(tǒng),并進(jìn)行封裝,將倒立擺的振子質(zhì)量m和倒擺長(zhǎng)度L作為子系統(tǒng)的參數(shù),可以由用戶根據(jù)需要輸入; (2)設(shè)計(jì)實(shí)驗(yàn),進(jìn)行模型驗(yàn)證; (3)一階倒立擺系統(tǒng)為“自不穩(wěn)定的非最小相位系統(tǒng)”。將系統(tǒng)小車位置作為“外環(huán)”,而將擺桿擺角作為“內(nèi)環(huán)”,設(shè)計(jì)內(nèi)化與外環(huán)的PID控制器; (4)在單位階躍輸入下,進(jìn)行SIMULINK仿真; (5)編寫繪圖程序,繪制階躍響應(yīng)曲線,并編程求解系統(tǒng)性能指標(biāo):最大超調(diào)量、調(diào)節(jié)時(shí)間、上升時(shí)間; (6)檢驗(yàn)系統(tǒng)的魯棒性:將對(duì)象的特性做如下變化后,同樣在單位階躍輸入下,檢驗(yàn)所設(shè)計(jì)控制系統(tǒng)的魯棒性能,列表比較系統(tǒng)的性能指標(biāo)(最大超調(diào)量、調(diào)節(jié)時(shí)間、上升時(shí)間)。 倒擺長(zhǎng)度L不變,倒立擺的振子質(zhì)量m從1kg分別改變?yōu)?.5kg、2kg、2.5kg、0.8kg、0.5kg; 倒立擺的振子質(zhì)量m不變,倒擺長(zhǎng)度L從0.3m分別改變?yōu)?.5m、0.6m、0.2m、0.1m。 2系統(tǒng)建模
2.1 對(duì)象模型一階倒立擺的精確模型的狀態(tài)方程為: 若只考慮θ在其工作點(diǎn) = 0附近的細(xì)微變化,這時(shí)可以將模型線性化,這時(shí)可以近似認(rèn)為: 一階倒立擺的簡(jiǎn)化模型的狀態(tài)方程為: 2.2 模型建立及封裝上邊的圖是精確模型,下邊的是簡(jiǎn)化模型。 圖2 模型驗(yàn)證原理圖 2、由狀態(tài)方程可求得: Fcn:(4/3*u[1]+4/3*m*l*sin(u[3])*power(u[2],2)-10*m*sin(u[3])*cos(u[3]))/(4/3*(1+m)-m*power(cos(u[3]),2)) Fcn1:(cos(u[3])*u[1]+m*l*sin(u[3])*cos(u[3])*power(u[2],2)-10*(1+m)*sin(u[3]))/(m*l*power(cos(u[3]),2)-4/3*l*(1+m)) Fun2:(4*u[1]-30*m*u[3])/(4+m) Fun3:(u[1]-10*(1+m)*u[3])/(m*l-4/3*l*(1+m)) (其中J = ,小車質(zhì)量M=1kg,倒擺振子質(zhì)量m,倒擺長(zhǎng)度2L,重力加速度g=10m/ ) 將以上表達(dá)式導(dǎo)入函數(shù)。 3、如下圖框選后選擇create subsystem 圖3 封裝 4、封裝之后如下圖 圖4 子系統(tǒng)建立 5、將精確模型subsystem和簡(jiǎn)化模型subsystem1組合成以下系統(tǒng)以供驗(yàn)證,注意add的符號(hào)是++,不是+-,網(wǎng)上其他的課設(shè)都是錯(cuò)的。(輸入信號(hào)是由階躍信號(hào)合成的脈沖,幅值為0.05,持續(xù)時(shí)間(step time)為0.1s)。 圖5 系統(tǒng)模塊封裝 6、鼠標(biāo)右擊子系統(tǒng)模塊,在模塊窗口選項(xiàng)中選擇Mask->edit mask,則彈出如下窗口。 圖6 添加參數(shù) 7、點(diǎn)擊左邊菜單欄的edit,添加參數(shù)m和L,注意prompt中的m和L意思是之后對(duì)話框中的提示詞,而name中的m和L是要被prompt中輸入的值導(dǎo)入的變量,如果name中填錯(cuò)了,那么之后的值將無(wú)法導(dǎo)入。 圖7 編輯參數(shù) 8、在系統(tǒng)模型中,雙擊子系統(tǒng)模塊,則會(huì)彈出一個(gè)新窗口,在新窗口中可以輸入m和L的值,之后將會(huì)輸入,如圖8所示。 圖8 輸入?yún)?shù) 3仿真驗(yàn)證3.1 實(shí)驗(yàn)設(shè)計(jì)假定使倒立擺在(θ=0,x=0)初始狀態(tài)下突加微小沖擊力作用,則依據(jù)經(jīng)驗(yàn)知,小車將向前移動(dòng),擺桿將倒下。 3.2 建立M文件編制繪圖子程序圖9 繪圖子程序 (提示:附錄中有子程序方便大家Ctrl+c (^_^),上邊只是為了方便對(duì)照)。 - 在系統(tǒng)模型中,雙擊子系統(tǒng)模塊,則會(huì)彈出一個(gè)新窗口,在新窗口中輸入m和l值,點(diǎn)擊OK并運(yùn)行,如圖10所示。
圖10 輸入?yún)?shù) - 如圖設(shè)置to file模塊的參數(shù),Variable name的名字就是M程序中的函數(shù)名,這里如果不是signals的話程序是無(wú)法運(yùn)行的。Save format要選擇Array,因?yàn)槌绦蚴前磾?shù)組形式調(diào)取變量的,沒(méi)有選擇Array的話運(yùn)行程序會(huì)出現(xiàn)“索引超出矩陣維度”的錯(cuò)誤。
圖11 to file參數(shù)設(shè)置 - 運(yùn)行M文件程序,執(zhí)行該程序的結(jié)果如圖8所示。
圖12 模型驗(yàn)證仿真結(jié)果 從中可見,在0.1N的沖擊力下,擺桿倒下(θ由零逐步增大), 小車位置逐漸增加,這一結(jié)果符合前述的實(shí)驗(yàn)設(shè)計(jì),故可以在一定程度上確認(rèn)該“一階倒立擺系統(tǒng)”的數(shù)學(xué)模型是有效的。同時(shí),由圖中也可以看出,近似模型在0.8s以前與精確模型非常接近,因此,也可以認(rèn)為近似模型在一定條件下可以表達(dá)原系統(tǒng)模型的性質(zhì)。 4 雙閉環(huán)PID控制器設(shè)計(jì)一級(jí)倒立擺系統(tǒng)位置伺服控制系統(tǒng)如圖13所示。 圖13 一級(jí)倒立擺系統(tǒng)位置伺服控制系統(tǒng)方框圖 4.1內(nèi)環(huán)控制器的設(shè)計(jì)內(nèi)環(huán)采用反饋校正進(jìn)行控制。 圖14 內(nèi)環(huán)系統(tǒng)結(jié)構(gòu)圖 反饋校正采用PD控制器,設(shè)其傳遞函數(shù)為 ,為了抑制干擾,在 前向通道上加上一個(gè)比例環(huán)節(jié) = K? 控制器參數(shù)的整定: 設(shè) 的增益K = -20,則內(nèi)環(huán)控制系統(tǒng)的閉環(huán)傳遞函數(shù)為 令ξ= 0.7 內(nèi)環(huán)控制器的傳遞函數(shù)為: 內(nèi)環(huán)控制系統(tǒng)的閉環(huán)傳遞函數(shù)為: 4.2外環(huán)控制器的設(shè)計(jì)外環(huán)系統(tǒng)前向通道的傳遞函數(shù)為: 圖12 外環(huán)系統(tǒng)結(jié)構(gòu)圖 對(duì)外環(huán)模型進(jìn)行降階處理,若忽略 的高次項(xiàng),則近似為一階傳遞函數(shù)為: 對(duì)模型 進(jìn)行近似處理,則 的傳遞函數(shù)為: 外環(huán)控制器采用PD形式,其傳遞函數(shù)為: 采用單位反饋構(gòu)成外環(huán)反饋通道,則 ,則系統(tǒng)的開環(huán)傳遞函數(shù)為: 采用基于Bode圖法的希望特性設(shè)計(jì)方法,得 ,τ= 0.87,取τ= 1,則外環(huán)控制器的傳遞函數(shù)為 圖13 系統(tǒng)仿真結(jié)構(gòu)圖 5 仿真實(shí)驗(yàn)5.1簡(jiǎn)化模型- 根據(jù)已設(shè)計(jì)好的PID控制器,可建立圖14系統(tǒng),設(shè)置仿真時(shí)間為10ms,單擊運(yùn)行。這個(gè)仿真是為了便于理解。
-
圖14 SIMULINK仿真框圖 %將導(dǎo)入到PID.mat中的仿真試驗(yàn)數(shù)據(jù)讀出 load PID.mat t=signals(1,:); q=signals(2,:); x=signals(3,:); %drawing x(t) and thera(t) response signals %畫小車位置和擺桿角度的響應(yīng)曲線 figure(1) hf=line(t,q(:)); grid on xlabel ('Time (s)') axis([0 10 -0.3 1.2]) ht=line(t,x,'color','r'); axis([0 10 -0.3 1.2]) title('\theta(t) and x(t) Response to a step input') gtext('\leftarrow x(t)'),gtext('\theta(t) \uparrow') 執(zhí)行該程序的結(jié)果如圖15所示 圖15 仿真結(jié)果 5.2 仿真實(shí)驗(yàn)注意,圖中子系統(tǒng)為簡(jiǎn)化模型而不是精密模型(MMP網(wǎng)上的寫的精密模型,調(diào)了好久才發(fā)現(xiàn))。 圖16 SIMULINK仿真框圖 圖17系統(tǒng)仿真結(jié)果圖 6 檢驗(yàn)系統(tǒng)的魯棒性檢驗(yàn)系統(tǒng)的魯棒性:將對(duì)象的特性做如下變化后,同樣在單位階躍輸入下,檢驗(yàn)所設(shè)計(jì)控制系統(tǒng)的魯棒性能,列表比較系統(tǒng)的性能指標(biāo)(最大超調(diào)量、調(diào)節(jié)時(shí)間、上升時(shí)間)。 6.1 編寫程序求系統(tǒng)性能指標(biāo) 新建pid.m文件,輸入以下命令并保存 load PID.mat clc t=signals(1,:); x=signals(2,:); q=signals(3,:); figure(1) hf=line(t,q(:)); grid on axis([0 10 -0.3 1.2]) ht=line(t,x,'color','r'); r=size(signals); e=r(1,2); C=x(1,e); %得到系統(tǒng)終值 y_max_overshoot=100*(max(x)-C)/C %超調(diào)量計(jì)算 r1=1; while (x(r1)<0.1*C) r1=r1+1; end r2=1; while (x(r2)<0.9*C) r2=r2+1; end x_rise_time=t(r2)-t(r1) %上升時(shí)間計(jì)算 s=length(t); while x(s)>0.98*C&&x(s)<1.02*C s=s-1; end x_settling_time=t(s) %調(diào)整時(shí)間計(jì)算 C1=q(1,e); [max_y,k]=max(q); q_max_overshoot=max(q)-C1 %超調(diào)量計(jì)算 q_rise_time=t(k) %上升時(shí)間計(jì)算 s=length(t); while q(s)>-0.02&&q(s)<0.02 s=s-1; end q_settling_time=t(s) %調(diào)整時(shí)間計(jì)算 6.2 改變參數(shù)驗(yàn)證控制系統(tǒng)的魯棒性 倒擺長(zhǎng)度L不變,倒立擺的振子質(zhì)量m從1kg分別改變?yōu)?.5kg、2kg、2.5kg、0.8kg、0.5kg;倒立擺的振子質(zhì)量m 不變,倒擺長(zhǎng)度L 從0.3m 分別改變?yōu)?.5m、0.6m、0.2m、0.1m。在單位階躍輸入下,檢驗(yàn)所設(shè)計(jì)系統(tǒng)的魯棒性 。 - 改變輸入?yún)?shù)并運(yùn)行,再運(yùn)行pid.m文件,得到響應(yīng)曲線及性能指標(biāo),記錄表1
圖18 改變輸入?yún)?shù) 表1 性能坐標(biāo)比較 - 仿真實(shí)驗(yàn)的結(jié)果如圖19所示:
圖19改變倒立桿質(zhì)量和長(zhǎng)度時(shí)系統(tǒng)仿真結(jié)果 7 結(jié)論結(jié)論: 1、原系統(tǒng)在0.1N的沖擊力下,擺桿倒下(θ由零逐步增大), 小車位置逐漸增加,這一結(jié)果符合前述的實(shí)驗(yàn)設(shè)計(jì),故可以在一定程度上確認(rèn)該“一階倒立擺系統(tǒng)”的數(shù)學(xué)模型是有效的。驗(yàn)證實(shí)驗(yàn)中,通過(guò)精確模型與簡(jiǎn)化模型比較,從圖中可以看出,0.8s以前是非常接近,因此,也可以認(rèn)為近似模型在一定條件下可以表達(dá)原系統(tǒng)模型的性質(zhì)。 2、經(jīng)過(guò)雙閉環(huán)PID 控制的系統(tǒng),能跟隨給定并穩(wěn)定下來(lái),且θ終值為0使擺桿不倒。說(shuō)明PID控制有效。 3、改變倒立擺的擺桿質(zhì)量m和長(zhǎng)度L。從圖11中可以看出,在參數(shù)變化的一定范圍內(nèi)系統(tǒng)保持穩(wěn)定,控制系統(tǒng)具有一定的魯棒性。 附錄- q=signals(4,: ); %讀取精確模型中倒擺擺角信號(hào)
- xx=signals(5,: ); %讀取簡(jiǎn)化模型中的小車位置信號(hào)
- qq=signals(6,: ); %讀取簡(jiǎn)化模型中倒立擺擺角信號(hào)
- figure(1) %定義第一個(gè)圖形
- hf=line(t,f(:)); %連接時(shí)間-作用力曲線
- grid on;
- xlabel('Time(s)') %定義橫坐標(biāo)
- ylabel('Force(N)') %定義縱坐標(biāo)
- axis([0 1 0 0.12]) %定義坐標(biāo)范圍
- axet=axes('Position',get(gca,'Position'),...
- 'XAxisLocation','bottom',...
- 'YAxisLocation','right','color','none',...
- 'XColor','k','YColor','k');
- %定義曲線屬性
- ht=line(t,x,'color','r','parent',axet);
- %連接時(shí)間-小車位置曲線
- ht=line(t,xx,'color','r','parent',axet);
- %連接時(shí)間-小車速度曲線
- ylabel('Evolution of the xposition(m)') %定義坐標(biāo)名稱
- axis([0 1 0 0.1]) %定義坐標(biāo)范圍
- title('Response x and x''in meter to a f(t) pulse of 0.1 N' )
- %定義曲線標(biāo)題名稱
- gtext ('\leftarrow f (t)'),gtext ('x (t) \rightarrow') , gtext (' \leftarrow x''(t)')
- figure (2)
- hf=line(t,f(:));
- grid on
- xlabel('Time')
- ylabel('Force(N)')
- axet=axes('Position',get(gca,'Position'),...
- 'XAxisLocation','bottom',...
- 'YAxisLocation','right','color','none',...
- 'XColor','k','YColor','k');
- ht=line(t,q,'color','r','parent',axet);
- ht=line(t,qq,'color','r','parent',axet);
- ylabel('Angle evolution (rad)')
- axis([0 1 -0.3 0])
- title('Response \theta(t)and \theta'' in rad to a f(t) pulse of 0.1 N' )
復(fù)制代碼
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁(yè)上的一模一樣,方便大家保存)::源文件:無(wú)
|