gpt4 book ai didi

matlab - 为什么解释型 MATLAB 函数 block 会在 Simulink 中计算两次?

转载 作者:行者123 更新时间:2023-12-02 04:31:15 26 4
gpt4 key购买 nike

我有一个包含以下子系统的 Simulink 模型。

Simulink subsystem with interpreted MATLAB function

bm_train_adapter block 将调用同名的 MATLAB 函数,并在单个向量中传递所有输入参数。

子系统的采样时间为 900(秒),这就是为什么所有信号都显示为红色(对于离散信号)。

但是,在调试器中,我观察到 bm_train_adapter 函数在每个模拟时间步被调用两次。这会产生非常错误的结果,因为该函数包含副作用。

为什么 Simulink 在每个时间步多次调用我解释的 MATLAB 函数?我怎样才能防止这种情况发生?

最佳答案

我认为这是因为你的解算器设置。在配置参数窗口中,查看求解器选项 Pane 。

我相信离散ode1求解器将在每个时间步调用一次。 ode2 每个时间步调用两次,ode4 每个时间步调用 4 次,依此类推。

这种行为对于模拟连续动态非常有帮助,但在与离散元素交互时可能会令人困惑。

关于matlab - 为什么解释型 MATLAB 函数 block 会在 Simulink 中计算两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776842/

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