# 警告(3401)

# 3401-1

# 警告信息

函数注解中导函数 %1!s! 的属性 %2!s! 的等式右边 %3!s! 不是输入变量, 该导函数声明无效.

# 产生原因

语义规定导函数属性 zeroDerivative 与 noDerivative 值应为独立于函数微分变量的输入参数, 否则产生警告3401.

# 解决方法

将导函数属性 zeroDerivative 与 noDerivative 值统一为独立于函数微分变量的输入参数.

# 示例

model _3401_1_AttrInDerAnnoWarning
  function b
    input Real x;
    input Real z[:,2];
    input Real x_der;
    output Real y_der;
  algorithm 
    y_der := x_der;
  end b;
  function temp
    annotation (derivative(zeroDerivative = a) = b); // Warning:3401
    //annotation (derivative(zeroDerivative = z) = b); // OK z是独立于函数微分变量的输入参数
    input Real x;
    input Real z[:,2];
    output Real y;
  algorithm 
    y := x + 1;
  end temp;
  Real a;
  Real c[2,2];
  Real result = temp(a, c);
end _3401_1_AttrInDerAnnoWarning;

# 3401-2

# 警告信息

函数注解中导函数 %1!s! 的属性 %2!s! 的等式右边的函数 %3!s! 不可导, 该导函数声明无效.

# 产生原因

函数注解中指定的导函数不可导.

# 解决方法

函数注解中等式右边的函数改为可导.


# 3401-3

# 警告信息

函数注解中导函数 %1!s! 的属性 %2!s! 中变量 %3!s! 的变型不是等式形式, 该导数声明无效.

# 产生原因

导函数属性 noDerivative 值应为等式变型, 不满足此限制时报出警告3401.

# 解决方法

将导函数属性 noDerivative 值统一为等式变型, 即形如 y=g(x) 形式方程.


# 3401-4

# 警告信息

函数注解中导函数 %1!s! 的属性 %2!s! 中 %3!s! 不是函数调用, 该导数声明无效.

# 产生原因

函数注解中导函数属性 noDerivative 的值 y=g(x) 形式, 其中 g(x) 必须为函数调用, 若给出的不是上述形式, 则报出警告3401.

# 解决方法

使函数注解中导函数属性 noDerivative 的值 y=g(x) 形式中 g(x) 为函数调用.