状态流®一个图形化编程环境是基于有限状态机. 使用Stateflow,您可以测试和调试设计,考虑不同的仿真场景,并从状态机生成代码。
有限状态机是从一种操作模式(状态)过渡到另一种模式的动态系统的表示。状态机:
作为复杂软件设计过程的高级起点。
使您能够关注从一种模式切换到下一种模式所需的操作模式和条件。
帮助您设计清晰简洁的模型,即使模型复杂度增加。
控制系统的设计严重依赖于状态机来管理复杂的逻辑。应用包括设计飞机、汽车和机器人控制系统。
在状态流程图中,结合状态、转换和数据来实现有限状态机。该状态流程图给出了汽车四速自动变速器换档逻辑的简化模型。该图表通过一个状态表示每个档位,显示为一个标有第一
,第二个
,第三
或第四
. 与它们所代表的齿轮一样,这些状态是独占的,因此一次只有一个状态处于活动状态。
图表左侧的箭头表示默认转换,并指示第一个变为活动状态。执行图表时,画布上会突出显示此状态。其他箭头表示状态之间可能的转换。要定义状态机的动态,可以将每个转换与布尔条件或触发器事件相关联。例如,此图表监控车辆的速度,并在速度超过固定阈值时切换到不同的档位。在模拟过程中,图表中的高亮显示会随着不同状态变为活动状态而改变。
此图表提供了一个简单的设计,忽略了发动机转速和扭矩等重要因素。通过将此状态流程图与MATLAB中的其他组件链接,可以构建更全面、更真实的模型®或Si金宝appmulink®.以下是三种可能的方法。
这个例子展示了一个经过修改的自动传输系统,它包含了状态层次结构、时间逻辑和输入事件。
层次结构:图表由一个超国家组成齿轮逻辑
这围绕着前一示例中的四速自动变速器图表。这个超级状态控制着汽车的速度和加速度。在执行期间,齿轮逻辑
始终处于活动状态。
时态逻辑:在州里齿轮逻辑
行动每(0.25秒)
决定汽车的速度。接线员每一个
创建执行图表并更新图表数据的MATLAB计时器速度
每0.25秒。
输入事件:输入事件加速
,巡航
,减速
重置图表数据的值三角洲
. 该数据确定汽车在每个执行步骤中是加速还是保持速度。
您可以直接通过命令窗口或使用脚本在MATLAB中将此图表作为对象执行。您还可以编写一个MATLAB应用程序,通过图形用户界面控制图表的状态。例如,当您单击按钮时,此用户界面将向图表发送输入事件。在图表中,MATLAB函数小部件
控制界面上仪表和指示灯的值。
要开始该示例,请在应用程序设计器工具条中,单击跑.该示例将继续运行,直到您关闭用户界面窗口。
或者,在Stateflow编辑器中状态图选项卡,单击跑. 要控制车速,请使用加速,减速,巡航“符号”窗格中的按钮。要停止该示例,请单击停止.
有关将状态流程图作为MATLAB对象执行的更多信息,请参见MATLAB中的执行.
该示例为自动变速器系统提供了更复杂的设计。状态流程图在Simulink模型中显示为一个块。模型中的其他块表示相关的汽车部件。图表通过输入和输出连接共享数据,与其他块交互。要打开图表,请单击图表左下角的箭头金宝appshift_logic
块。
此图表结合了状态层次结构、并行性、活动状态数据、本地事件和时态逻辑。
层次结构:国家gear_state
包含四速自动变速器图表的修改版本。状态选择状态
包含表示稳态、升档和降档操作模式的子状态。当情况需要换到高档或低档时,这些状态变为激活状态。
并行性:平行国家gear_state
和选择状态
显示为带虚线边框的矩形。这些状态同时运行,即使其中的子状态打开和关闭。
活动状态数据:产值齿轮
反映模拟过程中齿轮的选择。图表从中的活动子状态生成此值gear_state
.
本地活动:此图表使用本地事件代替布尔条件向上的
和向下
触发档位之间的转换。这些事件源于发送
指挥选择状态
当车速超出选定档位的工作范围时。Simulink函数金宝app计算
根据选定的档位和发动机转速确定操作范围的边界值。
时态逻辑:为防止连续快速换档,选择状态
使用时态逻辑运算符之后
推迟广播向上的
和向下
事件。仅当换档时间超过预定时间时,状态才会广播其中一个事件笨蛋
.
要运行模型的模拟,请执行以下操作:
双击用户输入块。在“信号编辑器”对话框中,从活动场景列表。默认配置文件是通过操作
.
点击跑。在“状态流编辑器”中,图表动画突出显示模拟过程中的活动状态。若要减慢动画速度,请在调试选项卡,选择慢
从动画速度下拉列表。
在范围块中,检查模拟的结果。每个示波器在模拟过程中显示其输入信号的图形。
本示例为汽车变速器系统建模提供了另一种选择。状态流程图在Simulink模型中显示为一个块。模型中的其他块表示相关的汽车部件。图表通过输入和输出连接共享数据,与其他块交互。要打开图表,请单击图表左下角的箭头金宝app齿轮逻辑
块。
此图表结合了状态层次结构、活动状态数据和时态逻辑。
层次结构:该车型将四速自动变速器图表放置在超级跑车内齿轮
. 超级状态监控车辆和发动机转速,并触发换档。状态档位左上角列出的操作确定选定档位的操作阈值和布尔条件值向上的
和向下
. 标签恩,杜
指示在状态首次变为活动状态时执行状态操作(EN
=条目
)以及在状态处于活动状态时的每个后续时间步(杜
=在期间
).
活动状态数据:产值齿轮
反映模拟过程中齿轮的选择。图表从中的活动子状态生成此值齿轮
.
时态逻辑:为防止连续快速换档,布尔条件向上的
和向下
使用时态逻辑运算符期间
控制档位之间的转换。当选定档位的车速超过预定时间时,该条件有效笨蛋
(以秒为单位)。
要运行模型的模拟,请执行以下操作:
双击用户输入块。在“信号编辑器”对话框中,从活动场景列表。默认配置文件是通过操作
.
点击跑。在“状态流编辑器”中,图表动画突出显示模拟过程中的活动状态。若要减慢动画速度,请在调试选项卡,选择慢
从动画速度下拉列表。
在Scope块中,检查模拟的结果。该范围显示了在模拟期间选择的齿轮的图形。