为什么 Modelica 中的 "der()" 运算符只适用于时间变量?
Why does the "der()" operator in Modelica apply to the time variable only?
我在 Dymola 中构建了一个简单的模型,但我对 der()
运算符感到困惑,为什么 der()
运算符仅适用于时间变量?如果我想使用对其他变量的导数怎么办
在下面的代码中,如果我想计算dy/dx
(y对x的导数),我应该怎么做?
model A
Real x, y, z;
equation
x=10;
y=sin(x);
z=der(y);
end A;
通过函数支持偏导数。请参阅 Modelica 规范 3.4 中的第 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;
我在 Dymola 中构建了一个简单的模型,但我对 der()
运算符感到困惑,为什么 der()
运算符仅适用于时间变量?如果我想使用对其他变量的导数怎么办
在下面的代码中,如果我想计算dy/dx
(y对x的导数),我应该怎么做?
model A
Real x, y, z;
equation
x=10;
y=sin(x);
z=der(y);
end A;
通过函数支持偏导数。请参阅 Modelica 规范 3.4 中的第 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;