2013-02-14 46 views
1

我在Simulink中有一个频率斜坡(sin wt,其中w随时间增加),并且想要使用可变时间步长求解器。在模拟开始时,时间步可能很大;最后,他们必须小。基于信号控制simulink可变时间步长大小

我试图调整的相对宽容,它并没有真正似乎有一个有用的效果:在最后的时间步长太长和正弦波有每个周期只有2-3个百分点。

是否有任何方式的时间步长以某种方式系在正弦波的分辨率,直接或间接地(例如在模拟中添加块以某种方式导致时间步长以降低随着频率的增加)?

回答

0

据我所知,目前还没有办法这两个链接,因为没有一种机制来控制从模型的求解。我猜你试过僵硬和不僵硬的解决者?即使你的问题可能不是僵硬僵硬的求解器可能会更好。每当我需要这种数据时,我都会使用一个固定的步进解算器,采样时间非常短,但是您可以使它更友好一些。我会尝试如下:

使用sim命令设置模拟停止时间。

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

您可以设置改变正弦波这样的模式:

Simple Model

每次模拟后,您可以改变logspace边界,所以你必须像一个循环:

模拟模型 收集tout,yout等数据 更改块的离散部分上的采样时间,只需使用一个变量即可。

我想你会明白,如果不让我知道!

HTH!