能量守恒 — CAE术语解说
能量守恒
老师,CFD中「能量守恒方程」是必须要解的吗?仅看流动就行的情况下是不是就不需要了?
能量守恒的理论基础
能量守恒的基本概念
能量守恒律在CAE领域中具体是如何体现的呢?这和教科书里的热力学第一定律有区别吗?
本质上是一样的。在CAE中,它意味着对解析对象的「系统」进行数值跟踪,涵盖流入的能量、流出的能量、内部能量的变化、功的交换。例如,在汽车发动机缸内燃烧分析中,燃料的化学能被分配给活塞的功、冷却水的热损失、排气的显热和潜热。这个平衡正是热力学第一定律
结构分析中也说「能量守恒」吗?那是关于力和位移的话题啊。
当然是的。在结构的弹性变形中,外部施加的功被储存为结构内部的应变能。这是由虚功原理或最小势能原理控制的。具体来说,荷载F产生的功
CFD中说「残差」收敛,这和能量守恒有关系吗?
有直接关系。连续性方程、动量方程、能量方程各自的「残差」充分减小,意味着各个单元内的质量、动量、能量的流入流出平衡(守恒律)在数值上得到满足。特别是,能量方程的残差如果没有降到例如1e-6以下,计算域全体的热收支无法达到一致,会输出错误的温度分布。这是收敛判定标准之一。
能量守恒的数值计算手法
离散化与求解器的处理
有限元法中能量守恒是在哪一步保证的?具体怎么做的呢?
离散化阶段的第一步是采用弱形式(积分形式)推导支配方程,这样可以自然地处理能量的流动。例如热传导分析中,利用加权残差法应用高勒金法,在保持单元间热流连续性的同时组装全局矩阵。求解器只需求解这个方程组,但对于非对称矩阵或非线性问题,反复求解过程中能量平衡可能会暂时被破坏。
暂时被破坏?会产生什么具体问题呢?
在动力学分析中最为明显。例如,用隐式Newmark-β法进行时间积分时,会产生数值减衰(算法减衰),系统的总能量会以物理上无法解释的方式减少。为了防止这种情况,人们考虑采用能量守恒性能优良的时间积分格式,例如辛形方法或能量动量守恒方法。Abaqus/Explicit中,默认的积分格式是条件稳定的,但有监控能量误差的功能。
CFD的有限体积法被称为「守恒型」方法,这和有限元法有什么区别吗?
完全正确,有限体积法(FVM)最大的优点就是离散化的定义本身就严格满足各控制体积的守恒律。通过控制体积的界面流量(质量、动量、能量)的「和」等于体积内储量变化率的方式来离散化。而有限元法(FEM)基于变分原理,虽然保证了整体的守恒性,但在单个单元层级不一定是守恒的。不过,FEM的守恒型离散化格式也有研究。
能量守恒的实务应用
分析工作流程中的确认要点
在实际分析中,用户有什么方法确认「能量守恒是否成立」呢?
主要软件都提供能量收支报告的输出功能。在Ansys Mechanical进行热分析时,可在「Solution Information」中请求「Heat Flux」或「Heat Flow Rate」,检查流入热量和流出热量的总和是否为零(稳态)或与内部能量变化相符(过渡状态)。许可误差取决于用途,一般来说0.1%~1%以内是目标。1W的输入对应1mW的不均衡是可接受的,但100mW就需要重新审视模型或边界条件。
在动态结构分析中,运动能和应变能的和应该是守恒的吧?如果大幅波动,首先应该怀疑什么?
首先要怀疑的是「数值减衰(阻尼)设置」。在过渡响应分析中,结构减衰(Rayleigh阻尼等)是否设置过大。其次是「时间积分步长」。在Explicit法中,如果超过了稳定性限制(Courant条件)的大步长,能量会呈爆炸式增长。反之,在Implicit法中,数值减衰可能过强导致能量减损过度。Abaqus中的做法是,确认ALLIE(全局内部能量)和ALLKE(全局运动能量)的时间序列输出,与外力做功(ALLWK)进行比较,这是标准做法。
边界条件设置错误会破坏能量守恒吗?具体例子是什么?
常见的是「热分析中忘记设置绝热条件」。现实的零件通过自然对流和辐射向周围散热,但如果边界条件中没有定义这一点,输入的热量就会完全积累在内部,导致计算出非现实的高温。另一个是「CFD中压力边界条件不匹配」。流入边界指定质量流量,流出边界指定压力,计算进行中领域内的质量(即承载能量的介质)会持续增加或减少。应始终确认整体的质量收支报告。
能量守恒的软件比较
各软件中的能量收支处理
Ansys Fluent和COMSOL Multiphysics在能量守恒的处理和确认便利性上有区别吗?
概念上的差异体现在这里。Fluent基于有限体积法,所以输出各迭代步的「Flux Reports」,就可以直接汇总任意截面或区域通过的热流或焓流。用「Surface Integrals」积分传热系数或辐射热流也很简单。而COMSOL的「派生值」功能很强大,在模型树上定义「积分」或「平均」,可以实时绘制任意域或边界能量流的总和。由于多物理场耦合是基础,电磁发热和热传导的能量交换也能自动追踪。
Abaqus/Explicit的「能量输出」中有ALLIE、ALLKE、ALLVD、ALLFD等很多种类。这些全部相加是守恒的吗?
很好的问题。Abaqus/Explicit中的能量平衡用以下式子表示:
免费的CAE软件(CalculiX、OpenFOAM)也能用同样的方法确认能量收支吗?
原理相同,但功能完善度和输出可读性比商用软件差。在OpenFOAM中,可以在`controlDict`文件的`functions`块中写入设置,让计算过程中对特定补片的热流或质量流进行积分和输出。但这需要用户自己设置。在CalculiX(CCX)中,静分析通常不输出能量,但动分析在`.dat`文件中输出运动能和内部能量。总之,商用软件那样的图形化能量收支报告没有,需要自己处理输出数据来确认。
能量守恒的故障排查
常见能量不均衡与对策
在热流体耦合分析(CHT)中,固体侧和流体侧的界面处热流不一致,能量似乎「消失」了。原因是什么?
最常见的原因是「界面处网格不匹配和插值误差」。固体和流体贴不同的网格,通过插值来交换数据时,插值算法会产生微小误差。Ansys Workbench的System Coupling等工具有「保守插值」选项来减轻这个问题。其次是「时间步的不同步」。固体和流体最优时间步不同,数据交换间隔太粗会遗漏热流峰值,导致能量不守恒。插值误差可通过加细网格和在界面处匹配节点大幅降低。
在非线性结构分析(接触、大变形)中,外力做功和内部能的和随时间逐渐漂移。这是可允许的误差吗?
微小的漂移是数值误差无法避免的,但如果趋势是不断增大就有问题。首先怀疑「接触设置」。接触算法(惩罚法、拉格朗日乘数法)有可能将接触力当作「约束」而不计入能量收支。Abaqus默认的接触是惩罚法,会产生微小的穿透,这可能是能量漂移的原因。对策是:1)严格化接触约束许可值(「滑动许可」或「惩罚刚度」),2)切换到拉格朗日乘数法(但计算成本增加),3)监控输出的「人工能(ALLAE)」,确保其对总能量的比例不超过数个百分点。
定常CFD分析中,计算域全体的焓仍在微量增加。能量是从哪里冒出来的呢?
这是「数值发散」的经典信号。主要有两个原因。第一是「压力-速度耦合的不稳定」。SIMPLE系列算法的求解器如果松弛系数过大会发散。第二是「边界条件不匹配」,特别是「流入流出边界的回流」。如果流出边界出现反向流(回流),该边界条件(例如固定压力)在物理上变得不适当,领域内质量和能量「被困」而增加。对策是:1)降低求解器松弛系数(从0.2左右开始),2)将流出边界放置在足够下游,或使用「压力流出」条件,3)将初始条件设置为现实的值。
相关话题
价值
更详细
错误