Files
ASTM-D7896-19TransientHot-W…/ViewModels/MeasurementResult.cs
2026-05-26 19:37:04 +08:00

57 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using CommunityToolkit.Mvvm.ComponentModel;
using System.Diagnostics; // 添加命名空间
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
[ObservableProperty]
private double _specificHeatCapacity; // 比热容 J/(kg·K)
public void CalculateVhcAndCp(double density)
{
CalculateVhc(); // 先计算 VHC
// 日志:记录计算前的参数
Debug.WriteLine($"[MeasurementResult] 计算比热容 - 密度: {density} kg/m³, 体积热容: {VolumetricHeatCapacity} kJ/(m³·K)");
if (density > 0)
{
SpecificHeatCapacity = VolumetricHeatCapacity * 1000 / density;
Debug.WriteLine($"[MeasurementResult] 计算得到比热容: {SpecificHeatCapacity} J/(kg·K)");
}
else
{
SpecificHeatCapacity = 0;
Debug.WriteLine($"[MeasurementResult] 警告: 密度无效 (density={density})比热容设为0");
}
}
[ObservableProperty]
private double _volumetricHeatCapacity; // kJ/m³·K (自动计算)
public void CalculateVhc()
{
Debug.WriteLine($"[MeasurementResult] 计算体积热容 - 热导率: {ThermalConductivity} W/(m·K), 热扩散率: {ThermalDiffusivity} ×10⁻⁶ m²/s");
if (ThermalDiffusivity > 0)
{
VolumetricHeatCapacity = ThermalConductivity / (ThermalDiffusivity * 1e-6) / 1000.0;
Debug.WriteLine($"[MeasurementResult] 计算得到体积热容: {VolumetricHeatCapacity} kJ/(m³·K)");
}
else
{
VolumetricHeatCapacity = 0;
Debug.WriteLine($"[MeasurementResult] 警告: 热扩散率为0体积热容设为0");
}
}
}