首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在modelica中使用偏导数?

如何在modelica中使用偏导数?
EN

Stack Overflow用户
提问于 2012-08-07 15:21:41
回答 2查看 1.6K关注 0票数 1

如果我必须在modelica中使用偏导数,该如何使用。我不确定偏导数是否可以在modelica中求解,但我想知道,如果它可以使用,它应该如何实现。

EN

回答 2

Stack Overflow用户

发布于 2012-08-12 02:06:27

您可能需要两种不同的潜在“偏导数”。一种是相对于空间变量的偏导数(如果您对求解PDE感兴趣),或者您可能想要表达式相对于模拟变量的偏导数。

但这并不重要,因为您不能在Modelica中表达这两种情况。

如果您的动机是解决PDE,那么我担心您将不得不简单地处理模型中的空间方面(使用某种离散化、弱公式等),以便最终得到的方程是简单的常微分方程。

如果你想计算表达式对时间以外的变量的导数,问题应该是……为什么?我很难想象有哪种应用程序真的需要这样做。但是如果你能解释你的用例,我可以进一步评论如何处理它。

票数 2
EN

Stack Overflow用户

发布于 2012-08-11 04:00:54

我用Modelica离散了PDE系统:热方程,波动方程,来自双管换热器的PDE,来自水击的PDE模拟管道中的压力波动等。

在一个简单的级别上,您可以用中心差分近似替换空间导数,然后使用for循环生成整个ODE集。例如。这是一段Modelica代码片段,用于对热方程进行简单的离散化。

代码语言:javascript
复制
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;

这只是我脑海中输入的一个简单的例子,所以请原谅我的错误。

您是否有特定的示例或应用程序?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11841105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档