我有一个调用外部函数的Modelica模型。如果时间步长太大,通常外部C ++代码会抛出异常。
在回应中做正确的事情似乎是减少时间步骤并再试一次。有没有办法减少响应异常的时间步长?
答案 0 :(得分:2)
没有直接标准化方式,但您可以捕获异常并将其作为错误标志返回到Modelica并使用assert
,或者使用ModelicaError
C-wrapper(可能在C ++的catch-part中使用ModelicaError)。
规范声明在断言失败(或调用ModelicaError)之后,模拟可以继续进行另一次评估,例如,步长较短,或者通过改变迭代变量的值。