FML Function
在Twin Builder中,除了自定義變數,我們還能使用FML 元件來做為變數,且更有彈性。
FML Feature
要使用FML Feature,在TwinBuilder中的元件庫收尋功能中,鍵入FML,可以找到兩個元件(FML_INIT與FML)。
請特別注意,FML的變數與區域變數和全域變數不同,不能使用FML功能計算另外兩種變數。

FML_INIT為初始值(Initial Values)元件 用於指定模擬中所使用參數的初始值。在 Initial Value Assignment(初始值指定)中定義的變數會在模擬開始時計算一次,並可在該工作表(sheet)中的各個元件中使用。
FML為Equation(方程式)功能,為所有 Twin Builder 模組提供數學運算表達式。其公式解析器(formula interpreter)可處理一般數學與邏輯運算式,這些運算式由多個運算元(operands)與運算子(operators)組成。此外,也支援常用的數學標準函數。變數可作為運算元使用(例如:電路元件的電壓或電流、方塊圖 Block Diagram 的量測值、State Graph 的變數與狀態等)。當然,一個運算式中也能引用其他運算式中的變數。
下面我們舉兩種例子為大家介紹用法。
範例一:電阻FML變數

如圖 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可以觀察到,至 20ms時,電壓會因為電阻變化而做了改變。
範例二:Hmin & Hmax 隨時間切換
在第二個範例中,我們用 10V 40Hz的 Sine Wave AC 電壓源與 1 ohm電阻來做示範,其中 Hmin與 Hmax會依時間變化而做改變。

如圖 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的模擬結果,我們可以觀察到在 20ms前,使用的是 0.01ms的 Time Step,而過了20ms後, Time Step則變為了 10ms。
Last updated