Files
ASTM-D7896-19TransientHot-W…/ViewModels/MeasurementResult.cs

57 lines
1.9 KiB
C#
Raw Normal View History

2026-04-18 19:00:34 +08:00
using CommunityToolkit.Mvvm.ComponentModel;
2026-05-26 19:37:04 +08:00
using System.Diagnostics; // 添加命名空间
2026-04-18 19:00:34 +08:00
namespace ASTM_D7896_Tester.ViewModels;
public partial class MeasurementResult : ObservableObject
{
[ObservableProperty]
private int _index;
[ObservableProperty]
private double _thermalConductivity; // W/m·K
[ObservableProperty]
private double _thermalDiffusivity; // ×10⁻⁶ m²/s
2026-05-20 19:46:52 +08:00
[ObservableProperty]
private double _specificHeatCapacity; // 比热容 J/(kg·K)
public void CalculateVhcAndCp(double density)
{
CalculateVhc(); // 先计算 VHC
2026-05-26 19:37:04 +08:00
// 日志:记录计算前的参数
Debug.WriteLine($"[MeasurementResult] 计算比热容 - 密度: {density} kg/m³, 体积热容: {VolumetricHeatCapacity} kJ/(m³·K)");
2026-05-20 19:46:52 +08:00
if (density > 0)
2026-05-26 19:37:04 +08:00
{
SpecificHeatCapacity = VolumetricHeatCapacity * 1000 / density;
Debug.WriteLine($"[MeasurementResult] 计算得到比热容: {SpecificHeatCapacity} J/(kg·K)");
}
2026-05-20 19:46:52 +08:00
else
2026-05-26 19:37:04 +08:00
{
2026-05-20 19:46:52 +08:00
SpecificHeatCapacity = 0;
2026-05-26 19:37:04 +08:00
Debug.WriteLine($"[MeasurementResult] 警告: 密度无效 (density={density})比热容设为0");
}
2026-05-20 19:46:52 +08:00
}
2026-04-18 19:00:34 +08:00
[ObservableProperty]
private double _volumetricHeatCapacity; // kJ/m³·K (自动计算)
public void CalculateVhc()
{
2026-05-26 19:37:04 +08:00
Debug.WriteLine($"[MeasurementResult] 计算体积热容 - 热导率: {ThermalConductivity} W/(m·K), 热扩散率: {ThermalDiffusivity} ×10⁻⁶ m²/s");
2026-05-20 19:46:52 +08:00
if (ThermalDiffusivity > 0)
2026-05-26 19:37:04 +08:00
{
2026-05-20 19:46:52 +08:00
VolumetricHeatCapacity = ThermalConductivity / (ThermalDiffusivity * 1e-6) / 1000.0;
2026-05-26 19:37:04 +08:00
Debug.WriteLine($"[MeasurementResult] 计算得到体积热容: {VolumetricHeatCapacity} kJ/(m³·K)");
}
2026-04-18 19:00:34 +08:00
else
2026-05-26 19:37:04 +08:00
{
2026-04-18 19:00:34 +08:00
VolumetricHeatCapacity = 0;
2026-05-26 19:37:04 +08:00
Debug.WriteLine($"[MeasurementResult] 警告: 热扩散率为0体积热容设为0");
}
2026-04-18 19:00:34 +08:00
}
}