找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16356|回復: 2
收起左側(cè)

基于雙閉環(huán)PID控制的一階倒立擺控制系統(tǒng)SIMULINK仿真設(shè)計

[復制鏈接]
ID:419977 發(fā)表于 2018-11-3 01:31 | 顯示全部樓層 |閱讀模式
1.png
自動控制原理課程設(shè)計說明書
基于雙閉環(huán)PID控制的一階倒立擺控制系統(tǒng)設(shè)計

1 任務(wù)概述
1.1設(shè)計概述
1.2 要完成的設(shè)計任務(wù):
2系統(tǒng)建模
2.1 對象模型
2.2 模型建立及封裝
3仿真驗證
3.1 實驗設(shè)計
3.2 建立M文件編制繪圖子程序
4 雙閉環(huán)PID控制器設(shè)計
4.1內(nèi)環(huán)控制器的設(shè)計
4.2外環(huán)控制器的設(shè)計
5 仿真實驗
5.1簡化模型
5.2 仿真實驗
6 檢驗系統(tǒng)的魯棒性
6.1 編寫程序求系統(tǒng)性能指標
6.2 改變參數(shù)驗證控制系統(tǒng)的魯棒性
7 結(jié)論
附錄
1 任務(wù)概述
1.1設(shè)計概述
如圖1 所示的“一階倒立擺控制系統(tǒng)”中,通過檢測小車位置與擺桿的擺動角,來適當控制驅(qū)動電動機拖動力的大小,控制器由一臺工業(yè)控制計算機(IPC)完成。
圖1 一階倒立擺控制系統(tǒng)
這是一個借助于“SIMULINK封裝技術(shù)——子系統(tǒng)”,在模型驗證的基礎(chǔ)上,采用雙閉環(huán)PID控制方案,實現(xiàn)倒立擺位置伺服控制的數(shù)字仿真實驗。
1.2 要完成的設(shè)計任務(wù):
(1)通過理論分析建立對象模型(實際模型),并在原點進行線性化,得到線性化模型;將實際模型和線性化模型作為子系統(tǒng),并進行封裝,將倒立擺的振子質(zhì)量m和倒擺長度L作為子系統(tǒng)的參數(shù),可以由用戶根據(jù)需要輸入;
(2)設(shè)計實驗,進行模型驗證;
(3)一階倒立擺系統(tǒng)為“自不穩(wěn)定的非最小相位系統(tǒng)”。將系統(tǒng)小車位置作為“外環(huán)”,而將擺桿擺角作為“內(nèi)環(huán)”,設(shè)計內(nèi)化與外環(huán)的PID控制器;
(4)在單位階躍輸入下,進行SIMULINK仿真;
(5)編寫繪圖程序,繪制階躍響應(yīng)曲線,并編程求解系統(tǒng)性能指標:最大超調(diào)量、調(diào)節(jié)時間、上升時間;
(6)檢驗系統(tǒng)的魯棒性:將對象的特性做如下變化后,同樣在單位階躍輸入下,檢驗所設(shè)計控制系統(tǒng)的魯棒性能,列表比較系統(tǒng)的性能指標(最大超調(diào)量、調(diào)節(jié)時間、上升時間)。
倒擺長度L不變,倒立擺的振子質(zhì)量m從1kg分別改變?yōu)?.5kg、2kg、2.5kg、0.8kg、0.5kg;
倒立擺的振子質(zhì)量m不變,倒擺長度L從0.3m分別改變?yōu)?.5m、0.6m、0.2m、0.1m。
2系統(tǒng)建模
2.1 對象模型
一階倒立擺的精確模型的狀態(tài)方程為:
若只考慮θ在其工作點 = 0附近的細微變化,這時可以將模型線性化,這時可以近似認為:
一階倒立擺的簡化模型的狀態(tài)方程為:
2.2 模型建立及封裝
上邊的圖是精確模型,下邊的是簡化模型。
圖2 模型驗證原理圖
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,倒擺長度2L,重力加速度g=10m/
將以上表達式導入函數(shù)。
3、如下圖框選后選擇create subsystem
圖3 封裝
4、封裝之后如下圖
圖4 子系統(tǒng)建立
5、將精確模型subsystem和簡化模型subsystem1組合成以下系統(tǒng)以供驗證,注意add的符號是++,不是+-,網(wǎng)上其他的課設(shè)都是錯的。(輸入信號是由階躍信號合成的脈沖,幅值為0.05,持續(xù)時間(step time)為0.1s)。
圖5 系統(tǒng)模塊封裝
6、鼠標右擊子系統(tǒng)模塊,在模塊窗口選項中選擇Mask->edit mask,則彈出如下窗口。
圖6 添加參數(shù)
7、點擊左邊菜單欄的edit,添加參數(shù)m和L,注意prompt中的m和L意思是之后對話框中的提示詞,而name中的m和L是要被prompt中輸入的值導入的變量,如果name中填錯了,那么之后的值將無法導入。
圖7 編輯參數(shù)
8、在系統(tǒng)模型中,雙擊子系統(tǒng)模塊,則會彈出一個新窗口,在新窗口中可以輸入m和L的值,之后將會輸入,如圖8所示。
圖8 輸入?yún)?shù)
3仿真驗證3.1 實驗設(shè)計
假定使倒立擺在(θ=0,x=0)初始狀態(tài)下突加微小沖擊力作用,則依據(jù)經(jīng)驗知,小車將向前移動,擺桿將倒下。
3.2 建立M文件編制繪圖子程序
圖9 繪圖子程序
(提示:附錄中有子程序方便大家Ctrl+c (^_^),上邊只是為了方便對照)。
  • 在系統(tǒng)模型中,雙擊子系統(tǒng)模塊,則會彈出一個新窗口,在新窗口中輸入m和l值,點擊OK并運行,如圖10所示。
圖10 輸入?yún)?shù)
  • 如圖設(shè)置to file模塊的參數(shù),Variable name的名字就是M程序中的函數(shù)名,這里如果不signals的話程序是無法運行的。Save format要選擇Array,因為程序是按數(shù)組形式調(diào)取變量的,沒有選擇Array的話運行程序會出現(xiàn)“索引超出矩陣維度”的錯誤。
圖11 to file參數(shù)設(shè)置
  • 運行M文件程序,執(zhí)行該程序的結(jié)果如圖8所示。
圖12 模型驗證仿真結(jié)果
從中可見,在0.1N的沖擊力下,擺桿倒下(θ由零逐步增大), 小車位置逐漸增加,這一結(jié)果符合前述的實驗設(shè)計,故可以在一定程度上確認該“一階倒立擺系統(tǒng)”的數(shù)學模型是有效的。同時,由圖中也可以看出,近似模型在0.8s以前與精確模型非常接近,因此,也可以認為近似模型在一定條件下可以表達原系統(tǒng)模型的性質(zhì)。
4 雙閉環(huán)PID控制器設(shè)計
一級倒立擺系統(tǒng)位置伺服控制系統(tǒng)如圖13所示。
圖13 一級倒立擺系統(tǒng)位置伺服控制系統(tǒng)方框圖
4.1內(nèi)環(huán)控制器的設(shè)計
內(nèi)環(huán)采用反饋校正進行控制。
圖14 內(nèi)環(huán)系統(tǒng)結(jié)構(gòu)圖
反饋校正采用PD控制器,設(shè)其傳遞函數(shù)為,為了抑制干擾,在 前向通道上加上一個比例環(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è)計
外環(huán)系統(tǒng)前向通道的傳遞函數(shù)為:
圖12 外環(huán)系統(tǒng)結(jié)構(gòu)圖
對外環(huán)模型進行降階處理,若忽略的高次項,則近似為一階傳遞函數(shù)為:
對模型進行近似處理,則的傳遞函數(shù)為:
外環(huán)控制器采用PD形式,其傳遞函數(shù)為:
采用單位反饋構(gòu)成外環(huán)反饋通道,則,則系統(tǒng)的開環(huán)傳遞函數(shù)為:
采用基于Bode圖法的希望特性設(shè)計方法,得,τ= 0.87,取τ= 1,則外環(huán)控制器的傳遞函數(shù)為
圖13 系統(tǒng)仿真結(jié)構(gòu)圖
5 仿真實驗5.1簡化模型
  • 根據(jù)已設(shè)計好的PID控制器,可建立圖14系統(tǒng),設(shè)置仿真時間為10ms,單擊運行。這個仿真是為了便于理解。

圖14 SIMULINK仿真框圖
  • 新建M文件,輸入以下命令并運行
%將導入到PID.mat中的仿真試驗數(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 仿真實驗
注意,圖中子系統(tǒng)為簡化模型而不是精密模型(MMP網(wǎng)上的寫的精密模型,調(diào)了好久才發(fā)現(xiàn))。
圖16 SIMULINK仿真框圖
圖17系統(tǒng)仿真結(jié)果圖
6 檢驗系統(tǒng)的魯棒性
檢驗系統(tǒng)的魯棒性:將對象的特性做如下變化后,同樣在單位階躍輸入下,檢驗所設(shè)計控制系統(tǒng)的魯棒性能,列表比較系統(tǒng)的性能指標(最大超調(diào)量、調(diào)節(jié)時間、上升時間)。
6.1 編寫程序求系統(tǒng)性能指標
新建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)量計算
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) %上升時間計算
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)整時間計算
C1=q(1,e);
[max_y,k]=max(q);  
q_max_overshoot=max(q)-C1  %超調(diào)量計算
q_rise_time=t(k) %上升時間計算
s=length(t);
while q(s)>-0.02&&q(s)<0.02     
s=s-1;
end
q_settling_time=t(s) %調(diào)整時間計算
6.2 改變參數(shù)驗證控制系統(tǒng)的魯棒性
倒擺長度L不變,倒立擺的振子質(zhì)量m從1kg分別改變?yōu)?.5kg、2kg、2.5kg、0.8kg、0.5kg;倒立擺的振子質(zhì)量m 不變,倒擺長度L 從0.3m 分別改變?yōu)?.5m、0.6m、0.2m、0.1m。在單位階躍輸入下,檢驗所設(shè)計系統(tǒng)的魯棒性
。
  • 改變輸入?yún)?shù)并運行,再運行pid.m文件,得到響應(yīng)曲線及性能指標,記錄表1
圖18 改變輸入?yún)?shù)
表1 性能坐標比較
  • 仿真實驗的結(jié)果如圖19所示:
圖19改變倒立桿質(zhì)量和長度時系統(tǒng)仿真結(jié)果
7 結(jié)論
結(jié)論:
1、原系統(tǒng)在0.1N的沖擊力下,擺桿倒下(θ由零逐步增大), 小車位置逐漸增加,這一結(jié)果符合前述的實驗設(shè)計,故可以在一定程度上確認該“一階倒立擺系統(tǒng)”的數(shù)學模型是有效的。驗證實驗中,通過精確模型與簡化模型比較,從圖中可以看出,0.8s以前是非常接近,因此,也可以認為近似模型在一定條件下可以表達原系統(tǒng)模型的性質(zhì)。
2、經(jīng)過雙閉環(huán)PID 控制的系統(tǒng),能跟隨給定并穩(wěn)定下來,且θ終值為0使擺桿不倒。說明PID控制有效。
3、改變倒立擺的擺桿質(zhì)量m和長度L。從圖11中可以看出,在參數(shù)變化的一定范圍內(nèi)系統(tǒng)保持穩(wěn)定,控制系統(tǒng)具有一定的魯棒性。
附錄
  1. q=signals(4,: );                        %讀取精確模型中倒擺擺角信號
  2. xx=signals(5,: );                       %讀取簡化模型中的小車位置信號
  3. qq=signals(6,: );                       %讀取簡化模型中倒立擺擺角信號
  4. figure(1)                                  %定義第一個圖形
  5. hf=line(t,f(:));                           %連接時間-作用力曲線
  6. grid on;
  7. xlabel('Time(s)')                          %定義橫坐標   
  8. ylabel('Force(N)')                         %定義縱坐標
  9. axis([0 1 0 0.12])                         %定義坐標范圍
  10. axet=axes('Position',get(gca,'Position'),...   
  11.           'XAxisLocation','bottom',...   
  12.           'YAxisLocation','right','color','none',...   
  13.           'XColor','k','YColor','k');                     
  14. %定義曲線屬性
  15. ht=line(t,x,'color','r','parent',axet);            
  16. %連接時間-小車位置曲線
  17. ht=line(t,xx,'color','r','parent',axet);            
  18. %連接時間-小車速度曲線
  19. ylabel('Evolution of the xposition(m)')               %定義坐標名稱
  20. axis([0 1 0 0.1])                                      %定義坐標范圍
  21. title('Response x and x''in meter to a f(t) pulse of 0.1 N' )
  22. %定義曲線標題名稱
  23. gtext ('\leftarrow f (t)'),gtext ('x (t) \rightarrow') , gtext (' \leftarrow x''(t)')
  24. figure (2)
  25. hf=line(t,f(:));
  26. grid on
  27. xlabel('Time')
  28. ylabel('Force(N)')
  29. axet=axes('Position',get(gca,'Position'),...
  30.           'XAxisLocation','bottom',...   
  31.           'YAxisLocation','right','color','none',...   
  32.           'XColor','k','YColor','k');
  33. ht=line(t,q,'color','r','parent',axet);
  34. ht=line(t,qq,'color','r','parent',axet);
  35. ylabel('Angle evolution (rad)')
  36. axis([0 1 -0.3 0])
  37. title('Response \theta(t)and \theta'' in rad to a f(t) pulse of 0.1 N' )
復制代碼

以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存)::
基于雙閉環(huán)PID控制的一階倒立擺控制系統(tǒng)設(shè)計.docx (1.96 MB, 下載次數(shù): 120)
源文件:無

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1085966 發(fā)表于 2023-6-26 10:34 | 顯示全部樓層
您好,請問能否向您請求一份源文件呢
回復

使用道具 舉報

ID:1120567 發(fā)表于 2024-5-13 20:22 | 顯示全部樓層
可惜沒有源文件
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表