我希望随着时间的推移进行符号整合;代码如下。
syms x1 u1 t
x1 = symfun(sym('x1(t)'), [t]);
x1dot = p1 + p4*p8 - p13*x1;
int(x1dot,t)
答案应该是:
e^(-p13*t)*x1(0)+(p1 + p4*p8)/(-p13)*[1-e^(-p13*t)]
我得到的是:
Warning: Explicit integral could not be found.
ans(t) =
int(p1 - p13*x1(t) + p4*p8*u1(t), t)
在我看来,它不承认x1dot
是x1
的衍生物。我该如何解决这个问题?
答案 0 :(得分:2)
您要做的不是严格意义上的整合,即来自已知函数f(t)
推导出函数F(t)
,使F
的导数为f
。原始函数并不是真正知道的,因为它取决于它自身(无论这种关系对人类看起来多么微不足道,你都需要反过来)。
而是求解微分方程for which dsolve
is probably the way to go。 MATLAB无法猜测x1dot
是x1
的衍生物。我想您可以声明x1dot=diff(x1)
,但为什么不直接在需要的地方使用diff(x1)
?