主要内容

重用金宝app函数Stateflow图表

一个金宝app仿真软件®函数是一个图形对象,它使您能够在状态和转换的操作中调用Simulink子系统。金宝app金宝app在独立的statflow中不支持Simulink函数金宝app®在MATLAB图表®

金宝appSimulink函数可以提高设计的效率,增加模型的可读性。典型的应用包括:

  • 定义需要Simulink块的函数金宝app

  • 多个控制器的调度执行

金宝app状态流程图中的Simulink功能具有以下优点:

  • 无函数调用子系统块

  • 没有输出事件

  • 没有信号线

Si金宝appmulink函数可以驻留在图表、状态或子图表中的任何位置。函数的位置决定了能够调用函数的状态和转换。

  • 如果您想只在一个状态或子图表及其子状态中调用函数,请将您的Simulink函数置于该状态或子图表中。金宝app该函数覆盖该状态或子图表的父级中同名的任何其他函数。

  • 如果要从图表中的任何位置调用函数,请将Simulink函数置于图表级别。金宝app

  • 如果您想从模型中的任何图表调用函数,请使用金宝app仿真软件的功能(金宝app模型)块来直接在Simulink画布中定义函数。金宝app有关更多信息,请参见金宝appSimulink功能概述(金宝app模型)

要从Simulink函数访问Stateflow数据,必须将该数据作为S金宝appimulink函数的输入。

这个Sim金宝appulink函数有它的名字模拟功能. 这需要三个论点(一个bc)并返回两个输出值(xy).

该函数包含一个Simulink子系统,该子系统将金宝app第一个参数乘以25的增益,并将其他两个参数组合成一个复杂的输出信号。

定义Simulink函数后,可以将其放金宝app置在状态流程图或Simulink模型中的任何位置。此外,您可以在相同或不同的模型中根据需要多次重用此功能。

定义一个金宝app作用

  1. 在对象选项板中,单击Simulink函数图标金宝app

  2. 在图表画布上,单击新Simulink函数的位置。金宝app

  3. 输入函数的签名标签。

    函数的签名标签指定了函数的名称及其参数和返回值的正式名称。签名标签有这样的语法:

    [return_val1, return_val2,…] = function_name (__arg1,最长,…)
    您可以指定多个返回值和多个输入参数。每个返回值和输入参数可以是标量、向量或值矩阵。对于只有一个返回值的函数,省略签名标签中的括号。

    所有参数和返回值必须使用唯一的变量名。

  4. 编程功能,通过双击功能框打开Simulink编辑器。金宝app最初,编辑器包含一个函数调用触发(金宝app模型)块和输入(金宝app模型)外埠(金宝app模型)与函数签名匹配的块。不能删除触发块。

  5. 在Simuli金宝appnk编辑器中,添加块以创建Simulink子系统并将其连接到输入外埠阻碍。

  6. 配置输入外埠阻碍。

    1. 双击每个块打开“块参数”对话框。

    2. 信号属性选项卡上,输入数据类型端口尺寸输入参数或返回值的值。

    3. 点击好啊

    请注意

    一个输入在Simulink函数金宝app中不能继承它的数据类型端口尺寸.有关更多信息,请参见显式设置输入块的属性

调用金宝app状态和转换中的函数

您可以从任何状态或转换的动金宝app作或从其他函数调用Simulink函数。

要调用Simulin金宝appk函数,请使用函数签名,并在函数签名中为每个正式参数包含参数值。

[return_val1, return_val2,…] = function_name (__arg1,最长,…)

如果两个参数的数据类型不同,则函数将参数强制转换为形式参数的类型。

指定的属性金宝app功能

您可以在“块参数”对话框中为Simulink函数指定属性。金宝app

  1. 在状态流编辑器中,右键单击Simulink函数。金宝app

  2. 选择属性

  3. 编辑Simulin金宝appk函数属性。

也可以从模型管理器中编辑Simulink函数金宝app属性。有关详细信息,请参阅模型资源管理器(金宝app模型)

有关Simulink函数属性的描述,请参见金宝app子系统,原子子系统,代码重用子系统(金宝app模型)

可以使用以下命令以编程方式指定Simulink函数的其他属性:金宝appStateflow.slf函数有关Stateflow编程接口的更多信息,请参阅Stateflow API概述

使用一个金宝app函数来访问金宝app阻碍

在本例中,您可以比较汽车系统的换挡逻辑的建模。第一个模型不使用Simulink函数,而第二个模型使用。金宝app

模型没有金宝app作用

这个模型使用了一个函数调用子系统,run (),S金宝appimulink模型计算换档阈值。状态流程图然后使用输出事件,CALC_TH (),调用子系统。

有关函数调用子系统的更多信息,请参见使用函数调用子系统(金宝app模型)

模型金宝app作用

使用Simulink函数也可以实现同样的功能。在此状态流程图中,Simulink函数金宝appcalc_th用于计算阈值。

行动selection_state包含对的函数调用calc_th,其中包含Simulink块。金宝app

此建模方法可最小化模型中的对象。

使用一个金宝app用于计划多个控制器的执行的函数

在本例中,您可以比较两种调度多个控制器执行的方法。第一种模型不使用Simulink函数,而第二种模型使用Simulink函数。金宝app

模型没有金宝app功能

该模型使用函数调用子系统为每个控制器建模。该模型在状态流图中包含输出事件,以安排子系统的执行。

对于每个输出事件,需要一条信号线将状态流图与相应的函数调用子系统连接起来。

模型法金宝app功能

每个控制器也可以用状态流程图中的Simulink函数建模。金宝app这个模型使用函数调用来调度子系统的执行。

此建模方法可最小化模型中的对象。

另请参阅

(金宝app模型)|(金宝app模型)|(金宝app模型)|(金宝app模型)|(金宝app模型)|(金宝app模型)|(金宝app模型)

相关话题