Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

自定义模块的类型

MATLAB Function 模块

MATLAB® Function 模块允许您使用 MATLAB 语言定义自定义功能。在以下情况下,这些模块是创建自定义模块的很好的起点:

  • 您已经拥有可对自定义功能建模的 MATLAB 函数。

  • 您发现使用 MATLAB Function 对自定义功能建模比使用 Simulink® 模块图建模更容易。

  • 自定义功能不包含连续或离散动态状态。

您可以使用以下某种类型的 MATLAB 函数模块从 MATLAB 函数创建自定义模块。

上述每个模块在特定建模应用中各具优点。例如,您可以从包含 MATLAB Function 模块的模型中生成代码。

MATLAB System 模块

MATLAB System 模块可让您使用以 MATLAB 语言编写的 System object 定义自定义功能。在以下情况下,这些模块是创建自定义模块的很好的起点:

  • 您有一个现有的 System object™,它可对自定义功能建模。

  • 您发现使用 MATLAB 语言对自定义功能建模比使用 Simulink 模块图建模更容易。

  • 自定义功能包括离散的动态状态。

子系统模块

子系统模块允许您构建 Simulink 图来定义自定义功能。在以下情况下,可以方便地基于这些模块来创建自定义模块:

  • 已有对自定义功能建模的 Simulink 图。

  • 使用图形表示法对自定义功能进行建模比使用人工代码建模更容易。

  • 自定义功能是连续或离散系统状态的函数。

  • 您可以使用现有 Simulink 模块对自定义功能建模。

一旦您有了对所需行为建模的 Simulink 子系统,即可通过以下方式将其转换为自定义模块:

  1. 封装模块以隐藏模块内容并提供自定义模块对话框。

  2. 将模块放在库中以防止修改并允许方便地更新模块的副本。

有关详细信息,请参阅自定义库创建模块封装

C Caller 模块

C Caller 模块允许您将 C 代码集成到 Simulink 模块中。在以下情况下,可以方便地基于这些模块来创建自定义模块:

  • 已有对自定义功能建模的现有 C 代码。

  • 您的 C 函数不读写全局/静态变量。

  • 您要使模块可以轻松地与其他 Simulink 功能集成,例如 Simulink Coverage™Simulink Test™Simulink Coder™

  • 您不是对动态系统建模。

S-Function 模块

S-Function 模块允许您编写 MATLAB、C 或 C++ 代码来定义自定义功能。在以下情况下,可以方便地基于这些模块来创建自定义模块:

  • 已有对自定义功能建模的 MATLAB、C 或 C++ 代码。

  • 您使用需要访问 S-Function API 的连续或离散动态状态或其他系统行为。

  • 您不能使用现有 Simulink 模块对自定义功能建模。

您可以使用以下某种类型的 S-Function 函数模块从 S-Function 创建自定义模块。

Simulink Coder 产品中的 S-Function 目标自动从图形子系统生成 C MEX S-Function。如果您要在 Simulink 子系统中构建自定义模块,但在 S-Function 中实现该模块的最终版本,则可以使用 S-Function 目标将子系统转换为 S-Function。有关使用 S-Function 目标的详细信息和限制,请参阅 Simulink Coder 用户指南中的 使用 S-Function 目标加速仿真、重用代码或保护知识产权 (Simulink Coder)

封装模块

您可以通过为任何模块添加封装来自定义该模块。封装是模块的自定义接口。您可以通过多种方式使用封装来自定义模块,例如:

  • 更改模块的外观。

  • 对模块的用户隐藏部分或全部参数。

  • 自定义模块参数。

要了解有关封装模块的详细信息,请参阅创建模块封装

另请参阅

| | | | | | |

相关主题