首页 文章

Simulink在模拟之前是否将模型/程序框图转换为代码?

提问于
浏览
2

我已经读过,我可以从Simulink模型/程序框图生成代码 . 我很好奇Simulink是否总是将模型转换为(c / c / java)代码,然后在Simulink软件中进行仿真,然后执行该代码?我的意思是,每当我运行模拟时,Matlab都会将程序框图转换为(c / c / java)代码并在场景后面运行该代码 . 在这种情况下,Simulink中的仿真直接依赖于运行一些代码;这些信息在某种程度上对我很重要 .

生成和运行完整模型的代码似乎是合理的,因为我们可以使用C / Matlab代码编写 s-functions 并将它们用作自定义块 . 因此,模拟模型涉及在某种程度上运行代码 . 同样,由于我们也可以编写Matlab代码,因此仿真可能涉及在某些环境中解释Matlab代码 . 这让我很好奇这些信息是否可用 - 在Simulink中运行模拟的紧密程度取决于在用户机器中执行本机代码 .

我在发布之前做了一些搜索,发现了这个问题:How does simulation engine work?这个问题的讨论没有直接回答我的问题 .

1 回答

  • 4

    答案取决于您选择的模式 .

    在_1393969中,Simulink将运行模型,因为它主要使用MATLAB执行引擎 . 没有生成代码 . 本机实现的部分(例如S函数)用作MATLAB解释器调用的单独二进制文件 .

    在_1393970中,Simulink生成模型代码 . 这意味着生成完整模型(除了无法生成代码的部分),并将其编译为一个二进制文件 .

    rapid accelerator mode 中,不仅您的模型而且生成求解器并将其编译为一个二进制文件,现在在单独的进程中运行 .

    有关详细信息,请参阅official documentation

相关问题