实验一 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时