将显式导数函数添加到Modelica.Math.Vectors.interpolate
我有一个稳态代数模型(没有der()表达式)和一个非线性方程。在Dymola中进行转换时,方程组将产生数值雅可比矩阵。我想删除数值雅可比矩阵(如果可能的话),以提高模型的性能 在设置参数Hidden.PrintFailureToDifferentiate=true(由于)后,我看到Dymola发出警告:将显式导数函数添加到Modelica.Math.Vectors.interpolate,modelica,openmodelica,dymola,Modelica,Openmodelica,Dymola,我有一个稳态代数模型(没有der()表达式)和一个非线性方程。在Dymola中进行转换时,方程组将产生数值雅可比矩阵。我想删除数值雅可比矩阵(如果可能的话),以提高模型的性能 在设置参数Hidden.PrintFailureToDifferentiate=true(由于)后,我看到Dymola发出警告: Cannot find derivative of function: InitializationParameterLoop.InitFunctions.interpolate(xVector
Cannot find derivative of function:
InitializationParameterLoop.InitFunctions.interpolate(xVector, yVector, x, 1)
请注意,InitializationParameterLoop.InitFunctions.interpolate函数是Modelica.Math.Vectors.interpolate函数的副本,已复制,以便在需要时在自己的包中进行修改
我试图通过对插值函数进行以下更改,为导数dy/dx添加一个明确的定义:
- 将衍生注释添加到函数定义中: 函数插值“在向量中插值”扩展了Modelica.Icons.function注释(导数=dydx)
- 添加受保护的实变量dydx: 实dydx
- 在算法部分计算dydx:
如果abs(x2-x1)>0,则 dydx:=(y2-y1)/(x2-x1); 其他的 dydx:=符号(y2-y1)*Modelica.Constants.inf; 如果结束代码>