This commit is contained in:
@@ -19,21 +19,30 @@ public partial class MeasurementResult : ObservableObject
|
||||
|
||||
public void CalculateVhcAndCp(double density)
|
||||
{
|
||||
CalculateVhc(); // 先计算 VHC
|
||||
|
||||
// 日志:记录计算前的参数
|
||||
Debug.WriteLine($"[MeasurementResult] 计算比热容 - 密度: {density} kg/m³, 体积热容: {VolumetricHeatCapacity} kJ/(m³·K)");
|
||||
// 1. 计算体积热容 VHC = λ / α
|
||||
// 注意:ThermalDiffusivity 已经是标准单位 m²/s,绝对不能再乘 1e-6!
|
||||
if (ThermalDiffusivity > 0)
|
||||
{
|
||||
double vhc_J = ThermalConductivity / ThermalDiffusivity; // 单位: J/(m³·K)
|
||||
VolumetricHeatCapacity = vhc_J / 1000.0; // 转换为 kJ/(m³·K)
|
||||
}
|
||||
else
|
||||
{
|
||||
VolumetricHeatCapacity = 0;
|
||||
}
|
||||
|
||||
// 2. 计算比热容 Cp = VHC / ρ
|
||||
if (density > 0)
|
||||
{
|
||||
SpecificHeatCapacity = VolumetricHeatCapacity * 1000 / density;
|
||||
Debug.WriteLine($"[MeasurementResult] 计算得到比热容: {SpecificHeatCapacity} J/(kg·K)");
|
||||
// VHC 转回 J/(m³·K) 除以密度
|
||||
SpecificHeatCapacity = (VolumetricHeatCapacity * 1000.0) / density;
|
||||
}
|
||||
else
|
||||
{
|
||||
SpecificHeatCapacity = 0;
|
||||
Debug.WriteLine($"[MeasurementResult] 警告: 密度无效 (density={density}),比热容设为0");
|
||||
}
|
||||
|
||||
Debug.WriteLine($"[MeasurementResult] 计算完成: VHC={VolumetricHeatCapacity:F2} kJ/(m³·K), Cp={SpecificHeatCapacity:F2} J/(kg·K)");
|
||||
}
|
||||
|
||||
[ObservableProperty]
|
||||
|
||||
Reference in New Issue
Block a user