这是一个非常基本的问题,但这是我第一次使用 MATLAB,我陷入了困境。 我需要使用 3 种不同的数值积分技术来模拟一个简单的串联 RC 网络。我想我了解如何使用常微分方程求解器,但我不知道如何输入系统的微分方程。我需要通过 m 文件来完成吗?
这只是一个简单的 RC 电路,其形式为:
RC dy(t)/dt + y(t) = u(t)
初始条件为零。我有 R、C、步长和仿真时间的值,但我不知道如何特别好地使用 MATLAB。
非常感谢任何帮助!
您将需要一个函数文件,它将 t 和 y 作为输入,并给出 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)
更多 MATLAB 文档位于此处:
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ode23tb.html
官方 Matlab 速成课程(PDF 警告)有一个关于求解 ODE 的部分,以及我发现在启动 Matlab 时有用的许多其他资源。