《MATLAB仿真》實驗講義(2015)
《《MATLAB仿真》實驗講義(2015)》由會員分享,可在線閱讀,更多相關(guān)《《MATLAB仿真》實驗講義(2015)(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 《控制系統(tǒng)仿真與計算機(jī)輔助設(shè)計》 實驗講義( MATLAB ) 目 錄 實驗一 MATLAB實驗環(huán)境及其基本運算 實驗二 MATLAB符號運算 實驗三 MATLAB程序設(shè)計 實驗四 控制系統(tǒng)模型的表示及時間響應(yīng) 實驗五 控制系統(tǒng)的分析 實驗六 控制系統(tǒng)的校正及綜合設(shè)計
2、 1/21 實驗一 MATLAB實驗環(huán)境及其基本運算 一、實驗?zāi)康? 1、 通過本次實驗,要求學(xué)生熟悉 MATLAB軟件操作環(huán)境; 2、 掌握 MATLAB常用的命令、函數(shù)。 二、實驗要求 1、 了解 MATLAB操作環(huán)境的各個窗口、菜單的內(nèi)容和使用方法。 2、熟悉下列命令: Help,who,look,save ,load,exit,demo 等的使用。 3、熟悉下列常用的基本函數(shù)的使用: abs(x),sqrt(x),exp(x),sin(x),cos(x),asin(x)
3、,acos(x),tan(x),atan(x),log(x),log10(x), imag(x),real(x) 4、掌握矩陣的表示和基本運算: 5、向量的表示: 6、掌握熟悉多項式表達(dá)及運算: 三、實驗原理 1、矩陣的表示和基本運算: 1 2 3 a) 矩陣表達(dá): A 4 5 6, 7 8 9 >>A=[1 2 3;4 5 6;7 8 9], >>A=[1 2 3 4 5 6 789] >>A(2,6) 另外,熟悉下列生成矩陣函數(shù): eye(x),zeros(x),ones(x),[ ],rand(x)
4、,company(x) 1) 矩陣加法: C=A+B 2) 矩陣減法 : C=A-B 3) 矩陣乘法 : C=A*B 4) 矩陣除法 :C=A/B,C=A\B; 5) 矩陣乘方 :C=A^P 6) 矩陣轉(zhuǎn)置: C=A’ 7) 矩陣求逆: C=inv(x) 8) 矩陣特征值: C=eig(x) 2、向量的表示: 1) >> t=1:2:9 2) >> x=1:5 3、熟悉多項式表達(dá)及運算: 1)多項式的構(gòu)造表達(dá): a( x) x 5 3x 4 8x 3 2x 2 x 10 , b( x) 2 x 3 9x 2
5、7x 1 a=[1 3 -8 2 -1 10],b=[2 -9 -7 1] 2)多項式運算: 加法: c=a+[0 0 b] 減法 : c=a+[0 0 b] 乘法 : c=conv(a,b) 2/21 除法 : [div,rest]=deconv(a,b) 微分 : c=polyder(a) 求根 : c=roots(a) 求值 : c=polyval(a,-2) 四、實驗內(nèi)容 1、實驗原理三中, 1-2 項內(nèi)容在計算機(jī)中操作;第 3 項內(nèi)容 , 自己假設(shè) x,記錄函數(shù)運算結(jié)果。 1 2
6、 3 8 12 3 2、已知矩陣為: A 4 5 6 , B 7 5 3 ,用 MATLAB進(jìn)行矩陣的 8 種基本運算,并記 7 8 9 1 8 2 錄運算結(jié)果。 3、已知多項式為: a( x) x 5 3x 4 8x 3 2x 2 x 10 , b( x) 2x 3 9x 2 7x 1,用 MATLAB進(jìn) 行多項式的 7 種基本運算,并記錄運算結(jié)果。 五、思考題: 1、如何獲取 MATLAB命令信息解釋的幫助? 2、如何保
7、存 / 讀取 MATLAB中的變量? 六、實驗報告 按下列要求認(rèn)真完成實驗報告(下同) : 實驗 X YYYYYYY 實驗 一、實驗?zāi)康? 二、實驗要求 三、實驗內(nèi)容 四、數(shù)據(jù)(曲線)測試記錄 五、數(shù)據(jù)處理(可選) 六、實驗小結(jié) 實驗二, MATLAB的符號運算 一、實驗?zāi)康? 1、通過本實驗,使學(xué)生了解 MATLAB符號運算的意義、內(nèi)容和方法。 2、掌握極限、微分、方程、變換等的符號運算方法。 二、實
8、驗要求 1、理解本次實驗中所要用到的理論知識,熟悉這些函數(shù)的靈活應(yīng)用; 2、記錄實驗內(nèi)容運行的結(jié)果,并分析判斷執(zhí)行結(jié)果的正確性; 3、按實驗內(nèi)容和記錄完成實驗報告。 3/21 三、實驗原理、知識 1、符號變量和表達(dá)式: 1)符號變量: x=sym( ‘x’ ),a=sym( ‘ a’ ) 或 x=syms x,a 。 2)符號表達(dá)式: f=sym( ‘ a*x^2+b*x+c ’ ) ??捎? findsym 查找自變量。 2、極限運算: 1)limt ( f,x,a ) 2)limt (f,x,a, ’ le
9、ft ’) 3)limt ( f,x,a, ’ right ’) 運行 :>>syms t x >>limt ( (cos(x+t)-cos(x))/t,t,0 ) >>limt (1/x,x,0, ’ left ’) >>limt ( 1/x,x,0, ’ right ’) 3、微分運算 : 1)diff(f) : 返回 f 對預(yù)設(shè)獨立變量的一次微分; 2)diff(f,t) 返回 f 對獨立變量 t 的一次微分積分; 3)diff(f,n) 返回 f 對預(yù)設(shè)獨立變量的 n 微分積分; 4)fiff(f,t,n) 返回
10、f 對獨立變量 t 的 n 微分積分; 運行: >>syms t x >>f=sym( ‘ a*x^2+b*x+c ’ ) >>diff(f) >>diff(f,2) >>diff(f,a) >>diff(f,a,2) 4、積分運算: 1) int(f) : 返回 f 對預(yù)設(shè)獨立變量的積分; 2)Int(f, ’ t ’ ) :返回 f 對獨立變量 t 的積分; 3)Int(f,a,b) : 返回 f 在對區(qū)間 [a,b] 的積分; 4)Int(f, ’ t ’ ,a,b) : 返回 f 對獨立變量 t 在區(qū)間 [a,b] 上
11、的積分, a,b 為數(shù)值式; 5)Int(f, ’ m’ , ’ n’ ) : 返回 f 對獨立變量 t 在區(qū)間 [m,n] 上的積分, m,n 為符號式; 運行: >>syms t x >>f=sym( ‘ a*x^2+b*x+c ’ ) >>int(f) >>int(f,a) >>int(f,x,0,2) >>int(int(f,a),x) 5、級數(shù)求和: 1 ) symsun(s,v,a,b): 求通項 s 的和,自變量 V 在區(qū)間 [a,b] 取值, 2 ) toylor(f,v,n) :求 f 對 v
12、的泰勒展開至 n 階; 運行: >>sym k >>symsun(1/k*(k+1),k,1,inf) >>顯示結(jié)果 >>sym x >>toylor(sin(x),x,10) >>顯示結(jié)果 6、解代數(shù)方程: 4/21 1 ) solve(f): 解一元方程 2) solve(f1,f2,) :解多元一次方程組 運行: >>syms t,x >>f=sym( ‘ a*x^2+b*x+c ’ ) >>solve(f) >>顯示結(jié)果 >>solve(f , a) >>顯示結(jié)果 >>
13、solve( ‘ 1+x=sin(x) ’ ) >>顯示結(jié)果 >>solve( ‘ sin(x)=1/2 ’ ) >>顯示結(jié)果 >>f1=sym( ‘ x+y+z=10 ’); >>f2=sym( ‘ x-y+z=0 ’ ); >>f1=sym( ‘ 2x-y-z=-4 ’ ); >>solve(f1,f2,f3) >>顯示結(jié)果 7、解常微分方程 dsolve( ‘ equation ’ , ’ condition ’ ): 解微分方程, D表示微分,以 t 為自變量。 dsolve( ‘equation1 , equatio
14、n1 ’ , ‘ condition ’ ): 解微分方程組 運行: >> dsolve( ‘ Dy=5’ ) % 沒有初始條件,得到 t 的通解 >>顯示結(jié)果 >> dsolve( ‘ Dy=x’ , ’ x’ ) % 指定 x 為自變量 >>顯示結(jié)果 >> dsolve( ‘ D2y=1+Dy’ , ’ y(0)=1 ’, ’ Dy(0)=0 ’ ) %指定兩個初始條件 >>顯示結(jié)果 >> [x,y]=dsolve( ‘ Dx=y+x,Dy=2x ’ ) %解微分方程組,得到 t 的通解 >>顯示結(jié)果 >> [x,y]=dsolve(
15、 ‘ Dx=y+x,Dy=2x ’ , ’ x(0)=0,y(0)=1 ’ ) %指定兩個初始條件 >>顯示結(jié)果 8、傅里葉變換 1)fourier(f) : f 的默認(rèn)自變量為 x,即 f(t) ;返回結(jié)果自變量默認(rèn)為 x, 即 F(x) 。 2)ifourier(F) : 反傅里葉變換 運行: >>sysm t v w x >>fourier(1/t) >>顯示結(jié)果 >>fourier(-x^2,x,t) >>顯示結(jié)果 9、拉普拉斯變換 1)laplace(f) : f 的默認(rèn)自變量為 t ,即 f(t) ;返回結(jié)果
16、自變量默認(rèn)為 s, 即 F(s) 。 2)laplace(f,t) :返回結(jié)果 F 以 t 為自變量 , 即 F(s) 。 3)laplace(f,w,z): f 以 w 為自變量,即 f(w); 返回結(jié)果以 z 為自變量 , 即 F(z) 。 4)ilaplace(F) 運行: >>laplace(x^5) % 結(jié)果: >>顯示結(jié)果 : 120/s^6 5/21 >>syms a t w F >> f=a*exp(-t)*sin(w*t); >> F=laplace(f) % 結(jié)果: >>顯示結(jié)果 : >> l
17、aplace(cos(x*w),w,t) % f (w) cos(xw), F (t ) cos(xw)e tw dw 0 >>顯示結(jié)果 : t/(t^2+x^2) >>syms s a0 a >>F=(s+a0)/(s*(s+a)); >>f1=ilaplace(F); >>f=simplify(f1) >>顯示結(jié)果 10 、 z 變換 1)ztrans(f) : f 的默認(rèn)自變量為 n,即 f(n) ;返回結(jié)果自變量默認(rèn)為 z, 即 F(z) 。 2)iztrans(F) : Z 反變換 運行: >
18、>sysm a t >>f1=1-exp(-a*t); >>f2=ztrans(f1) >>F=simplify(f2) >>顯示結(jié)果 >>ff1=iztrans(F, ’ t ’ ); >>ff2=simplify(ff1) >>顯示結(jié)果 11、數(shù)學(xué)式的簡化 1)collect(f): 將表達(dá)式 F 中相同冪次的項合并 2)expand(f) : 將表達(dá)式 F 展開 3)factor(f) : 將表達(dá)式 F 進(jìn)行因式分解 4)sinmplify(f) :將表達(dá)式 F 按函數(shù)規(guī)則進(jìn)行簡化 5)simple(f) :
19、將表達(dá)式 F 做進(jìn)一步簡化 12、求反函數(shù)和復(fù)合函數(shù) 1)finverse (v) 2)compose(f,g) 運行: >>sysm x y >>f=x^2+y; >>finverse(f,y) >>顯示結(jié)果 四、實驗內(nèi)容 1、求 lim (cos x) / x t 0 2 、已知 3、計算 y cos(x 2 )sin 2 1 ,求 y' x y sin x sin 2 xdx 0 4、求級數(shù) 3 4 5 1*2 2*3 .......之和。 3*
20、4 5、求函數(shù) : x cosx sin x 的前 10 項的泰勒展開。 6/21 6、解代數(shù)方程: 1)解方程: 1+x=sin(x) 2)方程組: x+y+z=10 x-y+z=0 2x-y-z=-4 7、解常微分方程 1 )求 y 1 y, y(0) 1, y ' (0) 0 的解。 dy cos x z 2) dx 通解。 dy 0 1 dx 8、求的x 2 傅里葉變換
21、 9、拉普拉斯變換: 1)求 f (t ) cos(xt) 的拉普拉斯變換, 2)求 s 1 的反拉普拉斯變 s(s 2) 10 、 z 變換: 1) 求 f (t ) 1 e at 的 z 變換 五、思考題: 1、如何在 MATLAB編輯中編寫、運行 MATLAB命令或程序? 2、如何將高階微分方程化為一階微分方程組? 六、實驗報告 實驗三 MATLA
22、B程序設(shè)計 一、實驗?zāi)康? 1、通過本實驗,使學(xué)生理解命令文件和函數(shù)文件的意義及其使用方法; 2、掌握 MATLAB程序設(shè)計的結(jié)構(gòu)和編程方法; 3、掌握程序執(zhí)行結(jié)果的輸入和圖形輸出方法。 二、實驗要求 1、掌握命令文件和文本文件的編寫,熟悉 MATLAB編寫程序的基本結(jié)構(gòu)。 2、按實驗內(nèi)容編寫程序,并記錄實驗結(jié)果。 7/21 3、認(rèn)真完成實驗報告。 三、實驗原理 1、命令文件: 1)命令文件的建立:點擊指令窗口工具條上的 New File 圖標(biāo) 2 )命令文件的編寫:輸入編寫的程序代碼 3 )命令
23、文件的保存:點擊編輯調(diào)試器工具條圖形,選中“保存”,并輸入“文件名” 。 4 )命令文件的運行: >>文件名 2、函數(shù)文件: 1)函數(shù)名 .m(文件名 .m) 2) 文件中第一條語句: function[ 返回參數(shù)列表 ]= 函數(shù)名(輸入變量列表) function[x,y]= 函數(shù)名( a,b,n ) 3) 函數(shù)說明: %............. 4 )輸入、返回變量格式的檢測 5)函數(shù)體語句 3、程序結(jié)構(gòu): 1)分支結(jié)構(gòu): if < 邏輯表達(dá)式 > 程序模塊 1 else 程序模塊 2
24、 end 2)多重選擇: switch < 表達(dá)式 > case < 數(shù)值 1> 程序模塊 1 case < 數(shù)值 2> 程序模塊 2 otherwise 程序模塊 n end 3) 循環(huán)結(jié)構(gòu): ( 1) while < 邏輯表達(dá)式 > % 邏輯表達(dá)式成立時,循環(huán) < 循環(huán)體 > End ( 2) For 變量 =初值:增量:結(jié)束值程序模塊 n end 另外,掌握與循環(huán)結(jié)構(gòu)相配合的 break,continue (提前技術(shù)循環(huán))語句的使用, 4、數(shù)據(jù)輸入: a=input( ’輸入
25、提示:’ ) 5、圖形輸出 1)二維圖像輸出: (1)Plot(x) :x 序號 - 橫坐標(biāo) ,x- 縱坐標(biāo) (2)Plot(x,y) :x- 橫坐標(biāo) ,y- 縱坐標(biāo) (3)Plot(x,y1,y2, ) :x- 橫坐標(biāo) ,y1,y2,y3- 縱坐標(biāo) 2 )熟悉常用色彩符號、線型符號、標(biāo)記符號 3 )圖像修飾: (1)grid on/off: 添加 / 取消網(wǎng)格 (2)xlabel( ’ string ’ ) :標(biāo)記橫坐標(biāo) (3)ylabel( ’ string ’ ) 8/21 (4)title( ’ str
26、ing ’) : 給圖形添加標(biāo)題 (5)text(x,y, ’ string ’ ) :增加說明性文本信息 (6)gtext( ’ string ’ ): 利用鼠標(biāo)添加說明性文本信息 (7)axis(xmin,xmax,ymin,ymax): 設(shè)置坐標(biāo)軸的最小、最大值 4) 圖像的比較: (1)hand on/off: 圖形疊加 / 關(guān)閉 (2)Subplot(n,n,m) : 圖形窗口分割 5) 三維圖形輸出: (1)Plot3 ( x1,y1,z1
27、 )繪制三維圖 (2)Mesh(z) :繪制三維曲面 (3)Surf(z) :繪制三維曲面,著色表面圖 (4)View( 方位角,仰角 ) :設(shè)置觀察點 6 )其他圖像命令: (1)loglog : 繪制對數(shù)坐標(biāo)圖 (2)semilogx :橫坐標(biāo)為對數(shù) (3)semilogy :縱坐標(biāo)為對數(shù) (4)polar : 繪制極坐標(biāo)圖 (5)fill : 繪制實心圖 (6)bar : 繪制直方
28、圖 (7)pie : 繪制餅圖 (8)area : 繪制面積圖 (9)stairs : 繪制階梯圖 (10)Quiver : 繪制向量圖 (11)stem: 繪制火柴桿圖 四、實驗內(nèi)容 1、利用程序求 3 4 5 ....... 101 之和。 1*2 2*3 3*4 99*100 2、編寫統(tǒng)計 50 名學(xué)生的分段成績、平均成績、及格率的程序,并繪制分段成績的直方圖。 3、計算函數(shù): x=(a+b)^n,y=(a-b)^n ,要求
29、用命令文件與函數(shù)文件完成。 (提示:命令文件向函數(shù)文件傳遞參數(shù): a,b,n, 返回參數(shù): x, y。) 五、思考題: 1、函數(shù)文件和命令文件有何區(qū)別? 2、 break,continue 退出語句有何區(qū)別? 六、實驗報告 實驗四 模型的表示、轉(zhuǎn)換與時間響應(yīng) 一、實驗?zāi)康? 1、通過本實驗,使學(xué)生了解自動控制系統(tǒng)數(shù)學(xué)模型在計算機(jī)中的表示方法; 2、掌握自動控制各種數(shù)學(xué)模型之間的相互轉(zhuǎn)換。 二、實驗要求 1、熟悉自動控制系統(tǒng)數(shù)學(xué)模型的表示方法及其相互轉(zhuǎn)換; 2、按實驗內(nèi)容編寫相應(yīng)程
30、序,并記錄實驗結(jié)果。 3、認(rèn)真完成實驗報告 三、實驗原理 1、模型的表示 9/21 1)傳遞函數(shù)模型 設(shè)單輸入單輸出( SISO)連續(xù)系統(tǒng)的傳遞函數(shù)為: Y ( s) b n 1 sn 1 b sn 2 b s b 0 n 2 1 U ( s) sn a n 1 sn 1 a n 2 sn 2 a1 s a 0 在 MATLAB中, 可用傳遞函數(shù)分子、分母多項式按 s的降冪系數(shù)排列的行向量 , 即 num [ b
31、n 1 , ,b1 , b0 ] den [ a n , an 1 , , a1 , a 0 ] 描述上式所示傳遞函數(shù) G(s) 的多項式模型。而由命令函數(shù) tf( ) 則可建立系統(tǒng)的傳遞函數(shù)模型 TF,其調(diào) 用格式為: sys=tf(num,den) 其中 , num 、 den 分別是傳遞函數(shù)分子、分母多項式系數(shù)行向量 , 且系數(shù)均按 s 的降冪排列 2)零極點 模型 系統(tǒng)的傳遞函數(shù)還可表示成零極點形式 , 即 G ( s) k (s z1 )( s z2 ) ( s zm ) ( s p
32、1 )( s p 2 ) (s pn ) 在 MATLAB中,可用傳遞函數(shù)的零點向量、極點向量及增益 , 即 z [ z1 , z2 , , zm ]; p [ p1 , p2 , , p n ]; k k ; 描述上式所示的傳遞函數(shù) G(s) 的零極點模型。而由命令函數(shù) zpk( ) 則可建立零極點模型 ZPK,其調(diào)用格 式為 sys zpk( z, p , k ) 3)部分分式 sys=residue(num,den) 4)離散系統(tǒng) Y ( z) bn 1 zn 1 bn 2 z n 2 b1 z
33、 b0 U ( z) zn a n 1 z n 1 a n 2 zn 2 a1 z a 0 在 MATLAB中, 可用傳遞函數(shù)分子、分母多項式按 s的降冪系數(shù)排列的行向量 , 即 num [ bn 1 , ,b1 , b0 ] den [ a n , an 1 , , a1 , a 0 ] 描述上式所示傳遞函數(shù) G(s) 的多項式模型。而由命令函數(shù) tf( ) 則可建立系統(tǒng)的傳遞函數(shù)模型 TF,其調(diào) 用格式為: sys
34、=tf(num,den , Ts) 5)狀態(tài)空間: x Ax Bu y Cx Du sys=ss(A,B,D,C) 2、系統(tǒng)模型的轉(zhuǎn)換 1)傳遞函數(shù)→零極點: 命令: [z,p,k]=tf2zp(num,den) 10/21 2)零極點→傳遞函數(shù): 命令: [num,den] =zp2tf(z,p,k) 3)傳遞函數(shù)→部分分式: 命令: [fenz,fenm,re]=residue(num,den) 4)部分分式→傳遞函數(shù): 命令: (num,den) =residue[fenz,fen
35、m,re] 5)零極點→部分分式: 零極點→傳遞函數(shù)→部分分式 Matlab 命令: 1、 [num,den] =zp2tf(z,p,k) ; 2、 [fenz,fenm,re]=residue(num,den) 6)部分分式→零極點: 部分分式→傳遞函數(shù)→零極點 Matlab 命令: 1、 (num,den) =residue[fenz,fenm,re] ; 2、 [z,p,k]=tf2zp(num,den) 7) 脈沖函數(shù)→傳遞函數(shù): 命令: (num,den) =d2c[sysd, ’zoh ’] sysd =d2c[sysc,Ts,
36、’method ’] 8) 狀態(tài)空間→傳遞函數(shù):命令: [ABCD]=tf2ss[num,den] [num,den] =ss2tf[ABCD] 3、模型的連接 1)串聯(lián):命令: sysc=series(sys1,sys2) 2)并聯(lián):命令: sysb=parallel(sys1,sys2) 2)反饋:命令: sysf=feedback(sys1,sys2,-1) 4、系統(tǒng)的時間相應(yīng): Matlab 命令: 1)脈沖響應(yīng): impulse(sys); 2)階躍響應(yīng): step(sys); 3)斜坡響應(yīng): lsim(sy
37、s,t,t); 4)加速度響應(yīng): lsim(sys,(1/2)*t.^2,t); 四、實驗內(nèi)容 1、模型的表示 1)用 Matlab 程序表示傳遞函數(shù): G (s) 5s2 7s 3 。 3 3s2 12s 9 s 2)用 Matlab 程序表示系統(tǒng)零極點模型: G( s) 10(s 5)( s 1) 9)( s 2)( s 7)( s 6) (s 3)用 Matlab 程序表示系統(tǒng)部分分式模型: G (s) 5s2 7s 3 10s2 31s
38、 30 s3 4) 用 Matlab 程序表示離散系統(tǒng): G ( z) 7z2 2z 3 z 3 14 z 2 22z 1 5) 用 Matlab 程序表示狀態(tài)空間模型: x 1 0.02 1.4 9.8 x 1 9.8 x 2 0.01 0.4 0 x 2 6.3 x 3 0 1.0 0 x 3 0 11/21 x 1 y 1 0 0 x 2 x 3 2、模型的轉(zhuǎn)換 1)用 Matlab
39、 程序?qū)鬟f函數(shù)模型: G (s) s 8 轉(zhuǎn)換成 零極點模型。 3 10 s2 31s 30 s 3、模型的連接 1)已知傳遞函數(shù) 3(s 1) , G 2 ( s) 5 ,用 Matlab 程序求 G 1 (s) 與 G 2 ( s) 的串 G 1 (s) 7s 6 (s 2)( s 7) s2 聯(lián)、并聯(lián)和反饋。 4、控制系統(tǒng)的時域相應(yīng) 1)已知一階控制系統(tǒng)傳遞函數(shù)為: 圖顯示)。 2)已知二階控制系統(tǒng)傳遞函數(shù)為:
40、 10 ( s) ,求系統(tǒng)的脈沖、階躍、斜坡、加速度響應(yīng)(用 2s 1 ( s) 25 ,求系統(tǒng)的脈沖、階躍、斜坡、加速度響 2 4s s 25 應(yīng)(用圖顯示) 。 五、思考題 1、如何進(jìn)行連續(xù)到離散模型或離散到續(xù)模型之間的轉(zhuǎn)換; 2、如何在一張圖中繪制多條響應(yīng)曲線? 六、實驗報告 實驗五 SISO 控制系統(tǒng)的分析 一、實驗?zāi)康? 1、通過本次實驗,使學(xué)生了解 SISO控制系統(tǒng)的分析方法 ;
41、 2、掌握與時域、頻率、根軌跡分析有關(guān)的 MATLAB函數(shù)的應(yīng)用。 二、實驗要求 1、理解時域指標(biāo)公式計算與程序計算的異同 2、按實驗內(nèi)容編寫相應(yīng)程序,并記錄實驗結(jié)果。 3、認(rèn)真完成實驗報告。 三、實驗原理 1、時域分析方法: 1)穩(wěn)定性分析 12/21 Matlab 命令: p=[1 6 3 2 1 1]; roots(p) 2)誤差分析:程序計算 arccos 3)性能分析: 上升時間: t r ,峰值時間: t r 2 1 2 1
42、 n n 4 超調(diào)量: % e 1 2 調(diào)節(jié)時間 t r , 100% n 2、根軌跡分析 1) rlocus(sys) : 繪制 k=0→∞根軌跡 2) rlocus(sys,k) : 在指定 k 值向量的條件下,繪制根軌跡 3) [r,k]=rlocus(sys) : 4) [r,k]= rlocus(sys,k
43、) ; 3、頻率分析法 Matlab 命令: 1)繪制系統(tǒng) Bode 圖: 命令: bode(num,den); 2)繪制系統(tǒng) Nyquist 圖: 命令: nyquist(num,den); 3)求系統(tǒng)相位裕量: 命令: [gm,pm,wcg,wcp]=marg in(mag,phase,w) 四、實驗內(nèi)容 1、時域分析 1)
44、二階系統(tǒng)性能指標(biāo)的計算 已知系統(tǒng)的閉環(huán)傳遞函數(shù): (s) 1000 ,用 Matlab 程序編程,計算系統(tǒng)的 t p , t s , % 。 2 34.5 s s 1000 解: Matlab 程序: 13/21 Matlab 程序: 運行結(jié)果: po
45、s = t=0:0.01:0.5 12.9520 num=[1000]; den=[1 34.5 1000]; tp = sys=tf(num,den); 0.1200 [y,t]=step(sys,t); ts = figure(2) plot(t,y); 0.0800 grid on maxy=max(y); yss=y(length(t)); pos=100*(maxy-yss)/yss
46、 for i=1:1:length(t) if y(i)==maxy n=i; end end tp=(n-1)*0.01 for i=1:1:length(t) if (y(i)<1.02&y(i)>0.98) m=i; break end end ts=(m-1)*0.01 2)穩(wěn)定性分析 已知系統(tǒng)的閉環(huán)特征方程為:s5 6s4
47、3s3 2s2 s 1 0,用 Matlab 程序編程, 分析 系統(tǒng)的穩(wěn)定性 。 解: Matlab 程序: Matlab 程序: 運行結(jié)果: ans = p=[1 6 3 2 1 1]; -5.5171 roots(p) -0.5007 + 0.4636i -0.5007 - 0.4636i 0.2593 + 0.5675i 0.2593 - 0.5675i 3)誤差分析
48、已知系統(tǒng)的開環(huán)傳遞函數(shù): G (s) 1 , G ( s) 1 G (s) 4s 1 ,用 Matlab 程序編程, s 3 s( s 0.7) s 2 (s 1) 求系統(tǒng)在階躍、斜坡、加速度信號輸入時的誤差。 解: Matlab 程序: 14/21 Matlab 程序: num1=[1]; den1=[1 3]; [num1,den1]=cloop(num1,den1); sys=tf(num1,den1); t=0:0.1:10
49、 subplot(3,1,1); step(sys,t) y1=step(sys,t); grid on subplot(3,1,2); lsim(sys,t,t) y2=lsim(sys,t,t); hold on plot(t,t); grid on subplot(3,1,3); lsim(sys,(1/2)*t.^2,t) y3=lsim(sys,(1/2)*t.^2,t); hold on plot(t,(1/2)*t.^2); grid on ers=y1(length(t))-1
50、 erv=y2(length(t))-t(length(t)) era=y3(length(t))-(1/2)*t(length(t)).^2 運行結(jié)果: ers = -0.7500 erv = -7.5625 era = -38.1092 4、繪制系統(tǒng) Bode 圖 已知系統(tǒng)的開環(huán)傳遞函數(shù): 100( s 2) ,用 Matlab 程序編程,繪制系統(tǒng)的 Bode 圖。 G (s) 20) s(s 1)(s 解: Matlab 程序:
51、 15/21 運行結(jié)果: Matlab 程序: num=100*[1 2]; den=conv(1,conv([1 1],[1 20])); bode(num,den); grid on 5、繪制系統(tǒng)的 Nyquist 圖。 已知系統(tǒng)的開環(huán)傳遞函數(shù): 100( s 2) ,用 Matlab 程序編程,繪制系統(tǒng)的 Nyq
52、uist 圖。 G (s) 20) s(s 1)(s 解: Matlab 程序: Matlab 程序: 運行結(jié)果: num=100*[1 2]; den=conv(1,conv([1 1],[1 20])); %nyquist(num,den); grid on 6、求系統(tǒng)的相位裕量 。 已知系統(tǒng)的開環(huán)傳遞函數(shù): G (s) 20 ,用 Matlab 程序編程,
53、 求系統(tǒng)的相位裕量 。 1)(0.1s 1) s(s 解: Matlab 程序: 五、實驗要求 1、如何用 simulink 對離散和非線性系統(tǒng)進(jìn)行仿真分析; 2、如何在 Bode 圖中讀取系統(tǒng)的幅值裕量和相位裕量。 六、實驗報告 16/21 實驗六 SISO 控制系統(tǒng)的校正 一、實驗?zāi)康? 1、通過本實驗,使學(xué)生了解控制系統(tǒng)校正的方法; 2、掌握利用 MATLAB進(jìn)行控制系統(tǒng)的串聯(lián)超前和串聯(lián)滯后的編程方法。 二、實驗內(nèi)容 1
54、、理解控制系統(tǒng)校正的含義; 2、按實驗內(nèi)容編寫相應(yīng)程序,并記錄實驗結(jié)果; 3、認(rèn)真完成實驗報告。 三、實驗原理 1、串聯(lián)超前校正算法: 步驟 1:根據(jù)穩(wěn)態(tài)精度 ess 的要求,計算開環(huán)增益 K; 步驟 2:根據(jù) K 值,計算 ,驗證系統(tǒng)是否滿足性能指標(biāo) ; 步驟 3:計算需要的超前量: m 補(bǔ)償 步驟 4:計算 a 1 sin 1 sin m m 步驟 5:計算滿足如下方程的頻率 c : 10lg a 20lg | G ( j c ) H ( j
55、c ) | 步驟 6:計算 1 aGc (s) 1 aTs T a ,決定校正網(wǎng)絡(luò): 1 Ts m 步驟 7:根據(jù): T R1R2C , a R1 R2 ,選擇網(wǎng)絡(luò)參數(shù) R1, R 2 ,C 。 R1 R2 R2 2、串聯(lián)遲后校正算法: 步驟 1:根據(jù)穩(wěn)態(tài)精度 ess 的要求,計算開環(huán)增益 K; 步驟
56、2:根據(jù) K 值,確定愿系統(tǒng)的 ,驗證系統(tǒng)是否滿足性能指標(biāo) ; 步驟 3:計算滿足如下方程的頻率 c : 180 步驟 4:計算滿足如下方程的 : 10lg 20lg | G ( j c )H ( j c ) | , 10 |G ( j c )H ( j c )|/ 20 步驟 5:計算 1 1 1 , 2 1 ( 1 ~ 1 ) c , 2 0.2 c , T 1 T T T 5 10 2 步驟 6:決定校正網(wǎng)絡(luò): Gc
57、 ( s) 1 Ts 1 Ts 3、超前 -遲后校正算法: 步驟 1:根據(jù)穩(wěn)態(tài)精度 ess 的要求,計算開環(huán)增益 K ,繪制系統(tǒng)的 Bode 圖; 步驟 2:根據(jù) K 值,計算 ,驗證系統(tǒng)是否滿足性能指標(biāo) ; 步驟 3:計算需要的超前量: m 補(bǔ)償 17/21 步驟 4:計算 a
58、 1 sin 1 sin m m 步驟 5:計算滿足如下方程的頻率 c : 10lg a 20lg | G ( j c ) H ( j c ) | 步驟 6:計算超前網(wǎng)絡(luò)的參數(shù): T a1 1 a ,T a 2 1 1 a1 c a2 c a 1 T a1 s 1 T a1 s 步驟 7:決定校正網(wǎng)絡(luò):Gac (s) 1 T a 2 s 1 (T a1 / ) s 步驟 8:決定遲后校正轉(zhuǎn)則頻
59、率: 1 1 c , 1 d1 ( ~ ) d 2 5 10 1 T 步驟 9:決定遲后校正網(wǎng)絡(luò): Gdc ( s) 1 T d1 d 2 s 1 T d1 s s 1 T d 1 s 步驟 10:超前 -遲后校正網(wǎng)絡(luò): 1 T a1 s 1 T d 1 s Gc (s) Gac (s)Gdc (s) 1 T d1 s 1 (T a2 / )s 四、實驗內(nèi)容 1、串聯(lián)超前校正裝置設(shè)計 已知系統(tǒng)
60、的開環(huán)傳遞函數(shù): 20 ,用 Matlab 程序編程,設(shè)計串聯(lián)超前校正裝置,使系 G (s) s(0.5s 1) 統(tǒng)校正后的相位裕量為 50 度。 解: Matlab 程序: 18/21 Matlab 程序: 運行結(jié)果: num/den = num=20; den=[0.5 1 0];
61、G=tf(num,den); 0.22682 s + 1 [gm,pm,wcg,wcp]=margin(num,den); -------------- dpm=50-pm+5; 0.056296 s + 1 phi=dpm*pi/180; a=(1+sin(phi))/(1-sin(phi)); mm=-10*log10(a); gm = [mag,phase,w]=bode(num,den); Inf magdb=20*log10(mag); wc=spline(magdb,w,mm); pm = T=1/(
62、wc*sqrt(a)); 49.7706 p=a*T; wcg = nk=[p,1]; dk=[T,1]; Inf Gc=tf(nk,dk); wcp = printsys(nk,dk,'s'); 8.8496 G=G*Gc; [gm,pm,wcg,wcp]=margin(G) 2、串聯(lián)超前校正裝置設(shè)計 已知系統(tǒng)的開環(huán)傳遞函數(shù): G (s) 5 ,用 Matlab 程序編程,設(shè)計串聯(lián)超前校正裝置, s(s 1)(0.5s 1) 使系統(tǒng)校正后的相位裕量為
63、45 度。 解: Matlab 程序: Matlab 程序: num=5; den=[0.5 1.5 1 0]; G0=tf(num,den); [gm,pm,wcg,wcp]=margin(num,den); dpm=-180+40+12; [mag,phase,w]=bode(num,den); wc=spline(phase,w,dpm); magdb=20*log10(mag); magwc=spline(w,magdb,wc); beta=10^(-magwc/20);
64、 w2=0.2*wc; T=1/(beta*w2); nk=[beta*T,1]; dk=[T,1]; Gc=tf(nk,dk); printsys(nk,dk,'s'); G=G0*Gc; [gm,pm,wcg,wcp]=margin(G) 運行結(jié)果: num/den = 10.7611 s + 1 -------------- 102.2955 s + 1 gm = 4.9898 pm = 41.5141 wcg = 1.3231 wcp = 0.4
65、718 2、 串聯(lián)超前校正裝置設(shè)計 已知系統(tǒng)的開環(huán)傳遞函數(shù): G (s) 1600 ,用 Matlab 程序編程,設(shè)計串聯(lián)超前校正裝置, s( s 2)( s 40) 使系統(tǒng)校正后的相位裕量為 40 度。 19/21 解: Matlab 程序: Matlab 程序: num=1600; den=conv([1,0],conv([1,2],[1,40])); G0=tf(num,den); [gm,pm,wcg,wcp]=margin(num,
66、den); w=0.01:0.001:100; dpm=40-pm+6; phi=dpm*pi/180; a=(1+sin(phi))/(1-sin(phi)); mm=-10*log10(a); [mag,phase,w]=bode(num,den); magdb=20*log10(mag); wc=spline(magdb,w,mm); wa1=wc/sqrt(a); wa2=sqrt(a)*wc; na=[1/wa1,1]; da=[1/wa2,1]; Ga=tf(na,da); disp('Ga='),Ga wd1=wc/10; wd2=wd1/a; nd=[1/wd1,1]; dd=[1/wd2,1]; Gd=tf(nd,dd); disp('Ga='),Gd disp('Gc='),Ga*Gd Gc=Ga*Gd; G=G0*Gc; [gm,pm,wcg,wcp]=margin(G)Ga= 運行結(jié)果:
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。