【问题标题】:How can I call an m file in Simulink and put it to a block in my model?如何在 Simulink 中调用 m 文件并将其放入模型中的块中?
【发布时间】:2011-09-13 17:12:59
【问题描述】:

如何在 Simulink 中调用 m 文件并将其放入模型中的块中(不使用 S 函数)?有人有想法吗?我真的很感激。

【问题讨论】:

标签: matlab simulink


【解决方案1】:

如果您尝试将用户定义的 MATLAB 函数应用于 Simulink 信号,有几种不同的方法可以做到这一点,具体取决于您的目标。 Simulink 库的 User-Defined Functions 部分中提供了所有选项。

  • 如果您打算从您的模型生成代码,请使用 MATLAB function 块。此块确实有限制,MATLAB 内置函数的整个范围都不可用。

  • 如果您不关心代码生成,请使用Interpreted MATLAB function 块,此块可以使用任何功能。

  • 如果您的 m 文件很简单并且包含对输入进行操作的简单表达式,请使用 Fcn 块。在这种情况下,您可以直接在块对话框中键入表达式并参考文档中所示的输入/输出信号。

【讨论】:

  • 什么时候使用S函数?我知道人们使用它们,但它们的优点是什么?顺便说一句,谢谢你的大图。
  • @KE。我不确定您何时会选择 m 文件 S-function 而不是上面列出的方法之一。但是,如果您指的是 C S-functions,那么当您处理代码生成时,它们大多会派上用场。在这种情况下,您将创建一个非内联 S-Function,根据需要对模拟行为进行建模,然后在 TLC 中创建进入生成代码的部分。您还可以创建一个内联 S-Function 来共享模拟和代码生成代码,但我发现这些用途有限。此外,C S-Function 可以比 m-file S-Function 和上述选项快得多。
  • 谢谢!我不生成代码,所以我会坚持其他选项。
【解决方案2】:

MATLAB Fcn 模块是将 M-function 文件嵌入 Simulink 模型的最佳解决方案。但是,请注意您使用的是哪个版本的 MATLAB,例如,可以使用带有 %#codegen 的 M-function 文件实现更高版本的 MATLAB Function Block,并且 C 编译器需要与您的 MATLAB 包一起使用。祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多