国家和过渡行动是在状态内部或转换旁边编写的指令,以定义如何实现状态流®图表在模拟期间的行为。有关更多信息,请参阅模型有限状态机。
这个图表中的操作定义了一个状态机,该状态机通过经验验证Collatz猜想的一个实例。对于给定的数字输入,图表计算了HaIlstone序列通过迭代这个规则:
如果那么,甚至是。
如果奇怪的是。
Collatz猜想指出,每个正整数都有一个最终达到1的冰雹序列。
图表由三个州组成。在模拟开始时,在里面
状态初始化图表数据:
本地数据N
设置为输入的值你
。
本地数据n2
何时为余数N
除以两个。
输出数据y
被设置为错误的
。
根据输入的奇偶性,图表转换为甚至
或奇怪的
状态。当状态活动在甚至
和奇怪的
状态,图表计算Hailstone序列中的数字。当序列达到一个值一个时,输出数据y
就变成了真正的
并触发一个停止仿真(金宝appSimulink)Simulink®模型中的金宝app块。
状态操作定义状态流图在状态处于活动状态时所做的工作。最常见的状态操作类型是条目
那期间
,出口
行动。
状态行动类型 | 缩写 | 描述 |
---|---|---|
条目 |
EN. |
当状态变为活动状态时,时间步上发生动作。 |
期间 |
杜 |
当状态已经处于活动状态且图表没有转移出该状态时,将在一个时间步上执行操作。 |
出口 |
前任 |
当图表转换出状态时,行动发生在时间步骤中。 |
您可以通过完整的关键字指定状态操作的类型(条目
那期间
那出口
)或其缩写(EN.
那杜
那前任
).还可以使用逗号组合状态操作类型。例如,具有组合类型的操作条目,在
当状态变为活动状态时,在状态变为活动状态时发生在时间步骤中,而状态保持活动状态。
此表列出了HaIlstone图表中每个状态操作的结果。
状态 | 行动 | 结果 |
---|---|---|
在里面 |
条目:n2 = rem(n,2);y = false; |
当在里面 在仿真开始时变得活跃,确定奇偶校验N 和套装y 到错误的 。 |
出口:Y = isequal(n,1); |
过渡时在里面 在一次阶段之后,确定是否N 等于1。 |
|
甚至 |
条目,期间:n = n / 2;n2 = REM(n,2); |
计算下一个数量的haIlstone序列(
|
奇怪的 |
n = 3*(n-y)+1;n2 = REM(n,2); |
计算下一个数量的haIlstone序列(3.
在大部分模拟中, |
转换操作定义状态流程图在从活动状态转换时所做的工作。最常见的转换操作类型是条件操作和条件操作。要指定转换操作,请使用以下语法的标签:
[条件) {conditional_action}
条件
是一个带布尔表达式,它决定了转换是否发生。如果未指定条件,则假设评估为true的隐含条件。
conditional_action
是一条在保护转换的条件为真时执行的指令。条件动作发生在条件之后,但在任何条件之前出口
或条目
国家行动。
这个表格列出了冰雹图中每个转换操作的结果。
过渡 | 行动 | 行动类型 | 结果 |
---|---|---|---|
缺省转换成在里面 |
n = U. |
有条件的行动 | 在模拟开始时,分配输入值你 到本地数据N 。 |
转变从在里面 到甚至 |
n2 == 0. |
健康)状况 | 当N 甚至发生过渡。此转换源的第1号表示在转换之前评估它奇怪的 。 |
转变从在里面 到奇怪的 |
没有一个 | 当N 是奇数的,发生转换。此转换源处的第2号表示它在转换后评估它甚至 。 |
|
转变从奇怪的 到甚至 |
n2 == 0. |
健康)状况 | 当N 甚至发生过渡。 |
转变从甚至 到奇怪的 |
n2〜= 0 |
健康)状况 | 当N 是奇数的,发生转换。 |
Y = isequal(n,1) |
有条件的行动 | 发生转换时,确定是否N 等于1。 |
假设您想要计算以九个值开头的HaiLstone序列。
在模型配置参数对话框中,在解算器,选择以下选项:
开始时间:0.0
停止时间:正
类型:固定步骤
固定阶梯:1
在符号窗格中,选择本地数据N
。在物业检查员,下记录, 选择日志信号数据。
在常数块,输入的输入你
= 9。
在模拟选项卡,单击跑。
该图表响应了这些操作:
当时T.= 0.,默认转换到在里面
发生。
过渡动作设定值N
到9。
这在里面
国家变得活跃。
这条目
行动在里面
放n2
到1和y
到错误的
。
当时T.= 1, 条件n2 == 0.
是假的,所以图表准备过渡到奇怪的
。
这出口
行动在里面
套y
到错误的
。
这在里面
状态变为不活动。
这奇怪的
国家变得活跃。
这条目
行动奇怪的
放N
到28岁n2
为0。
当时T.= 2, 条件n2 == 0.
是真的,所以图表准备过渡到甚至
。
这奇怪的
状态变为不活动。
这甚至
国家变得活跃。
这条目
行动甚至
放N
14,n2
为0。
当时T.= 3, 条件n2〜= 0
是假的,所以图表没有接受过渡。
这甚至
国家仍然活跃。
这期间
行动甚至
放N
到7岁n2
为1。
当时T.= 4, 条件n2〜= 0
是真的,所以图表准备过渡到奇怪的
。
过渡动作集y
到错误的
。
这甚至
状态变为不活动。
这奇怪的
国家变得活跃。
这条目
行动奇怪的
放N
22日,n2
为0。
该图表继续计算HaIlstone序列,直到它到达值N
= 1在时间T.= 19.。
当时T.= 20.,图表准备从甚至
到奇怪的
。
之前甚至
状态变为非活动状态,则转换操作设置y
到真正的
。
这奇怪的
国家变得活跃。
这条目
行动奇怪的
不要修改N
或n2
。
这停止仿真块连接到输出信号y
停止仿真。
在模拟标签,下面审查结果,点击数据检查。
要查看Hailstone序列的值,请在“模拟数据检查器”中,选择记录信号N
。
停止仿真(金宝appSimulink)