0

有一个连续时间系统如下所示: 在此处输入图像描述 在此处输入图像描述

matlab代码如下:

t=0.01;
syms s;
a2=[0 0 -285.7143;0 -0.4533 9.0662;5.2650 -5.2131 -42.5958];
b2=[571.4286;0;82.5714];
c2=[1 0 0];
A2=expm(a2*t);
B2=(int(expm(a2*s),0,t)*b1);

但是,当我计算 B1 时,计算机显示“输出被截断”。

请帮我。

多谢。

4

1 回答 1

0

我认为没有必要对矩阵值函数的积分使用符号数学。相反,您可以integral使用'ArrayValued'选项

t = 0.01;
a2 = [0 0 -285.7143;
      0 -0.4533 9.0662;
      5.2650 -5.2131 -42.5958];
integral(@(s)expm(a2*s),0,t,'ArrayValued',true)

这要快得多,并且返回的结果非常相似syms s; double(int(expm(a2*s),s,0,t))(由于数值错误而忽略了微小的虚部)。另请参阅此问题

于 2016-06-29T15:32:18.570 回答