OpenModelica求解器达到最大迭代次数但无法找到根

时间:2017-11-10 14:05:18

标签: modelica openmodelica systemmodeler

我正在尝试将3个滑动体的一维系统模拟为I have explained here

enter image description here

这是我实施的代码:

/var/lib/docker/volumes/..

Wolfram SystemModeler能够运行模拟直到t = 6秒,但结果不是我期望的I have explained here。当我使用OpenModelica来解决模拟时,我得到以下错误:

  

C:/Users/foo/AppData/Local/Temp/OpenModelica/OMEdit/friction.exe -port = 64457 -logFormat = xmltcp -override =开始时间= 0时,停止时间= 10,stepSize的= 0.02,公差= 1e-如图6所示,解算器= DASSL,OUTPUTFORMAT =垫,variableFilter =。* -r = friction_res.mat -jacobian = coloredNumerical -w -lv = LOG_STATS   警告:迭代的最大数量达到了,但没有发现的根   警告:迭代的最大数量达到了,但没有发现的根   错误求解非线性系统42在时刻0.2   错误求解非线性系统42在时刻0.2   非线性系统42失败:在t = 0.2   求解非线性系统42在时间= 0.2失败。   欲了解更多信息,请使用-lv LOG_NLS。   模拟过程失败。退出,代码-1。

enter image description here

如果您能帮我了解问题是什么以及如何解决,我将不胜感激?

2 个答案:

答案 0 :(得分:2)

您正在尝试编写自己的摩擦模型。

在Modelica中,通常的方法是使用例如s参数化。继承自:Modelica.Mechanics.Translational.Interfaces.PartialFriction(或使用现有的模型)。

该文档在线时间: http://doc.modelica.org/help/Modelica_Mechanics_Rotational_UsersGuide.html#Modelica.Mechanics.Rotational.UsersGuide.ModelingOfFriction

具体来说,Fs12和Fs23是最大的粘附摩擦力,如果它们是常数,则可以工作 - 但这里它们依赖于Ff12和Ff23 - 而它们依赖于Fs12和Fs23;这不起作用。

答案 1 :(得分:2)

对于干摩擦建模,我可以推荐https://github.com/dzimmer/ZimmersModelicaTutorial/blob/master/Tutorial2015/BaseComponents/Friction/IdealDryFriction.mo,它以简单干净的方式重用Modelica.Mechanics.Translational.Interfaces.PartialFriction。