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

     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,用于仿真和基于模型的设计,值得学习。
该博文仅可用于测试与参考。

转载于:https://my.oschina.net/zhichengjiu/blog/3013978

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值