在 Matlab 中使用 Simulink 求解 ODE
Solving ODE with Simulink in Matlab
我需要使用 Simulink 求解此 ODE,但我不知道如何求解。
我只知道如何使用 ODE 求解器。
y'' - y' - 2y = e^(3x)
y(0)=1, y'(0)=2.
我重写了获得 ODE 的方程:
y' = f(x,y)
y(x0) = y0
y'1 = y2
y2= e^(3*x) + y' + 2y
使用 ODE 求解器。
如果有人可以使用 Simulink 模型帮助我解决这个问题,我将不胜感激。
我知道如何在 Matlab 中使用 ODE 求解器作为 ode23 和 ode23s 来求解它,但我不知道如何使用 Simulink 模型来求解。
提前致谢
你能用闭式求解吗?对我来说看起来可行。我建议任何人在开始数值解决方案之前,如果可能的话,手头都有答案。
这是我得到的。检查我:
y(x) = e^(-x)*(8e^3x + 3e^4x + 1)/12
Wolfram Alpha 说这是正确的。
(注意:x 值较大时会出现问题 - 此响应将以 e^3 倍的速度增长。)
您需要将其表示为一组耦合的一阶 ODE。
y' = z
z' = z + 2y + e^(3x)
边界条件变为:
y(0) = 1
z(0) = 2
您可以自己在Simulink中逐项设置方程,通过双击并设置相应的字段将初始条件添加到积分器中。
所以快速实现看起来像
我假设你的 x 是一个类似时间的量,因此我放置了一个斜坡函数。时钟等也可以。
或者,您可以在明确考虑初始条件的情况下形成状态 space 系统或传递函数。
我需要使用 Simulink 求解此 ODE,但我不知道如何求解。 我只知道如何使用 ODE 求解器。
y'' - y' - 2y = e^(3x)
y(0)=1, y'(0)=2.
我重写了获得 ODE 的方程:
y' = f(x,y)
y(x0) = y0
y'1 = y2
y2= e^(3*x) + y' + 2y
使用 ODE 求解器。
如果有人可以使用 Simulink 模型帮助我解决这个问题,我将不胜感激。
我知道如何在 Matlab 中使用 ODE 求解器作为 ode23 和 ode23s 来求解它,但我不知道如何使用 Simulink 模型来求解。
提前致谢
你能用闭式求解吗?对我来说看起来可行。我建议任何人在开始数值解决方案之前,如果可能的话,手头都有答案。
这是我得到的。检查我:
y(x) = e^(-x)*(8e^3x + 3e^4x + 1)/12
Wolfram Alpha 说这是正确的。
(注意:x 值较大时会出现问题 - 此响应将以 e^3 倍的速度增长。)
您需要将其表示为一组耦合的一阶 ODE。
y' = z
z' = z + 2y + e^(3x)
边界条件变为:
y(0) = 1
z(0) = 2
您可以自己在Simulink中逐项设置方程,通过双击并设置相应的字段将初始条件添加到积分器中。
所以快速实现看起来像
我假设你的 x 是一个类似时间的量,因此我放置了一个斜坡函数。时钟等也可以。
或者,您可以在明确考虑初始条件的情况下形成状态 space 系统或传递函数。