资源预览内容
第1页 / 共80页
第2页 / 共80页
第3页 / 共80页
第4页 / 共80页
第5页 / 共80页
第6页 / 共80页
第7页 / 共80页
第8页 / 共80页
第9页 / 共80页
第10页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 线性控制系统分析与设计MATLAB具有丰富的控制系统分析和设计函数;控制系统工具箱(Control System Toolbox)可供对线性系统分析、设计和建模的各种算法。6.1 线性系统的描述6.2 线性系统模型之间的转换6.3 结构框图的模型表示6.4 线性系统的时域分析6.5 线性系统的频域分析6.6 线性系统的根轨迹分析6.7 线性系统的状态空间设计6.1 线性系统的描述状态空间描述法传递函数描述法零极点描述法离散系统的数学描述 在分析设计系统之前,需要对系统的数学模型进行描述,单变量连续的反馈系统的描述方法:即使用状态方程模型来描述控制系统,状态方程为一阶微分方程: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=tf(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 + 16.1.3 零极点描述法语法:语法:G=zpk(z,p,k) %由零点、极点和增益获得 说明:z为零点列向量;p为极点列向量;k为增益。 MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。零极点形式是以实数形式表示的。 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) 控制系统的系统函数也可用部分分式法表示使用residue命令来实现由传递函数得出部分分式的极点和系数。 r,p,k=residue(num,den) r = 0 - 0.7070i 0 + 0.7070ip = -0.7070 + 0.7072i -0.7070 - 0.7072ik = r,p,k=residue(b,a)r = 2.0000 -1.0000p = -3.0000 -2.0000k = 6.1.4 离散系统的数学描述1 1. 状态空间描述法u为输入向量,x为状态向量,y为输出向量,n为采样时刻语法:语法: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表示。状态空间描述离散系统也可使用ss和dss命令。 将离散系统的状态方程描述变换为脉冲传递函数,脉冲传递函数即对差分方程做ZT所得,表达式为: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】用状态空间法建立离散系统。【例例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命令实现。语法:语法: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 线性系统模型之间的转换连续系统模型之间的转换连续系统与离散系统之间的转换模型对象的属性 在MATLAB5.3版及以前的控制系统工具箱中有各种不同模型转换的函数,如表6.1所示为线性系统模型转换的函数。6.2.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)零极点描述转换为传递函数z为零点列向量,p为极点列向量,k为增益。(1) 状态空间模型的获得 由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。语法:语法:G=ss(传递函数传递函数) %由传递函数转换获得G=ss(零极点模型零极点模型) %由零极点模型转换获得1. 系统模型的转换(2) 传递函数的获得 由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。语法:语法:G=tf(状态方程模型状态方程模型) %由状态空间转换G=tf(零极点模型零极点模型) %由零极点模型转换(3) 零极点模型的获得 由zpk命令实现将状态空间法、传递函数转换为零极点模型。 语法:语法:G=zpk(状态方程模型状态方程模型) %由状态方程模型转换G=zpk(传递函数传递函数) %由传递函数转换【例例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 . 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 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)语法:语法: 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 模型模型类类型型检验检验函数表函数表函数函数调调用格式用格式功能功能classclass(G)得出系统模型的类型isaisa(G, 类型名)判断G是否对应的类型名,是则为1(True)isctisct(G)判断G是否连续系统,是则为1(True)isdtisdt(G)判断G是否离散系统,是则为1(True)issisoissiso(G)判断G是否SISO系统,是则为1(True)6.2.2 连续系统与离散系统之间的转换 随着控制系统中计算机的广泛应用,系统经常由连续系统和离散连接构成,使用A/D、D/A转换连接连续和离散子系统。在分析系统时必须将连续系统转换为性能相当的离散系统。 控制工具箱提供了c2d,d2c和d2d命令实现复杂的相互转换。语法:语法:Gd=c2d(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的逆运算,用于将离散系统转换为连续系统。 语法:语法: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、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.4 三种子三种子对对象特有属性表象特有属性表(2) set命令用于修改对象属性名语法:语法:set(G,PropertyName,PropertyValue,) %修改对象的某些属性值3. 直接获取和修改属性根据对象和属性的关系,也可以直接用“.”符号来获取和修改属性。2. get命令和set命令(1) get命令可以获取模型对象的所有属性语法:语法:get(G) %获取对象的所有属性值 get(G,PropertyName,) %获取对象的某些属性值说明:G为模型对象名;PropertyName为属性名。【例例6.5】已知二阶系统的传递函数,获取其传递函数模型的属性,并将传递函数修改为。 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 结构框图的模型表示1. 串联结构u(t)G1(s)G2(s)y(t)图图6.1 串串联结联结构构SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令:G=G1*G2G=series(G1,G2)控制系统的模型通常由相互连接的模块构成,模块间通过串联、并联和反馈环节构成结构框图。2. 并联结构SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:G=G1+G2G=parallel(G1,G2)y(t)u(t)G1(s)G2(s)图图6.2 并联结构并联结构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) 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) 建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。 G=append(G1,G2,G3,)(3) 指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4) 使用connect命令构造整个系统的模型。 Sys=connect(G,Q,INPUTS,OUTPUTS)4. 复杂的结构框图 如果各模块都使用传递函数,也可以用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命令实现各模块未连接的系统矩阵(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(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;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; blkbuild6.4 线性系统的时域分析6.4.1 零输入响应分析系统的输出响应由零输入响应和零状态响应组成,零输入响应是指系统的输入信号为零;零状态响应是指系统的初始状态为零。线性系统的时域分析是主要分析系统在给定典型输入信号作用下,在时域的暂态和稳态响应,以及系统的稳定性。语法:initial(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时的零输入响应。 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为状态空间的系数矩阵;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) %绘制离散系统脉冲响应曲线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. 离散系统的阶跃响应离散系统阶跃响应使用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=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命令用来计算闭环系统所有共轭极点的阻尼系数和固有频率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,pha=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,wmax表示频率的范围;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.3000re(:,:,2) = -0.0750im(:,:,1) = -0.1000im(:,:,2) = 0.02503*. 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提供了绘制nichols框架下的等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或Wcp为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.3162Mag(:,:,2) = 0.0791Pha(:,:,1) = -161.5651Pha(:,:,2) = -198.4349 Gm,Pm,Wcg,Wcp=margin(G1)Gm = 6.0000Pm = 53.4109Wcg = 1.4142Wcp = 0.44576.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=rlocus(G) %得出闭环极点和对应的Kr= rlocus(G,k) %根据K得出对应的闭环极点1.常规根轨迹 绘制随增益k变化的根轨迹。2. 零度根轨迹 由于是正反馈,其闭环特征方程为:1-G(s)=0,因此将分子多项式取负号就可以了。6.6.2 根轨迹的其它工具1.指定点的开环增益MATLAB控制系统工具箱提供了rlocfind命令,可以在绘制的根轨迹上获得定位点的增益K值。语法:k,p=rlocfind(G) %获得定位点的增益和极点说明:k和p分别是定位点的增益和极点。该命令在产生根轨迹后执行,执行该命令后,在命令窗口会出现提示“Select a point in the graphics window”,鼠标在图形窗口显示为十字形,当单击根轨迹上的某点时就会获得该点的增益k和对应的所有极点p。2. 主导极点的等线和等n线语法:语法:sgrid(new)%清除图形窗口绘制等线和等n线sgrid(zeta,wn,new)%绘制指定的等线和等n线说明:new为创建的新图形窗口,清除该图形窗口并绘制等线和等n线,如果绘制了根轨迹图后可省略new,直接添加等M线和等线;zeta和wn分别为指定的和n。3. 系统根轨迹的设计工具RLToolMATLAB控制工具箱还提供了一个系统根轨迹分析的图形界面,使用rltool命令打开该界面。语法:语法:rltool %打开空白的根轨迹分析的图形界面rltool(G) %打开某系统根轨迹分析的图形界面6.7 线性系统的状态空间设计6.7.1 极点配置法1.单输入系统的极点配置MATLAB使用acker命令来对单输入单输出系统极点配置。语法:语法:k=acker(A,B,p) %SISO系统极点配置说明:A、B为系统矩阵;p为期望特征值数组。2. 多输入系统的极点配置3. 离散系统的极点配置6.7.2 最优二次型设计1.连续系统最优二次型设计MATLAB使用lqr命令来求解最优问题。语法:语法:K,P,E=lqr(A,B,Q,R) %连续系统最优二次型调节器设计说明:A、B、Q、R矩阵定义如上,P为Riccati方程的解,K为最优增益反馈矩阵,E为闭环特征值。2.离散系统最优二次型设计MATLAB提供的离散最优设计的命令为dlqr。语法:K,P,E=dlqr(A,B,Q,R) %离散最优二次型调节器设计3. 对输出加权的最优二次型设计在很多情况下,需要对输出量加权而不是对状态量加权,其代价函数:MATLAB使用lqry命令解相应的Riccati方程和最优反馈增益。语法:K,P,E=lqry(A,B,Q,R) %系统加权最优二次型调节器设计
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号