最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

MWORKS.Sysplorer前瞻版功能簡介——狀態(tài)機圖形建模

2023-03-23 10:03 作者:同元軟控  | 我要投稿

1? 引言


狀態(tài)機是一種描述系統(tǒng)行為的模型,能夠清晰地表示系統(tǒng)中的狀態(tài)和狀態(tài)之間的轉換關系,從而使得開發(fā)者能夠更加精確地描述系統(tǒng)行為和邏輯,對于提升系統(tǒng)的正確性和可靠性具有重要的作用。此外,狀態(tài)機還可以用于分析系統(tǒng)性能、生成測試用例等,具有廣泛的應用價值。


MWORKS.Sysplorer 2023a前瞻版基于多領域建模語言Modelica?3.5的狀態(tài)機語義實現了狀態(tài)機建模功能,同時支持使用圖形界面來構建狀態(tài)機。在完全兼容Modelica的前提下,MWORKS.Sysplorer 2023a前瞻版對狀態(tài)機建模易用性、可讀性進行了改進,提供了一系列方便快捷、易于操作的圖形建模的功能。通過圖形界面,用戶可以使用拖拽和連接的方式輕松創(chuàng)建狀態(tài)機的各個狀態(tài)和狀態(tài)之間的轉換關系,降低建模難度和出錯的概率。


MWORKS.Sysplorer 2023a前瞻版具有符合Modelica?3.5的狀態(tài)機語義、易于使用的圖形界面以及與多領域建模的結合等特點,這些特點使得MWORKS.Sysplorer可以更好地滿足狀態(tài)機建模的需求,基本完成了MATLAB/Simulink的Stateflow工具常用功能的替代。




2??狀態(tài)機簡介


首先我們一起了解一下狀態(tài)機的概念。狀態(tài)機全稱為有限狀態(tài)自動機(Finite State Machine,FSM),也被稱為有限狀態(tài)機(Finite Automaton,FA)或有限狀態(tài)轉換機(Finite State Transition Machine,FSTM),它不是一個實際的機器設備,而是一種常見的計算模型。


狀態(tài)機有兩大特點,一是離散的,二是有限的,描述事物的有限狀態(tài)機模型的元素由以下部分組成:

  • 狀態(tài)(State):表示系統(tǒng)可能處于的狀態(tài),可以用方塊或圓形表示。

  • 事件(Event):觸發(fā)狀態(tài)轉移的事件,可以用標簽表示。

  • 動作(Action):狀態(tài)轉移時執(zhí)行的動作,可以用標簽表示。

  • 轉移(Transition):表示狀態(tài)之間的轉換關系,可以用箭頭表示。

FSM 通過定義狀態(tài)、轉移、事件和動作來描述系統(tǒng)的行為,是一種非常有效的行為建模工具。生活中有很多狀態(tài)機例子,下圖為交通信號燈例子,可以通行的時候為綠燈,不能通行的時候為紅燈,轉換條件為一種狀態(tài)的持續(xù)時間結束,或者主動切換指令。對應到FSM,狀態(tài)為燈的顏色,轉移為通行狀態(tài)的轉換,事件為狀態(tài)的持續(xù)時間結束或主動發(fā)送切換指令,動作為顏色的切換。


△ 交通信號燈例子


讀至此處,相信大家已經掌握了一些狀態(tài)機的基礎知識了。那么接下來,我們就一起來了解MWORKS/Modelica中的StateMachine建模功能。




3??狀態(tài)機圖形建模


3.1??狀態(tài)機顯示與交互


A. 狀態(tài)機與狀態(tài)的構建


支持拖拽式建模是圖形建模高易用性的體現,MWORKS.Sysplorer2023a前瞻版提供了SysplorerEmbeddedCoder.StateMachine模型庫,內含狀態(tài)機與狀態(tài)基礎模型,支持拖拽式構建狀態(tài)機與狀態(tài)組件。


◎??拖拽式構建狀態(tài)機

從SysplorerEmbeddedCoder.StateMachine模型庫中,將Chart模型拖拽到圖形視圖,即可在當前模型中添加一個狀態(tài)機組件。


△ 拖拽狀態(tài)機


◎??拖拽式構建狀態(tài)


雙擊狀態(tài)機組件進入狀態(tài)機,然后從SysplorerEmbeddedCoder.StateMachine模型庫中,將State模型拖拽到圖形視圖,即可在當前狀態(tài)機中添加一個狀態(tài)組件。


△ ?拖拽狀態(tài)


B.?數據管理


MWORKS.Sysplorer提供了純界面交互的方式實現狀態(tài)機變量的設置。在狀態(tài)機模型中右鍵點擊打開上下文菜單,選擇設置狀態(tài)機變量,即可打開狀態(tài)機變量設置面板。


△ 狀態(tài)機變量設置界面圖


點擊狀態(tài)機變量面板的左上角綠色【添加變量】按鈕,即可在表格中添加數據行,新添加數據行包括了范圍、類型、名稱、值、端口5個屬性。

  • 范圍:表明數據的傳遞屬性,包括 Input(從外部輸入)、Local(內部數據)、Output(向外部輸出)、Parameter(參數)、Constant(常量)。

  • 類型:數據類型包括 Real、Integer、Boolean 三種類型。

  • 名稱:狀態(tài)機變量的名字,須為合法字符。

  • 值:變量的初始值。

  • 端口:當范圍選擇為 Input、Output 時,會在父層 Chart 組件上產生對應數據類型和數目的端口,此處端口號表示父層排列的順序,通過端口 Input、Output 可以將狀態(tài)機與其它組件連接起來共同構成模型來仿真。

△ 狀態(tài)機端口界面圖



3.2??狀態(tài)顯示與交互


A.?初始狀態(tài)設置


當在同一個狀態(tài)機中創(chuàng)建多個狀態(tài)時,根據創(chuàng)建的先后順序來看:第一個被創(chuàng)建的State左上角是黑色實心,表示其為初始狀態(tài),即系統(tǒng)模型運行時第一個被激活的狀態(tài)。根據設計需求,需要更改初始狀態(tài)時,單擊其它狀態(tài)左上角的空心圓圈,被選中的狀態(tài)將變?yōu)槌跏紶顟B(tài),同時原來狀態(tài)左上角的實心圓圈變?yōu)榭招膱A圈,自動滿足同一層次下僅能有一個初始狀態(tài)的約束條件。


△ 初始化狀態(tài)設置


B. 狀態(tài)方程編輯


狀態(tài)內的動作可以通過狀態(tài)方程實現。雙擊狀態(tài)組件后,會出現可用于編輯狀態(tài)方程的編輯框,編寫完畢單擊空白處即可在狀態(tài)內部顯示編輯的動作語句。


△ 雙擊進入狀態(tài)編輯框


如果狀態(tài)方程不符合語法規(guī)范,在完成編輯后,狀態(tài)機的邊框會變成紅色。


△ 紅色狀態(tài)與正常狀態(tài)對比圖



3.3??轉移線顯示與交互


A. 轉移線的構建


如下圖所示:將光標位置移至狀態(tài)邊緣,當光標狀態(tài)變?yōu)椤?”時,拖動鼠標,便會自動生成一條轉移線;此時,拖動鼠標至狀態(tài)邊緣另一端釋放,轉移線即可連接到該狀態(tài)組件。


△ 拖拽生成轉移線


轉移線可以繪制成折線或光滑的曲線。在拖拽生成轉移線過程中,在空白處釋放鼠標,則會在此處形成一個錨點;然后將鼠標移動到另一個位置,點擊空白處,形成下一個錨點;依次類推,直到點擊到目標狀態(tài)邊緣。使用以上方法,即可繪制出經過各個錨點的折線或曲線。


鼠標右鍵點擊轉移線,通過勾選【光滑】按鈕,可以實現折線和曲線可以互相轉化;通過勾選【保持橫平豎直】,可以實現轉移線的曼哈頓化。


△ 轉移線曲線、折線、曼哈頓化


B. 轉移線的屬性


Modelica轉移線的屬性包括轉移條件、轉移優(yōu)先級、是否即時轉移、是否重置狀態(tài)、是否同步轉移,以上屬性在轉移函數中以函數參數表示。


以上屬性可通過交互式屬性面板進行設置。雙擊轉移線,或右鍵點擊轉移線,選擇上下文菜單【屬性】,彈出轉移線屬性對話框。


△ 轉移線屬性對話框


  • 轉移條件:轉移條件以文本控件的樣式顯示在轉移線中點上方。在屬性對話框輸入欄輸入轉移條件,點擊確定后,刷新轉移條件文本。支持直接拖拽轉移條件文本以改變位置。


△ 轉移線條件


  • 轉移優(yōu)先級:對于從同一個狀態(tài)發(fā)出的多個轉移,起始端帶有數字標記,表示轉移線的優(yōu)先級,數字越小,優(yōu)先級越高。在屬性對話框輸入欄輸入轉移優(yōu)先級數字,點擊確定后,在轉移線起始端顯示優(yōu)先級。


△ 轉移線優(yōu)先級數字


  • 即時轉移:是否即時轉移在轉移線上以末端形狀區(qū)分,即時轉移為三角形,非即時轉移為菱形。在屬性對話框勾選即時轉移復選框即可完成設置。


△ 即時轉移與非即時轉移


  • 是否重置:是否重置在轉移線上以末端形狀的填充屬性區(qū)分,重置轉移為實心,非重置轉移為空心。在屬性對話框勾選重置狀態(tài)復選框即可完成設置。


△ 重置與非重置轉移


  • 同步轉移:是否同步轉移在轉移線上以起始端的形狀區(qū)分,同步轉移為一個長方形,非同步轉移沒有長方形。在屬性對話框勾選同步轉移復選框即可完成設置。


△ 同步與非同步轉移


C. 轉移線的狀態(tài)切換


轉移線兩端的狀態(tài)可以快速切換。按住轉移線的一端,將其拖拽到另一個狀態(tài)邊緣,則轉移線這一段的狀態(tài)將會切換成新的狀態(tài),同時會刷新各條轉移線的優(yōu)先級。


△ 轉移線狀態(tài)切換


3.4??嵌套狀態(tài)的顯示與交互


A. 嵌套狀態(tài)的構建


Modelica3.5支持狀態(tài)的嵌套,通過在狀態(tài)中聲明子狀態(tài)組件實現。MWORKS.Sysplorer支持純圖形化操作,實現狀態(tài)嵌套。


在狀態(tài)機模型中,右鍵點擊狀態(tài),點擊【進入組件】上下文菜單,然后將狀態(tài)模型SysplorerEmbeddedCoder.StateMachine.State拖拽到新的圖形界面,即可實現狀態(tài)的嵌套。在狀態(tài)內部,子狀態(tài)之間的初始狀態(tài)規(guī)則與父層一致,同樣是只能有一個初始狀態(tài)。


△ 進入狀態(tài)拖拽狀態(tài)


點擊組件導航欄中的上一層或【實例層次結構中后退】按鈕,回到上一層,可以看到子狀態(tài)顯示在父狀態(tài)內部。


△ 嵌套狀態(tài)顯示界面圖


B. 嵌套狀態(tài)的數據管理


與狀態(tài)機的操作相似,在狀態(tài)模型內部右鍵點擊打開上下文菜單,選擇設置狀態(tài)變量,即可打開狀態(tài)變量設置面板。狀態(tài)內部的變量面板對于狀態(tài)本身與嵌套狀態(tài)生效。由于狀態(tài)沒有輸入輸出端口,因此狀態(tài)內部的變量范圍相對于狀態(tài)機的變量范圍,沒有輸入和輸出,只有常數、參數與內部變量。


△ 狀態(tài)變量設置面板



4? 總結


本文介紹了MWORKS.Sysplorer針對狀態(tài)機圖形化建模需求,基于Modelica語言的狀態(tài)機語義,實現的一套方便快捷、易于操作的圖形建模的功能,并簡述了狀態(tài)機建模相比于傳統(tǒng)的使用代碼實現功能的優(yōu)勢。


MWORKS.Sysplorer不僅在控制器建模與代碼生成領域新增了狀態(tài)機建模功能,還實現了框圖建模、C Caller模塊、子系統(tǒng)設計、控制器仿真等許多服務于控制系統(tǒng)建模的常用功能。諸多新功能將于2023年3月隨MWORKS.Sysplorer2023a前瞻版正式上線,小伙伴們敬請期待~


原文鏈接:https://mp.weixin.qq.com/s/Oi6tleZIpDxQ4BWc-DLsRQ

MWORKS.Sysplorer前瞻版功能簡介——狀態(tài)機圖形建模的評論 (共 條)

分享到微博請遵守國家法律
广西| 密云县| 泰安市| 遵化市| 义乌市| 西平县| 怀来县| 寻乌县| 溆浦县| 田东县| 鹤庆县| 建水县| 涪陵区| 桦甸市| 黄浦区| 廊坊市| 江津市| 广平县| 门源| 乡宁县| 固镇县| 五常市| 佛冈县| 东阿县| 正定县| 彩票| 邢台市| 米林县| 九龙坡区| 乐平市| 宁陕县| 南京市| 麻江县| 丹寨县| 临漳县| 当阳市| 甘泉县| 桂阳县| 页游| 若尔盖县| 房产|