MATLAB 实用教程:第6章 线性控制系统分析与设计

上传人:努力****83 文档编号:65560580 上传时间:2022-03-24 格式:DOC 页数:37 大小:515KB
返回 下载 相关 举报
MATLAB 实用教程:第6章 线性控制系统分析与设计_第1页
第1页 / 共37页
MATLAB 实用教程:第6章 线性控制系统分析与设计_第2页
第2页 / 共37页
MATLAB 实用教程:第6章 线性控制系统分析与设计_第3页
第3页 / 共37页
点击查看更多>>
资源描述
第6章 线性控制系统分析与设计MATLAB的控制系统工具箱(Control System Toolbox)可以提供对线性系统分析、设计和建模的各种算法。6.1线性系统的描述6.1.1状态空间描述法状态空间描述法是使用状态方程模型来描述控制系统,MATLAB中状态方程模型的建立使用ss和dss命令。语法:G=ss(a,b,c,d) %由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e) %由a、b、c、d、e参数获得状态方程模型【例6.1】写出二阶系统,当=0.707,=1时的状态方程。 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) %建立状态方程模型 a = x1 x2 x1 0 1 x2 -1 -1.414 b = u1 x1 0 x2 1 c = x1 x2 y1 1 0 d = u1 y1 0 Continuous-time model. 6.1.2传递函数描述法MATLAB中使用tf命令来建立传递函数。语法:G=tf(num,den) %由传递函数分子分母得出说明:num为分子向量,num=b1,b2,bm,bm+1;den为分母向量,den=a1,a2,an-1,an。【例6.1续】将二阶系统描述为传递函数的形式。 num=1; den=1 1.414 1; G=tf(num,den) %得出传递函数 Transfer function: 1-s2 + 1.414 s + 1 6.1.3零极点描述法MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。语法:G=zpk(z,p,k) %由零点、极点和增益获得说明:z为零点列向量;p为极点列向量;k为增益。【例6.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) 程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。部分分式法是将传递函数表示成部分分式或留数形式:【例6.1续】将传递函数转换成部分分式法,得出各系数。 r,p,k=residue(num,den) r = 0 - 0.7070i 0 + 0.7070ip = -0.7070 + 0.7072i -0.7070 - 0.7072ik = 6.1.4离散系统的数学描述1. 状态空间描述法状态空间描述离散系统也可使用ss和dss命令。语法:G=ss(a,b,c,d,Ts) %由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e,Ts) %由a、b、c、d、e参数获得状态方程模型说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示。【例6.2】用状态空间法建立离散系统。 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 a = x1 x2 x1 -1.5 -0.5 x2 1 0 b = u1 x1 1 x2 0 c = x1 x2 y1 0 0.5 d = u1 y1 0 Sampling time: 0.1Discrete-time model. 2. 脉冲传递函数描述法脉冲传递函数也可以用tf命令实现。语法:G=tf(num,den,Ts) %由分子分母得出脉冲传递函数说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用z表示。【例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 MATLAB中还可以用filt命令产生脉冲传递函数。语法:G=filt(num,den,Ts) %由分子分母得出脉冲传递函数说明:Ts为采样周期,当采样周期未指明Ts可以省略,也可以用-1表示,自变量用z-1表示。【例6.2续】使用filt命令产生脉冲传递函数。 num2=0 0.5; G2=filt(num2,den) Transfer function: 0.5 z-1-1 - 1.5 z-1 + 0.5 z-2 Sampling time: unspecified 程序说明:用filt命令生成的脉冲传递函数的自变量不是z而是z-1,因此分子应改为“0 0.5”。3. 零极点增益描述法离散系统的零极点增益用zpk命令实现。语法:G=zpk(z,p,k,Ts) %由零极点得出脉冲传递函数【例6.2续】使用zpk命令产生零极点增益传递函数。 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线性系统模型之间的转换6.2.1连续系统模型之间的转换在MATLAB5.3版及以前的控制系统工具箱中有各种不同模型转换的函数,如下表6.1所示为线性系统模型转换的函数。表6.1 线性系统模型转换函数表函数调用格式功能tf2ssa,b,c,d=tf2ss(num,den)传递函数转换为状态空间tf2zpz,p,k=tf2zp(num,den)传递函数转换为零极点描述ss2tfnum,den=ss2tf(a,b,c,d,iu)状态空间转换为传递函数ss2zpz,p,k=ss2zp(a,b,c,d,iu)状态空间转换为零极点描述zp2ssa,b,c,d=zp2ss(z,p,k)零极点描述转换为状态空间zp2tfnum,den=zp2tf(z,p,k)零极点描述转换为传递函数1. 系统模型的转换(1) 状态空间模型的获得由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。语法:G=ss(传递函数) %由传递函数转换获得G=ss(零极点模型) %由零极点模型转换获得【例6.3】将单输入双输出的系统传递函数转换为状态空间描述。 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 c = x1 x2 x3 y1 0 0.5 0.1667 y2 0.3333 0.3333 0.25 d = u1 y1 0 y2 0 Continuous-time model. (2) 传递函数的获得由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。语法:G=tf(状态方程模型) %由状态空间转换G=tf(零极点模型) %由零极点模型转换【例6.3续】由状态空间描述转换为传递函数。 G1=tf(G) Transfer function 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 (3) 零极点模型的获得由zpk命令实现将状态空间法、传递函数转换为零极点模型。语法:G=zpk(状态方程模型) %由状态方程模型转换G=zpk(传递函数) %由传递函数转换【例6.3续】由传递函数和状态方程模型转换零极点模型。 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.2458) G2=zpk(G1); %由传递函数转换 2. 模型参数的获取语法:a,b,c,d=ssdata(G) %获取状态空间参数a,b,c,d,e=dssdata(G) %获取状态空间参数num,den=tfdata(G) %获取传递函数参数z,p,k=zpkdata(G) %获取零极点参数【例6.3续】获取各模型的参数。 a,b,c,d=ssdata(G1) %获取状态方程参数 a = -1.6667 -0.3333 -0.0833 2.0000 0 0 0 2.0000 0b = 1 0 0c = 0 0.5000 0.1667 0.3333 0.3333 0.2500d = 0 0 num,den=tfdata(G2) %获取传递函数参数 num = 1x4 double 1x4 doubleden = 1x4 double 1x4 double z,p,k=zpkdata(G) %获取零极点参数 z = -0.6667 2x1 doublep = 3x1 double 3x1 doublek = 1.0000 0.3333 3. 模型类型的检验【例6.3续】检验模型的类型。 class(G) %得出系统模型类型 ans =ss isa(G,tf) %检验系统模型类型 ans = 0 6.2.2连续系统与离散系统之间的转换表6.2 模型类型检验函数表函数调用格式功能classclass(G)得出系统模型的类型isaisa(G, 类型名)判断G是否对应的类型名,是则为1(True)isctisct(G)判断G是否连续系统,是则为1(True)isdtisdt(G)判断G是否离散系统,是则为1(True)issisoissiso(G)判断G是否SISO系统,是则为1(True)1. c2d命令c2d命令用于将连续系统转换为离散系统。语法:Gd=c2d(G,Ts,method) %以采样周期Ts和method方法转换为离散系统说明:G为连续系统模型;Gd为离散系统模型;Ts为采样周期;method为转换方法,可省略,包括五种:zoh(默认零阶保持器)、foh(一阶保持器)、tustin(双线性变换法)、prewarp(频率预修正双线性变换法)、mached(根匹配法)。【例6.4】将二阶连续系统转换为离散系统。 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) a = x1 x2 x1 0.9952 0.0931 x2 -0.0931 0.8636 b = u1 x1 0.004768 x2 0.0931 c = x1 x2 y1 1 0 d = u1 y1 0 Sampling time: 0.1Discrete-time model. 2. d2c命令d2c命令是c2d的逆运算,用于将离散系统转换为连续系统。语法:G=d2c(Gd,method) %转换为连续系统说明:method为转换方法可省略,与c2d相似,少了foh(一阶保持器)方法。【例6.4续】将二阶离散系统转换为连续系统。 G=d2c(Gd) a = x1 x2 x1 5.551e-016 1 x2 -1 -1.414 b = u1 x1 -2.776e-016 x2 1 c = x1 x2 y1 1 0 d = u1 y1 0 Continuous-time model. 3. d2d命令d2d命令是将离散系统改变采样频率。语法:Gd2=d2d(Gd1,Ts2) %转换离散系统的采样频率为Ts2说明:其实际的转换过程是先把Gd1按零阶保持器转换为原连续系统,然后再用Ts2和零阶保持器转换为Gd2。【例6.4续】将二阶离散系统改变采样频率。 Gd2=d2d(Gd,0.3) a = x1 x2 x1 0.961 0.2408 x2 -0.2408 0.6205 b = u1 x1 0.03897 x2 0.2408 c = x1 x2 y1 1 0 d = u1 y1 0 Sampling time: 0.3Discrete-time model. 6.2.3模型对象的属性1. 模型对象的属性ss、tf和zpk三种对象除了具有线性时不变系统共有的属性以外,还具有其各自的属性,共有属性如表6.3所示,其各自的属性如表6.4所示。表6.3 对象共有属性表属性名属性值的数据类型意义Ts标量采样周期,为0表示连续系统,为-1表示采样周期未定Td数组输入延时,仅对连续系统有效,省略表示无延时InputName字符串数组输入变量名OutputName字符串数组输出变量名Notes字符串描述模型的文本说明Userdata任意数据类型用户需要的其它数据表6.4三种子对象特有属性表对象名属性名属性值的数据类型意义tfden行数组组成的单元阵列传递函数分母系数num行数组组成的单元阵列传递函数分子系数variables,p,z,q,z-1之一传递函数变量ssa矩阵系数b矩阵系数c矩阵系数d矩阵系数e矩阵系数StateName字符串向量用于定义每个状态变量的名称zpkz矩阵零点p矩阵极点k矩阵增益variables,p,z,q,z-1之一零极点增益模型变量在表6.3和表6.4中的三种子对象的属性,在前面都已使用过,MATLAB提供了get和set命令来对属性进行获取和修改。2. get命令和set命令(1) get命令可以获取模型对象的所有属性语法:get(G) %获取对象的所有属性值get(G,PropertyName,) %获取对象的某些属性值说明:G为模型对象名;PropertyName为属性名。(2) set命令用于修改对象属性名语法:set(G,PropertyName,PropertyValue,) %修改对象的某些属性值【例6.5】已知二阶系统的传递函数,获取其传递函数模型的属性,并将传递函数修改为。 num=1; den=1 1.414 1; G=tf(num,den); get(G) %获取所有属性 num: 0 0 1 den: 1 1.41 1 Variable: s Ts: 0 ioDelay: 0 InputDelay: 0 OutputDelay: 0 InputName: OutputName: InputGroup: 0x2 cell OutputGroup: 0x2 cell Notes: UserData: set(G,den,1 2 1,Variable,z) %设置属性 G Transfer function: 1-z2 + 2 z + 1 Sampling time: unspecified 3. 直接获取和修改属性【例6.5续】将上面的传递函数模型对象的分母修改为原来的值。 G.den=1 1.414 1; G Transfer function: 1-z2 + 1.414 z + 1 Sampling time: unspecified 6.3结构框图的模型表示1. 串联结构u(t)G1(s)G2(s)y(t)图6.1 串联结构SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令:G=G1*G2G=series(G1,G2)y(t)u(t)G1(s)G2(s)图6.2 并联结构2. 并联结构SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:G=G1+G2G=parallel(G1,G2)3. 反馈结构反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。y(t)u(t)G1(s)G2(s)图6.3 反馈结构实现反馈结构传递函数的命令:G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。【例6.6】根据系统的结构框图求出整个系统的传递函数,结构框图如图6.4所示,其中,。图6.4结构框图-G1(s)G2 (s)G3 (s)-G4 (s) G1=tf(1,1 2 1) Transfer function: 1-s2 + 2 s + 1 G2=tf(1,1 1); G3=tf(1,2 1); G4=tf(1,1 0); G12=G1+G2%并联结构 Transfer function: s2 + 3 s + 2-s3 + 3 s2 + 3 s + 1 G34=G3-G4%并联结构 Transfer function: -s - 1-2 s2 + s G=feedback(G12,G34,-1)%反馈结构 Transfer function: 2 s4 + 7 s3 + 7 s2 + 2 s-2 s5 + 7 s4 + 8 s3 + s2 - 4 s - 2 例如,上图的两个并联结构G1和G2,如果G1用状态空间描述,则并联运算的结果也是用状态空间法描述: G1=ss(tf(1,1 2 1); %状态空间描述 G2=tf(1,1 1); G1+G2 a = x1 x2 x3 x1 -2 -0.25 0 x2 4 0 0 x3 0 0 -1 b = u1 x1 0.5 x2 0 x3 1 c = x1 x2 x3 y1 0 0.5 1 d = u1 y1 0 Continuous-time model. 4. 复杂的结构框图求取复杂结构框图的数学模型的步骤:(1) 将各模块的通路排序编号;(2) 建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。G=append(G1,G2,G3,)(3) 指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4) 使用connect命令构造整个系统的模型。Sys=connect(G,Q,INPUTS,OUTPUTS)如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。y(t)u(t)图6.5结构框图-1/s1/(s2+s)1/(s2+s)-21/s1/(s+1)方法一:使用append命令(1) 将各模块的通路排序编号,如图6.6所示。7654321图6.6 信号流图-11/s1/(s2+s)1/(s2+s)-21/s-1/(s+1)(2) 使用append命令实现各模块未连接的系统矩阵 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(G1,G2,G3,G4,G5,G6,G7) Transfer function from input 1 to output. 1 #1: - s #2: 0 #3: 0 #4: 0 #5: 0 #6: 0 #7: 0 Transfer function from input 2 to output. #1: 0 1 #2: - s2 + s #3: 0 #4: 0 #5: 0 #6: 0 #7: 0 Transfer function from input 3 to output. #1: 0 #2: 0 1 #3: - s2 + s #4: 0 #5: 0 #6: 0 #7: 0 Transfer function from input 4 to output. #1: 0 #2: 0 #3: 0 #4: -2 #5: 0 #6: 0 #7: 0 Transfer function from input 5 to output. #1: 0 #2: 0 #3: 0 #4: 0 #5: -1 #6: 0 #7: 0 Transfer function from input 6 to output. #1: 0 #2: 0 #3: 0 #4: 0 #5: 0 1 #6: - s #7: 0 Transfer function from input 7 to output. #1: 0 #2: 0 #3: 0 #4: 0 #5: 0 #6: 0 -1 #7: - s + 1 程序分析:将每个模块用append命令放在一个系统矩阵中,可以看到Sys模块存放了七个模块的传递函数,为了节省篇幅在此未列出完整的Sys模块。(3) 指定连接关系 Q=1 6 5; %通路1的输入信号为通路6和通路52 1 7; %通路2的输入信号为通路1和通路73 2 0; %通路3的输入信号为通路24 3 0;5 4 0;6 2 0;7 3 0; INPUTS=1; %系统总输入由通路1输入 OUTPUTS=4; %系统总输出由通路4输出 Q = 1 6 5 2 1 7 3 2 0 4 3 0 5 4 0 6 2 0 7 3 0 程序分析:Q矩阵建立了各通路之间的关系,共有7行;每行的第一列为通路号,从第二列开始为各通路输入信号的通路号;INPUTS变量存放系统输入信号的通路号;OUTPUTS变量存放系统输出信号的通路号。(4) 使用connect命令构造整个系统的模型 G =connect(Sys,Q,INPUTS,OUTPUTS) Transfer function: -2 s2 - 2 s-s7 + 3 s6 + 3 s5 + s4 - s3 - 3 s2 - 3 s - 6.661e-016 程序分析:用connect命令完成整个系统的传递函数模型。方法二:从第二步开始使用blkbuild命令来实现(2) 将各通路的信息存放在变量中 nblocks=7; %通路数为7 n1=1; d1=1 0; %通路1的分子和分母 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; 程序分析:通路数nblocks为7;各通路传递函数的分子存放在变量ni,分母存放在变量di。用blkbuild命令求取系统的状态方程模型: blkbuild State model a,b,c,d of the block diagram has 7 inputs and 7 outputs. 程序分析:增广状态方程模型即7条通路的输入输出信号状态模型建立了,存放在a、b、c、d变量中。(3) 建立连接矩阵Q指定连接关系,Q矩阵同前面(4) 使用connect命令构造整个系统的模型 A,B,C,D=connect(a,b,c,d,Q,INPUTS,OUTPUTS) A = 0 0 0 0 2 1 0 1 -1 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 -1B = 1 0 0 0 0 0 0C = 0 0 0 0 -2 0 0D = 0 6.4线性系统的时域分析6.4.1零输入响应分析MATLAB中使用initial命令来计算和显示连续系统的零输入响应。语法:initial(G,x0, Ts) %绘制系统的零输入响应曲线initial(G1,G2,x0, Ts) %绘制系统多个系统的零输入响应曲线y,t,x=initial(G,x0, Ts) %得出零输入响应、时间和状态变量响应说明:G为系统模型,必须是状态空间模型;x0是初始条件;Ts为时间点,如果是标量则为终止时间,如果是数组,则为计算的时刻,可省略;y为输出响应;t为时间向量,可省略;x为状态变量响应,可省略。图6.7 零输入响应曲线【例6.8】某反馈系统,前向通道的传递函数为,反馈通道传递函数为,求出其初始条件为1 2时的零输入响应,如图6.7所示。 G1=tf(12,1 4); H=tf(1,1 3); GG=feedback(G1,H) Transfer function: 12 s + 36-s2 + 7 s + 24 G=ss(GG); initial(G,1 2) %绘制零输入响应 2. 离散系统的脉冲响应离散系统的零输入响应使用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为状态空间的系数矩阵;x0为初始条件;y为输出响应;t为时间向量;x为状态变量响应;n为点数。6.4.2脉冲响应分析1. 连续系统的脉冲响应连续系统的脉冲响应由impluse命令来得出。语法:impulse(G, Ts) %绘制系统的脉冲响应曲线y,t,x=impulse(G, Ts) %得出脉冲响应说明:G为系统模型,可以是传递函数、状态方程、零极点增益的形式;y为时间响应;t为时间向量;x为状态变量响应,t和x可省略;Ts为时间点可省略。【例6.8续】求出初始条件为零,该系统的单位脉冲响应并画曲线,如图6.8所示。 impulse(G) %绘制脉冲响应曲线 t=0:0.1:10; y=impulse(G,t) %根据时间t得出脉冲响应 图6.8 脉冲响应曲线2. 离散系统的脉冲响应离散系统的脉冲响应使用dimpulse命令实现。语法:dimpluse(a,b,c,d,iu) %绘制离散系统脉冲响应曲线y,x=dimpluse(a,b,c,d,iu,n) %得出n点离散系统的脉冲响应y,x=dimpluse(num,den,iu,n) %由传递函数得出n点离散系统的脉冲响应说明:iu为第几个输入信号;n为要计算脉冲响应的点数;y的列数与n对应;x为状态变量,可省略。【例6.9】根据系统数学模型,得出离散系统的脉冲响应,如图6.9所示。图6.9 离散系统脉冲响应曲线 a=-2 0;0 -3; b=1;1; c=1 -4; d=1; dimpulse(a,b,c,d,1,10) %绘制离散系统脉冲响应的10个点 6.4.3阶跃响应分析1. 连续阶跃响应阶跃响应可以用step命令来实现。语法:step(G, Ts) %绘制系统的阶跃响应曲线y,t,x=step(G, Ts) %得出阶跃响应图6.10 阶跃响应曲线说明:参数设置与impulse命令相同。【例6.10】根据【例6.6】的系统模型得出阶跃响应曲线,如图6.10所示。G1=tf(12,1 4); H=tf(1,1 3); G=feedback(G1,H) Transfer function: 12 s + 36-s2 + 7 s + 24 step(G) %绘制阶跃响应曲线 可以由step命令根据时间t的步长不同,得出不同的阶跃响应波形,如图6.11所示。 t1=0:0.1:5; y1=step(G,t1); plot(t1,y1) t2=0:0.5:5; y2=step(G,t2); plot(t2,y2) 图6.11 (a) 阶跃响应曲线 (b) 步长增大的阶跃响应曲线2. 离散系统的阶跃响应离散系统阶跃响应使用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可省略。图6.12 正弦输入信号响应【例6.11】根据输入信号和系统的数学模型,得出任意输入的输出响应,输入信号为正弦信号,系统为阻尼系数变化的二阶系统,输出响应如图6.12所示。 t=0:0.1:5; u=sin(t); G1=tf(1,1 1.41 1) Transfer function: 1-s2 + 1.41 s + 1 G2=tf(1,1 0.6 1) Transfer function: 1-s2 + 0.6 s + 1 lsim(G1,r,G2,bo,u,t) %绘制两个系统的正弦输出响应 2. 离散系统的任意输入响应离散系统的任意输入响应用dlsim命令来实现。语法:dlsim(a,b,c,d,U) %绘制离散系统的任意响应曲线y,x=dlsim(num,den,U) %得出离散系统任意响应和状态变量响应y,x=dlsim(a,b,c,d,U) %得出离散系统响应和状态变量响应说明:U为任意序列输入信号。【例6.12】根据离散系统的Z变换表达式,得出正弦序列输入响应,输出响应如图6.13所示。 num=2 5 1; den=1 2 3; t=0:0.1:5; u=sin(t);图6.13 正弦输入信号响应 y=dlsim(num,den,u); 6.4.5系统的结构参数1. 极点和零点(1) pole命令计算极点语法:p=pole(G)说明:当系统有重极点时,计算结果不一定准确。(2) tzero命令计算零点和增益语法:z=tzero(G) %得出连续和离散系统的零点z,gain=tzero(G) %获得零点和零极点增益说明:对于单输入单输出系统, tzero命令也用来计算零极点增益。【例6.13】获得系统的零极点。 num=5 100; den=1 8 32 80 100; G=tf(num,den); p=pole(G) p = -1.0000 + 3.0000i -1.0000 - 3.0000i -3.0000 + 1.0000i -3.0000 - 1.0000i z,gain=tzero(G) %得出零点和零极点增益 z = -20gain = 5 2. 闭环系统的阻尼系数和固有频率damp命令用来计算闭环系统所有共轭极点的阻尼系数和固有频率n。语法:wn,zeta=damp(G)3. 时域响应的稳态增益稳态增益可使用dcgain命令来得出。语法:k=dcgain(G) %获得稳态增益【例6.13续】计算所有闭环极点的和n。 wn,zeta=damp(G) wn = 3.1623 3.1623 3.1623 3.1623zeta = 0.9487 0.9487 0.3162 0.3162 dcgain(G) %得出线性系统的稳态增益 ans = 1 6.5线性系统的频域分析6.5.1频域特性频域特性由下式求出:Gw=polyval(num,j*w)./polyval(den,j*w)mag=abs(Gw) %幅频特性pha=angle(Gw) %相频特性说明:j为虚部变量。【例6.14】由二阶系统传递函数,得出频域特性。 num=1; den=1 1.414 1; w=1 ; Gw=polyval(num,j*w)./polyval(den,j*w) %得出系统频率特性 Gw = 0 - 0.7072i Aw=abs(Gw) %得出幅频特性 Aw = 0.7072 Fw=angle(Gw) %得出相频特性 Fw = -1.5708 6.5.2连续系统频域特性1. bode图bode图是对数幅频和对数相频特性曲线。语法:bode(G,w) %绘制bode图mag,pha=bode(G,w) %得出w对应的幅值和相角mag,pha,w=bode(G) %得出幅值、相角和频率说明:G为系统模型,w为频率向量,mag为系统的幅值,pha为系统的相角。【例6.15】根据系统传递函数,绘制bode图如图6.14(a)所示。 num=1; den=conv(1 1,1 ,2) den = 1 3 2 G=tf(num,den 0) Transfer function: 1-s3 + 3 s2 + 2 s bode(G) %绘制bode图 图6.14 (a) Bode图 (b) 用semilogx命令绘制对数幅频和相频特性【例6.15续】使用semilogx命令绘制对数幅频和相频特性,如图6.14(b)所示。 w=logspace(-1,2); m,p=bode(num,den,w); subplot(2,1,1) semilogx(w,20*log10(m) subplot(2,1,2) semilogx(w,p) 2. nyquist曲线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,wmax表示频率的范围;Re为频率特性的实部,Im为频率特性的虚部。【例6.16】根据传递函数、和,绘制各系统的nyquist曲线,如图6.15所示。 num=1; den1=conv(1 1,1 2),0; G1=tf(num,den1) Transfer function: 1-s3 + 3 s2 + 2 s
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!