matlab线性控制系统分析与设计_第1页
matlab线性控制系统分析与设计_第2页
matlab线性控制系统分析与设计_第3页
matlab线性控制系统分析与设计_第4页
matlab线性控制系统分析与设计_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 线性控制系统分析与设计,MATLAB具有丰富的控制系统分析和设计函数;控制系统工具箱(Control System Toolbox)可供对线性系统分析、设计和建模的各种算法。,6.1 线性系统的描述 6.2 线性系统模型之间的转换 6.3 结构框图的模型表示 6.4 线性系统的时域分析 6.5 线性系统的频域分析 6.6 线性系统的根轨迹分析 6.7 线性系统的状态空间设计,6.1 线性系统的描述,状态空间描述法 传递函数描述法 零极点描述法 离散系统的数学描述,在分析设计系统之前,需要对系统的数学模型进行描述,单变量连续的反馈系统的描述方法:,即使用状态方程模型来描述控制系统,状态方

2、程为一阶微分方程:,6.1.1状态空间描述法,例如,二阶系统,可以用状态方程描述:,语法: G=ss(a,b,c,d) %由a、b、c、d参数获得状态方程模型 G=dss(a,b,c,d,e) %由a、b、c、d、e参数获得状态方程模型,例6.1 写出二阶系统 当 时的状态方程 。,MATLAB中状态方程模型的建立使用ss和dss命令。,zeta=0.707;wn=1; A=0 1;-wn2 -2*zeta*wn; B=0;wn2; C=1 0; D=0; G=ss(A,B,C,D) %建立状态方程模型,控制系统由微分方程描述,经Laplace变换得,6.1.2 传递函数描述法,语法: G=t

3、f(num,den) %由传递函数分子分母得出 说明:num为分子向量,num=b1,b2,bm,bm+1; den为分母向量,den=1,a1,a2,an-1,an。,有理函数,MATLAB中使用tf命令来建立传递函数。,num=1; den=1 1.414 1; G=tf(num,den) %得出传递函数 Transfer function: 1 - s2 + 1.414 s + 1,6.1.3 零极点描述法,语法: G=zpk(z,p,k) %由零点、极点和增益获得 说明:z为零点列向量;p为极点列向量;k为增益。,MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。,零极点

4、形式是以实数形式表示的。, num=1; den=1 1.414 1; z=roots(num) z = Empty matrix: 0-by-1 p=roots(den) p = -0.7070 + 0.7072i -0.7070 - 0.7072i zpk(z,p,1) Zero/pole/gain: 1 - (s2 + 1.414s + 1), a=1 5 6; b=1 1; p=roots(a) p = -3.0000 -2.0000 z=roots(b) z = -1 g=zpk(z,p,2) Zero/pole/gain: 2 (s+1) - (s+3) (s+2),控制系统的系统

5、函数也可用部分分式法表示,使用residue命令来实现由传递函数得出部分分式的极点和系数。, r,p,k=residue(num,den) r = 0 - 0.7070i 0 + 0.7070i p = -0.7070 + 0.7072i -0.7070 - 0.7072i k = , r,p,k=residue(b,a) r = 2.0000 -1.0000 p = -3.0000 -2.0000 k = ,6.1.4 离散系统的数学描述,1. 状态空间描述法,u为输入向量,x为状态向量,,y为输出向量,n为采样时刻,将离散系统的状态方程描述变换为脉冲传递函数,脉冲传递函数即对差分方程做ZT

6、所得,表达式为:,2. 脉冲传递函数描述法,脉冲传递函数也可以用tf命令实现。 语法:G=tf(num,den,Ts) %由分子分母得出脉冲传递函数 说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用z表示。,语法: G=filt(num,den,Ts) %由分子分母得出脉冲传递函数 说明:Ts为采样周期,当采样周期未指明Ts可以省略,也可 以用-1表示,自变量用z-1表示。,MATLAB中还可以用filt命令产生脉冲传递函数。, a=-1.5 -0.5;1 0; b=1;0; c=0 0.5; d=0; G=ss(a,b,c,d,0.1) %采样周期为0.1s,【例6.2

7、】用状态空间法建立离散系统。,【例6.2】创建离散系统脉冲传递函数,num1=0.5 0; den=1 -1.5 0.5; G1=tf(num1,den,-1) Transfer function: 0.5 z - z2 - 1.5 z + 0.5 Sampling time: unspecified,num2=0 0.5; den=1 -1.5 0.5; G2=filt(num2,den) Transfer function: 0.5 z-1 - 1 - 1.5 z-1 + 0.5 z-2 Sampling time: unspecified,离散系统的零极点增益用zpk命令实现。 语法:

8、G=zpk(z,p,k,Ts) %由零极点得出脉冲传递函数,使用residue命令来实现由传递函数得出部分分式的极点和系数。,3. 零极点增益描述法,G3=zpk(0,0.5 1,0.5,-1) Zero/pole/gain: 0.5 z - (z-0.5) (z-1) Sampling time: unspecified,【例6.2】使用zpk命令产生零极点增益传递函数。,6.2 线性系统模型之间的转换,连续系统模型之间的转换 连续系统与离散系统之间的转换 模型对象的属性,表6.1 线性系统模型转换函数表,z为零点列向量,p为极点列向量,k为增益。,(1) 状态空间模型的获得 由命令ss和d

9、ss实现将传递函数和零极点增益转换为状态空间模型。 语法:G=ss(传递函数) %由传递函数转换获得 G=ss(零极点模型) %由零极点模型转换获得,1. 系统模型的转换,(2) 传递函数的获得 由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。 语法:G=tf(状态方程模型) %由状态空间转换 G=tf(零极点模型) %由零极点模型转换,(3) 零极点模型的获得 由zpk命令实现将状态空间法、传递函数转换为零极点模型。 语法: G=zpk(状态方程模型) %由状态方程模型转换 G=zpk(传递函数) %由传递函数转换,【例6.3】将单输入双输出的系统传递函数,转换为状态空间描述

10、。, num=0 3 2;1 2 3; den=3 5 2 1; G11=tf(num(1,:),den) Transfer function: 3 s + 2 - 3 s3 + 5 s2 + 2 s + 1 G12=tf(num(2,:),den) Transfer function: s2 + 2 s + 3 - 3 s3 + 5 s2 + 2 s + 1, G=ss(G11;G12) a = x1 x2 x3 x1 -1.667 -0.3333 -0.08333 x2 2 0 0 x3 0 2 0 b = u1 x1 1 x2 0 x3 0 ., G1=tf(G) Transfer fu

11、nction from input to output. s + 0.6667 #1: - s3 + 1.667 s2 + 0.6667 s + 0.3333 0.3333 s2 + 0.6667 s + 1 #2: - s3 + 1.667 s2 + 0.6667 s + 0.3333, G2=zpk(G) Zero/pole/gain from input to output. (s+0.6667) #1: - (s+1.356) (s2 + 0.3103s + 0.2458) 0.33333 (s2 + 2s + 3) #2: - (s+1.356) (s2 + 0.3103s + 0.

12、2458),语法: a,b,c,d=ssdata(G) %获取状态空间参数 a,b,c,d,e=dssdata(G) %获取状态空间参数 num,den=tfdata(G) %获取传递函数参数 z,p,k=zpkdata(G) %获取零极点参数,2.模型参数的获取,3.模型类型的检验,表6.2 模型类型检验函数表,6.2.2 连续系统与离散系统之间的转换,随着控制系统中计算机的广泛应用,系统经常由连续系统和离散连接构成,使用A/D、D/A转换连接连续和离散子系统。在分析系统时必须将连续系统转换为性能相当的离散系统。 控制工具箱提供了c2d,d2c和d2d命令实现复杂的相互转换。,语法:Gd=c

13、2d(G,Ts,method) %以采样周期Ts和method方法转换为离散系统 说明:G为连续系统模型;Gd为离散系统模型;Ts为采样周期;method为转换方法,可省略,包括五种: zoh(默认零阶保持器)、foh(一阶保持器)、 tustin(双线性变换法)、mached(根匹配法) 、 prewarp(频率预修正双线性变换法) 。,1. c2d命令,c2d命令用于将连续系统转换为离散系统。,语法: G=d2c(Gd,method) %转换为连续系统 说明:method为转换方法可省略,与c2d相似,少了foh(一阶保持器)方法。,2. d2c命令,d2c命令是c2d的逆运算,用于将离散

14、系统转换为连续系统。,语法: Gd2=d2d(Gd1,Ts2) %转换离散系统的采样频率为Ts2 说明:其实际的转换过程是先把Gd1按零阶保持器转换为原连续系统,然后再用Ts2和零阶保持器转换为Gd2。,3. d2d命令,d2d命令是将离散系统改变采样频率。,a=0 1;-1 -1.414; b=0;1; c=1 0; d=0; G=ss(a,b,c,d); Gd=c2d(G,0.1),【例6.4】将二阶连续系统转换为离散系统,G=d2c(Gd),Gd2=d2d(Gd,0.3),6.2.3 模型对象的属性,LTI系统的三种模型ss、tf、zpk都有自己对应的属性。 1. 模型对象的属性 ss、

15、tf和zpk三种对象除了具有线性时不变系统共有的属性以外,还具有其各自的属性,共有属性如表6.3所示,其各自的属性如表6.4所示。,表6.3 对象共有属性表,表6.4 三种子对象特有属性表,表6.4 三种子对象特有属性表,(2) set命令用于修改对象属性名 语法:set(G,PropertyName,PropertyValue,) %修改对象的某些属性值,3. 直接获取和修改属性 根据对象和属性的关系,也可以直接用“.”符号来获取和修改属性。,2. get命令和set命令 (1) get命令可以获取模型对象的所有属性 语法:get(G) %获取对象的所有属性值 get(G,PropertyN

16、ame,) %获取对象的某些属性值 说明:G为模型对象名;PropertyName为属性名。, num=1; den=1 1.414 1; G=tf(num,den); get(G) %获取所有属性 set(G,den,1 2 1,Variable,z) %设置属性 G.den=1 1.414 1;,6.3 结构框图的模型表示,控制系统的模型通常由相互连接的模块构成,模块间通过串联、并联和反馈环节构成结构框图。,2. 并联结构 SISO的并联结构是两个模块并联在一起,如图6.2所示。 实现并联结构传递函数的命令: G=G1+G2 G=parallel(G1,G2),3. 反馈结构 反馈结构是前

17、向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。,实现反馈结构传递函数的命令: G=feedback(G1,G2,Sign) 说明:Sign用来表示正反馈或负反馈,Sign = -1或省略则表示为负反馈。,【例6.6】根据系统的结构框图求出整个系统的传递函数, 结构框图如图6.4所示,其中,G1=tf(1,1 2 1) G2=tf(1,1 1); G3=tf(1,2 1); G4=tf(1,1 0); G12=G1+G2%并联结构 G34=G3-G4 G=feedback(G12,G34,-1),求取复杂结构框图的数学模型的步骤: (1) 将各模块的通路排序编号; (2) 建立无连接的

18、数学模型:使用append命令实现各模块未连接的系统矩阵。 G=append(G1,G2,G3,) (3) 指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。 (4) 使用connect命令构造整个系统的模型。 Sys=connect(G,Q,INPUTS,OUTPUTS),4. 复杂的结构框图,如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下: 将各通路的信息存放在变量中:通路数放在nbloc

19、ks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。,【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。,方法一:使用append命令 (1) 将各模块的通路排序编号,如图6.6所示。,(2) 使用append命令实现各模块未连接的系统矩阵 (3) 指定连接关系 (4) 使用connect命令构造整个系统的模型,G1=tf(1,1 0); G2=tf(1,1 1 0); G3=tf(1,1 1 0); G4=tf(-2,1); G5=tf(-1,1); G6=tf(1,1 0); G7=tf(-1,1 1); Sys=append(

20、G1,G2,G3,G4,G5,G6,G7),Q=1 6 5; 2 1 7; 3 2 0; 4 3 0; 5 4 0; 6 2 0; 7 3 0; INPUTS=1; OUTPUTS=4;,G =connect(Sys,Q,INPUTS,OUTPUTS),A,B,C,D=connect(a,b,c,d,Q,INPUTS,OUTPUTS),方法二:从第二步开始使用blkbuild命令来实现 (1) 将各通路的信息存放在变量中 (2) 建立连接矩阵Q指定连接关系,Q矩阵同前面 (3) 使用connect命令构造整个系统的模型,Q=1 6 5; 2 1 7; 3 2 0; 4 3 0; 5 4 0;

21、6 2 0; 7 3 0; INPUTS=1; OUTPUTS=4;, nblocks=7; n1=1; d1=1 0; n2=1; d2=1 1 0; n3=1; d3=1 1 0; n4=-2; d4=1; n5=-1; d5=1; n6=1; d6=1 0; n7=-1;d7=1 1; blkbuild,6.4 线性系统的时域分析,6.4.1 零输入响应分析 系统的输出响应由零输入响应和零状态响应组成,零输入响应是指系统的输入信号为零;零状态响应是指系统的初始状态为零。,线性系统的时域分析是主要分析系统在给定典型输入信号作用下,在时域的暂态和稳态响应,以及系统的稳定性。,语法: init

22、ial(G,x0, Ts) %绘制系统的零输入响应曲线 initial(G1,G2,x0, Ts) %绘制系统多个系统的零输入响应曲线 y,t,x=initial(G,x0, Ts) %得出零输入响应、时间和状态变量响应 说明:G为系统模型,必须是状态空间模型;x0是初始条件;Ts为时间点,如果是标量则为终止时间,如果是数组,则为计算的时刻,可省略;y为输出响应;t为时间向量,可省略;x为状态变量响应,可省略。,1.连续系统的零输入响应,MATLAB中使用initial命令来计算和显示连续系统的零输入响应。,例:某反馈系统,前向通道的传递函数为 反馈通道的传递函数为 ,求出初始条件为1 2 时

23、的零输入响应。,G1=tf(12,1 4); H=tf(1,1 3); GG=feedback(G1,H) G=ss(GG); initial(G,1 2) %绘制零输入响应 impulse(G) %绘制脉冲响应曲线 t=0:0.1:10; y=impulse(G,t) %根据时间t得出脉冲响应,离散系统的零输入响应使用dinitial命令实现。 语法: dinitial(a,b,c,d,x0) %绘制离散系统零输入响应 y= dinitial (a,b,c,d,x0) y,x,n= dinitial (a,b,c,d,x0) %得出离散系统n点的零输入响应 说明:a、b、c、d为状态空间的系

24、数矩阵;x0为初始条件;y为输出响应;t为时间向量;x为状态变量响应;n为点数。,2. 离散系统的脉冲响应,6.4.2 脉冲响应分析,1. 连续系统的脉冲响应 连续系统的脉冲响应由impluse命令来得出。 语法: impulse(G, Ts) %绘制系统的脉冲响应曲线 y,t,x=impulse(G, Ts) %得出脉冲响应 说明:G为系统模型,可以是传递函数、状态方程、零极点增益的形式;y为时间响应;t为时间向量;x为状态变量响应,t和x可省略;Ts为时间点可省略。,2. 离散系统的脉冲响应 离散系统的脉冲响应使用dimpulse命令实现。 语法:dimpluse(a,b,c,d,iu)

25、%绘制离散系统脉冲响应曲线 y,x=dimpluse(a,b,c,d,iu,n) %得出n点离散系统的脉冲响应 y,x=dimpluse(num,den,iu,n) %由传递函数得出n点离散系统的脉冲响应 说明:iu为第几个输入信号;n为要计算脉冲响应的点数; y的列数与n对应;x为状态变量,可省略。,6.4.3 阶跃响应分析,1. 连续阶跃响应 阶跃响应可以用step命令来实现。 语法: step(G, Ts) %绘制系统的阶跃响应曲线 y,t,x=step(G, Ts) %得出阶跃响应图6.10 阶跃响应曲线 说明:参数设置与impulse命令相同。,2. 离散系统的阶跃响应 离散系统阶跃

26、响应使用dstep命令来实现,语法规则与dimpluse相同。,6.4.4 任意输入的响应,1. 连续系统的任意输入响应 连续系统对任意输入的响应用lsim命令来实现。 语法: lsim(G,U,Ts) %绘制系统的任意响应曲线 lsim(G1,G2,U,Ts) %绘制多个系统任意响应曲线 y,t,x=lsim(G,U,Ts) %得出任意响应 说明:U为输入序列,每一列对应一个输入;Ts为时间点,U的行数和Ts相对应;参数t和x可省略。,2. 离散系统的任意输入响应 离散系统的任意输入响应用dlsim命令来实现。 语法: dlsim(a,b,c,d,U) %绘制离散系统的任意响应曲线 y,x=

27、dlsim(num,den,U) y,x=dlsim(a,b,c,d,U) %得出离散系统响应和状态变量响应 说明:U为任意序列输入信号。,6.4.5 系统的结构参数,1. 极点和零点 (1) pole命令计算极点 语法: p=pole(G) 说明: 当系统有重极点时,计算结果不一定准确。,(2) tzero命令计算零点和增益(Transmission zeros) 语法: z=tzero(G) %得出连续和离散系统的零点 z,gain=tzero(G) %获得零点和零极点增益 说明:对于单输入单输出系统, tzero命令也用来计算零极点增益。,2. 闭环系统的阻尼系数和固有频率 damp命令

28、用来计算闭环系统所有共轭极点的阻尼系数和固有频率n。 语法: wn,zeta=damp(G) 3. 时域响应的稳态增益 稳态增益可使用dcgain命令来得出。 语法: k=dcgain(G) %获得稳态增益,6.5 线性系统的频域分析,6.5.1 频域特性 频域特性由下式求出: Gw=polyval(num,j*w)./polyval(den,j*w) mag=abs(Gw) %幅频特性pha=angle(Gw) %相频特性 说明:j为虚部变量。,6.5.2 连续系统频域特性,1. bode图 bode图是对数幅频和对数相频特性曲线。 语法: bode(G,w) %绘制bode图 mag,ph

29、a=bode(G,w) %得出w对应的幅值和相角 mag,pha,w=bode(G) %得出幅值、相角和频率 说明:G为系统模型,w为频率向量,mag为系统的幅值, pha为系统的相角。,2. nyquist曲线 nyquist曲线是幅相频率特性曲线 语法:nyquist (G,w) %绘制nyquist曲线 nyquist (G1,G2,w) %绘制多条nyquist曲线 Re,Im= nyquist (G,w) %由w得出对应的实部和虚部图6.15 nyquist曲线 Re,Im,w= nyquist (G) %得出实部、虚部和频率 说明:G为系统模型;w为频率向量,也可以用wmin,wm

30、ax表示频率的范围;Re为频率特性的实部,Im为频率特性的虚部。,【例6.16】根据传递函数,绘制各系统的nyquist曲线,num=1; den1=conv(1 1,1 2),0; G1=tf(num,den1),den2=conv(1 1,1 2); G2=tf(num,den2),den3=1 1 0; G3=tf(num,den3),nyquist(G1,r,G2,b:,G3,g-.,0.1,180/57.3) %频率范围0.1,180/57.3, w=1:2; re,im=nyquist(G1,w) re(:,:,1) = -0.3000 re(:,:,2) = -0.0750 im

31、(:,:,1) = -0.1000 im(:,:,2) = 0.0250,3*. nichols图 nichols图是对数幅相频率特性曲线,使用nichols命令绘制和计算。 语法: nichols (G,w) %绘制nichols图 nichols (G1,G2,w) %绘制多条nichols图 Mag,Pha= nichols (G,w) %由w得出对应的幅值和相角 Mag,Pha,w= nichols (G) %得出幅值、相角和频率,在单位反馈系统中,闭环系统的传递函数可以写成G(s)/(1+G(s),因此nichols图的等M圆和等N圆就映射成等M线和等线,MATLAB提供了绘制nic

32、hols框架下的等M线和等线的命令ngrid。 语法: ngrid(new) %清除图形窗口并绘制等M线和等线 说明:new为创建的图形窗口,清除该图形窗口并绘制等M线和等线,如果绘制了nichols图后可省略new,直接添加等M线和等线;产生-40dB40dB的幅值和360o0o的范围,并保持图形。,6.5.3 幅值裕度和相角裕度,语法: margin(G) %绘制bode图并标出幅值裕度和相角裕度 Gm,Pm,Wcg,Wcp=margin(G) %得出幅值裕度和相角裕度 说明:Gm为幅值裕度,Wcg为幅值裕度对应的频率;Pm为相角裕度,Wcp为相角裕度对应的频率(穿越频率)。如果Wcg或W

33、cp为nan为Inf,则对应的Gm或Pm为无穷大。,ngrid(nichols1) %绘制等M线和等线 nichols(G1) %绘制nichols图 w=1:2; Mag,Pha=nichols(G1,w) %获得幅值和相角数值,根据传递函数,,绘制等M线,等线和nichols图,num=1; den1=conv(1 1,1 2),0; G1=tf(num,den1),,并得出系统的幅值裕度和相角裕度。,Mag(:,:,1) = 0.3162 Mag(:,:,2) = 0.0791 Pha(:,:,1) = -161.5651 Pha(:,:,2) = -198.4349, Gm,Pm,Wc

34、g,Wcp=margin(G1) Gm = 6.0000 Pm = 53.4109 Wcg = 1.4142 Wcp = 0.4457,6.5.4 离散系统频域分析,对离散系统的频域分析,主要是绘制离散系统的bode图、nyquist曲线和nichols图,相应的命令是:dbode,dnyquist,dnichols,例:绘制 的系统的bode图,dnum=2 5 1; dden=1 2 3; dbode(dnum,dden,0.1) %绘制bode图,采样周期为0.1s,6.6 线性系统的根轨迹分析,根轨迹是指系统闭环极点随着系统增益变化而变化的轨迹,可以分析系统的暂态和稳态性能。 6.6.1 绘制根轨迹 MATLAB中绘制根轨迹使用rlocus命令。 语法: rlocus(G) %绘制根轨迹 rlocus(G1,G2,) %绘制多个系统的根轨迹 r,k=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论