跳转到内容

嵌入式控制系统设计/协调建模

来自维基教科书,开放世界中的开放书籍

协调建模

[编辑 | 编辑源代码]

模型表示

[编辑 | 编辑源代码]

系统的协调可以建模为离散事件系统 (DES)。这些系统的行为受时间异步发生的离散事件控制。为了模拟这种离散行为,可以使用有限状态机 (FSM) 或 Petri 网 (PN)。FSM 用于集中决策,而 PN 用于分布式决策(多个代理)(关于集中式与分布式:查看上一章)。这两种建模工具足以模拟所有 DES。每个 PN 都可以转换为 FSM,反之亦然。这些建模工具可用于可视化、分析、设计和优化系统的协调。

有限状态机 (FSM)

[编辑 | 编辑源代码]

FSM 将离散事件系统建模为以下模型基元组合:一组状态和一组转换。要从一个状态转换到另一个状态,必须满足两个状态之间的适当条件(事件的发生)。有关更详细的文档:查看本维基教科书中的相应章节维基百科页面,或 附录.

FSM 模型基元

FSM 的概念可以扩展;当事件的结果不是确定性的,而是随机的时,可以使用马尔可夫决策过程 (MDP) 对其进行建模。

Petri 网 (PN)

[编辑 | 编辑源代码]

PN 将离散事件系统建模为以下模型基元组合:一组地方、一组转换和一组令牌。地方代表条件,转换代表事件。PN 的状态由 PN 的标记描述。标记是将令牌分配到网络中的地方。这些令牌代表特定地方所指示的条件,这些条件在某一时刻成立。转换只有在启用时才能触发。如果每个输入地方至少有一个令牌,则转换被启用。当它触发时,将从每个输入地方获取一个令牌,并在转换的每个输出地方放置一个令牌。有关更详细的解释:查看本维基教科书中的相应章节维基百科页面,或 附录.


PN 模型基元

离散事件系统特性

[编辑 | 编辑源代码]

本节介绍离散事件系统的一般特性。

在自然界中,一切都是连续的过程。在用离散事件系统模拟系统时,假设某些行为不会随着时间的推移而改变。这种持续的行为由状态表示。

异步性质

[编辑 | 编辑源代码]

由于 FSM 和 PN 是离散模型,因此不会测量时间。因此,不知道从一个状态转换到另一个状态需要多长时间。只有事件发生的顺序很重要。在现实中,转换需要时间,因此在转换期间,系统将处于未定义状态,因为假设了瞬时转换。这些时序方面可以建模,但这会使模型更复杂,更难理解。

在模拟分布式系统时,必须考虑由于没有剩余的令牌来填充空转换输入(因为所有其他令牌也在等待转换)而永远无法触发转换的可能性。这种相互等待的情况称为死锁。

未解释模型

[编辑 | 编辑源代码]

FSM 和 PN 中的状态和转换用语句标记。这些标签清楚地表明状态代表什么以及什么物理条件将触发转换。如果更改这些标签的名称,这不会影响模型的执行。这就是 PN 和 FSM 未解释的原因。相同的 FSM 或 PN 可以描述许多系统。

层次结构

[编辑 | 编辑源代码]

每个 FSM 都可以是另一个更大 FSM 的子 FSM。对于 PN 也是如此。子 FSM 由一个单独的状态表示,而子 PN 由一个转换或一个地方代替。层次结构使模型更易于理解。

设计经验

[编辑 | 编辑源代码]

从前面的特性可以得出一些设计规则。这些规则在本节中总结。

在将系统的协调设计为离散事件系统时,应始终牢记时序方面。DES 中的转换不需要任何时间,这与现实生活形成对比。例如,输出可能需要一些时间才能出现,而忽略这一点可能会导致模型以不可预测的方式运行。始终在时序是系统重要特性的情况下模拟时间。

其他问题是启动和关闭行为。FSM 和 PN 通常被表示为它们永远不需要启动或关闭,而现实生活中的系统确实会遇到这些情况。忽略这些情况会导致系统以不可预测的方式运行,甚至可能造成危险。启动和结束过程可以建模为单独的 FSM 或 PN。

始终使用层次结构来澄清设计。使用层次结构,也可以轻松地模拟启动和结束。例如,启动是系统的一个状态。当满足所有条件时,系统可以进入下一个状态,即正常行为。当系统需要关闭时,它可以进入最后一个状态,即关闭状态。

FSM 的设计

[编辑 | 编辑源代码]

有限状态机 (FSM) 广泛用于设计控制系统。然而,关于哪种 FSM 模型 (Moore vs. Mealy) 最适合用于设计,并没有通用准则。模型的选择取决于应用、执行方式(例如,硬件系统通常最好实现为 Moore 模型)以及设计师或程序员的偏好(Moore 或 Mealy 模型?)。最容易理解和编程的模型是 Moore 模型。Mealy 模型的出口动作应被视为简化设计或减少状态数的辅助功能。这样,您将获得 Moore 和 Mealy 结构的混合模型。但是,在同步两个 FSM 时,请注意混合同步的 Mealy 和 Moore 模型。根据经验,这会导致 FSM 在不可预测的时间点相互接收输入。

许多编程工具,如 Xilinx,可以将状态图转换为电路,例如用于编程 FPGA。VHDL 是一种用于设计同步 FSM 的编程语言,也被广泛使用。Matlab Simulink 也是设计 FSM 的一个有用工具。

Petri 网设计

[编辑 | 编辑源代码]

Petri 网不太直观,但对于检查系统的死锁非常有用。当 FSM 行为不可预测或出现同步问题时,应使用 PN 对系统进行建模。

华夏公益教科书