matlab-自控原理 已知x~=Ax+Bu中的AB矩阵和X0,求单位输入下的时间响应

慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。


  •                     matlab : R2018a 64bit
  •                             os : win7
  •            type setting : markdown
  •                         blog : https://blog.csdn.net/yushaopu
  •                     github : https://github.com/GratefulHeartCoder

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


感恩曾经帮助过 心少朴 的人。
matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。

猜你喜欢

转载自blog.csdn.net/yushaopu/article/details/81072129
今日推荐