【问题标题】:Use Sim() command without coder.extrinsic in Matlab在 Matlab 中使用没有 coder.extrinsic 的 Sim() 命令
【发布时间】:2015-12-21 14:17:45
【问题描述】:

在不设置 coder.extrinsic 的情况下,是否有 sim() 命令的替代函数或直接执行 Simulink 模型/从 Matlab 编译的版本?

我想在迭代 Matlab 函数中执行一个 simulink 模型。 (因此,速度非常重要)。使用的 Simulink 模型包含 Dymola 接口,因此我无法直接在 Matlab 中对其进行建模。另一个主要的 Simulink 模型启动并迭代 Matlab 函数,因此,模拟它会导致编码器尝试有效地编译它。通过设置 coder.extrinsic,我当然可以使用 sim 命令,但它的速度太慢了。我想过编译 Simulink 模型作为替代方案,但不知道这是否是一个好方法

结构如下:

Simulink 主模型 -> matlab 函数 -> simulink 模型

【问题讨论】:

    标签: matlab simulink dymola


    【解决方案1】:

    sim 命令需要 MATLAB。所以你需要 coder.extrinsic。没有 coder.extrinsic 就没有直接的替代方法来模拟模型。您可以从模型生成代码并使用 coder.ceval 函数调用生成代码。但是,如果您的目标只是提高速度而不是获得独立代码,您可以将模型设置为在加速器模式下运行,看看这是否会提高速度。

    【讨论】:

    • 使用快速加速模式,而不是加速模式。快速加速器模式创建一个独立的可执行文件,它捆绑了求解器和模型,这是最快的执行方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多