modeling - 在空间中离散 PDE 以与 modelica 一起使用
问题描述
我目前正在做一门名为“动态系统建模”的课程,并被赋予了在 modelica 中对具有分布式温度描述的温水箱进行建模的任务。
大部分任务进展顺利,我的小组的任务是将由于浮力效应引起的热通量引入模型。这是我们卡住的地方。
给出的方程是这样的: 给定 PDE
但是我们如何将其离散化为我们可以在 modelica 中使用的东西呢?
我们最终得到的离散化版本是这样的:
(Qd_pp_b[k+1] - Qd_pp_b[k]) / h_dz = -K_b *(T[k+1] - 2 * T[k] + T[k-1]) / h_dz^2
其中 Qd_pp_b 是左侧变量,即热通量,k 是罐的当前切片,T 是切片中的温度。
我们走在正确的道路上吗?还是完全错误?
解决方案
这似乎不是一个微分方程(原样),所以如果没有周围的问题,这是没有意义的。对于二阶导数,您应该始终创建辅助变量,并为每个偏导数创建一个单独的方程。我添加了参数的虚拟值和T[k]
. 这是可以模拟的,这和你预期的一样吗?
model test
constant Integer n = 10;
Real[n] Qd_pp_b;
Real[n] dT;
Real[n] T;
parameter Real K_b = 1;
equation
for k in 1:n loop
der(Qd_pp_b[k]) = -K_b *der(dT[k]);
der(T[k]) = dT[k];
T[k] = sin(time+k);
end for;
end test;
推荐阅读
- bash - 检查目录是否包含所有(且仅)列出的文件
- iis - 快速:未知域本地主机?
- stripe-payments - 有没有办法在 Stripe 中提取即将收费的报告?
- ruby - 当程序中断时,如何在Ruby中实现根据实际绑定转储所有变量?
- ios - 在带有节点 7 的 macOS 上运行“ionic build ios”时,我遇到了以下消息:超出标准输出 maxBuffer。我该如何解决?
- qt - QT VS 工具 lupdate 不拾取 QML 文件
- powerbi - Power BI + 电源查询 | 用较低行中的值替换空单元格
- ruby-on-rails - Rails 6.1 NoMethodError:设置 config.action_controller.asset_host 时 nil:NilClass 的未定义方法“协议”
- powershell - 如何在 Invoke-Command 中修改局部变量
- python - 在python中设置整数后,while或循环不停止