主要内容

有限状态机模型

状态流®一个图形化编程环境是基于有限状态机. 使用Stateflow,您可以测试和调试设计,考虑不同的仿真场景,并从状态机生成代码。

有限状态机是从一种操作模式(状态)过渡到另一种模式的动态系统的表示。状态机:

  • 作为复杂软件设计过程的高级起点。

  • 使您能够关注从一种模式切换到下一种模式所需的操作模式和条件。

  • 帮助您设计清晰简洁的模型,即使模型复杂度增加。

控制系统的设计严重依赖于状态机来管理复杂的逻辑。应用包括设计飞机、汽车和机器人控制系统。

一个例子状态流图表

在状态流程图中,结合状态、转换和数据来实现有限状态机。该状态流程图给出了汽车四速自动变速器换档逻辑的简化模型。该图表通过一个状态表示每个档位,显示为一个标有第一,第二个,第三第四. 与它们所代表的齿轮一样,这些状态是独占的,因此一次只有一个状态处于活动状态。

标有第一、第二、第三和第四状态的状态流程图。当速度高于或低于指定值时,图表在两种状态之间切换。

图表左侧的箭头表示默认转换,并指示第一个变为活动状态。执行图表时,画布上会突出显示此状态。其他箭头表示状态之间可能的转换。要定义状态机的动态,可以将每个转换与布尔条件或触发器事件相关联。例如,此图表监控车辆的速度,并在速度超过固定阈值时切换到不同的档位。在模拟过程中,图表中的高亮显示会随着不同状态变为活动状态而改变。

图表动画显示激活状态和转换。

此图表提供了一个简单的设计,忽略了发动机转速和扭矩等重要因素。通过将此状态流程图与MATLAB中的其他组件链接,可以构建更全面、更真实的模型®或Si金宝appmulink®.以下是三种可能的方法。

将图表作为MATLAB对象执行

这个例子展示了一个经过修改的自动传输系统,它包含了状态层次结构、时间逻辑和输入事件。

  • 层次结构:图表由一个超国家组成齿轮逻辑这围绕着前一示例中的四速自动变速器图表。这个超级状态控制着汽车的速度和加速度。在执行期间,齿轮逻辑始终处于活动状态。

  • 时态逻辑:在州里齿轮逻辑行动每(0.25秒)决定汽车的速度。接线员每一个创建执行图表并更新图表数据的MATLAB计时器速度每0.25秒。

  • 输入事件:输入事件加速,巡航,减速重置图表数据的值三角洲. 该数据确定汽车在每个执行步骤中是加速还是保持速度。

您可以直接通过命令窗口或使用脚本在MATLAB中将此图表作为对象执行。您还可以编写一个MATLAB应用程序,通过图形用户界面控制图表的状态。例如,当您单击按钮时,此用户界面将向图表发送输入事件。在图表中,MATLAB函数小部件控制界面上仪表和指示灯的值。

要开始该示例,请在应用程序设计器工具条中,单击.该示例将继续运行,直到您关闭用户界面窗口。

或者,在Stateflow编辑器中状态图选项卡,单击. 要控制车速,请使用加速,减速,巡航“符号”窗格中的按钮。要停止该示例,请单击停止

有关将状态流程图作为MATLAB对象执行的更多信息,请参见MATLAB中的执行

用一个带有本地事件的Simulink块来金宝app模拟图表

该示例为自动变速器系统提供了更复杂的设计。状态流程图在Simulink模型中显示为一个块。模型中的其他块表示相关的汽车部件。图表通过输入和输出连接共享数据,与其他块交互。要打开图表,请单击图表左下角的箭头金宝appshift_logic块。

此图表结合了状态层次结构、并行性、活动状态数据、本地事件和时态逻辑。

  • 层次结构:国家gear_state包含四速自动变速器图表的修改版本。状态选择状态包含表示稳态、升档和降档操作模式的子状态。当情况需要换到高档或低档时,这些状态变为激活状态。

  • 并行性:平行国家gear_state选择状态显示为带虚线边框的矩形。这些状态同时运行,即使其中的子状态打开和关闭。

  • 活动状态数据:产值齿轮反映模拟过程中齿轮的选择。图表从中的活动子状态生成此值gear_state

  • 本地活动:此图表使用本地事件代替布尔条件向上的向下触发档位之间的转换。这些事件源于发送指挥选择状态当车速超出选定档位的工作范围时。Simulink函数金宝app计算根据选定的档位和发动机转速确定操作范围的边界值。

  • 时态逻辑:为防止连续快速换档,选择状态使用时态逻辑运算符之后推迟广播向上的向下事件。仅当换档时间超过预定时间时,状态才会广播其中一个事件笨蛋

要运行模型的模拟,请执行以下操作:

  1. 双击用户输入块。在“信号编辑器”对话框中,从活动场景列表。默认配置文件是通过操作

  2. 点击。在“状态流编辑器”中,图表动画突出显示模拟过程中的活动状态。若要减慢动画速度,请在调试选项卡,选择动画速度下拉列表。

  3. 在范围块中,检查模拟的结果。每个示波器在模拟过程中显示其输入信号的图形。

将图表模拟为具有时间条件的Simulin金宝appk块

本示例为汽车变速器系统建模提供了另一种选择。状态流程图在Simulink模型中显示为一个块。模型中的其他块表示相关的汽车部件。图表通过输入和输出连接共享数据,与其他块交互。要打开图表,请单击图表左下角的箭头金宝app齿轮逻辑块。

此图表结合了状态层次结构、活动状态数据和时态逻辑。

  • 层次结构:该车型将四速自动变速器图表放置在超级跑车内齿轮. 超级状态监控车辆和发动机转速,并触发换档。状态档位左上角列出的操作确定选定档位的操作阈值和布尔条件值向上的向下. 标签恩,杜指示在状态首次变为活动状态时执行状态操作(EN=条目)以及在状态处于活动状态时的每个后续时间步(=在期间).

  • 活动状态数据:产值齿轮反映模拟过程中齿轮的选择。图表从中的活动子状态生成此值齿轮

  • 时态逻辑:为防止连续快速换档,布尔条件向上的向下使用时态逻辑运算符期间控制档位之间的转换。当选定档位的车速超过预定时间时,该条件有效笨蛋(以秒为单位)。

要运行模型的模拟,请执行以下操作:

  1. 双击用户输入块。在“信号编辑器”对话框中,从活动场景列表。默认配置文件是通过操作

  2. 点击。在“状态流编辑器”中,图表动画突出显示模拟过程中的活动状态。若要减慢动画速度,请在调试选项卡,选择动画速度下拉列表。

  3. 在Scope块中,检查模拟的结果。该范围显示了在模拟期间选择的齿轮的图形。

另见

|||

相关的话题