Main Content

MATLAB System 模块

为什么要使用 MATLAB System 模块?

利用 System object,您可以使用 MATLAB® 语言实现您的算法。MATLAB System 模块允许您在 Simulink® 中使用 System object。

使用 MATLAB System 模块,您可以:

  • 在 MATLAB 和 Simulink 中共享同一个 System object™

  • 实现 System object 与 Simulink 的集成

  • 在 Simulink 中使用您的算法之前,先在 MATLAB 中对算法进行单元测试

  • 自定义对话框的自定义设置

  • 通过更好的初始化进行高效仿真

  • 处理状态

  • 使用端口标签自定义模块图标

  • 访问两种仿真模式

选择正确的模块类型

在 Simulink 中包含 MATLAB 算法的机制有几种,例如:

  • MATLAB System 模块

  • MATLAB Function 模块

  • Interpreted MATLAB Function 模块

  • Level-2 MATLAB S-Function 模块

有关如何选择正确模块的帮助信息,请参阅比较自定义模块功能

System object

使用 MATLAB System 模块之前,必须具有要与该模块关联的 System object。System object 是一种特殊的 MATLAB 类。System object 专为实现和仿真输入随时间变化的动态系统而设计。

有关创建 System object 的详细信息,请参阅Customize System Objects for Simulink

注意

要在 Simulink 环境中使用您的 System object,它必须具有一个可以不带任何参量而直接调用的构造函数。默认情况下,System object 构造函数具有此功能,因此您不需要自行定义构造函数。但是,如果您创建自己的 System object 构造函数,则必须保证能够不带参量地调用该构造函数。

System object 存在于其他 MATLAB 产品中。MATLAB System 模块仅支持使用 MATLAB 语言编写的 System object。此外,如果一个 System object 具有对应的 Simulink 模块,则您不能为它实现 MATLAB System 模块。

解释执行或代码生成

您可以在 Simulink 模型中使用 MATLAB System 模块通过解释执行或代码生成进行仿真。

  • 对于解释执行,模型使用 MATLAB 执行引擎进行模块仿真。

  • 对于代码生成,模型使用代码生成进行模块仿真(要求使用代码生成支持的 MATLAB 代码子集)。要查看支持的函数列表,请参阅 C/C++ 代码生成支持的函数和对象

默认输入信号属性

如果 MATLAB System 模块有一个或多个输入端口未连接到另一个模块的输出端口,或者连接的端口具有欠定属性,则欠定属性的默认输入信号属性为:

数据属性默认值
数据类型双精度
大小[1 1] 标量
复/实性实数

MATLAB System 模块限制

当前不支持以下功能。

类别限制描述解决方法

System object

System object 的可调字符向量属性在 MATLAB System 模块中是不可调参数。

数据类型

  • MATLAB System 模块不支持使用虚拟总线作为输入或输出。

  • System object 不能使用用户定义的不透明数据类型。

采样时间

不能使用 MATLAB System 模块对连续时间系统或多速率系统建模。

线性化

不能使用基于雅可比的线性化。

全局变量

在模型的配置参数的仿真目标 > 自定义代码窗格中定义并由 System object 引用的全局变量不能与 Stateflow®MATLAB Function 模块共享。

在“配置参数”对话框的仿真目标窗格中打开导入自定义代码选项

调试

对基于代码生成的仿真进行 MATLAB 调试。

MATLAB System 模块的仿真方式参数设置为解释执行,然后进行调试。完成后,将仿真方式重置为代码生成

定点工具

定点工具不会返回 MATLAB System 模块的设计最小值/最大值、最小值/最大值记录和自动定标信息。

模型覆盖率分析(Simulink Coverage™ 软件)

Simulink Coverage 不能为仿真方式参数设置为解释执行MATLAB System 模块执行模型分析。

MATLAB System 和 System object 示例

有关 MATLAB System 和 System object 的示例,请参阅:

示例描述

Illustration of Law of Large Numbers

此示例说明如何使用 MATLAB System 模块演示大数法则。由于使用了代码生成不支持的 MATLAB 函数,因此该示例使用了传播方法和解释执行。

Using Buses with MATLAB System Blocks

此示例说明如何对 MATLAB System 模块的输入或输出端口使用非虚拟总线。由于使用了 Simulink 总线,因此该示例使用了传播方法。此示例使用模型回调在 MATLAB 基础工作区中定义总线类型。

另请参阅

相关示例

详细信息