杨帆,史波峰(陕西法士特汽车传动工程研究院,陕西 西安 710119)
关于State flow中Moore型和Mealy型的研究
杨帆,史波峰
(陕西法士特汽车传动工程研究院,陕西 西安 710119)
文章主要从实际开发设计中遇到的问题,尤其是针对不同类型模型(Mealy型和Moore型)的时序问题进行说明、仿真和分析,使得在未来工作中能够更快的提高建模效率和可用性。并以RS触发器为例来说明Mealy型和Moore型的不同,以便对日后的Simulink建模提供参考和帮助。
Simulink;Stateflow;Moore型;Mealy型;建模;时序
10.16638/j.cnki.1671-7988.2016.08.042
CLC NO.: U462Document Code: AArticle ID: 1671-7988(2016)08-130-02
近年,信息设备、汽车等业界伴随着多功能化和高性能化的发展,尤其在开发阶段,更多的会使用状态漂移来实现。状态漂移被广泛使用的原因有如下两点:一是状态漂移已被纳入标准的UML图表符号。二是状态漂移不仅容易学习,并解决复杂的系统问题。
但是,随着模型数量增多,状态机的时序问题也越来越凸显。为了解决这个问题,本文以SR触发器为例来分析他们的不同,并在以后的工作中,根据每个逻辑的特点,选择适合的类型。
我们以RS触发器为例来说明Mealy型和Moore型的不同。RS触发器的表达式和真值表如下所示:
表达式:
Q=(!R)&&(S||Q);
真值表:
表1
对于Mealy型的描述方法,是同时表示条件和动作。
(1,0)/1 表示当输入值是(1,0)输出值为1。Mealy型的状态Q1为输出值为0的状态,Q2为输出值变为1时飘逸的状态。通过上图可以看出,动作在漂移的过程当中发生的。
对于Moore型来说,如下所示。
状态本身就包含输出值,Q1为输出值为0的状态。Q2是输出值为1的状态。状态定义好之后,只需添加漂移的条件就可以完成状态漂移图。通过上图可以看出,动作是在状态当中设定的。
下面针对我们主要关注的Mealy型和Moore型漂移动作的时序,分析他们的不同,并通过实际建立它们的Simulink模型来验证。
对于Mealy型来说,当S、R的输入值变为1的瞬间,输出值根据漂移的动作而变化。
对于Moore型来说,相比Mealy型,需要1个单位的sampling延迟之后再输出漂移动作。也就是说,把Mealy型的时间延迟1个时间单位,那么输出结果就和Moore型一样了。
下面根据 SR触发器的表达式,分别建立 Mealy型和Moore型SR触发器的Simulink模型并仿真:
如下:
表格显示了sampling时间一定时动作的结果。
通过之前 Mealy型和 Moore型的区别简图可以得知,Mealy型是漂移来触发或实现动作,而Moore型是通过状态来触发或者实现动作。但是除此之外,我们还要考虑到状态漂移是以什么为对象,并且要表现哪个部分,那些结果和状态应该怎么样定义,这是进一步理解他们不同之处的要点。
如果在建立模型时,忽略延时问题,那么 Mealy型和Moore型在数学表达式上是等价的。但是由于这个延时的存在,对于两者的状态漂移的思考方法也应当不同,这也是最重要的点。
下图是不同类型的RS触发器的Simulink模型,以及实际的仿真结果。
仿真结果如下:
从以上两幅图中可以清楚的看到,Mealy型和Moore型的时序差异,这是实际控制中经常会遇到的问题。下面具体分析一下Mealy型和Moore型产生差异的原因。
对于Moore型来说,我们把它的动作从软件和硬件中分离出来。
在软件部分,当出现特定的输入值时,作为指令,应该输出向1移动的信号。当接收到这个信号,经过特定的时间,硬件开始动作。也就是说,在软件部分,Mealy型和Moore型是在相同的时间输出指令的。
另外,作为嵌入式软件使用状态漂移的时候,软件部分和机械部分要作为系统的全体考虑时,需要在设计阶段把软件部分的分离出来设计状态漂移图。
以上说明了Mealy型和Moore型时序的不同之处,并从根源上分析了产生这些不同之处的根本原因。
希望能在以后的设计中给大家提供参考和帮助。
[1]基于模型的设计及其嵌入式实现.北京航空航天大学出版社,2010.
Research on Moore type and Mealy type in State flow
Yang Fan,Shi Bofeng
(Shaanxi Fast Automobile Transmission Engineering Research Institute,Shaanxi Xi'an 710119)
This article mainly from the practical development and design encountered problems,especially according to timing problem of different types of Mealy and Moore model of description,simulation and analysis,which can faster to improve modeling efficiency and availability in the future work.And take the RS trigger as an example to illustrate the different types of Mealy and Moore,in order to provide reference and help for simulink modeling in future.
Simulink; stateflow; Moore Type; Mealy Type; Modeling; timing sequence
U462
A
1671-7988(2016)08-130-02
杨帆(1983-),男,工程师,就职于陕西法士特汽车传动工程研究院。主要从事硬件载环测试及软件开发。