仿真模型的时间上升,因为微小的变化万博1manbetx

1视图(30天)
嗨,伙计们,我不知道,如果你可以帮助这个小数量的信息,但我不知道如何使它更清楚,所以我想我可以试一试:我有一个汽车双轨模型在仿真软件中实现。万博1manbetx最初设定的速度给电动机转矩输入。我用调节器能够取代,设置一个特定的速度。监管机构实际上很好,除了工作你不能改变速度,同时转向输入。这是因为轮胎的一部分力量有限的实现是这样的:
函数F_iy_max = KammKreis (F_ix F_R_max)
% # codegen
F_iy_max =√(F_R_max)。^ 2 - F_ix。^ 2);
F_R_max最大计算粘附的极限,而F_ix和F_iy Tireforces在x和y方向。所以当监管机构设置一个高加速度,倍根号下的价值将是负的,结果是复杂的,我不想要它。所以我试着解决这个问题通过替换这段代码的代码:
函数F_iy_max = KammKreis (F_ix F_R_max)
F_iy_max = 0 (1、4)
i = 1:4
如果(F_ix(我)^ 2)< = (F_R_max(我)^ 2)
F_iy_max (i) =√F_R_max (i) ^ 2 - F_ix(我)^ 2)
其他的
F_iy_max (i) = 0
结束
结束
所有这些coede修复这个问题,但上一次来模拟的时间例如300年代就像40多岁,而不是4 s。有人知道为什么发生这种情况吗?提前谢谢!

接受的答案

约翰·巴伯
约翰·巴伯 2015年9月1日
可能是一个零交点检测问题。一般来说,出现零交叉时,模型解算器复位,从而否定变步解算器的好处如果重置频繁发万博1manbetx生。在你的情况下,我怀疑隐含不连续造成的如果……else语句触发频繁的零交叉事件。这里有一些建议:
  1. 如果该功能块支持它,尝试禁用零交叉检测块只。万博1manbetx
  2. 试一试改变模型的零交叉的行为在配置参数对话框。具体来说,试着适应和非自适应的零交叉检测。您也可以在全球范围内禁用零交叉检测,但这可以影响仿真结果的准确性。
  3. 尝试重组你实现的功能产生“软”饱和饱和极限作为输入方法。
5个评论

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!