FML Function

在Twin Builder中,除了自定義變數,我們還能使用FML 元件來做為變數,且更有彈性。

FML Feature

要使用FML Feature,在TwinBuilder中的元件庫收尋功能中,鍵入FML,可以找到兩個元件(FML_INIT與FML)。

圖 4-1

FML_INIT為初始值(Initial Values)元件 用於指定模擬中所使用參數的初始值。在 Initial Value Assignment(初始值指定)中定義的變數會在模擬開始時計算一次,並可在該工作表(sheet)中的各個元件中使用。

初始值(Initial Values)元件 在等號右側允許使用 Parameters(參數)Parametric Variables(參數變數)Parameter Ports(參數埠),因為它們只在模擬過程中評估一次。 但 Quantities(物理量)Signals(訊號) 則不允許使用。

變數名稱由使用者自行定義,可長達 50 個字元,且必須以字母開頭。變數名稱區分大小寫。

FML為Equation(方程式)功能,為所有 Twin Builder 模組提供數學運算表達式。其公式解析器(formula interpreter)可處理一般數學與邏輯運算式,這些運算式由多個運算元(operands)與運算子(operators)組成。此外,也支援常用的數學標準函數。變數可作為運算元使用(例如:電路元件的電壓或電流、方塊圖 Block Diagram 的量測值、State Graph 的變數與狀態等)。當然,一個運算式中也能引用其他運算式中的變數。

下面我們舉兩種例子為大家介紹用法。

範例一:電阻FML變數

圖 4-2

如圖 4-2,這裡我們用 10V DC電壓源與電阻來做第一個範例,其中電阻會依時間變化而做改變。裡面我們先用FML_INIT這個元件定義一個變數 R1為 1,並在Rin這個電阻元件中,定義其電阻值為R1。

再來拉入FML元件,定義 R1電阻值會隨時間做變化。

(R1:=if(Time > 0.02, 1, 10)。

上式的意思為,當時間大於0.02s時,其 R1是 1,其他的條件則為 10。請注意,這裡的 R1 是單純變數,是沒有物理單位的變數。

圖 4-3

由上面的設定,從圖 4-3可以觀察到,至 20ms時,電壓會因為電阻變化而做了改變。

範例二:Hmin & Hmax 隨時間切換

在第二個範例中,我們用 10V 40Hz的 Sine Wave AC 電壓源與 1 ohm電阻來做示範,其中 Hmin與 Hmax會依時間變化而做改變。

圖 4-4

如圖 4-4,這裡因為 Hmin與 Hmax是內建變數,所以不需要再特別宣告,我們直接使用 FML元件來定義隨時間切換功能。

Hmin:=if(Time > 0.020, 1e-02, 1e-05)

Hmax:=if(Time > 0.020, 1e-02, 1e-05)

當時間大於0.02s時, Hmin與 Hmax是 0.01s,其他的條件則為 0.00001s。

圖 4-5

從圖 4-5的模擬結果,我們可以觀察到在 20ms前,使用的是 0.01ms的 Time Step,而過了20ms後, Time Step則變為了 10ms。

Last updated