首先、模擬時間要設定好,時間太長了就會一直等著。
第二、變步長解法器也要設定
第三、變步長的最大值也要設定當然越小越好,但是太小了會模擬的時間很長,就會一直在等著。
模擬的時間很重要,有一次做斜坡函式如果模擬時間不夠長,都無法到達自己想要的值,只能模擬一部分。
使用者在Type後面的第一個下拉選項框中指定模擬的步長選取方式,可供選擇的有Variable-step(變步長)和Fixed-step(固定步長)方式。變步長模式可以在模擬的過程中改變步長,提供誤差控制和過零檢測。固定步長模式在模擬過程中提供固定的步長,不提供誤差控制和過零檢測。使用者還可以在第二個下拉選項框中選擇對應模式下模擬所採用的演算法。
變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
ode45:預設值,四/五階龍格-庫塔法,適用於大多數連續或離散系統,但不適用於剛性(stiff)系統。它是單步解法器,也就是,在計算y(tn)時,它僅需要最近處理時刻的結果y(tn-1)。一般來說,面對一個模擬問題最好是首先試試ode45。
ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個單步解法器。
ode113:是一種階數可變的解法器,它在誤差容許要求嚴格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計算當前時刻輸出時,它需要以前多個時刻的解。
ode15s:是一種基於數字微分公式的解法器(NDFs)。也是一種多步解法器。適用於剛性系統,當用戶估計要解決的問題是比較困難的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。
ode23s:它是一種單步解法器,專門應用於剛性系統,在弱誤差允許下的效果好於ode15s。它能解決某些ode15s所不能有效解決的stiff問題。
ode23t:是梯形規則的一種自由插值實現。這種解法器適用於求解適度stiff的問題而使用者又需要一個無數字振盪的解法器的情況。
ode23tb:是TR-BDF2的一種實現, TR-BDF2 是具有兩個階段的隱式龍格-庫塔公式。
discrtet:當Simulink檢查到模型沒有連續狀態時使用它。
步長引數:對於變步長模式,使用者可以設定最大的和推薦的初始步長引數,預設情況下,步長自動地確定,它由值auto表示。
Maximum step size(最大步長引數):它決定了解法器能夠使用的最大時間步長,它的預設值為“模擬時間/50”,即整個模擬過程中至少取50個取樣點,但這樣的取法對於模擬時間較長的系統則可能帶來取樣點過於稀疏,而使模擬結果失真。一般建議對於模擬時間不超過15s的採用預設值即可,對於超過15s的每秒至少保證5個取樣點,對於超過100s的,每秒至少保證3個取樣點。
Initial step size(初始步長引數):一般建議使用“auto”預設值即可。
模擬精度的定義(對於變步長模式)
Relative tolerance(相對誤差):它是指誤差相對於狀態的值,是一個百分比,預設值為1e-3,表示狀態的計算值要精確到0.1%。
Absolute tolerance(絕對誤差):表示誤差值的門限,或者是說在狀態值為零的情況下,可以接受的誤差。如果它被設成了auto,那麼simulink為每一個狀態設定初始絕對誤差為1e-6。
Mode(固定步長模式選擇)
Multitasking:選擇這種模式時,當simulink檢測到模組間非法的取樣速率轉換,它會給出錯誤提示。所謂的非法取樣速率轉換指兩個工作在不同取樣速率的模組之間的直接連線。在實時多工系統中,如果任務之間存在非法取樣速率轉換,那麼就有可能出現一個模組的輸出在另一個模組需要時卻無法利用的情況。透過檢查這種轉換,Multitasking將有助於使用者建立一個符合現實的多工系統的有效模型。
使用速率轉換模組可以減少模型中的非法速率轉換。Simulink提供了兩個這樣的模組:unit delay模組和zero-order hold模組。對於從慢速率到快速率的非法轉換,可以在慢輸出埠和快輸入埠插入一個單位延時unit delay模組。而對於快速率到慢速率的轉換,則可以插入一個零階取樣保持器zero-order hold。
Singletasking:這種模式不檢查模組間的速率轉換,它在建立單任務系統模型時非常有用,在這種系統就不存在任務同步問題。
Auto:這種模式,simulink會根據模型中模組的取樣速率是否一致,自動決定切換到multitasking和singletasking。
輸出選項
Refine output:這個選項可以理解成精細輸出,其意義是在模擬輸出太稀鬆時,simulink會產生額外的精細輸出,這一點就像插值處理一樣。使用者可以在refine factor設定模擬時間步間插入的輸出點數。
產生更光滑的輸出曲線,改變精細因子比減小模擬步長更有效。精細輸出只能在變步長模式中才能使用,並且在ode45效果最好。
Produce additional output:它允許使用者直接指定產生輸出的時間點。一旦選擇了該項,則在它的右邊出現一個output times編輯框,在這裡使用者指定額外的模擬輸出點,它既可以是一個時間向量,也可以是表示式。與精細因子相比,這個選項會改變模擬的步長。
Produce specified output only:它的意思是讓simulink只在指定的時間點上產生輸出。為此解法器要調整模擬步長以使之和指定的時間點重合。這個選項在比較不同的模擬時可以確保它們在相同的時間輸出。
首先、模擬時間要設定好,時間太長了就會一直等著。
第二、變步長解法器也要設定
第三、變步長的最大值也要設定當然越小越好,但是太小了會模擬的時間很長,就會一直在等著。
模擬的時間很重要,有一次做斜坡函式如果模擬時間不夠長,都無法到達自己想要的值,只能模擬一部分。
使用者在Type後面的第一個下拉選項框中指定模擬的步長選取方式,可供選擇的有Variable-step(變步長)和Fixed-step(固定步長)方式。變步長模式可以在模擬的過程中改變步長,提供誤差控制和過零檢測。固定步長模式在模擬過程中提供固定的步長,不提供誤差控制和過零檢測。使用者還可以在第二個下拉選項框中選擇對應模式下模擬所採用的演算法。
變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
ode45:預設值,四/五階龍格-庫塔法,適用於大多數連續或離散系統,但不適用於剛性(stiff)系統。它是單步解法器,也就是,在計算y(tn)時,它僅需要最近處理時刻的結果y(tn-1)。一般來說,面對一個模擬問題最好是首先試試ode45。
ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個單步解法器。
ode113:是一種階數可變的解法器,它在誤差容許要求嚴格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計算當前時刻輸出時,它需要以前多個時刻的解。
ode15s:是一種基於數字微分公式的解法器(NDFs)。也是一種多步解法器。適用於剛性系統,當用戶估計要解決的問題是比較困難的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。
ode23s:它是一種單步解法器,專門應用於剛性系統,在弱誤差允許下的效果好於ode15s。它能解決某些ode15s所不能有效解決的stiff問題。
ode23t:是梯形規則的一種自由插值實現。這種解法器適用於求解適度stiff的問題而使用者又需要一個無數字振盪的解法器的情況。
ode23tb:是TR-BDF2的一種實現, TR-BDF2 是具有兩個階段的隱式龍格-庫塔公式。
discrtet:當Simulink檢查到模型沒有連續狀態時使用它。
步長引數:對於變步長模式,使用者可以設定最大的和推薦的初始步長引數,預設情況下,步長自動地確定,它由值auto表示。
Maximum step size(最大步長引數):它決定了解法器能夠使用的最大時間步長,它的預設值為“模擬時間/50”,即整個模擬過程中至少取50個取樣點,但這樣的取法對於模擬時間較長的系統則可能帶來取樣點過於稀疏,而使模擬結果失真。一般建議對於模擬時間不超過15s的採用預設值即可,對於超過15s的每秒至少保證5個取樣點,對於超過100s的,每秒至少保證3個取樣點。
Initial step size(初始步長引數):一般建議使用“auto”預設值即可。
模擬精度的定義(對於變步長模式)
Relative tolerance(相對誤差):它是指誤差相對於狀態的值,是一個百分比,預設值為1e-3,表示狀態的計算值要精確到0.1%。
Absolute tolerance(絕對誤差):表示誤差值的門限,或者是說在狀態值為零的情況下,可以接受的誤差。如果它被設成了auto,那麼simulink為每一個狀態設定初始絕對誤差為1e-6。
Mode(固定步長模式選擇)
Multitasking:選擇這種模式時,當simulink檢測到模組間非法的取樣速率轉換,它會給出錯誤提示。所謂的非法取樣速率轉換指兩個工作在不同取樣速率的模組之間的直接連線。在實時多工系統中,如果任務之間存在非法取樣速率轉換,那麼就有可能出現一個模組的輸出在另一個模組需要時卻無法利用的情況。透過檢查這種轉換,Multitasking將有助於使用者建立一個符合現實的多工系統的有效模型。
使用速率轉換模組可以減少模型中的非法速率轉換。Simulink提供了兩個這樣的模組:unit delay模組和zero-order hold模組。對於從慢速率到快速率的非法轉換,可以在慢輸出埠和快輸入埠插入一個單位延時unit delay模組。而對於快速率到慢速率的轉換,則可以插入一個零階取樣保持器zero-order hold。
Singletasking:這種模式不檢查模組間的速率轉換,它在建立單任務系統模型時非常有用,在這種系統就不存在任務同步問題。
Auto:這種模式,simulink會根據模型中模組的取樣速率是否一致,自動決定切換到multitasking和singletasking。
輸出選項
Refine output:這個選項可以理解成精細輸出,其意義是在模擬輸出太稀鬆時,simulink會產生額外的精細輸出,這一點就像插值處理一樣。使用者可以在refine factor設定模擬時間步間插入的輸出點數。
產生更光滑的輸出曲線,改變精細因子比減小模擬步長更有效。精細輸出只能在變步長模式中才能使用,並且在ode45效果最好。
Produce additional output:它允許使用者直接指定產生輸出的時間點。一旦選擇了該項,則在它的右邊出現一個output times編輯框,在這裡使用者指定額外的模擬輸出點,它既可以是一個時間向量,也可以是表示式。與精細因子相比,這個選項會改變模擬的步長。
Produce specified output only:它的意思是讓simulink只在指定的時間點上產生輸出。為此解法器要調整模擬步長以使之和指定的時間點重合。這個選項在比較不同的模擬時可以確保它們在相同的時間輸出。