MATLAB:使用 ODE 求解器?

问题描述 投票:0回答:2

这是一个非常基本的问题,但这是我第一次使用 MATLAB,我陷入了困境。 我需要使用 3 种不同的数值积分技术来模拟一个简单的串联 RC 网络。我想我了解如何使用常微分方程求解器,但我不知道如何输入系统的微分方程。我需要通过 m 文件来完成吗?

这只是一个简单的 RC 电路,其形式为:

RC dy(t)/dt + y(t) = u(t)

初始条件为零。我有 R、C、步长和仿真时间的值,但我不知道如何特别好地使用 MATLAB。

非常感谢任何帮助!

matlab math numerical-integration
2个回答
4
投票

您将需要一个函数文件,它将 ty 作为输入,并给出 dy 作为输出。它将是它自己的文件,具有以下标头。

function dy = rigid(t,y)

将其保存为 MATLAB 路径上的igid.m。

从那里您可以输入微分方程。你现在有了一个函数。这是一个简单的:

function dy = rigid(t,y)

dy = sin(t);

从命令行或脚本,您需要通过 ODE45 驱动此功能

[T,Y] = ode45(@rigid,[0 2*pi],[0]);

这将为您提供从 时间 0时间 2*pi 运行的函数 (rigid.m),且 初始 y 为零

绘制这个:

plot(T,Y)

alt text

更多 MATLAB 文档位于此处:

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ode23tb.html


1
投票

官方 Matlab 速成课程(PDF 警告)有一个关于求解 ODE 的部分,以及我发现在启动 Matlab 时有用的许多其他资源。

© www.soinside.com 2019 - 2024. All rights reserved.