实验二 基于Matlab的运动分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二基于Matlab的运动分析
目的:1、掌握利用Matlab求解状态转移矩阵的方法;
2、掌握利用Matlab求解系统的各种时间响应的方法。
相关命令:
利用Matlab可以很方便地求解线性定常系统的各种时间响应,如零输入响应、给定输入下的零状态响应、脉冲响应、阶跃响应等,下面给出一些常用的命令。
1、expm 求解A的状态转移矩阵
A
ex p t
m求系统在t时刻的状态转移矩阵
)
*
(
2、initial 求解零输入响应
initial绘制系统初始状态为0x时系统输出的零输入响应曲线
sys
(x
)0
,
initial
x
y=计算初始状态为x0时所有状态和输出的零输入响应
[x
t
sys
)0
(
,
,,
]
3、lsim 求解任意输入时系统的响应
u
s y s
l s i m绘制在任意输入u时系统输出的零状态响应曲线
(t
,
),
s y s
l s i m
t
y=计算任意输入u时系统所有状态和输出的零状态响应
u
x
[t
),
,,
,
(
]
4、step 求解阶跃响应
s t e p
(s y s
)
5、impulse 求解脉冲响应
i m p u l e
(s y s
)
实验内容:
1、学会利用Matlab求解系统的状态转移矩阵,共有以下三种方法:
A、利用expm函数
>> A=[0,-1;4,0]; 输入系统矩阵
>> syms t; 定义一个符号变量t,t也可取为任意时刻的确定值
>> fait=expm(A*t) ;求状态转移矩阵
fait =
[ cos(2*t), -1/2*sin(2*t)]
[ 2*sin(2*t), cos(2*t)]
B、拉氏变换法
>> A=[0,-1;4,0];
>> syms s;
>> sys=inv(s*eye(size(A))-A); 求(sI-A )-1,inv 是求逆矩阵的函数
>> fait=ilaplace(sys); 拉氏反变换
fait =
[ cos(4^(1/2)*t), -1/4*4^(1/2)*sin(4^(1/2)*t)]
[ 4^(1/2)*sin(4^(1/2)*t), cos(4^(1/2)*t)]
C 、 非奇异变换法
>> A=[1 0 0;0 1 0;0 1 2];
>> syms t;
>> [P D]=eig(A);
>> Q=inv(P);
>> fait=P*expm(D*t)*Q
fait =
[ exp(t), 0, 0]
[ 0, exp(t), 0]
[ 0, exp(2*t)-exp(t), exp(2*t)]
这几种方法希望大家掌握,并能够灵活使用,要求利用Matlab 求解第二章课后习题2-1(4)。
2、 会利用Matlab 求解状态方程,包括解析解和响应曲线等多种形式。
A 、利用拉氏变换及反变换求解状态方程:)()()0()()(11s BU A sI x A sI s X ---+-= 然后利用ilaplace()函数对其进行拉氏反变换即可得到状态解的时域解析形式。
B 、利用Matlab 提供的各种函数即可求得系统在初始条件或者输入函数作用下的各种响应的数据或者曲线。
如:)0,(],,[x sys initial x t y =
C 、在Simulink 下绘制控制系统状态结构图,利用积分器的初始条件带入各状态的初始值,加上需要的输入信号,求得系统状态及输出的响应曲线。
利用Matlab 求解2-4(1),系统的响应包括零输入响应和零状态响应,并绘制出系统的状态响应曲线。
报告要求:按前面要求整理好计算过程中使用的命令及运算结果,保存在电子文本中,提交给我作为实验报告。