实验一MATLAB系统的传递函数和状态空间表达式的转换.docx
- 文档编号:9276795
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:13
- 大小:241.20KB
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx
《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx》由会员分享,可在线阅读,更多相关《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx(13页珍藏版)》请在冰豆网上搜索。
实验一MATLAB系统的传递函数和状态空间表达式的转换
实验一MATLAB系统的传递函数和状态空间表达式的转换
一、实验目的
1、学习多变量系统状态空间表达式的建立方法;
2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法;
3、掌握相应的MATLAB函数.
二、实验原理
设系统的模型如式〔1.1〕所示:
x
u
R’’’y
RP<1.1>
其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵,D为直接传递函数.系统的传递函数和状态空间表达式之间的关系如式〔1.2〕所示
G=num/den=C
式〔1.2〕中,num表示传递函数的分子阵,其维数是pXm,den表示传递函数的按s降幂排列的分母.
表示状态空间模型和传递函数的MATLAB函数如下:
函数ss〔statespace的首字母〕给出了状态空间模型,其一般形式是:
函数tf〔transferfunction的首字母〕给出了传递函数,其一般形式是:
G=tf
其中num表示传递函数中分子多项式的系数向量〔单输入单输出系统〕,den表示传递函数中分母多项式的系数向量.
函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是:
[A,B,C,D]=tf2ss
函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是:
其中对于多输入系统,必须确定iu的值.例如,若系统有三个输入u1,u2,u3,则iu必须是1、2、或3,其中1表示u1,2表示u2,3表示u3.该函数的结果是第iu个输入到所有输出的传递函数.
三.实验步骤及结果
1、应用MATLAB对下列系统编程,求系统的A、B、C、D阵,然后验证传递函数是相同的.
G=
s3+4s2+5s+1
程序和运行结果:
num=[0021;0153];
den=[1451];
[A,B,C,D]=tf2ss
A=-4-5-1
100
010
B=1
0
0
C=021
153
D=0
0
A=[-4-5-1;100;010];
A=[-4-5-1;100;010];
B=[1;0;0];
C=[021;153];
D=[0;0];
num1=00.00002.00001.0000
01.00005.00003.0000
den1=1.00004.00005.00001.0000
2、给定系统G=
求系统的零极点增益模型和状态空间模型
程序和运行结果:
num=[0145];
den=[16116];
sys=tf
Transferfunction:
s^2+4s+5
----------------------
s^3+6s^2+11s+6
>>sys1=tf2zp
sys1=-2.0000+1.0000i
-2.0000-1.0000i
>>[A,B,C,D]=tf2ss
A=6-11-6
100
010
B=1
0
0
C=145
D=0
实验2状态空间模型系统仿真及状态方程求解
一、实验目的
1、熟悉线性定常离散与连续系统的状态空间控制模型的输入方法;
2、熟悉系统模型之间的转换功能;
3、利用MATLAB对线性定常系统进行动态分析.
二、实验原理
函数step
函数impulse
函数[y,T,x]=Isim
函数c2d将连续系统状态空间描述转化为离散系统状态空间形式,其一般形式为:
[G,H]=c2d,其中的T是离散化模型的采样周期.
函数d2c将离散系统状态空间描述转化为连续系统状态空间描述,其一般形式为:
sysc=d2c
函数dstep
三、实验步骤及结果
程序和运行结果:
T=0.5s时
T=1s时
T=2s时
A=[010;-2-30;-11-3];
B=[0;0;1];
C=[111];
D=1;
G1=0.84520.23870
-0.47730.12920
-0.33260.05080.2231
H1=0
0
0.2590
>>dstep
>>dstep
G2=0.60040.23250
-0.4651-0.09720
-0.3795-0.06140.0498
H2=0
0
0.3167
>>dstep
G3=0.25240.11700
-0.2340-0.09870
-0.2182-0.08530.0025
H3=0
0
0.3325
>>dstep
程序和运行结果:
Z域仿真图形:
连续域仿真图形:
程序:
G=[01;-0.161];
H=[1;1];
C=[11];
D=0;
u=1;
dstep
sysd=ss
a=x1x2
x101
x2-0.161
b=u1
x11
x21
c=x1x2
y111
d=u1
y10
Samplingtime:
0.05
Discrete-timemodel.
>>sysc=d2c
a=x1x2
x1-41.4346.21
x2-7.3944.779
b=u1
x116.34
x221.12
c=x1x2
y111
d=u1
y10
Continuous-timemodel.
>>step
实验3能控能观判据及稳定性判据
一、实验目的
1、利用MATLAB分析线性定常及离散系统的可控性与可观性;
2、利用MATLAB判断系统的稳定性.
二、实验原理
给定系统状态空间描述[A,B,C,D],函数ctrb计算能控性判别矩阵;
函数obsv计算能观测性判别矩阵;
函数P=lyap求解李雅普诺夫方程ATP+PA=-Q,Q为正定对称矩阵;
函数[Dp]=chol
可用于判断P矩阵是否正定,p=0,矩阵正定,p为其它值,矩阵非正定.
三、实验步骤及结果
1〕〔2〕
A=[1000;2-300;10-20;4-1-2-4];
B=[0;0;1;2];
C=[3010];
Qc=0000
0000
1-24-8
2-1044-184
>>rank
ans=2
>>rank
ans=2
能控性判别矩阵Qc和能观性判别矩阵都不满秩,故系统既不能控,也不能观.
〔3〕A=[1000;2-300;10-20;4-1-2-4];
B=[0;0;1;2];
C=[3010];
D=[0];
[z,p,k]=ss2zp;
Flagz=0;
n=length;
fori=1:
n
ifreal
>>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;
时间响应曲线为:
实验4状态反馈及状态观测器的设计
一、实验目的
1、熟悉状态反馈矩阵的求法;
2、熟悉状态观测器设计方法.
二、实验原理
MATLAB软件提供了两个函数acker和place来确定极点配置状态反馈控制器的增益矩阵K,函数acker是基于求解极点配置问题的艾克曼公式,它只能应用到单输入系统,要配置的闭环极点中可以包括多重极点.函数place用于多输入系统,但配置极点不可以包括多重极点.
函数acker和place的一般形式是:
其中的P是一个向量,P=[
],
是n个期望的闭环极点.得到了所要求得反馈增益矩阵后,可以用命令eig
由状态反馈极点配置和观测器设计问题直接的对偶关系,观测器设计是状态反馈设计的转置,可以用H=
三、实验步骤及结果
step;
num=[001];
den=[132];
[A,B,C,D]=tf2ss
A=-3-2
10
B=1
0
C=01
D=0
2、配置后系统的时间响应曲线为:
A=[-3-2;10];
B=[1;0];
C=[01];
D=0;
P=[-1+sqrt<-1>;-1-sqrt<-1>];
K=-10
>>disp<'极点配置后的闭环系统为'>
极点配置后的闭环系统为
>>sysnew=ss
a=x1x2
x1-2-2
x210
b=u1
x11
x20
c=x1x2
y101
d=u1
y10
Continuous-timemodel.
>>step
所以:
K=[-10]
A=[-3-2;10];
B=[1;0];
C=[01];
D=0;
V=[-3;-3];
sysold=ss;
p=-2
-1
Q=obsv;
m=rank;
n=length;
ifm==n
H=acker'
else
disp<'系统不是状态完全可观测'>
end
H=-2
3
所以:
H=[-23]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 MATLAB 系统 传递函数 状态 空间 表达式 转换
![提示](https://static.bdocx.com/images/bang_tan.gif)