2016-12-07 47 views
1

时间步我有一个调用外部函数的Modelica模型。如果时间步长过大,则外部C++代码通常会引发异常。如何减少在应对外部函数引发异常

这似乎是正确的事情以响应做的是减少时间步长,然后再试一次。有没有办法减少时间步骤来应对异常?

回答

2

没有直接标准化的方式,但你可以捕获该异常,要么返回它作为一个错误标志的Modelica和使用assert,或者在C-包装(在catch部分使用ModelicaError使用ModelicaError C++可能是可能的)。

规范表明一个失败的断言(或ModelicaError的呼叫)之后的模拟可以与另一评价继续例如,用更短的步长,或者通过改变迭代变量的值。