如何减少时间步以响应外部函数抛出异常

时间:2016-12-07 04:47:17

标签: modelica

我有一个调用外部函数的Modelica模型。如果时间步长太大,通常外部C ++代码会抛出异常。

在回应中做正确的事情似乎是减少时间步骤并再试一次。有没有办法减少响应异常的时间步长?

1 个答案:

答案 0 :(得分:2)

没有直接标准化方式,但您可以捕获异常并将其作为错误标志返回到Modelica并使用assert,或者使用ModelicaError C-wrapper(可能在C ++的catch-part中使用ModelicaError)。

规范声明在断言失败(或调用ModelicaError)之后,模拟可以继续进行另一次评估,例如,步长较短,或者通过改变迭代变量的值。