我刚开始使用modelica。我知道有一个内置的时间导数运算符[der(expr)]。如果我必须使用其他变量派生,怎么办呢?例如:如果我必须将w.r.t变量变量'x'来形成它?
答案 0 :(得分:3)
如果您需要除时间导数之外的其他内容,我猜你必须明确声明衍生物,例如
y = x^2;
der_y = 2x;
变量der_y应在模型中较早声明,y和x也应如此。如果你想要一个双重导数,那么你可以做一些像
这样的事情dder_y = 2;
变量dder_y之前就像之前一样被删除了。
在制作Modelica模型时,我并不经常感到需要其他衍生物而不是时间导数。话虽这么说,我自己对Modelica很陌生,所以很有可能我会这样做。
答案 1 :(得分:3)
还可以使用注释derivative=<NameOfDerivativeFunction>
告诉工具使用哪个函数来获取函数的导数:
Modelica Specification, chapter 12.7.1的示例:
function foo0 annotation(derivative=foo1); end foo0;
function foo1 annotation(derivative(order=2)=foo2); end foo1;
function foo2 end foo2;
您可以在第12.7.1章中找到更多信息。也许这有帮助。
答案 2 :(得分:2)
如果两个变量都是连续的,那么在x上导出y的简单解决方案是利用dy / dx =(dy / dt)/(dx / dt),即在Modelica中
dydx = der(y)/der(x)
。
我们使用它,例如对于弧长的曲线的笛卡尔坐标的导数。