《MATLAB控制系統(tǒng)仿真.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《MATLAB控制系統(tǒng)仿真.ppt(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、MATLAB控制系統(tǒng)仿真,提綱,一、彈簧-重物-阻尼器系統(tǒng) 二、傳遞函數(shù) 三、結(jié)構(gòu)圖模型,引言,MATLAB是一套高性能的數(shù)值計(jì)算和可視化軟件,它集數(shù)值分析、矩陣運(yùn)算和圖形顯示于一體,構(gòu)成了一個(gè)方便的界面友好的用戶環(huán)境。 控制系統(tǒng)的分析與設(shè)計(jì)方法,都是以數(shù)學(xué)模型為基礎(chǔ)進(jìn)行的。MATLAB可以用于以傳遞函數(shù)形式描述的控制系統(tǒng)。 在本節(jié)中,首先舉例說(shuō)明如何使用MATLAB進(jìn)行輔助分析。然后討論傳遞函數(shù)和結(jié)構(gòu)圖。,一、彈簧-重物-阻尼器系統(tǒng),彈簧重物阻尼器動(dòng)力學(xué)系統(tǒng)如圖2-1所示。重物M的位 移由y(t)表示,用微分方程描述如下:,,該系統(tǒng)在初始位移作用下的瞬態(tài)響應(yīng)為:,其中q =cos-
2、1z ,初始位移是y(0)。 系統(tǒng)的瞬態(tài)響應(yīng)當(dāng)z1時(shí)為欠阻尼,當(dāng)z時(shí)為過(guò)阻尼, 當(dāng)z1時(shí)為臨界阻尼。,過(guò)阻尼情況:y(0)=0.15 m wn= (弧度/秒) ( ) 欠阻尼情況:y(0)=0.15 m wn= (弧度/秒) ( ),利用MATLAB程序unforced.m,可以顯示初始位移為y(0) 的物體自由運(yùn)動(dòng)曲線,如圖2-63所示。 在unforced.m程序中,變量y(0),wn,t,z 1和z 2的值由指令 直接輸入工作區(qū),然后運(yùn)行unforced.m程序就可以產(chǎn)生響應(yīng)曲 線。,y0=0.15;wn
3、=sqrt(2); zeta1=3/(2*sqrt(2)); zeta2=1/(2*sqrt(2)); t=0:0.1:10; unforced,,,(a)MATLAB指令窗口,* 計(jì)算系統(tǒng)在給定初始條件下的自由運(yùn)動(dòng) t1=acos(zeta1)*ones(1,length(t)); t2=acos(zeta2)*ones(1,length(t)); c1=(y0/sqrt(1-zeta12)); c2=(y0/sqrt(1-zeta22)); y1=c1*exp(-zeta1*wn*t)sin(wn*sqrt(1-zeta12)*t+t1); y2=c2*exp(-zeta2*wn*t)si
4、n(wn*sqrt(1-zeta22)*t+t2); * 計(jì)算運(yùn)動(dòng)曲線的包絡(luò)線 bu=c2*exp(-zeta2*wn*t);bl=-bu; * 畫(huà)圖 plot(t,y1, -,t,y2,-,t,bu, --,bl, --),grid xlabel(Timesec), ylabel(y(t) Displacementm) text(0.2,0.85,oeverdamped zeta1=,num2str(zeta1), ) text(0.2,0.80,underdamped zeta2=,num2str(zeta2), ),(b)分析彈簧重物阻尼器的MATLAB程序unforced.m 圖2-6
5、3 分析彈簧重物阻尼器的MATLAB指令,,圖2-64 彈簧重物阻尼器的自由運(yùn)動(dòng)曲線,在欠阻尼和過(guò)阻尼情況下的響應(yīng)曲線如圖2-64所示 :,MATLAB可分析以傳遞函數(shù)形式描述的系統(tǒng)。分子多項(xiàng)式和 分母多項(xiàng)式都必須在MATLAB指令中指定。,在MATLAB中多項(xiàng)式由行向量組成,這些行向量包含了降次 排列的多項(xiàng)式系數(shù)。例如多項(xiàng)式p(s)=1s3+3s2+0s1+4s0,按圖2-65 的格式輸入p=1 3 0 4,,p=1 3 0 4; r=roots(p) r= -3.3553e+00 1.7765e-01+1.0773e+00j 1.7765e-01-1.0773e+00j p=poly(r)
6、 p= 1.000 3.000 0.000-0.000j 4.000+0.000j,圖2-65 輸入多項(xiàng)式并求根,矩陣乘法由MATLAB的conv()函數(shù)完成。把兩個(gè)多項(xiàng)式相乘 合并成一個(gè)多項(xiàng)式n(s),即: n(s)= (3s2 +2s +1) (s +4) = 3s3 +14s2 +9s +4,與此運(yùn)算相關(guān)的MATLAB函數(shù)就是conv()。函數(shù)polyval()用來(lái)計(jì) 算多項(xiàng)式的值。多項(xiàng)式n(s)在s = -5處值為n (-5) = -66,見(jiàn)圖2-66。,p=3 2 1;q=1 4; n=conv(p,q) n= 3 14 9 4 value=polyval(n,-5) valu
7、e= -66,圖2-66 MATLAB的conv()函數(shù)和polyval()函數(shù),設(shè)傳遞函數(shù)為G(s)=num/den,其中num和den均為多項(xiàng)式。利 用函數(shù):,二、傳遞函數(shù),P , Z=pzmap(num , den),可得G(s)的零極點(diǎn)位置,即P為極點(diǎn)位置列向量,Z為零點(diǎn)位 置列向量。該指令執(zhí)行后自動(dòng)生成零極點(diǎn)分布圖。 考慮傳遞函數(shù):,,,和,,,,圖2-67 零極點(diǎn)圖,傳遞函數(shù)G(s)/H(s)的零極點(diǎn)圖如圖2-67所示,相應(yīng)的MATLAB 指令如圖2-68所示。,numg=6 0 1;deng=1 3 3 1; z=roots(numg) z= 0+0.4082j 0-0.40
8、82j p=roots1(deng) p= -1 -1 -1 n1=1 1; n2=1 2; d1=1 2*j; d2=1 2*j; d3=1 3; numh=conv(n1,n2); denh=conv(d1,conv(d2,d3)); num=conv(numg,denh); den=conv(deng,numh); printsys(num,den) num/den= 6s5+18s4+25s3+,圖2-68 繪制零極點(diǎn)圖指令,三、結(jié)構(gòu)圖模型,一個(gè)開(kāi)環(huán)控制系統(tǒng)可以通過(guò)G1 (s)與G2 (s)兩個(gè)環(huán)節(jié)的串聯(lián)而得到,利用series()函數(shù)可以求串聯(lián)連接的傳遞函數(shù),函數(shù)的具體形式為: nu
9、m,den= series(num1,den1, num2,den2) 例如G1 (s)和G2 (s)的傳遞函數(shù)分別為:,則,串聯(lián)函數(shù)的用法示于圖2-69:,num1=1;den1=500 0 0; num2=1 1;den2=1 2; num,den=series(num1,den1,num2,den2); printsys(num,den) num/den= s+1 500s3+1000s2,圖2-69 series函數(shù)的用法,當(dāng)系統(tǒng)是以并聯(lián)的形式連接時(shí),利用parallel()函數(shù)可得到系 統(tǒng)的傳遞函數(shù)。指令的具體形式為: 系統(tǒng)以反饋方式構(gòu)成閉環(huán),則系統(tǒng)的閉環(huán)傳遞函數(shù)為:,nu
10、m,den= parallel (num1,den1, num2,den2),求閉環(huán)傳遞函數(shù)的MATLAB函數(shù)有兩個(gè):cloop()和feedback() 其中cloop()函數(shù)只能用于H (s)=1(即單位反饋)的情況。 cloop()函數(shù)的具體用法為: num,den= cloop (numg,deng, sign) 其中numg和deng分別為G (s)的分子和分母多項(xiàng)式,sign=1為正 反饋,sign= -1為負(fù)反饋(默認(rèn)值)。,feedback()函數(shù)的用法為: num,den= feedback (numg,deng,numh,denh, sign) 其中numh為H (s)的
11、分子多項(xiàng)式,denh為分母多項(xiàng)式。 閉環(huán)反饋系統(tǒng)的結(jié)構(gòu)圖如圖2-70所示,被控對(duì)象G(s)和控制 部分Gc (s)以及測(cè)量環(huán)節(jié)H (s)的傳遞函數(shù)分別為:,,,,,圖2-70 閉環(huán)反饋系統(tǒng)的結(jié)構(gòu)圖,應(yīng)用series()函數(shù)和feedback()函數(shù)求閉環(huán)傳遞函數(shù)的MATLAB 指令如圖2-71 所示:,,numg=1;deng=5 0 0; numc=1 1;denc=1 2; numh=1;denh=1 10; num1,den1=series(numc,denc,numg,deng); num,den=feedback(num1,den1,numh,denh,-1); printsys(
12、num,den) num/den= s2+11s+10 5s4+60s3+100s2+s+1,圖2-71 feedback()函數(shù)的應(yīng)用,例2.12 一個(gè)多環(huán)的反饋系統(tǒng)如圖2-49所示,給定各環(huán)節(jié)的傳 遞函數(shù)為:,試求閉環(huán)傳遞函數(shù)GB(s)=C(s)/R(s)。,解 求解步驟如下: 步驟1:輸入系統(tǒng)各環(huán)節(jié)的傳遞函數(shù); 步驟2:將H2的綜合點(diǎn)移至G2后; 步驟3:消去G3,G2,H2環(huán); 步驟4:消去包含H3的環(huán); 步驟5:消去其余的環(huán),計(jì)算GB (s)。 根據(jù)上述步驟的MATLAB指令以及計(jì)算結(jié)果在圖2-72中。,ng1=1;dg1=1 10; ng2=1;dg2=1 1; ng3=1
13、 0 1;dg3=1 4 4; ng4=1 1;dg4=1 6; nh1=1;dh1=1; nh2=2;dh2=1;,nh3=1 1;dh3=1 2; n1,d1=series(ng2,dg2,nh2,dh2); n2,d2=feedback(ng3,dg3,n1,d1,-1); n3,d3=series(n2,d2,ng4,dg4); n4,d4=feedback(n3,d3,nh3,dh3,-1); n5,d5=series(ng1,dg1,ng2,dg2); n6,d6=series(n5,d5,n4,d4); n7,d7=cloop(n6,d6,-1); printsys(n7,d7)
14、 num/den= s4+ 3s3+ 3s2+3s+2 2s6+38s5+261s4+1001s3+1730s2+1546s+732,圖2-72 多環(huán)結(jié)構(gòu)圖簡(jiǎn)化,通過(guò)pzmap()或roots()函數(shù)可查看傳遞函數(shù)是否有相同的零極 點(diǎn),還可使用minreal()函數(shù)除去傳遞函數(shù)共同的零極點(diǎn)因子。 如圖2-73所示。,numg=1 6 11 6;deng=1 7 12 11 5; printsys(numg,deng) numg/deng= s3+6s2+11s+6 s4+7s3+12s2+11s+5 num,den=minreal(numg,deng); printsys(n
15、um,den) 1 pole-zeros cancelled num/den= s2+4s+3 s3+6s2+6s+5,圖2-73 minreal()函數(shù)的應(yīng)用,例2.2所示的位置隨動(dòng)系統(tǒng),在給定各元件參數(shù)并忽略La和令 ML = 0的情況下,其結(jié)構(gòu)圖如圖2-74所示:,,圖2-74 位置隨動(dòng)系統(tǒng)的結(jié)構(gòu)圖,,第一步求閉環(huán)傳遞函數(shù)GB (s)=q c(s) /q r(s),求解過(guò)程及結(jié)果 如圖2-75所示。第二步利用step()函數(shù)計(jì)算參考輸入q r (t)為單位 階躍信號(hào)時(shí)輸出q c (t)的響應(yīng)。,num1=200; den1=20;num2=1; den2=2 0.5 0; num3=
16、0.2 0; den3=1; num4=540; den4=1; na,da=series(num1,den1,num2,den2); nb,db=feedback(na,da,num3,den3,-1); nc,dc=series(nb,db,num4,den4); num,den=cloop(nc,dc,-1); printsys(num,den) num/den= 5400 2s2+2.5s+5400 t=0:0.005:3; y,t=step(num,den,t); plot(t,y),grid,圖2-75 位置隨動(dòng)系統(tǒng)的結(jié)構(gòu)圖簡(jiǎn)化及階躍響應(yīng)指令,,圖2-76 位置隨動(dòng)系統(tǒng)的階躍
17、響應(yīng)曲線,圖2-76給出了位置隨動(dòng)系統(tǒng)的階躍響應(yīng)曲線。用plot()函數(shù)用于 畫(huà)出y(t)曲線,grid函數(shù)用于給圖形加上網(wǎng)格。,2.7 循序漸進(jìn)設(shè)計(jì)示例:磁盤(pán)驅(qū)動(dòng)讀取系統(tǒng),我們指出了磁盤(pán)驅(qū)動(dòng)系統(tǒng)的基本設(shè)計(jì)目標(biāo):盡可能將磁頭準(zhǔn)確定位在指定的磁道上,并且磁頭從1個(gè)磁道轉(zhuǎn)移到另1個(gè)磁道所花的時(shí)間不超過(guò)10ms。在這里,我們將完成設(shè)計(jì)流程的第4、5步。首先應(yīng)選定執(zhí)行機(jī)構(gòu)、傳感器和控制器,然后建立控制對(duì)象和傳感器等元部件的模型。,根據(jù)表2.1磁盤(pán)驅(qū)動(dòng)讀取系統(tǒng)的典型參數(shù),我們有,G(s)還可以改寫(xiě)成,圖2-8 磁盤(pán)驅(qū)動(dòng)器讀取系統(tǒng)框圖模型,表2.1磁盤(pán)驅(qū)動(dòng)器讀取系統(tǒng)典型參數(shù),圖2-78 磁盤(pán)驅(qū)動(dòng)器讀取系統(tǒng)
18、框圖模型,其中 。由于 ,因此常被略去,有:,或,該閉環(huán)系統(tǒng)的框圖模型見(jiàn)圖2-9。利用框圖變換化簡(jiǎn)規(guī)則,有:,利用G(s)的2階近似表示,可以有:,當(dāng)取Ka=40時(shí),最后可得:,2-79 閉環(huán)系統(tǒng)的框圖模型,使用MATLAB的函數(shù)step,可以得到 時(shí),如圖2-80所示的系統(tǒng) 階躍響應(yīng)。,小結(jié),本章討論了如何建立控制系統(tǒng)以及元部件的數(shù)學(xué)模型問(wèn)題。本章所涉及的數(shù)學(xué)模型共有三種,即微分方程、傳遞函數(shù)、結(jié)構(gòu)圖或信號(hào)流圖。 利用傳遞函數(shù)研究線性系統(tǒng),可根據(jù)傳遞函數(shù)的極點(diǎn)和零點(diǎn)分布判定系統(tǒng)對(duì)不同輸入信號(hào)的響應(yīng)特性。 利用結(jié)構(gòu)圖或信號(hào)流圖可以了解系統(tǒng)中的每個(gè)變量,還可以通過(guò)梅遜(Mason)公式,方便地求得系統(tǒng)輸入輸出間的傳遞函數(shù)。 利用MATLAB軟件可求解系統(tǒng)在不同參數(shù)和輸入情況下的響應(yīng)。,