主要内容

粉状图的设计注意事项

粉粒机是一种有限状态机,其转换发生在时钟边缘。在米利图中,输出是输入和状态的函数。在每个时间步骤中,Mealy图都会被唤醒,计算其输入,然后转换到活动状态的新配置,也称为其状态下一个状态.图表在转换到下一个状态时计算输出。在独立的statflow中不支持Mealy语义金宝app®MATLAB图表®

粉状的语义

为了确保输出是输入和状态的函数,Mealy状态机强制执行以下语义:

  • 输出不依赖于下一个状态。

  • 该图表仅计算转换输出,而不计算状态输出。

  • 图表根据系统时钟周期性地唤醒。

    请注意

    图表为输入和时钟提供了一个时间基础(参见使用一个时间基计算输出和状态).

粉状图设计指南

要符合状态机的Mealy定义,请确保每次输入端口发生更改时,图表都会计算输出。

仅在条件操作中计算输出

只能在外部和内部转换的条件操作中计算输出。Mealy机器的一种常见建模风格是在条件下测试输入,并在相关操作中计算输出。

不使用状态动作或转换动作

不能在米利图中使用状态操作或转换操作。这个限制通过以下方式强制执行Mealy语义:

  • 防止图表在不考虑输入端口变化的情况下计算输出。

  • 确保输出取决于当前状态,而不是下一个状态。

限制数据范围

在Mealy图中,这些数据限制适用:

  • 限制机器父数据。机器父数据是为statflow机器定义的数据。状态流机器是状态流层次结构的最高级别。当您在这个级别定义数据时,机器中的每个图表都可以读取和修改数据。为了确保Mealy图不会访问可以在图外不可预测地修改的数据,不要使用机器父数据。

  • 不要定义数据存储内存。不能在Mealy图中定义数据存储内存(DSM),因为图表外部的对象可以修改DSM。状态流图使用数据存储内存与Simulink共享数据金宝app®模型。数据存储内存充当全局数据。在包含图表的S金宝appimulink层次结构中,其他块和模型可以修改DSM。粉状图不能访问可能不可预测地变化的数据。

限制事件的使用

限制在Mealy图表中使用事件:

  • 有效的用途:

    • 使用输入事件来触发图表。

    • 使用基于事件的时间逻辑来保护转换。

      时间逻辑条件值的变化就像米利图内部调度的事件。在每个时间步骤中,时态事件执行前的滴答数仅取决于图表的状态。有关更多信息,请参见时间逻辑运算符

      请注意

      在米利图中,时间逻辑运算符的基本事件必须是预定义的事件,例如蜱虫(见基于数据和状态的隐式事件).

  • 无效的用途:

    • 不能广播任何类型的事件。

    • 您不能使用本地事件来保护转换。局部事件违反了Mealy语义,因为它们不是确定的,并且可以在图表计算输出时发生。

    • 您不能使用隐式事件,例如chg (data_name)en (state_name),或例(state_name)

使用一个时间基计算输出和状态

您可以使用一个时间基准作为时钟和输入,由Simulink求解器确定。金宝appSimu金宝applink求解器将时钟速率设置为足够快以捕获输入变化。因此,Mealy图通常在同一时间步长中计算输出和更改状态。有关更多信息,请参见解决比较(金宝app模型)

相关的话题