我刚开始使用modelica。我知道有一个内置的时间导数运算符 [der(expr)]。如果我必须用其他变量推导怎么办?例如:如果我必须派生一个变量'x',这怎么形成?
问问题
1155 次
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 回答