收藏 分销(赏)

实验一MATLAB系统的传递函数和状态空间表达式的转换.doc

上传人:二*** 文档编号:4538972 上传时间:2024-09-27 格式:DOC 页数:24 大小:2.72MB 下载积分:5 金币
下载 相关 举报
实验一MATLAB系统的传递函数和状态空间表达式的转换.doc_第1页
第1页 / 共24页
本文档共24页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 实验一 MATLAB系统的传递函数和状态空间表达式的转换 一、 实验目的 1、学习多变量系统状态空间表达式的建立方法; 2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法; 3、掌握相应的MATLAB函数。 二、 实验原理 设系统的模型如式(1.1)所示: x uR’’’ yRP (1.1) 其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵,D为直接传递函数。系统的传递函数和状态空间表达式之间的关系如式(1.2)所示 G(s)=num(s)/den(s)=C (SI-A)-1 B+D (1.2) 式(1.2)中,num(s)表示传递函数的分子阵,其维数是pXm,den(s)表示传递函数的按s降幂排列的分母。 表示状态空间模型和传递函数的MATLAB函数如下: 函数ss(state space的首字母)给出了状态空间模型,其一般形式是: sys=ss(A,B,C,D) 函数tf(transfer function的首字母)给出了传递函数,其一般形式是: G=tf(num,den) 其中num表示传递函数中分子多项式的系数向量(单输入单输出系统),den表示传递函数中分母多项式的系数向量。 函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是: [A,B,C,D]=tf2ss(num,den) 函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是: [num,den]=ss2tf(A,B,C,D,iu) 其中对于多输入系统,必须确定iu的值。例如,若系统有三个输入u1,u2,u3,则iu必须是1、2、或3,其中1表示u1,2表示u2,3表示u3。该函数的结果是第iu个输入到所有输出的传递函数。 三.实验步骤及结果 1、应用MATLAB对下列系统编程,求系统的A、B、C、D阵,然后验证传递函数是相同的。 G(s)=s3+4s2+5s+1 程序和运行结果: num=[0 0 2 1;0 1 5 3]; den=[1 4 5 1]; [A,B,C,D]=tf2ss(num,den) A = -4 -5 -1 1 0 0 0 1 0 B =1 0 0 C =0 2 1 1 5 3 D =0 0 A=[-4 -5 -1;1 0 0;0 1 0]; A=[-4 -5 -1;1 0 0;0 1 0]; B=[1;0;0]; C=[0 2 1;1 5 3]; D=[0;0]; [num1,den1]=ss2tf(A,B,C,D,1) num1 = 0 0.0000 2.0000 1.0000 0 1.0000 5.0000 3.0000 den1 =1.0000 4.0000 5.0000 1.0000 2、给定系统G(s)=,求系统的零极点增益模型和状态空间模型 程序和运行结果: num=[0 1 4 5]; den=[1 6 11 6]; sys=tf(num,den) Transfer function: s^2 + 4 s + 5 ---------------------- s^3 + 6 s^2 + 11 s + 6 >> sys1=tf2zp(num,den) sys1 = -2.0000 + 1.0000i -2.0000 - 1.0000i >> [A,B,C,D]=tf2ss(num,den) A =6 -11 -6 1 0 0 0 1 0 B =1 0 0 C =1 4 5 D =0 实验2 状态空间模型系统仿真及状态方程求解 一、 实验目的 1、 熟悉线性定常离散与连续系统的状态空间控制模型的输入方法; 2、 熟悉系统模型之间的转换功能; 3、 利用MATLAB对线性定常系统进行动态分析。 二、 实验原理 函数step(sys)给出了系统的单位阶跃响应曲线,其中的sys表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到。 函数impulse(sys)给出了系统的单位脉冲响应曲线。 函数[y,T,x]=Isim(sys,u,t,x0)给出了一个状态空间模型对任意输入的响应,x0是初始状态。 函数c2d将连续系统状态空间描述转化为离散系统状态空间形式,其一般形式为:[G,H]=c2d(A,B,T),其中的T是离散化模型的采样周期。 函数d2c将离散系统状态空间描述转化为连续系统状态空间描述,其一般形式为:sysc=d2c(sysd,Method),其中的Method默认值为‘zoh’方法,即带零阶保持器的z变换。 函数dstep(G,H,C,D)给出了离散系统的单位阶跃响应曲线。 三、 实验步骤及结果 程序和运行结果: T=0.5s时 T=1s时 T=2s时 A=[0 1 0;-2 -3 0;-1 1 -3]; B=[0;0;1]; C=[1 1 1]; D=1; [G1 H1]=c2d(A,B,0.5) G1 =0.8452 0.2387 0 -0.4773 0.1292 0 -0.3326 0.0508 0.2231 H1 = 0 0 0.2590 >> dstep(G1,H1,C,D,1) >> dstep(G1,H1,C,D,1) >> [G2 H2]=c2d(A,B,1) G2 =0.6004 0.2325 0 -0.4651 -0.0972 0 -0.3795 -0.0614 0.0498 H2 =0 0 0.3167 >> dstep(G2,H2,C,D,1) >> [G3 H3]=c2d(A,B,2) [G3 H3]=c2d(A,B,2) G3 =0.2524 0.1170 0 -0.2340 -0.0987 0 -0.2182 -0.0853 0.0025 H3 =0 0 0.3325 >> dstep(G3,H3,C,D,1) 程序和运行结果: Z域仿真图形: 连续域仿真图形: 程序: G=[0 1;-0.16 1]; H=[1;1]; C=[1 1]; D=0; u=1; dstep(G,H,C,D,u) sysd=ss(G,H,C,D,0.05) a = x1 x2 x1 0 1 x2 -0.16 1 b = u1 x1 1 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Sampling time: 0.05 Discrete-time model. >> sysc=d2c(sysd,'zoh') a = x1 x2 x1 -41.43 46.21 x2 -7.394 4.779 b = u1 x1 16.34 x2 21.12 c = x1 x2 y1 1 1 d = u1 y1 0 Continuous-time model. >> step(sysc); 实验3 能控能观判据及稳定性判据 一、实验目的 1、利用MATLAB分析线性定常及离散系统的可控性与可观性; 2、利用MATLAB判断系统的稳定性。 二、实验原理 给定系统状态空间描述[A,B,C,D],函数ctrb(A,B)计算能控性判别矩阵; 函数obsv(A,C)计算能观测性判别矩阵; 函数P=lyap(A,Q)求解李雅普诺夫方程ATP+PA=-Q,Q为正定对称矩阵; 函数[D p]=chol(P)可用于判断P矩阵是否正定,p=0,矩阵正定,p为其它值,矩阵非正定。 三、实验步骤及结果 1)(2) A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4]; B=[0;0;1;2]; C=[3 0 1 0]; Qc=ctrb(A,B) Qc =0 0 0 0 0 0 0 0 1 -2 4 -8 2 -10 44 -184 >> rank(Qc) ans =2 >> rank(obsv(A,C)) ans =2 能控性判别矩阵Qc和能观性判别矩阵都不满秩,故系统既不能控,也不能观。 (3) A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4]; B=[0;0;1;2]; C=[3 0 1 0]; D=[0]; [z,p,k]=ss2zp(A,B,C,D,1); Flagz=0; n=length(A); for i=1:n if real(p(i))>0 Flagz=1; end end >> disp('系统的零极点模型为');z,p,k 系统的零极点模型为 z = 1.0000 -4.0000 -3.0000 p =-4 -3 -2 1 k =1.0000 >> if Flagz==1 disp('系统不稳定'); else disp('系统是稳定的'); end 系统不稳定 >> step(A,B,C,D); 时间响应曲线为: 实验4 状态反馈及状态观测器的设计 一、实验目的 1、熟悉状态反馈矩阵的求法; 2、熟悉状态观测器设计方法。 二、实验原理 MATLAB软件提供了两个函数acker和place来确定极点配置状态反馈控制器的增益矩阵K,函数acker是基于求解极点配置问题的艾克曼公式,它只能应用到单输入系统,要配置的闭环极点中可以包括多重极点。函数place用于多输入系统,但配置极点不可以包括多重极点。 函数acker和place的一般形式是: K=acker(A,B,P) K=place(A,B,P) 其中的P是一个向量,P=[],是n个期望的闭环极点。得到了所要求得反馈增益矩阵后,可以用命令eig(A-B*K)来检验闭环极点。 由状态反馈极点配置和观测器设计问题直接的对偶关系,观测器设计是状态反馈设计的转置,可以用H=(acker(A’,C’,V’))’来确定一般系统的观测器矩阵,用命令eig(estim(sysold,H))来检验极点配置。 三、实验步骤及结果 step(A,B,C,D); num=[0 0 1]; den=[1 3 2]; [A,B,C,D]=tf2ss(num,den) A =-3 -2 1 0 B =1 0 C = 0 1 D = 0 2、配置后系统的时间响应曲线为: A=[-3 -2;1 0]; B=[1;0]; C=[0 1]; D=0; P=[-1+sqrt(-1);-1-sqrt(-1)]; K=acker(A,B,P) K = -1 0 >> disp('极点配置后的闭环系统为') 极点配置后的闭环系统为 >> sysnew=ss(A-B*K,B,C,D) a = x1 x2 x1 -2 -2 x2 1 0 b = u1 x1 1 x2 0 c = x1 x2 y1 0 1 d = u1 y1 0 Continuous-time model. >> step(sysnew) 所以:K=[-1 0] A=[-3 -2;1 0]; B=[1;0]; C=[0 1]; D=0; V=[-3;-3]; sysold=ss(A,B,C,D); p=eig(A) p =-2 -1 Q=obsv(A,C); m=rank(Q); n=length(A); if m==n H=acker(A',C',V')' else disp('系统不是状态完全可观测') end H =-2 3 所以:H=[-2 3] . .word..
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服