如何推导除时间以外的其他变量?

时间:2012-07-30 11:56:55

标签: modelica

我刚开始使用modelica。我知道有一个内置的时间导数运算符[der(expr)]。如果我必须使用其他变量派生,怎么办呢?例如:如果我必须将w.r.t变量变量'x'来形成它?

3 个答案:

答案 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)

我们使用它,例如对于弧长的曲线的笛卡尔坐标的导数。