主要内容

在模型中定义 Simulink 函数

您可以通过多种方式定义和实现 Simulink® 函数。

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

定义和调用 Simulink 函数

名为 ex_simulink_functions_and_function_callers 的模型显示定义和调用 Simulink® 函数的多种方法。

该模型通过以下方式定义 Simulink 函数:

  • Simulink Function 模块

  • 导出图形函数的 Stateflow® 图

  • 导出 MATLAB® 函数的 Stateflow 图

该模型通过以下方式调用每个 Simulink 函数:

  • Function Caller 模块

  • MATLAB Function 模块

  • Stateflow 图

使用 Simulink Function 模块定义 Simulink 函数

设置一个 Simulink Function 模块以通过输入参量从函数调用方接收数据,然后通过输出参量返回输出。

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

  2. 双击该模块上显示的文本并输入函数原型。

    y = timestwo(x)

    After you configure the block, the block icon displays the function prototype for the Simulink Function.

  3. 双击该模块以打开子系统。

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

    To represent the function algorithm, the Simulink canvas has a trigger port, f, with an input of x, gain block with value 2, and an output of y.

使用从 Stateflow 图导出的函数定义 Simulink 函数

您可以使用从 Stateflow 图导出的函数来定义 Simulink 函数。在 Stateflow 图中,您可以使用图形函数、MATLAB 函数或 Simulink 函数来实现函数行为。本节介绍如何定义和导出图形函数。您也可以按照下列步骤来定义和导出 MATLAB 函数或 Simulink 函数。

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

在 Stateflow 图中定义图形函数

在 Stateflow 图中定义图形函数。指定函数原型并实现函数行为。

  1. 将 Stateflow 图添加到您的 Simulink 模型中。

  2. 双击打开图。

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

  4. 指定函数原型。在函数框中,用函数原型 y = timestwo(x) 替换 ?

  5. 实现函数行为。点击转移箭头,并将 ? 替换为 {y = 2*x}

    After you configure the graphical function, the block icon displays the function prototype and the function definition.

测试图形函数

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

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

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

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

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

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

    After you add the components to test the graphical function, there is a Sine Wave block as input to a Stateflow chart which sends output to a Scope block.

  6. 对图进行仿真。

为图形函数设置参数

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

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

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

    Modeling Hierarchy pane of the Model Explorer shows the timestwo graphical function under the Chart.

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

    Column View pane of the Model Explorer shows the arguments of the timestwo graphical function.

  4. 在右窗格中,将大小设置为 1,将复/实性设置为 Off,并将类型设置为 double

    Data pane of the Model Explorer shows the parameters set for x.

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

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

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

  1. 打开模型资源管理器。在左窗格中,选择包含图形函数的图。

    Modeling Hierarchy pane of the Model Explorer shows the timestwo graphical function under the Chart.

  2. 在属性检查器中,选择导出图级别函数,然后点击应用按钮。然后选择将导出的函数视为全局可见

    如果从另一个 Stateflow 图调用导出的图形函数,则不需要启用将导出的函数视为全局可见参数。

有关详细信息,请参阅Export Stateflow Functions for Reuse (Stateflow)

另请参阅

| (Stateflow) | | |

主题