跳轉到內容

嵌入式控制系統設計/協調建模

來自華夏公益教科書

協調建模

[編輯 | 編輯原始碼]

模型表示

[編輯 | 編輯原始碼]

系統的協調可以建模為離散事件系統 (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 對系統進行建模。

華夏公益教科書