实验一 MATLAB 及仿真实验(控制系统的时域分析)一、实验目的学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;二、预习要点1、 系统的典型响应有哪些?2、 如何判断系统稳定性?3、 系统的动态性能指标有哪些?三、实验方法(一) 四种典型响应1、 阶跃响应:阶跃响应常用格式:1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。
2、),(Tn sys step ;表示时间围0---Tn 。
3、),(T sys step ;表示时间围向量T 指定。
4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。
2、 脉冲响应:脉冲函数在数学上的精确定义:0,0)(1)(0〉==⎰∞t x f dx x f 其拉氏变换为:)()()()(1)(s G s f s G s Y s f ===所以脉冲响应即为传函的反拉氏变换。
脉冲响应函数常用格式: ① )(sys impulse ;② );,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y =(二) 分析系统稳定性有以下三种方法:1、 利用pzmap 绘制连续系统的零极点图;2、 利用tf2zp 求出系统零极点;3、 利用roots 求分母多项式的根来确定系统的极点(三) 系统的动态特性分析Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.四、实验容(一) 稳定性1.系统传函为()27243645232345234+++++++++=s s s s s s s s s s G ,试判断其稳定性%Matlab 计算程序num=[3 2 5 4 6];den=[1 3 4 2 7 2];G=tf(num,den);pzmap(G);p=roots(den)2.用Matlab 求出253722)(2342++++++=s s s s s s s G 的极点。
%Matlab 计算程序%求取极点num=[1 2 2];den=[1 7 3 5 2];p=roots(den)(二)阶跃响应1. 二阶系统()102102++=s s s G 1)键入程序,观察并记录单位阶跃响应曲线2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:由图1-3及其相关理论知识可填下表:3//πωπ==d p t =1.04724)修改参数,分别实现1=ζ和2=ζ的响应曲线,并记录5)修改参数,分别写出程序实现0121w w n =和022w w n =的响应曲线,并记录 %Matlab 计算程序第1)题:4.52%(00.9)3.55%n s n t ζωζζω⎧∆=⎪⎪=<<⎨⎪∆=⎪⎩%单位阶跃响应曲线clcclearnum=[10];den=[1 2 10];step(num,den);title('Step Response of G(s)=10/(s^2+2s+10)'); hold ont=[0:0.001:6];y1=1.02;plot(t,y1)第2)题:%计算系统的闭环根、阻尼比、无阻尼振荡频率num=[10];den=[1 2 10];G=tf(num,den);[wn,z,p]=damp(G);第4)题:%kosi=1阶跃响应曲线wn=sqrt(10);kosi=1;G=tf([wn*wn],[1 2*kosi*wn wn*wn]);step(G);title('Step Response of kosi=1');%kosi=2的阶跃响应曲线wn=sqrt(10);kosi=2;G=tf([wn*wn],[1 2*kosi*wn wn*wn]);step(G);title('Step Response of kosi=2');第5)题:%wn1=0.5w0的阶跃响应曲线w0=sqrt(10);kosi=1/sqrt(10);wn1=0.5*w0;G=tf([wn1*wn1],[1 2*kosi*wn1 wn1*wn1]); step(G);title('Step Response of wn1=0.5w0');%wn2=2w0的阶跃响应曲线w0=sqrt(10);kosi=1/sqrt(10);wn2=2*w0;G=tf([wn2*wn2],[1 2*kosi*wn2 wn2*wn2]); step(G);title('Step Response of wn2=2w0');2. 作出以下系统的阶跃响应,并与原系统响应曲线进行比较,作出相应的实验分析结果(1)()10210221+++=s s s s G ,有系统零点的情况 (2)()102105.0222++++=s s s s s G ,分子、分母多项式阶数相等(3)()1025.0222+++=s s s s s G ,分子多项式零次项为零 (4)()10222++=s s ss G ,原响应的微分,微分系数为1/10%各系统阶跃响应曲线比较G0=tf([10],[1 2 10]);G1=tf([2 10],[1 2 10]);G2=tf([1 0.5 10],[1 2 10]); G3=tf([1 0.5 0],[1 2 10]);G4=tf([1 0 ],[1 2 10]);step(G0,G1,G2,G3,G4);grid on;title('实验1.2 Step Response 曲线比较');3. 单位阶跃响应:25425)()(2++=s s s R s C 求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题%单位阶跃响应G=tf([25],[1 4 25]);step(G);grid on;title('实验1.3 Step Response of G(s)=25/(s^2+4s+25)');(三)系统动态特性分析用Matlab 求二阶系统12012120)(2++=s s s G 和01.0002.001.0)(2++=s s s G 的峰值时间p t 上升时间r t 调整时间s t 超调量%σ。
%G1阶跃响应G1=tf([120],[1 12 120]);step(G1);grid on;title(' Step Response of G1(s)=120/(s^2+12s+120)');% G2单位阶跃响应G2=tf([0.01],[1 0.002 0.01]);step(G2);grid on;title(' Step Response of G2(s)=0.01/(s^2+10.002s+0.01)');、实验二 MATLAB 及仿真实验(控制系统的根轨迹分析)一 实验目的1.利用计算机完成控制系统的根轨迹作图2.了解控制系统根轨迹图的一般规律3.利用根轨迹图进行系统分析二 预习要点1. 预习什么是系统根轨迹?2. 闭环系统根轨迹绘制规则。
三 实验方法(一) 方法:当系统中的开环增益k 从0到变化时,闭环特征方程的根在复平面上的一组曲线为根轨迹。
设系统的开环传函为:)()()(0s Q s N k s G =,则系统的闭环特征方程为:0)()(1)(10=+=+s Q s N k s G 根轨迹即是描述上面方程的根,随k 变化在复平面的分布。
(二) MATLAB 画根轨迹的函数常用格式:利用Matlab 绘制控制系统的根轨迹主要用pzmap ,rlocus ,rlocfind ,sgrid 函数。
1、零极点图绘制❑ [p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
❑ [p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
❑ pzmap(a,b,c,d)或pzmap(num,den):不带输出参数项,则直接在s 复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o 表示。
❑ pzmap(p,z):根据系统已知的零极点列向量或行向量直接在s 复平面上绘制出对应的零极点位置,极点用×表示,零点用o 表示。
2、根轨迹图绘制❑ rlocus(a,b,c,d)或者rlocus(num,den):根据SISO 开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。
开环增益的值从零到无穷大变化。
❑ rlocus(a,b,c,d,k)或rlocus(num,den,k): 通过指定开环增益k 的变化围来绘制系统的根轨迹图。
❑ r=rlocus(num,den,k) 或者[r,k]=rlocus(num,den) :不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k ,返回闭环系统特征方程1+k*num(s)/den(s)=0的根r ,它有length(k)行,length(den)-1列,每行对应某个k 值时的所有闭环极点。
或者同时返回k 与r 。
❑ 若给出传递函数描述系统的分子项num 为负,则利用rlocus 函数绘制的是系统的零度根轨迹。
(正反馈系统或非最小相位系统)3、rlocfind()函数❑ [k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)它要求在屏幕上先已经绘制好有关的根轨迹图。
然后,此命令将产生一个光标以用来选择希望的闭环极点。
命令执行结果:k 为对应选择点处根轨迹开环增益;p 为此点处的系统闭环特征根。
❑ 不带输出参数项[k,p]时,同样可以执行,只是此时只将k 的值返回到缺省变量ans中。
4、sgrid()函数❑ sgrid :在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn 、阻尼比矢量z对应的格线。
❑ sgrid(‘new ’):是先清屏,再画格线。
❑ sgrid(z,wn):则绘制由用户指定的阻尼比矢量z 、自然振荡频率wn 的格线。
四 实验容1. ()()()21++=s s s k s G g要求:A . 记录根轨迹的起点、终点与根轨迹的条数;B . 确定根轨迹的分离点与相应的根轨迹增益;C . 确定临界稳定时的根轨迹增益gL k%Matlab 计算程序z=[];p=[0 -1 -2];k=1;G=zpk(z,p,k);figure(1);pzmap(G)figure(2);rlocus(G)title('实验2.1所作曲线');%求临界稳定时的根轨迹增益Kglz=[];p=[0 -1 -2];k=1;G=zpk(z,p,k);rlocus(G)title('实验2.1 临界稳定时的根轨迹增益Kgl');[k,p]=rlocfind(G)%求取根轨迹的分离点与相应的根轨迹增益z=[];p=[0 -1 -2];k=1;G=zpk(z,p,k);rlocus(G)title('实验2.1 根轨迹的分离点与相应的根轨迹增益曲线图');[k,p]=rlocfind(G)2.()()23)(++=s s s K s G g 要求:确定系统具有最大超调量时的根轨迹增益;解:当Kg=5.5时,系统具有最大超调量%σ=3.89% ,% Matlab 程序num=5.5*[1 3];den=[1 2 0];G0=tf(num,den);G=feedback(G0,1,-1); step(G)title('实验2.2 系统阶跃响应曲线');3.绘制下列各系统根轨迹图。