Simulink建模之模型的構建風格(一

2021-07-31 08:45:32 字數 2243 閱讀 9608

劃分兩個部分,第一部分說一下什麼是基本模組,虛擬模組,以及非虛擬模組及其對模型執行順序的影響;第二個部分翻譯了mathwork

的汽車諮詢委員會發布的

《使用matlab

、simulink

和stateflow

進行控制系統建模指南》中關於模型構建風格的部分內容。(參考軟體版本:

matlab2012b)

一、模組

我們在建立乙個

simulink

模型時,最基本的單元就是

block

,我們可以稱之為「模組」,每乙個模型都是由很多個模組和子模組所組成的。

一般我們把

simulink

庫里的模組稱之為「基本模組」,例如:

我們也會自定義一些模組,用於一些特定的功能或者用來進行層級劃分。

二、虛擬模組和非虛擬模組

simulink

根據其**特性在將模組的屬性分為兩種:虛擬模組和非虛擬模組。在我們進行建模的過程中需要小心區分這兩種類別的模組:非虛擬模組在**過程中是起實際的作用的,對其進行編輯或者增加刪除操作,會影響到模型的執行和改變模型的結果;而虛擬模組在**的過程中是不起實際作用的,主要是為了從圖框上進行程式的層次劃分以及保持模型的圖形介面的整潔性等作用。還有一些模組在某些特定條件下為非虛擬模組,有些條件下為虛擬模組,我們可以稱之為條件虛擬模組。

simulink

中的虛擬模組和條件虛擬模組如下表:

了解虛擬模組和非虛擬模組是非常必要的,這兩者的區別在生成**時可以直觀的看到(虛擬模組不會生成實際的變數或者函式),另外,子系統是否是虛擬模組對於模型的各個模組的執行順序有著直接的影響。

simulink

模型的執行是依照資料驅動模式來進行執行的。在

matlab2012

版中我們可以使用下面的方式來檢視各個模組的執行順序與層級結構。(

display-> blocks-> sortedexecutionorder

,其他版本也有相應的選項)

我們來看一下這個簡單的例子,首先建立乙個簡單模型如下圖,選擇

sortedexecutionorder

,然後選擇

simulation-> updatediagram。

在模型的左上角出現紅色的標號,表達的含義為:

[層級號]:

[執行順序]。

root

層級號碼為

0,依次類推。

這裡可以看到

in1,in2

由於是虛擬節點沒有標號,由於

simulink

是資料驅動的方式,

unitdelay

中定義了初始值,所以模型

unitdelay

作為起點進行運算。

如果我將中間的部分變成

subsystem

如下圖:

root

層的in1

、in2

,subsystem

以及subsystem

層中的in1

、in2

、out1

、out2

都沒有標號為虛擬模組,封裝之後的各個模組的執行順序和未封裝之前的一致,

subsystem

以及in

和out

模組只是在圖形介面上對模型進行了分層,模型實際執行時,還是講

subsystem

中的內容展開到上一級模型中進行運算。

下面右擊

subsystem

,選擇block parameter

,在彈出的對話方塊中選擇

treat as atomic uint

如下圖,然後選擇確定。

然後再對模型進行更新

simulation-> updatediagram

,模型的標號發生了變化,如下圖

subsystem

模組中的模組的層級結構被調整為1,而

subsystem

模組自身也有了標號的執行順序,該簡單模型較之前沒有設定原子子系統的模型比較,

subsystem

種的gain1

和root

層中的gain

、out1

的執行順序被改變了,也就是說

subsystem

被看做實際的模組,其中的運算全部完成後,再輸出資料驅動其後的模組。

在進行大規模建模,而且對實時性要求比較嚴苛的系統中,對條件虛擬子系統的運用對最終的**結果和生成**都有直接的影響。

Simulink建模之模型的構建風格(二

翻譯了maab的建議指南中有關模型構件風格的建議,這些建議對與汽車行業的工程師還是很有幫助的。三 模型的層級結構以及用法 對模型進行層級結構劃分有利於提高模型的可讀性 可維護性。一般在進行邏輯系統建模時,進行層級結構劃分時,會用到下面的一些模組 subsystem subsystem conditi...

5 ABC模型之業務建模

業務建模是最關鍵的乙個環節,如何真實的反應業務流程,讓成本更精確的分攤到對應的服務物件上,這個過程需要業務的專家和負責人,業務系統的產品經理 工程師都需要加入進來,並且共同討論和決策,讓業務加入是確定成本的分攤是否合理,各個利益部門是否達成共識,讓技術加入是討論資料和系統是否支援。在建模過程我們需要...

關於建立模型的例項

建立的是乙個工資查詢的模型 實現模型首先需要找到相應的表 然後在表裡面找到相應的資料 進行查詢 得到結果 員工工資查詢 主要是需要查到 員工的 客戶號 賬號 和 交易流水 select a.emp no,a.emp name,a.card no,a.idcard no,c.custno,d.khmc...