ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:577.38KB ,
资源ID:10916137      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10916137.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章线性控制系统分析与设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第6章线性控制系统分析与设计.docx

1、第6章线性控制系统分析与设计第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、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续】将二阶系统描述为传递函数的形式。 n

3、um=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

4、,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、

5、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. 脉冲传递函数描述法

6、脉冲传递函数也可以用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为采样周

7、期,当采样周期未指明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命令产生零极点增益

8、传递函数。 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

9、,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; G1

10、1=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

11、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

12、.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

13、(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

14、=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

15、(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(一阶保持器)、tu

16、stin(双线性变换法)、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的逆运算,用于

17、将离散系统转换为连续系统。语法: 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说明:其

18、实际的转换过程是先把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所

19、示,其各自的属性如表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矩阵

20、系数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,Pro

21、pertyValue,) %修改对象的某些属性值【例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,

22、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. 串联结构SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令: G=G1*G2 G=series(G1,G2)2. 并联结构

23、SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令: G=G1+G2 G=parallel(G1,G2)3. 反馈结构反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。实现反馈结构传递函数的命令: G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。【例6.6】根据系统的结构框图求出整个系统的传递函数,结构框图如图6.4所示,其中,。G1=tf(1,1 2 1) Transfer function: 1-s2 + 2 s + 1 G2=tf(1,1 1); G3=tf(1,2 1

24、); 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(t

25、f(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】根

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1