3

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

4

3 回答 3

3

我想如果你需要时间导数以外的东西,你必须明确声明导数,例如

y = x^2;    
der_y = 2x;

变量 der_y 应该在模型的前面声明,y 和 x 也应该声明。如果你想要一个双导数,那么你可以做类似的事情

dder_y = 2;

与以前一样,变量 dder_y 之前已清除。

在制作 Modelica 模型时,我经常觉得除了时间导数之外还需要其他导数。话虽如此,我自己对 Modelica 还是很陌生,所以很可能会有一段时间我会这样做。

于 2012-07-31T09:45:30.680 回答
3

还有可能使用注释derivative=<NameOfDerivativeFunction>来告诉工具使用哪个函数来获取函数的导数:

Modelica 规范中的示例,第 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 章中找到更多信息。也许这有帮助。

于 2012-08-03T11:04:33.083 回答
2

如果两个变量都是连续的,则通过 x 导出 y 的简单解决方案使用 dy/dx = (dy/dt) / (dx/dt),即在 Modelica 中

dydx = der(y)/der(x).

例如,我们将其用于曲线在其弧长上的笛卡尔坐标的导数。

于 2017-07-11T07:36:39.923 回答