如果我必须在modelica中使用偏导数,该如何使用。我不确定偏导数是否可以在modelica中求解,但我想知道,如果它可以使用,它应该如何实现。
发布于 2012-08-12 02:06:27
您可能需要两种不同的潜在“偏导数”。一种是相对于空间变量的偏导数(如果您对求解PDE感兴趣),或者您可能想要表达式相对于模拟变量的偏导数。
但这并不重要,因为您不能在Modelica中表达这两种情况。
如果您的动机是解决PDE,那么我担心您将不得不简单地处理模型中的空间方面(使用某种离散化、弱公式等),以便最终得到的方程是简单的常微分方程。
如果你想计算表达式对时间以外的变量的导数,问题应该是……为什么?我很难想象有哪种应用程序真的需要这样做。但是如果你能解释你的用例,我可以进一步评论如何处理它。
发布于 2012-08-11 04:00:54
我用Modelica离散了PDE系统:热方程,波动方程,来自双管换热器的PDE,来自水击的PDE模拟管道中的压力波动等。
在一个简单的级别上,您可以用中心差分近似替换空间导数,然后使用for循环生成整个ODE集。例如。这是一段Modelica代码片段,用于对热方程进行简单的离散化。
parameter Real L = 1 "Length";
parameter Integer n = 50 "Number of sections";
parameter Real alpha = 1;
Real dL = L/n "Section length";
Real[n] u(each start = 0);
equations
u[1] = 273; //boundary condition
u[n] =0; //boundary condition
for i in 2:n-1 loop
der(u[i]) = alpha * (u[i+1] - 2 * u[i] + u[i-1]) / dL^2;
end for;这只是我脑海中输入的一个简单的例子,所以请原谅我的错误。
您是否有特定的示例或应用程序?
https://stackoverflow.com/questions/11841105
复制相似问题