Main Content

向模型添加 Simulink 函数

Simulink® 函数的输入和输出参数接口类似于编程语言。您可以使用以下方式为 Simulink 函数创建函数定义:

  • Simulink Function 模块内的 Simulink 模块

  • 从 Stateflow® 图导出的图形函数中的 Stateflow 状态转移。

  • 从 Stateflow 图导出的 MATLAB 函数中的 MATLAB® 代码。

以下各节说明如何为函数 y = timestwo(x) 创建 Simulink 函数。该函数将来自调用方的值 (x) 乘以 2,然后将计算得到的值 (y) 发送回调用方。要调用这些函数,请参阅 Call a Simulink Function from a Model

要使用 Simulink 函数和函数调用方打开完成的模型,请参阅 ex_simulink_functions_and_function_callers

使用 Simulink Function 模块创建 Simulink 函数

设置 Simulink Function 模块以通过函数调用方的输入参数接收数据,然后通过输出参数传回计算得到的值。

  1. 为您的模型添加一个 Simulink Function 模块。

  2. 在模块上输入函数原型。

    y = timestwo(x)

  3. 双击该模块打开定义函数算法的子系统。

  4. 添加 Gain 模块,并将增益参数设置为 2

使用从 Stateflow 图中导出的图形函数创建 Simulink 函数

在 Stateflow 图中建立图形函数,通过输入参数从函数调用方接收数据,并通过输出参数传回计算得到的值。设置图参数以将函数导出到 Simulink 模型。

在 Stateflow 图中定义图形函数

在 Stateflow 图中创建图形函数。定义函数接口和函数定义。

  1. 将 Stateflow 图添加到您的 Simulink 模型中。双击 Simulink 模块图。在搜索框中,输入 chart,然后从搜索结果中选择“”。

  2. 双击打开图。

  3. 添加图形函数。从左侧工具栏中,点击图形函数图标 并将其拖到图上。

  4. 定义函数接口。在函数框中,用函数接口 y = timestwo(x) 替换 ?

  5. 定义函数算法。点击转移箭头,并将 ? 替换为 {y = 2*x}

测试图形函数.  在导出为 Simulink 模型之前,在 Stateflow 图中测试图形函数。

  1. 在图中添加用于测试函数的默认转移。从左侧工具栏中,点击默认转移箭头 并将其拖到图上。

  2. 双击箭头,将 ? 替换为 {y1 = timestwo(x1)}

  3. 向图中添加输入端口。打开模型资源管理器。在左侧窗格中,选择表 Chart。从菜单中,选择添加 > 数据。将名称设置为 x1 并将范围设置为“输入”。

  4. 向图中添加输出端口。从菜单中,选择添加 > 数据。将名称设置为 y1 并将范围设置为“输出”。

  5. 添加 Sine Wave 模块以提供测试数据作为输入,并添加 Scope 模块以查看输出的结果。

  6. 运行仿真。

为图形函数设置参数

指定函数输入和输出参数的大小、复/实性和类型。图只能导出具有完全指定的原型的函数。

  1. 打开模型资源管理器。在建模选项卡上,从设计部分中,选择模型资源管理器

  2. 在左窗格中,选择图形函数。

  3. 从中间窗格的列视图列表中,选择 “Stateflow”。选择筛选器图标 ,然后从切换列表中选择所有 Stateflow 对象。从中部窗格表中,选择输入或输出参数。

  4. 在右窗格中,将“大小”设置为 1(标量),将复/实性设置为 “off”(实数),并将类型设置为 “double”。

  5. 使用输出函数参数 y 重复步骤 23

为图形函数设置导出函数参数

设置参数,以便在仿真过程中将图形函数从 Stateflow 图导出到 Simulink 模型。

  1. 打开模型资源管理器。

  2. 在左窗格中,选择包含图形函数的图。

  3. 在右侧的属性对话框中,选中导出图级别函数复选框,点击应用按钮,然后选中将导出的函数视为全局可见复选框。

    如果您从另一个 Stateflow 图(而不是导出图形函数的图)调用导出的图形函数,则不需要选中将导出的函数视为全局可见复选框。

使用从 Stateflow 图中导出的 MATLAB 函数创建 Simulink 函数

在 Stateflow 图中建立 MATLAB 函数,通过输入参数从函数调用方接收数据,然后通过输出参数传回计算得到的值。设置图参数以将函数导出到 Simulink 模型。

在 Stateflow 图中定义 MATLAB 函数

在 Stateflow 图中创建 MATLAB 函数。定义函数接口和函数定义。

  1. 将 Stateflow 图添加到您的 Simulink 模型中。双击模块图。在搜索框中,输入 chart,然后从搜索结果中选择“”。

  2. 打开图。

  3. 添加 MATLAB 函数。从左侧工具栏中,点击图形函数图标 并将其拖到图上。

  4. 定义函数接口。在函数框中,用函数接口 y = timestwo(x) 替换 ?

  5. 双击函数框以打开 MATLAB 代码编辑器。用 MATLAB 代码定义函数算法。

测试 MATLAB 函数.  在导出为 Simulink 模型之前,在 Stateflow 图中测试 MATLAB 函数。

  1. 在图中添加用于测试函数的默认转移。从左侧工具栏中,点击默认转移箭头 并将其拖到图上。

  2. 双击箭头,将 ? 替换为 {y1 = timestwo(x1)}

  3. 向图中添加输入端口。打开模型资源管理器。在左侧窗格中,选择表 Chart。从菜单中,选择添加 > 数据。将名称设置为 x1 并将范围设置为“输入”。

  4. 向图中添加输出端口。从菜单中,选择添加 > 数据。将名称设置为 y1 并将范围设置为“输出”。

  5. 添加 Sine Wave 模块以提供测试数据作为输入,并添加 Scope 模块以查看输出的结果。

  6. 运行仿真。

为 MATLAB 函数设置参数

指定函数输入和输出参数的大小、复/实性和类型。图只能导出具有完全指定的原型的函数。

  1. 打开模型资源管理器。在建模选项卡上,从设计部分中,选择模型资源管理器

  2. 在左侧窗格中,选择 MATLAB 函数。

  3. 从中间窗格的列视图列表中,选择 “Stateflow”。选择筛选器图标 ,然后从切换列表中选择所有 Stateflow 对象。从中部窗格表中,选择输入或输出参数。

  4. 在右窗格中,将大小设置为 1(标量),将复/实性设置为 “off”(实数),并将类型设置为 “double”。

  5. 使用输出函数参数 y 重复步骤 23

为 MATLAB 函数设置导出函数参数

设置参数以在仿真过程中从 Stateflow 图中导出 MATLAB 函数。

  1. 打开模型资源管理器。

  2. 从左窗格中,选择包含 MATLAB 函数的图。

  3. 在右侧的属性对话框中,选中导出图级别函数复选框,点击应用按钮,然后选中将导出的函数视为全局可见复选框。

    如果您从另一个 Stateflow 图(而不是导出的 MATLAB 函数的图)调用导出的 ®MATLAB 函数,则不需要选中将导出的函数视为全局可见复选框。

另请参阅

模块

相关主题