gpt4 book ai didi

matlab - 在 Simulink 中求解子系统内的 ODE

转载 作者:行者123 更新时间:2023-12-04 02:19:14 27 4
gpt4 key购买 nike

我正在尝试弄清楚如何求解 Simulink 模型中子系统内的 ODE 系统。基本上,每次调用此子系统(在模拟时钟的每个滴答声(固定步长)时发生)都需要求解 ODE。因此子系统有一个不同的“时钟”。

我有一个 M 文件,它实现了 ODE 系统的功能。目前,我有一个 MATLAB Function block 。它需要很多我可以从基础工作区获取的参数(通过 evalin 并在开头使用 coder.extrinsic('evalin'))。但是我不允许定义 function_handle 对象或内部函数来参数化 ode* 使用的函数。我认为,如果我能够解决这个模块中的 ODE,我就会解决我的问题。但这些限制正在“毁掉”它。

如果您对如何完成此操作有任何想法,我将不胜感激。我欢迎不同的方法。

谢谢。

编辑

下面给出了一个简单的例子。它试图通过随机更改 mu 参数来求解 van der Pol 方程。这是我目前的主要想法,由于上面提到的问题,它不起作用。

这是带有子系统的主要模型:

enter image description here

这是子系统:

enter image description here

这是 MATLAB Function block 的实现(请注意 @ 符号中有一个错误,因为不允许定义 function_handle 对象):

enter image description here

最佳答案

只需使用 MATLAB Function 模块作为包装器。将大部分代码放入“标准”MATLAB 函数(即一个可从 MATLAB 调用的函数,而不是 MATLAB Function block )并从 MATLAB Function block 调用该函数(在将其定义为 coder.extrinsic 之后)。

关于matlab - 在 Simulink 中求解子系统内的 ODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com