首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matlab中Simulink求解ODE

Matlab中Simulink求解ODE
EN

Stack Overflow用户
提问于 2015-06-01 12:15:51
回答 2查看 2K关注 0票数 2

我需要用Simulink来解决这段代码,我不知道怎么做。我只知道如何使用ODE求解器来实现它。

代码语言:javascript
代码运行次数:0
运行
复制
y'' - y' - 2y = e^(3x)

y(0)=1, y'(0)=2.

我重写了方程,得到了一首颂歌:

代码语言:javascript
代码运行次数:0
运行
复制
y' = f(x,y)

y(x0) = y0

y'1 = y2

y2= e^(3*x) + y' + 2y 

使用ODE解算器。

如果有人能用Simulink模型帮我解决这个问题,我会很感激的。

我知道如何在Matlab中使用像ode23和ode23s那样的ODE求解器,但是我不知道如何使用Simulink模型来解决这个问题。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-01 12:33:58

你能用封闭的形式解决它吗?在我看来是可行的。如果可能的话,我建议任何人在开始一个数值解之前都要掌握答案。

这是我得到的。检查我:

代码语言:javascript
代码运行次数:0
运行
复制
y(x) = e^(-x)*(8e^3x + 3e^4x + 1)/12

沃尔夫拉姆阿尔法说这是正确的。

(注:x值大的麻烦--这个响应将以e^3倍的速度增长。)

您需要将其表示为一组耦合的一阶ODEs。

代码语言:javascript
代码运行次数:0
运行
复制
y' = z

z' = z + 2y + e^(3x)

边界条件变成:

代码语言:javascript
代码运行次数:0
运行
复制
y(0) = 1
z(0) = 2
票数 2
EN

Stack Overflow用户

发布于 2015-06-01 13:26:10

你可以在Simulink中逐项建立方程,并通过双击和设置相应的字段向积分器添加初始条件。

因此,快速实现如下所示

我假设你的x是一个类似时间的量,所以我放了一个斜坡函数。时钟等也可以。

或者,您可以显式地考虑初始条件来形成状态空间系统或传递函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30573274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档