MBSE建模學習之九:參數圖及其仿真


參數圖 ParametricDiagram
參數圖是 SysML 增加的一種專門用于系統參數計算的圖。參數圖本質上是一個特殊的內部模塊圖,它主要表示模塊的約束中的參數和模塊的屬性之間綁定關系。這里“綁定”的意思,可以理解為變量的“代入”。參數圖中通過綁定連接器把值屬性和約束的約束參數連起來,參數圖仿真的時候就把值屬性的值代入到約束的表達式方程中進行計算,并把計算結果返回到對應的屬性。不過這個“屬性值”和“約束參數值”代入計算、結果再返回到“屬性值”的概念,是通過仿真過程類型的實例化、屬性( property )生成“槽”( slot ),對“槽”賦值來實現的。以下我們通過參數圖中的各種元素的意義、仿真的實際過程來說明這個原理,以及如何進行仿真。
建立仿真的語境
SysML 的仿真方法是對“類”模型的實例化。我們建立的“模型”主要是建立了一套“類”以及它們相互的關系。在 SysML 中,對系統建模主要是使用“模塊”( Block ,是對類 --Class 的擴展)類。仿真過程中所謂的實例化,是生成用戶建立的“模塊”的實例。在模型中,用“實例說明”( Instance Specification )來表示一個實例?!皩嵗f明”的“類目”是這個模塊,“實例說明”的“槽”( Slot )對應模塊每個屬性。每個槽有一個“值”,這個“值”又是對應屬性的類型的實例。如果屬性有默認值的話,當生成槽的時候,這個默認值作為槽的初始值。如果在內部模塊圖中指定了屬性的初始值,初始值比默認值優先。
下面這個案例中定義了“電動牙刷系統”,它有五個子系統。在這圖中,我們定義了一個“可靠性指標參數容器”,所有系統和子系統都從這個容器繼承,這樣所有產品都自動具有了可靠性指標屬性,不用每個定義了。
MBSE建模學習之九:參數圖及其仿真的圖1
當“電動牙刷系統”模塊實例化的時候, 生成“電動牙 刷系統實例”,這個實例說明中的“槽”和屬性對應如下圖所示:
MBSE建模學習之九:參數圖及其仿真的圖2
在表示類型的“模塊”中,屬性是用“名稱 : 類型 = 默認值”這樣表示的。而“實例”中,和屬性對應的每個槽是用“屬性名稱 = 值”這樣表示的。在本文第一段中,我們說“屬性值”的時候,實際上是指“模塊”對應“實例說明”中屬性對應槽的值;“ 把值屬性的值代入到約束的表達式方程中進行計算,并把計算結果返回到對應的屬性 ”這句話其實是把“模塊的實例說明的槽的值代入到約束的表達式方程中計算,并把計算結果重新賦值給和屬性對應的槽。
定義通用的約束模塊
SysML 中增加了“約束模塊”這種元素,它的作用是保存一套通用的計算方程,這個方程可以在模型中被復用。
首先我們解釋以下準備建立的約束方程的物理意義。 我們建立的“可靠性指標參數容器”中的屬性解釋如下:
可靠度:一個 0~1 之間的概率值,表示系統在規定的條件下完成規定任務的概率;
任務時間:系統執行一個任務的時間,一般用小時作為單位(為了簡化模型,在這案例中我們都用實數作為屬性的類型,而沒有定義具體值類型。以下 MTBF 和失效率情況相同);
MTBF :系統平均故障間隔時間,一般用小時;
失效率:系統單位時間內發生故障的次數。
對于失效數據符合指數分布的產品(一般電子產品符合指數分布),這幾個指標之間有如下關系:
1 )失效率 =1/MTBF ,即失效率和 MTBF 是倒數關系;
2 )可靠度 =exp -1* 失效率 * 任務時間),“ exp ”是“ e 的指數”,即“ e 的( -1* 失效率 * 任務時間)次方”的意思, e 是自然常數。
“系統”和作為組成部分的“分系統”之間可靠度一般是按串聯計算(所有分系統的功能對于系統來講都是必不可少的,不是備份的關系)。針對我們上面建立的“電動牙刷系統”來講,電動牙刷系統的可靠度等于各子系統可靠度的連乘,寫成公式就是:
3 )“ R=R1*R2*R3*R4*R5 ”( R 對應電動牙刷系統的可靠度, R1~R5 對應每個子系統的可靠度)
我們把上面三個公式建立為三個約束模塊,如下圖所示:
MBSE建模學習之九:參數圖及其仿真的圖3
在約束模塊中,“約束”屬性如果是一個公式,就要用“ {} ”把公式括起來(否則認為是下一層的約束模塊)?!凹s束”公式中用到的變量,只能是“參數”中定義的約束參數(約束參數本質上也是一個“屬性”,可以認為約束模塊是只包含約束參數屬性、約束屬性或約束表達式的模塊)?!凹s束”表達式既可以是等式,也可以是不等式。如果是一個等式,在參數圖仿真中把它當一個賦值語句來應用。
定義子系統的參數圖
要計算系統的可靠度,我們需要先計算出來每個子系統的可靠度,然后使用系統可靠度計算公式來計算系統的可靠度(根據每個子系統的 MTBF 計算系統的 MTBF :指數分布串聯系統的 MTBF 等于所有子系統 MTBF 之和,再用單元計算可靠度的方法計算系統的可靠度也是可以的)。計算子系統的可靠度,使用單元可靠度計算公式、失效率計算公式。我們通過定義子系統的參數圖來應用這兩個公式。我們先定義一個子系統“無線充電底座子系統”參數圖,如下圖所示:
MBSE建模學習之九:參數圖及其仿真的圖4
在這個圖中,我們增加為子系統增加了兩個“約束屬性”,然后設置它們的類型為我們前面建立的約束模塊。然后通過這兩個約束屬性節點的右鍵菜單“顯示 > 顯示 /隱藏 約束參數”來在約束屬性節點中顯示作為其類型的約束模塊的約束參數。然后在圖中添加“值屬性”節點,并通過右鍵菜單“選擇已有屬性”設置為“無線充電底座子系統”中的值屬性。其中“可靠度”、“任務時間”、“失效率”都是繼承的屬性,不需要修改。“ MTBF ”屬性不“選擇已有屬性”,而是新增加的,它“重定義”了繼承的屬性“ ^MTBF ”(繼承的屬性前面有個 ^ 符號,重定義通過屬性框設置),因為我們要給它一個默認值“ 60000 ”(小時)。定義這個屬性的名稱、類型、默認值,可以直接在值屬性節點中輸入就可以,或者通過屬性框設置。
圖中我們還用“綁定連接器”把值屬性和約束屬性中的約束參數連起來。綁定連接器上顯示一個“ = ”號,它的意思就是總是要保持兩端的屬性的值相等。
其它 4 個子系統的參數圖基本相同。在“智睿思維基于模型的系統工程軟件”中不需要每個子系統重新畫這個參數圖,只要在模型瀏覽器上選擇這個圖的節點,“復制”;再選擇其它四個子系統節點,右鍵菜單“粘貼”,把這個圖復制四份就行了。其它四個子系統中僅僅是“ MTBF ”屬性的默認值不同,在這四個圖中選擇“ MTBF ”屬性節點,通過屬性框或直接修改節點中的文字修改 MTBF 的默認值(無線充電受電子系統的 MTBF=65000 , UI 子系統的 MTBF=58000 ,電路控制子系統的 MTBF=48000 ,電動子系統的 MTBF=50000 )。
定義系統的參數圖
為模塊“電動牙刷系統”建立一個計算其可靠度的參數圖,將每個子系統的可靠度和系統的可靠度屬性同計算系統可靠度約束公式中的約束參數綁定,通過參數圖仿真計算可以計算系統的可靠度。這個參數圖如下:
MBSE建模學習之九:參數圖及其仿真的圖5
圖中“ ^ 可靠度 :Real ”是電動牙刷系統的屬性,“ ^s1. 可靠度 :Real ”是圖中增加值屬性節點后、右鍵菜單“選擇已有屬性”時選擇“電動牙刷系統”的部件屬性“ s1 :無線充電底座子系統”的“可靠度”值屬性;其它“ s2~s5. 可靠度: Real ”也是其它四個子系統的可靠度值屬性。
參數圖仿真計算
在模型瀏覽器上選擇“電動牙刷系統”、右鍵菜單“仿真 > 運行”(活動當上面這個參數圖打開時通過主工具欄“分析 > 開始”進行仿真計算),即可進行電動牙刷系統參數圖仿真計算。在軟件中會出現一個顯示仿真結果的“變量”窗口,如下所示:
MBSE建模學習之九:參數圖及其仿真的圖6

這個窗口中有“電動牙刷系統”的可靠度屬性仿真結果:0.913816042044195;約束“:系統可靠度計算公式”下面有這個約束計算時用到的每個約束參數的結果??梢酝ㄟ^工具欄“保存該實例”將仿真結果保存到模型中。這個結果是一個類型為“電動牙刷系統”的實例,上面這個變量表中是這個實例的每個“槽”的值。


文章來源:智睿思維MBSE

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1