实验一MATLAB系统的传递函数和状态空间表达式的转换.docx
- 文档编号:11532831
- 上传时间:2023-03-18
- 格式:DOCX
- 页数:20
- 大小:2.51MB
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx
《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx》由会员分享,可在线阅读,更多相关《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx(20页珍藏版)》请在冰豆网上搜索。
实验一MATLAB系统的传递函数和状态空间表达式的转换
实验一MATLAB系统得传递函数与状态空间表达式得转换
一、实验目得
1、学习多变量系统状态空间表达式得建立方法;
2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换得方法;
3、掌握相应得MATLAB函数、
二、实验原理
设系统得模型如式(1、1)所示:
xuR'’’ yRP (1、1)
其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵,D为直接传递函数。
系统得传递函数与状态空间表达式之间得关系如式(1、2)所示
G(s)=num(s)/den(s)=C(SI-A)-1B+D (1、2)
式(1、2)中,num(s)表示传递函数得分子阵,其维数就是pXm,den(s)表示传递函数得按s降幂排列得分母。
表示状态空间模型与传递函数得MATLAB函数如下:
函数ss(statespace得首字母)给出了状态空间模型,其一般形式就是:
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=[0021;0 1 5 3];
den=[1 451];
[A,B,C,D]=tf2ss(num,den)
A= -4 -5—1
1 00
0 1 0
B=1
0
0
C =0 2 1
153
D=0
0
A=[-4 -5-1;1 0 0;010];
A=[-4-5-1;1 00;0 1 0];
B=[1;0;0];
C=[021;153];
D=[0;0];
[num1,den1]=ss2tf(A,B,C,D,1)
num1= 0 0、00002。
0000 1、0000
01.0000 5。
00003、0000
den1=1.00004。
00005.00001.0000
2、给定系统G(s)=,求系统得零极点增益模型与状态空间模型
程序与运行结果:
num=[014 5];
den=[1 611 6];
sys=tf(num,den)
Transferfunction:
s^2+4 s+ 5
——-—---—--—-—--—---——-
s^3 +6s^2+11s+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 10
B=1
0
0
C=14 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=[010;—2—3 0;-11 -3];
B=[0;0;1];
C=[1 11];
D=1;
[G1H1]=c2d(A,B,0。
5)
G1 =0。
84520、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、60040。
2325 0
-0.4651 —0。
0972 0
—0。
3795-0、0614 0。
0498
H2=0
0
0。
3167
〉>dstep(G2,H2,C,D,1)
>〉[G3H3]=c2d(A,B,2)
[G3H3]=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=[01;-0.16 1];
H=[1;1];
C=[11];
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
x11
x21
c=x1x2
y11 1
d= u1
y1 0
Sampling time:
0、05
Discrete—timemodel、
>>sysc=d2c(sysd,'zoh’)
a = x1 x2
x1 -41、43 46。
21
x2 —7。
394 4。
779
b= u1
x116.34
x221.12
c = x1x2
y1 1 1
d = u1
y10
Continuous-timemodel。
〉〉 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为正定对称矩阵;
函数[Dp]=chol(P)可用于判断P矩阵就是否正定,p=0,矩阵正定,p为其它值,矩阵非正定、
三、实验步骤及结果
1)
(2)
A=[100 0;2—300;10—20;4-1 -2-4];
B=[0;0;1;2];
C=[3 0 10];
Qc=ctrb(A,B)
Qc=0 0 0 0
0 0 0 0
1—2 4 —8
2—1044 -184
>>rank(Qc)
ans =2
〉>rank(obsv(A,C))
ans=2
能控性判别矩阵Qc与能观性判别矩阵都不满秩,故系统既不能控,也不能观。
(3)A=[100 0;2—300;10 -20;4—1 -2-4];
B=[0;0;1;2];
C=[3010];
D=[0];
[z,p,k]=ss2zp(A,B,C,D,1);
Flagz=0;
n=length(A);
fori=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
〉〉ifFlagz==1
disp(’系统不稳定');
elsedisp('系统就是稳定得’);
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=[001];
den=[132];
[A,B,C,D]=tf2ss(num,den)
A=—3 -2
10
B=1
0
C =0 1
D =0
2、配置后系统得时间响应曲线为:
A=[—3-2;1 0];
B=[1;0];
C=[01];
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
x21 0
b = u1
x11
x2 0
c= x1x2
y10 1
d=u1
y10
Continuous-timemodel。
>〉step(sysnew)
所以:
K=[-10]
A=[-3—2;10];
B=[1;0];
C=[01];
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);
ifm==n
H=acker(A',C’,V')’
else
disp('系统不就是状态完全可观测')
end
H=-2
3
所以:
H=[-23]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验一 MATLAB系统的传递函数和状态空间表达式的转换 实验 MATLAB 系统 传递函数 状态 空间 表达式 转换