2

我在 Dymola 中构建了一个简单的模型,但我对der()运算符感到困惑,为什么der()运算符只适用于时间变量?如果我想使用其他变量的导数怎么办

在下面的代码中,如果我想计算dy/dx(y到x的导数),我应该怎么做?

model A
  Real x, y, z;
equation
  x=10;
  y=sin(x);
  z=der(y);
end A;

在此处输入图像描述

4

1 回答 1

5

通过函数支持偏导数。请参阅 Modelica Spec 3.4: Partial Derivatives of Functions中的第 12.7.2 章。

您必须将感兴趣的方程移动到函数的算法部分。您的示例可能如下所示:

model A
  Real x, z;

  function f1
    input Real a;
    output Real b;
  algorithm 
    b :=sin(a);
  end f1;

  function der_f1 = der(f1, a);

equation 
  x = 10;
  z = der_f1(x);
end A;
于 2020-10-08T12:28:22.973 回答