问题描述
我在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 Spec 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;