【问题标题】:Modeling Differential Equations in Simulink在 Simulink 中建模微分方程
【发布时间】:2015-09-13 16:56:13
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: matlab simulink differential-equations


    【解决方案1】:

    这里没有太多要回答的问题。根据您的方程式,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。它是正确的!=)当然,计算时得到的结果手动有点偏离,因为步长相当大。

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

    【讨论】:

    • @azumakazuma:是的。 =) 在 (1,1) 处,它沿 y 方向上升,而 x 以较慢的速度下降。手动检查(0.5,2)。你能看到这条线在你的情节中走向什么方向吗?水平向左(即y方向的导数为零,x方向的导数为负。在(0.5,2)处:x1' = -0.5x2' = 0。它是正确的!=)当然,你得到的结果是手动计算有点偏离,因为步长相当大。
    • 哇,我完全忘记了我在看导数,我在看值,所以负数没有意义。感谢您清理并确认:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2014-12-06
    • 2014-11-28
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多