matlab : R2018a 64bit
OS : Windows 10 x64
typesetting : Markdown
blog : my.oschina.net/zhichengjiu
gitee : gitee.com/zhichengjiu
code
clear
clc
% 制作时间:2016-09-26
% 制作原因:自控原理留了作业,写完了后,想验证一下自己写的对不对,于是写了这个小代码
% 这个代码,没有捕捉异常的工序,所以请使用的时候,小心点哦。
syms s t tao;
%因为u(tao)是单位阶跃响应,所以在t>0时,u=1
u=1;
%A[1 0;1 1] B[1;1] X0[1;0]
%输入已知条件
A=input('请输入题目已知的A矩阵,如果不会输入,请参考模板:一个三行三列[1 2 3;4 5 6;7 8 9]:\n');
fprintf('A矩阵是:');
A
B=input('请输入题目已知的B矩阵\n')
fprintf('B矩阵是:');
B
X0=input('请输入题目已知的X0矩阵\n')
fprintf('X0矩阵是:');
X0
%计算e^At
sizeOfA=size(A);
fprintf('s*I-A的结果:');
sI_A=s*eye(sizeOfA(1))-A
fprintf('对s*I-A求逆矩阵:\n');
fprintf('行列式为:')
hOfsI_A=det(sI_A)
fprintf('伴随矩阵为:')
bOfsI_A=det(sI_A)*inv(sI_A)
fprintf('逆矩阵为:')
nOfsI_A=inv(sI_A)
fprintf('对sI_A的逆矩阵进行拉普拉斯逆变换的结果是:');
lnOfsI_A=ilaplace(nOfsI_A)
fprintf('e^At为:')
lnOfsI_A
%计算e^A(t-tao)
fprintf('e^A(t-tao)为:')
t_taoOfEJuzhen=subs(lnOfsI_A,t,t-tao)
fprintf('\n\n最后的结果是:')
x_t=lnOfsI_A*X0+int(t_taoOfEJuzhen*B,tao,0,t)
result
请输入题目已知的A矩阵,如果不会输入,请参考模板:一个三行三列[1 2 3;4 5 6;7 8 9]:
[1 0;1 1]
A矩阵是:
A =
1 0
1 1
请输入题目已知的B矩阵
[1;1]
B =
1
1
B矩阵是:
B =
1
1
请输入题目已知的X0矩阵
[1;0]
X0 =
1
0
X0矩阵是:
X0 =
1
0
s*I-A的结果:
sI_A =
[ s - 1, 0]
[ -1, s - 1]
对s*I-A求逆矩阵:
行列式为:
hOfsI_A =
(s - 1)^2
伴随矩阵为:
bOfsI_A =
[ s - 1, 0]
[ 1, s - 1]
逆矩阵为:
nOfsI_A =
[ 1/(s - 1), 0]
[ 1/(s - 1)^2, 1/(s - 1)]
对sI_A的逆矩阵进行拉普拉斯逆变换的结果是:
lnOfsI_A =
[ exp(t), 0]
[ t*exp(t), exp(t)]
e^At为:
lnOfsI_A =
[ exp(t), 0]
[ t*exp(t), exp(t)]
e^A(t-tao)为:
t_taoOfEJuzhen =
[ exp(t - tao), 0]
[ exp(t - tao)*(t - tao), exp(t - tao)]
最后的结果是:
x_t =
2*exp(t) - 1
2*t*exp(t)
>>
resource
[文档] ww2.mathworks.cn/help/matlab
[文档] ww2.mathworks.cn/help/simulink
[平台] www.oschina.net
[平台] gitee.com
感谢帮助 志成就 的人们。
matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
Simulink,用于仿真和基于模型的设计,值得学习。
该博文仅可用于测试与参考。
来源:oschina
链接:https://my.oschina.net/u/4079957/blog/3013978