基于MATLAB的系统仿真实验实验指导书新乡学院二○○八年三月说明MATLAB是MATrix LABoratory的缩写,是一种基于矩阵的数学与工程计算系统,可以用作动态系统的建模与仿真。
研究系统的结构和参数的变化对系统性能的影响可利用MATLAB强大的计算和作图功能,因此本实验采用MATLAB仿真研究连续控制系统和离散控制系统的性能分析过程。
通过该实验提高学生对控制系统的分析与设计能力,加深对《自动控制原理》课程内容的理解。
由于学时有限,该实验由同学们参考有关MATLAB应用的书籍利用课后时间完成。
第一部分基于MATLAB 连续系统的仿真一、 实验目的在研究系统的结构和参数的变化对系统性能的影响时,采用解析和作图的方法比较麻烦,而且误差也大,用MATLAB 仿真实现则简单方便,精度高。
本实验采用MATLAB 实现控制系统的数学描述、控制系统的时域分析及根轨迹和频率特性分析。
通过该实验,加深学生对系统阶次,型号,参数与系统性能的关系的理解。
二、实验环境在计算机Windows 环境下安装好MATLAB6.3以上版本后,双击MATLAB 图标或成“开始”菜单打开MATLAB ,即可进入MATLAB 集成环境。
三、MATLAB 应用实例1.拉氏变换和反变换例 求22)(2++=t t t f 的拉氏变换 解键入 syms s t;ft=t^2+2*t+2; st=laplace(ft,t,s)运行结果为 st=2/s^3+2/s^2+2/s例 求)2)(34(6)(2++++=s s s s s F 的拉氏反变换 解键入 syms s t;Fs=(s+6)/(s^2+4*s+3)/(s+2); ft=ilaplace(Fs,s,t)运行结果为 ft=3/2*exp(-3*t)+5/2*exp(-t)-4*exp(-2*t)2。
求根运算例 求多项式 43)(23++=s s s p 的根,再由根建多项式。
解键入 p=[1 3 0 4]; r=root(p) 运行结果为 r=-3.35530.1777+1.0773i 1.7777-1.0773i键入 p=poly(r)运行结果为 p=1.0000 3.0000 0.0000 40000例 实现多项式相乘:)4)(123(2+++s s s ,并求5-=s 时的值。
解键入 p=[3 2 1]; q=[1 4]; n=conv(p,q) 运行结果为 n=3 14 9 4 键入 vlaue=polyval(n,-5) 运行结果为 value=-663.微分方程求解例 解下列微分方程:1)(2)(3)(322=++t y dt t dy dtt y d 初始条件 0)0()0('==y y 解键入 y=dsolve('3*D2y+3*Dy+2*y=1','y(0)=0,Dy(0)=0') 运行结果为 y=1/2-1/2*exp(-1/2*t)*cos(1/6*15^(1/2)*t)-1/10*15^(1/2)*exp(-1/2*t)*sin(1/6*15^(1/2)*t)4.传递函数例 求如图所示系统的传递函数。
解键入numg=[1];deg=[500 0 0]; numh=[1 1];denh=[1 2];[num,den]=feedback(numg,deng,numh,denh,-1); printsys(num,den) 运行结果为 num/den=s +2------------------------------500s^3 + 1000 s^2 + s+1其中, 由函数 printsys(num,den) 打印出传递函数。
5。
系统输出响应及性能分析例 二阶系统闭环传递函数的标准形式为 2222)()()(nn n s s s R s C s ωξωω++==Φ 若n ω确定,系统的瞬态响应和ξ的取值有关。
下面用MATLAB 分析在不同的ξ值时,系统的单位阶跃响应。
所用的MA TLAB 程序如下:%n ω=1t=0:0.1:12;num=[1];zeta1=0;den1=[1 2*zeta1 1]; zeta3=0.3;den3=[1 2*zeta3 1]; zeta5=0.5;den5=[1 2*zeta5 1]; zeta7=0.7;den7=[1 2*zeta7 1]; zeta9=1.0;den9=[1 2*zeta9 1]; [y1,x,t]=step(num,den1,t); [y3,x,t]=step(num,den3,t); [y5,x,t]=step(num,den5,t); [y7,x,t]=step(num,den7,t); [y9,x,t]=step(num,den9,t); plot(t,y1,t,y3,t,y5,t,y7,t,y9,) grid on; 运行结果见图。
例 已知AAK s s K s 55.345)(2++=Φ,分别计算K A =200时,系统的性能指标t p ,t s ,%σ。
解 MA TLAB 程序如下:t=0:0.01:2; num=[1000];den=[1 34.5 1000]; [y,x,t]=step(num,den,t); plot(t,y); %求超调量maxy=max(y); yss=y(length(t));pos=100*(maxy-yss)/yss; %求峰值时间 for i=1:1:201if y(i)==maxy,n=i;end endtp=(n-1)*0.01; %求调节时间 for i=1:1:201if (y(i)<1.05 & y(i)>0.95),m=i;end break; endts=(m-1)*0.01;计算结果为t p =0.12s ,t s =0.17s ,%σ=12.93%例 系统闭环特征方程为 0242)(23=+++=s s s s q 用MA TLAB 判系统稳定性。
解键入 den=[1 1 2 24]; roots(den) 运行结果为 ans=-3.00001. 000+2.6458i 1.0000-2.6458i可见,系统有两个右根,故系统不稳定。
例 求出下列系统11)(1+=s s G ,)1(1)(2+=s s s G ,)1(14)(23++=s s s s G 单位阶跃 响应及稳态误差。
解MATLAB 程序如下:t=0:0.1:20;[num1,den1]=cloop([1],[1 1]); [num2,den2]=cloop([1],[1 1 0]); [num3,den3]=cloop([4 1],[1 1 0 0]); y1=step(num1,den1,t); y2=step(num2,den2,t); y3=step(num3,den3,t); subplot(311); plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=y1(length(t))-1;er2=y2(length(t))-1;er3=y3(length(t))-1;运行结果见图。
在命令窗口可得er1 = -0.5000 %0型系统的稳态误差er2 = 2.4294e-005 % Ⅰ型系统的稳态误差er3 = -3.3525e-004 % Ⅱ型系统的稳态误差例用SIMULINK对第七节中单闭环无静差调速系统进行仿真。
解在SIMULINK下建立系统仿真结构图如图3-46所示。
仿真的结果见图3-47。
6。
绘制系统的根轨迹图例 设一单位反馈系统如图4-31所示,试绘制该系统的根轨迹。
解键入num=[1];den=[1 3 2 0]; rlocus(num,den) 运行结果见图4-32。
例 已知系统前向通道传递函数为5)(+=s K s G c ,)8(1)(0++=s s s s G ,反馈通道传递函数为21)(+=s s H ,试绘出系统闭环根轨迹图。
解键入 Gc=tf(1,[1 5]);Go=tf([1 1],[1 8 0]); H=tf(1,[1 2]); rlocus(Gc*Go*H);v=[-10 10 –10 13];axis(v); grid on运行结果见图4-33。
图4-33 例4-18系统根轨迹7.绘制系统的频率特性图例5 振荡环节传递函数的标准形式为2222)()()(nn n s s s R s C s ωζωω++==Φ 当n ω确定时,系统的频率特性与ζ的取值有关。
用MATLAB 绘出1=n ω时,在不同ζ取值下,系统的Bode 图和Nyquist 图。
解 1)作Bode 图程序: num=[1];zeta1=0.1;den1=[1 2*zeta1 1]; zeta3=0.3;den3=[1 2*zeta3 1];zeta5=0.5;den5=[1 2*zeta5 1]; zeta7=0.7;den7=[1 2*zeta7 1]; zeta9=1.0;den9=[1 2*zeta9 1];[mag1,phase1,w1]=bode(num,den1); [mag3,phase3,w3]=bode(num,den3); [mag5,phase5,w5]=bode(num,den5); [mag7,phase7,w7]=bode(num,den7); [mag9,phase9,w9]=bode(num,den9); subplot(211);semilogx(w1,20*log10(mag1),w3,20*log10(mag3),…w5,20*log10(mag5),w7,20*log10(mag7), w9,20*log10(mag9)); subplot(212);semilogx(w1,phase1,w3,phase3,w5,phase5,w7,phase7,w9,phase9); 运行结果见图。
2)作Nyquist 图程序: num=[1];zeta1=0.4;den1=[1 2*zeta1 1]; zeta6=0.6;den6=[1 2*zeta6 1]; zeta8=0.8;den8=[1 2*zeta8 1]; [re1,im1]=nyquist(num,den1); [re2,im2]=nyquist(num,den6);[re3,im3]=nyquist(num,den8); plot(re1,im1,re2,im2,re3,im3); 运行结果见图。
例 已知系统的开环传递函数)12()10()(++=s s s s G ,求开环对数频率特性曲线。