simulink仿真时。出现的警告。怎样解决?

simulink仿真时。出现的警告。怎样解决?,第1张

提示是说你的model里面不连续,应该使用VariableStepDiscrete仿真模式,而不是ode45模式。

有两种更改方法:

1、在该model的工具栏上选择simulation,再选择并进入configuration

parameters界面,从solver里面设置,type设置为variable-step,solver设置为discrete;

2、或者在Diagnostics子菜单里将'Automatic

solver

parameter

selection'

设置为none。

出现这个警告信息的原因:

在仿真参数设置对话框(Configuration Parameters)中,求解器选项(Solver options)的最大步长(Max Step Size)被设成“自动”(auto)。在这种情况下,离散求解器会使用最短采样时间作为最大步长,而连续求解器使用仿真起止时间的1/50作为最大步长。模型默认的开始时间是0,结束时间是10,所以其1/50就是0.2秒。

警告的作用:

关于最大步长

最大步长是Simulink求解器按时间进行步进时所允许的最大步长——注意,这是对变步长(Variable-step)求解器而言的(你的模型出现这样的提示,肯定是变步长求解器)。如果选择的是定步长(Fixed-step)求解器,参数设置对话框里面有一个类似的项是Fixed step size (fundamental sample time),同样可以设置为auto,也会导致类似(但不完全相同)的警告。

警告的作用

按照上面所说的自动步长设置规则,你新建一个模型,默认的求解器是变步长的,而默认的最大步长是auto,这样的参数设置对于多数模型可能是适用的,但对于有些模型,这样的步长可能不合适,可能错过模型的一些重要特性,从而导致仿真结果错误。所以Simulink发出一个警告,提醒用户注意这个问题。

怎样消除这个警告:

知道了原因和作用,如果你确定仿真结果可信,只是不想看到每次仿真都出来这样一个讨厌的警告,那么也很简单,提供两种做法给你:

在前述仿真参数设置对话框中,求解器选项的最大步长(Max Step Size)设成一个明确的数而不是auto(随便什么数都可以,比如0.2)。

如果不改最大步长,那就简单屏蔽掉警告信息,这也有两种做法:

通过用户界面:从仿真参数设置对话框选择诊断选项卡(Diagnostics pane),然后设置Automatic solver parameter selection为none。

简单的用一个命令代替上述GUI *** 作:

set_param(gcs,'SolverPrmCheckMsg','none')

打这么多字不容易,如果满意,就采纳了给个好评吧。

接上面的回答。选择了Fixed-Step 点一下下面那个小三角箭头下拉出步长菜单。再把步长由auto改为想要的值。下面是0.001秒的测试图。。

下面是开始系统默认的步长下的仿真结果:

系统默认步长的仿真图形


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11333321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存