问题原因
非线性求解错误,在求解某个非线性方程组时,没有找到解
解决方法
方法一:修改模型,削减非线性方程数量减少代数环
1.打开仿真设置中的模型翻译栏,勾选下图所示输出日志,如果没有有效信息,可以勾选全部输出日志

2.进行翻译,需要关注
2.1.输出的非线性块内容:变量及其初始值

2.2 撕裂后的非线性迭代个数

3、结合方法一中查看仿真过程中输出的非线性报错信息,确定是哪些非线性方程和其状态变量造成的,报错的原因往往是非线性块方程较多或者初值不正确,无法求解导致。
4、调试建议:
(1)、打破或消除非线性块,通过修改方程代码或者改变模型拓扑结构来改变方程结构a、例如流体系统中增加容腔,实现增加状态变量,打破了非线性块
b、机械组件中初值是否锁定状态,和状态变量的设置(5类状态优先级选择)
(2)、选择合适的非线性变量,及其初值。
(3)、调整模型中状态变量,
注:
1、每一步,积分器计算状态变量的值,然后再求非线性方程组的值
2、系统搭建需要符合物理规律,建议可以先从简单的开环系统进行调试,当符合要求后在进行组件添加逐步形成闭环。
3、内核求解的时候会按现有规则直接进行移项,有可能导致此问题(和内核的编译求解顺序有关)
方法二:找到非线性方程,修改公式
1、打开仿真设置中的调试栏,逐级勾选,不建议之前全部勾选,信息太多容易找不出报错
(1)、首先勾选“非线性求解结果”,“非线性统计信息”
(2)、如果上面的看不到有效信息,增加勾选“非线性迭代过程”,
(3)、如果上面的看不到有效信息,“混合方程迭代过程”,“错误信息中包含函数调用环境”
(4)、勾选全部

2、再次进行仿真,查看输出面板,仿真栏输出相关信息,如下图,

3、在仿真失败之后,末尾输出的那一块,就会输出哪些组件的哪些变量存在问题,导致仿真失败,如上图。此处说明出错的变量

4、根据模型,针对此变量涉及的方程进行修改。
注:
1、调整与之相关的方程尝试解决此问题,也可修改算法,步长,精度等仿真设置规避此问题
2、有时会报出多个此错误,时间前后变化,原因是:选用变步长算法进行计算时,当算法单步积分无法收敛,或者计算过程中出错,算法内部会调整单步积分步长,所以时间会有回退,以此更精确的迭代,因此时刻越来越小,此时可以检查非线性方程的结果是否在该时刻有跳变,而这个跳变是模型中事件抑制(noEvent)导致的,针对此处做方程的修改
3、无需使用时请取消勾选,此功能打开会影响软件仿真效率,使仿真变慢。