Main Content

指定 Stateflow 图的属性

图属性指定 Stateflow® 图如何与 Simulink® 模型对接。您可以在属性检查器、模型资源管理器或图属性对话框中修改这些属性。

要使用属性检查器,请执行以下操作:

  1. 建模选项卡的设计数据下,选择属性检查器

  2. 在 Stateflow 编辑器中,点击该图。

  3. 属性检查器中,编辑图属性。

要使用模型资源管理器,请执行以下操作:

  1. 建模选项卡的设计数据下,选择模型资源管理器

  2. 模型层次结构窗格中,选择图。

  3. 对话框窗格中,编辑图属性。

要使用图属性对话框,请执行以下操作:

  1. 在 Stateflow 编辑器中,右键点击图。

  2. 选择属性

  3. 在属性对话框中,编辑图属性。

您还可以使用 Stateflow.Chart 对象以编程方式修改图属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API

Stateflow 图属性

您可以在以下位置设置下列图属性:

  • 属性检查器属性选项卡

  • 模型资源管理器或图属性对话框中的常规选项卡。

名称

图的名称。此属性为只读。当您在模型资源管理器和图属性对话框中点击图名称超链接时,图将在 Stateflow 编辑器中打开。

状态机

Simulink 子系统的名称。此属性为只读且在属性检查器中不可用。点击状态机名称超链接时,将打开“状态机”属性对话框。

动作语言

定义图中状态和转移动作语法的动作语言。选项包括:

  • MATLAB

  • C

默认值为 “MATLAB”。有关详细信息,请参阅使用 MATLAB 和 C 作为动作语言语法时的差异

状态机类型

要实现的状态机语义的类型。选项包括:

  • 经典

  • Mealy

  • Moore

经典图提供完整的 Stateflow 语义。Mealy 和 Moore 图使用这些语义的子集。默认值为“经典”。有关详细信息,请参阅Mealy 和 Moore 状态机概述

更新方法

仿真更新或唤醒 Simulink 模型中 Stateflow 图时所用的方法。

设置描述
继承

来自 Simulink 模型的输入决定图在仿真过程中何时唤醒(默认值)。

如果您为图定义输入事件,则Stateflow 图由其触发端口上的信号显式触发,该信号源自连接的 Simulink 模块。您可以将此触发输入事件设置为响应 Simulink 信号而发生。Simulink 信号可以是“上升沿”、“下降沿”或“任一沿”(上升和下降),或者是响应“函数调用”。有关详细信息,请参阅通过发送输入事件激活 Stateflow 图

如果不定义输入事件,Stateflow 图将从 Stateflow 模型隐式继承触发器。这些隐式事件是为图提供输入的 Stateflow 信号的离散或连续采样时间。如果您定义了数据输入,图将以其中最快的数据输入的速率唤醒。如果没有为图定义任何数据输入,图将按照其父级子系统的执行行为所定义的方式唤醒。

离散

Simulink 模型以固定时间间隔生成隐式事件,以您在采用时间图属性中指定的速率唤醒 Stateflow 图。Simulink 模型中的其他模块可以具有不同的采样时间。

连续Stateflow 图仅在主时间步内更新其状态,尽管它在主时间步和子时间步内都会计算输出和局部连续变量。图可以记录过零,这样,只要状态发生变化,Simulink 模型就可以对 Stateflow 图进行采样。Stateflow 图计算局部连续变量的导数。有关详细信息,请参阅Continuous-Time Modeling in Stateflow

采样时间

在仿真期间 Stateflow 图唤醒的时间间隔。采样时间可以是任何非零数字。采样时间的单位与 Simulink 仿真时间相同。Simulink 模型中的其他模块可以具有不同的采样时间。仅当您将图属性更新方法设置为“离散”时,此选项才可用。

启用过零检测

指定启用过零检测(默认值)。仅当您将图属性更新方法设置为“连续”时,此选项才可用。请参阅Disable Zero-Crossing Detection

启用 C 语言位运算

指定运算符 &^|~ 在动作语句中执行按位运算(默认值)。如果清除此复选框:

  • &|~ 执行逻辑运算。

  • ^ 执行幂运算。

此选项仅在使用 C 语言作为动作语言的图中可用。有关详细信息,请参阅对 Stateflow 数据的运算

用户指定的状态/转移执行顺序

指定图使用并行状态和转移的显式排序(默认值)。您可以确定图执行并行状态和测试来自源的转移的顺序。此选项仅在使用 C 语言作为动作语言的图中可用。有关详细信息,请参阅并行状态的执行顺序计算转移

导出图级别函数

将在图的根级别定义的函数的作用域扩展到模型的其他部分。此选项使 Simulink Caller 模块能够使用限定表示法 chartName.functionName 调用局部层次结构中的 Stateflow 函数。有关详细信息,请参阅Export Stateflow Functions for Reuse

将导出的函数视为全局可见

使整个模型中的 Stateflow 和 Simulink Caller 模块都能调用从 Stateflow 导出的函数,而无需使用限定表示法。仅当您选择图属性导出图级别函数时,此选项才可用。有关详细信息,请参阅Export Stateflow Functions for Reuse

初始化时执行(进入)图

指定图在时间 0 处初始化其状态配置,而不是在输入事件第一次发生时初始化其状态配置。有关详细信息,请参阅初始化时的图执行

每次图唤醒时初始化输出

指定图在每次唤醒时(而不仅仅是在时间 0 处)重置其输出值。无论何时触发 Stateflow 图,无论是由函数调用、边沿触发器还是时钟计时单元触发,都会重置输出值。如果为输出数据对象设置初始值,则输出将重置为该值。否则,输出重置为零。选择此选项可以:

  • 确保在每次 Stateflow 图执行时已定义所有输出。

  • 防止输出锁存(沿用之前执行中计算的输出值)。

  • 为所有图输出提供有意义的初始值。

有关详细信息,请参阅初始值

启用超时间步语义

指定图可以在每个时间步中进行多次转移,直到达到稳定状态。当您将图属性更新方法设置为“连续”时,此选项不可用。有关详细信息,请参阅Super Step Semantics

每个超时间步中的最大迭代次数

指定图在每个时间步内可以进行的最大转移次数。Stateflow 图在超时间步期间必定会发生一次转移,因此您所指定的值 N 代表额外转移的最大数量(共计 N+1 个)。仅当您选择图属性启用超时间步语义时,此选项才可用。有关详细信息,请参阅Maximum Number of Iterations

迭代次数过多后的行为

指定图在达到一个时间步内的最大转移次数后的行为。

行为描述
继续继续执行 Stateflow 图到下一时间步。
抛出错误

停止仿真并显示一条错误消息。此设置仅适用于仿真。在生成的代码中,图执行会继续进行到下一个时间步,而不生成错误。

仅当您选择图属性启用超时间步语义时,此选项才可用。

支持可变大小数组

指定图在仿真期间支持大小不同的数据。请参阅Declare Variable-Size Data in Stateflow Charts

将长度为 1 的维度视为固定大小

自 R2023a 起

指定有至少一个维度长度为 1 的输出数据是否为固定大小。启用此属性时,图会将包含长度为 1 的维度的图中的可变大小数据设置为固定大小。禁用此属性时,启用可变大小属性的图中的数据始终为可变大小。在 R2023a 之前,图将有至少一个长度为 1 的维度的数据视为固定大小。

此属性仅影响启用了可变大小属性的输出数据。请参阅Declare Variable-Size Data in Stateflow Charts

对整数溢出进行饱和处理

指定在生成代码中对整数溢出做饱和处理。请参阅Handle Integer Overflow for Chart Data

变体激活时间

在仿真和代码生成工作流的不同阶段,指定变体模块或变体参数的活动选择项。根据您使用此属性指定的阶段,Stateflow 确定生成的代码是只能包含活动选择项,还是同时包含活动和非活动选择项。

  • 更新图时分析所有选择项” - 启用此选项后,Stateflow 会分析活动和非活动选择项的信号属性不兼容性,但它只会为活动选择项生成代码。

  • 代码编译” - 启用此选项后,Stateflow 分析变体转移的活动和非活动选择项,并为活动和非活动选择项生成代码。这些选择项包含在 C 预处理器条件句 #if 和 #endif 中,当您编译生成的代码时,这些条件句会有条件地编译。

请参阅Control Indicator Lamp Dimmer Using Variant Conditions

启用时的状态

指定在函数调用输入事件重新启用图时状态的行为。选项包括:

  • 保持

  • 重置

请参阅Control States in Charts Enabled by Function-Call Input Events

创建监控输出

指定图产生激活状态输出。启用此选项后,您可以选择以下活动类型之一以进行输出:

  • 子活动

  • 叶状态活动

请参阅Monitor State Activity Through Active State Data

定点属性

您可以在以下位置设置图的定点属性:

  • 属性检查器属性选项卡

  • 模型资源管理器或图属性对话框中的定点属性选项卡。

定点属性仅在使用 MATLAB® 作为动作语言的图中可用。

将这些继承的 Simulink 信号类型视为 fi 对象

指定图是否将继承的定点和整数信号视为 Fixed-Point Designer™ fi 对象。

设置描述
定点图将所有定点输入视为 fi 对象(默认值)。
定点和整数图将所有定点输入和整数输入视为 fi 对象。

MATLAB Chart fimath

指定图的默认属性。

设置描述
与 MATLAB 相同使用与 MATLAB 中当前默认 fimath 对象相同的 fimath 属性。
指定其他

自行指定默认 fimath 对象。您可以:

  • 在编辑框内构造 fimath 对象。

  • 在 MATLAB 或模型工作区中创建一个 fimath 对象,并在编辑框中输入其变量名称。

有关详细信息,请参阅fimath Properties Usage for Fixed-Point Arithmetic (Fixed-Point Designer)

其他属性

您可以在以下位置设置图的其他属性:

  • 属性检查器信息选项卡。

  • 模型资源管理器或图属性对话框中的文档选项卡。

描述

图的描述。

文档链接

图的在线文档链接。您可以输入 Web URL 地址或者将文档显示为 HTML 文件或 MATLAB 命令行窗口中的文本的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。

状态机属性

Stateflow 状态机表示模型中的所有 Stateflow 模块(包括所有 chartsstate transition tablestruth tables)。您可以在“状态机”属性对话框中修改下列属性。

  1. 为模型中的任何图打开模型资源管理器或图属性对话框。

  2. 状态机图属性字段中,点击状态机名称链接。

  3. 在“状态机”属性对话框中,编辑 Stateflow 状态机的属性。

您还可以通过使用 Stateflow.Machine 对象以编程方式修改状态机属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API

Simulink 模型

定义此 Stateflow 状态机的 Simulink 模型的名称。此属性为只读。保存模型时,可以更改模型名称。

创建日期

此 Stateflow 状态机的创建日期。此属性为只读。

创建者

创建此 Stateflow 状态机的人员的名称。

修改

注释文本,用于记录对定义此 Stateflow 状态机的 Simulink 模型的修改。

版本

注释文本,用于记录定义此 Stateflow 状态机的 Simulink 模型的版本。

描述

Stateflow 状态机的描述。

文档链接

Stateflow 状态机的在线文档链接。您可以输入 Web URL 地址或者将文档显示为 HTML 文件或 MATLAB 命令行窗口中的文本的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。

另请参阅

模块

对象

工具

相关主题