Simulink中微分方程的建模

时间:2015-09-13 05:13:21

标签: matlab simulink differential-equations

我一直试图建立一个Simulink模型,但我不确定它是否正确,所以我需要一些确认。给出的方程是:

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

enter image description here

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

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

使用XY图示器总共5个图形和输出。我不知道它应该是什么样子但是添加到这个模型的任何提示或提示都会非常有用。通常我已经处理了具有某种输入的微分方程,但从方程式我不知道该怎么做。

enter image description here

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

1 个答案:

答案 0 :(得分:4)

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

如果您想确认您的Simulink模型是否正确,请尝试“手动”进行一些计算验证。

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。它是现货!=)当然,结果你手工计算得到的有点偏,因为步长非常大。

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

相关问题