2013-02-14 88 views
1

我在Simulink中有一個頻率斜坡(sin wt,其中w隨時間增加),並且想要使用可變時間步長求解器。在模擬開始時,時間步可能很大;最後,他們必須小。基於信號控制simulink可變時間步長大小

我試圖調整的相對寬容,它並沒有真正似乎有一個有用的效果:在最後的時間步長太長和正弦波有每個週期只有2-3個百分點。

是否有任何方式的時間步長以某種方式系在正弦波的分辨率,直接或間接地(例如在模擬中添加塊以某種方式導致時間步長以降低隨着頻率的增加)?

回答

0

據我所知,目前還沒有辦法這兩個鏈接,因爲沒有一種機制來控制從模型的求解。我猜你試過僵硬和不僵硬的解決者?即使你的問題可能不是僵硬僵硬的求解器可能會更好。每當我需要這種數據時,我都會使用一個固定的步進解算器,採樣時間非常短,但是您可以使它更友好一些。我會嘗試如下:

使用sim命令設置模擬停止時間。

simOut = sim('model', 'TimeEnd',10000); 

您可以設置改變正弦波這樣的模式:

Simple Model

每次模擬後,您可以改變logspace邊界,所以你必須像一個循環:

模擬模型 收集tout,yout等數據 更改塊的離散部分上的採樣時間,只需使用一個變量即可。

我想你會明白,如果不讓我知道!

HTH!