Main Content

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

Simulink 函数:Simulink Function 模块,导出的 Stateflow 图和 MATLAB 函数

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

  • Simulink Function 模块内的 Simulink 模块

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

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

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

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

使用 Simulink Function 模块创建 Simulink 函数

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

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

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

    y = timestwo(x)

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

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

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

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

在 Stateflow 图中定义图形函数

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

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

  2. 双击打开图。

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

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

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

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

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

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

  3. 向图中添加输入端口。打开模型资源管理器。在左侧窗格中,选择表 Chart。从菜单中,选择 Add > Data。将 Name 设置为 x1 并将 Scope 设置为 “Input”。

  4. 向图中添加输出端口。从菜单中,选择 Add > Data。将 Name 设置为 y1 并将 Scope 设置为 “Output”。

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

  6. 运行仿真。

为图形函数设置参数

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

  1. 打开模型资源管理器。在 Modeling 选项卡上,从 Design 部分中,选择 Model Explorer

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

  3. 从中间窗格的 Column View 列表中,选择 “Stateflow”。选择筛选器图标 ,然后从切换列表中选择 All Stateflow Objects。从中部窗格表中,选择输入或输出参数。

  4. 在右窗格中,将 Size 设置为 1(标量),将 Complexity 设置为 “Off”(实数),并将 Type 设置为 “double”。

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

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

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

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

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

  3. 在右侧的属性对话框中,选中 Export Chart Level Functions 复选框,点击 Apply 按钮,然后选中 Treat Exported Functions as Globally Visible 复选框。

    如果您从另一个 Stateflow 图(而不是导出图形函数的图)调用导出的图形函数,则不需要选中 Treat Exported Functions as Globally Visible 复选框。

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

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

在 Stateflow 图中定义 MATLAB 函数

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

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

  2. 打开图。

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

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

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

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

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

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

  3. 向图中添加输入端口。打开模型资源管理器。在左侧窗格中,选择表 Chart。从菜单中,选择 Add > Data。将 Name 设置为 x1 并将 Scope 设置为 “Input”。

  4. 向图中添加输出端口。从菜单中,选择 Add > Data。将 Name 设置为 y1 并将 Scope 设置为 “Output”。

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

  6. 运行仿真。

为 MATLAB 函数设置参数

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

  1. 打开模型资源管理器。在 Modeling 选项卡上,从 Design 部分中,选择 Model Explorer

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

  3. 从中间窗格的 Column View 列表中,选择 “Stateflow”。选择筛选器图标 ,然后从切换列表中选择 All Stateflow Objects。从中部窗格表中,选择输入或输出参数。

  4. 在右窗格中,将 Size 设置为 1(标量),将 Complexity 设置为 “Off”(实数),并将 Type 设置为 “double”。

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

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

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

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

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

  3. 在右侧的属性对话框中,选中 Export Chart Level Functions 复选框,点击 Apply 按钮,然后选中 Treat Exported Functions as Globally Visible 复选框。

    如果您从另一个 Stateflow 图(而不是导出的 MATLAB 函数的图)调用导出的 ®MATLAB 函数,则不需要选中 Treat Exported Functions as Globally Visible 复选框。

另请参阅

模块

相关主题