直接進入正題,大家在使用simulink仿真的時候,有時會用到離散求解器對仿真模型進行求解,如下圖所示,其中需要設定的一個引數便是求解器的步長,下面通過幾個例子來具體感受一下這個步長設定的效果,

首先將求解器的步長設定位0.0001,如上圖所示,這時在simulink中搭建一個最簡單的仿真模型,如下圖所示,

在正弦波模塊中,采樣時間sample time這一項,表示執行該模型的步長,當其設定為-1的時候表示繼承上層(在這里就是求解器的)求解步長,所以首先將其設定為-1.也就是步長是0.0001.通過下圖的仿真結果,可以看出,50Hz波形的周期是0.02s,然后計算的步長設定為了0.0001,也就是在一個周期內要進行200次,這個可以通過數正弦波形中的小格子數量看出來,

現在,我們保持正弦信號的設定不變,將求解器中的步長設定為0.001.這個時候,我們根據上面的情況,先分析一波,也就是0.02除以0.001,一個周期的正弦波中將會出現20個階梯,然后再具體看一下結果(下圖),仿真的結果和我們預想的一樣,

加入說求解器的步長等于或者比一個正弦波的周期還大會出現什么情況呢,下圖依次將仿真步長改為0.01和0.1.可以看到兩種情況下的波形都是一條為0的線,這也說明模塊的執行步長一定要大于求解器的時間步長,且應該是整數倍的關系,

下面再來分析一種情況,首先把求解器的步長確定為0.0001,保持不變,然后改變正弦波模塊中的采樣時間,先讓其為0.0001.這個情況和上面已經分析過的第一種情況是一致的,也就是波形中將會產生200個階梯,現在如果把正弦波模塊的執行步長更改為0.001,可以得到下圖的結果,這個結果是怎么產生的呢,現在分析一下,首先正弦波的周期是0.02s,只有是按照正弦波模塊本身執行步長才能才能出現這樣的結果,也就是說模型的執行步長是要基于求解器的執行步長之上的,那假如模型的執行步長比求解器的步長還小的話會出現什么情況呢?這里將其設定為0.00001,發現就報錯了,提示“模型的執行步長一定要是求解器步長的整數倍”


轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/195252.html
標籤:其他
上一篇:影像處理作業(二)
下一篇:WPF的進度條與多執行緒
