在 Simulink 中对微分方程建模

Modeling Differential Equations in Simulink

一段时间以来,我一直在尝试构建 Simulink 模型,但我不确定它是否正确,所以我需要一些确认。我得到的方程式是:

x1' = x1 - x1*x2
x2' = -x2 + 2*x1*x2

有人告诉我积分器的初始条件是(我假设每个值都是针对每个单独的积分器的):

(.5, .5)
(1, .5)
(2, 2)
(.5, 1)
(1, 1)

总共 5 个图表并使用 XY 绘图器输出。我不知道它应该是什么样子,但添加到此模型的任何提示或提示都会非常有帮助。通常我用某种输入处理微分方程,但是从方程中我不知道该怎么做。

积分器使用 (1,1) 的初始条件绘图

这里真的没什么好回答的。根据您的方程式,Simulink 框图是正确的。

如果您想确认您的 Simulink 模型是否正确,请尝试通过一些计算来验证它 "by hand"。

x1' = x1 - x1 * x2
x2' = -x2 + 2 * x1 * x2

对于 (1,1)

x1' = 1 - 1 * 1 = 0
x2' = -1 + 2 * 1 * 1 = 1

所以,从(1,1)开始,x1的变化方向是0,x2的变化方向是1。现在,采取相对较小的步长 (0.1 * x'):

x1(0.1) = 1
x2(0.1) = 1.1
x1' = 1 - 1 * 1.1 = -0.1
x2' = -1.1 + 2 * 1.1 * 1 = 1.1

因此,x1 值在缓慢减小,而 x2 值在快速增加,所以在一开始,您应该有一个向上和向左的曲线。

x1(0.2) = 1-0.1*0.1 = 0.99
x2(0.2) = 1.1 + 0.1*1.1 = 1.21

再走几步,看看您正朝着哪个方向前进。它看起来像 Simulink 图吗? (当然,我建议你用MATLAB,而不是纸笔,因为纸笔很麻烦。

此外,将手算与您绘图中的其他点进行比较,例如:

勾选(0.5,2)。你能看出你的情节中这条线的走向吗?水平向左(即 y 方向的导数为零,x 方向的导数为负。手工得到:x1' = -0.5x2' = 0。它是正确的!=)当然,结果你在手工计算时得到的结果有点偏差,因为步长很大。

无论如何:你的模型是正确的!