Matlab 基于信号的simulink可变时间步长控制

Matlab 基于信号的simulink可变时间步长控制,matlab,simulink,Matlab,Simulink,我在Simulink中有一个频率渐变(sin-wt,其中w随时间增加),并且希望使用可变时间步长解算器。在模拟开始时,时间步长可能很大;最后,它们必须是小的 我试过调整相对公差,但似乎没有什么效果:末尾的时间步太长,正弦波每个周期只有2-3个点 有没有办法直接或间接地将时间步长与正弦波分辨率联系起来(例如,在模拟中添加块,以某种方式使时间步长随着频率的增加而减少)?据我所知,没有办法将这两者联系起来,因为没有一种机制可以从模型控制解算器。我猜你试过刚性和非刚性解算器?即使您的问题可能不是僵硬的,

我在Simulink中有一个频率渐变(sin-wt,其中w随时间增加),并且希望使用可变时间步长解算器。在模拟开始时,时间步长可能很大;最后,它们必须是小的

我试过调整相对公差,但似乎没有什么效果:末尾的时间步太长,正弦波每个周期只有2-3个点


有没有办法直接或间接地将时间步长与正弦波分辨率联系起来(例如,在模拟中添加块,以某种方式使时间步长随着频率的增加而减少)?

据我所知,没有办法将这两者联系起来,因为没有一种机制可以从模型控制解算器。我猜你试过刚性和非刚性解算器?即使您的问题可能不是僵硬的,僵硬的解算器可能更好。每当我需要这类数据时,我都会使用固定步长的解算器,采样时间很短,但你可以让它更友好一些。我会尝试以下方法:

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

simOut = sim('model', 'TimeEnd',10000);
您可以设置这样更改正弦波的模型:

您可以在每次模拟后更改
logspace
边界,这样您将有一个类似以下的循环:

模拟模型 收集兜售、推销等数据 更改块离散部分的采样时间,只需使用单个变量

我想你明白了,如果不让我知道的话