From e8a8c7bebf469c551061e09d0385054693fa4b19 Mon Sep 17 00:00:00 2001 From: xyy <544939200@qq.com> Date: Tue, 26 May 2026 19:37:04 +0800 Subject: [PATCH] --- ...028瞬态热线法导热系数测试仪器电气清单.xlsx | Bin 1660788 -> 1660667 bytes Helpers/Logger.cs | 34 +++++ ViewModels/D7896ViewModel.cs | 120 +++++++++++++----- ViewModels/MeasurementResult.cs | 30 ++++- Views/D7896View.xaml | 4 +- Views/D7896View.xaml.cs | 5 + appsettings.json | 2 +- 7 files changed, 152 insertions(+), 43 deletions(-) create mode 100644 Helpers/Logger.cs diff --git a/CSI-L028瞬态热线法导热系数测试仪器电气清单.xlsx b/CSI-L028瞬态热线法导热系数测试仪器电气清单.xlsx index 1c07dd53ac69290c78aa58e09007d1fd4da1d58b..553dc658364071fbb94e27c0c5757c6c74d3abfc 100644 GIT binary patch delta 69205 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%0D&# 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 delta 66913 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�=WRs$#Fh>bHmn>;VHB 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 PlatinumResistance = newResistance); + Application.Current?.Dispatcher.Invoke(() => PlatinumResistance = newResistance); float rawPressure = await _plcService.ReadFloatAsync(_config.PlcRegisterAddresses.Pressure); - Application.Current.Dispatcher.Invoke(() => ChamberPressure = rawPressure); + Application.Current?.Dispatcher.Invoke(() => ChamberPressure = rawPressure); float rawTemp = await _plcService.ReadFloatAsync(_config.PlcRegisterAddresses.Temperature); - Application.Current.Dispatcher.Invoke(() => CurrentTestTemperature = rawTemp); + Application.Current?.Dispatcher.Invoke(() => CurrentTestTemperature = rawTemp); } catch { } } @@ -144,7 +147,7 @@ public partial class D7896ViewModel : ObservableObject try { float rawResistance = await _plcService.ReadFloatAsync(_config.PlcRegisterAddresses.Resistance); - return rawResistance / 1000.0; + return rawResistance; } catch { return 0; } } @@ -187,10 +190,12 @@ public partial class D7896ViewModel : ObservableObject try { - if (!_fiveHalfUpt.IsOpen) _fiveHalfUpt.Open(); + await _th1963Ustd.ConnectAsync("192.168.1.12", 45454); // 改为实际IP await _th1963Ustd.ConfigureForHighSpeedDcvAsync(); - await _fiveHalfUpt.ConfigureHighSpeedDcvAsync(); + + await _th1953Ustd.ConnectAsync("192.168.1.13", 45454); // 改为实际IP + await _th1953Ustd.ConfigureForHighSpeedDcvAsync(); } catch (Exception ex) { @@ -219,6 +224,22 @@ public partial class D7896ViewModel : ObservableObject try { + + // 预热:进行一次虚拟测量 + await _th1963Ustd.ConfigureForHighSpeedDcvAsync(); + await _th1963Ustd.PrepareBatchAsync(10); + await _th1963Ustd.TriggerAsync(); + await Task.Delay(100); + await _th1963Ustd.FetchBatchAsync(); // 丢弃结果 + + + // 预热:进行一次虚拟测量 + await _th1953Ustd.ConfigureForHighSpeedDcvAsync(); + await _th1953Ustd.PrepareBatchAsync(10); + await _th1953Ustd.TriggerAsync(); + await Task.Delay(100); + await _th1953Ustd.FetchBatchAsync(); // 丢弃结果 + for (int i = 1; i <= _config.TestParameters.MeasurementCount; i++) { if (_stopRequested) break; @@ -227,41 +248,56 @@ public partial class D7896ViewModel : ObservableObject StatusMessage = $"正在执行第 {i} 次测量..."; // 准备批量采集参数(每通道采样点数,采样率1000点/秒,加热时间1秒 -> 1000点) - int samples = 1000; // 1秒 * 1000点/秒 + int samples = 800; // 1秒 * 1000点/秒 + + + + + // 预配置两台表:进入等待触发状态 await _th1963Ustd.PrepareBatchAsync(samples); - await _fiveHalfUpt.PrepareBatchAsync(samples); // 需要在FiveHalfDmmService中实现PrepareBatchAsync,见补充 + await _th1953Ustd.PrepareBatchAsync(samples); // 启动加热脉冲 (PLC) await _plcService.WriteCoilAsync(_config.PlcRegisterAddresses.StartCommand, true); - // 同时发送触发信号给两台电压表 - await Task.WhenAll(_th1963Ustd.TriggerAsync(), _fiveHalfUpt.TriggerAsync()); - // 等待加热脉冲持续1秒 - await Task.Delay(1); + // 等待极短时间确保电流稳定(如 5ms) + await Task.Delay(5); + // 同时发送触发信号给两台电压表 + await Task.WhenAll(_th1963Ustd.TriggerAsync(), _th1953Ustd.TriggerAsync()); + + // 等待加热结束 + await Task.Delay((int)(heatingDuration * 1000)); // 停止加热 await _plcService.WriteCoilAsync(_config.PlcRegisterAddresses.StartCommand, false); - // 等待采集完成(留出额外时间) - await Task.Delay(500); + // 等待采集完成(剩余时间) + int remainingMs = (int)((totalDuration - heatingDuration) * 1000) + 100; + await Task.Delay(remainingMs); // 获取采集数据 double[] ustd = await _th1963Ustd.FetchBatchAsync(); - double[] upt = await _fiveHalfUpt.FetchBatchAsync(); + double[] upt = await _th1953Ustd.FetchBatchAsync(); + StandardResistorVoltage = ustd.Average(); + PlatinumVoltage = upt.Average(); + // 添加日志:原始电压统计 + Logger.Log($"测量 {i}: U_std 点数={ustd.Length}, 平均值={ustd.Average():F6} V, 最大值={ustd.Max():F6} V"); + Logger.Log($"测量 {i}: U_pt 点数={upt.Length}, 平均值={upt.Average():F6} V, 最大值={upt.Max():F6} V"); - - // 构建时间数组(假设采样时间正好1秒,采样点数 = ustd.Length) double[] timeArray = new double[ustd.Length]; for (int idx = 0; idx < timeArray.Length; idx++) { - timeArray[idx] = idx / (double)samples; // 0 ~ 1 秒 + timeArray[idx] = idx * totalDuration / samples; } // 计算本次测量的 λ 和 α var (lambda, alpha, deltaT, coolingPoints) = ComputeThermalProperties(upt, ustd, timeArray, initialResistance, CurrentTestTemperature); + // 添加结果日志 + Logger.Log($"测量 {i} 结果: λ={lambda:F6} W/(m·K), α={alpha:E6} m²/s"); + // 生成温升曲线图 GenerateTemperatureCurveFromData(timeArray, deltaT, coolingPoints); @@ -276,6 +312,18 @@ public partial class D7896ViewModel : ObservableObject Application.Current.Dispatcher.Invoke(() => Measurements.Add(result)); StatusMessage = $"第 {i} 次测量完成,λ={lambda:F4} W/m·K"; + // 在 result.CalculateVhcAndCp(SampleDensity); 之后添加 + Logger.Log($"========== 第 {i} 次测量详细数据 =========="); + Logger.Log($"热导率 λ: {lambda:F6} W/(m·K)"); + Logger.Log($"热扩散率 α: {alpha:E6} m²/s"); + Logger.Log($"体积热容 VHC: {result.VolumetricHeatCapacity:F2} kJ/(m³·K)"); + Logger.Log($"比热容 Cp: {result.SpecificHeatCapacity:F2} J/(kg·K) (密度 = {SampleDensity:F1} kg/m³)"); + Logger.Log($"初始电阻 R0: {initialResistance:F6} Ω"); + Logger.Log($"测试温度: {CurrentTestTemperature:F2} °C"); + Logger.Log($"铂丝平均电阻: {PlatinumResistance:F6} Ω"); + Logger.Log($"样品池压力: {ChamberPressure:F2} kPa"); + Logger.Log("==========================================="); + if (i < _config.TestParameters.MeasurementCount && !_stopRequested) await Task.Delay(_config.TestParameters.IntervalSeconds * 1000); } @@ -300,8 +348,9 @@ public partial class D7896ViewModel : ObservableObject await _plcService.WriteCoilAsync(_config.PlcRegisterAddresses.OutletValveCoil, false); } IsTesting = false; - _fiveHalfUpt.Close(); + //_fiveHalfUpt.Close(); _th1963Ustd.Dispose(); + _th1953Ustd.Dispose(); _testCts?.Dispose(); } } @@ -324,6 +373,10 @@ public partial class D7896ViewModel : ObservableObject ptResistance[i] = upt[i] / current[i]; deltaT[i] = (ptResistance[i] - initialResistance) / (AlphaPt * initialResistance); } + // 添加日志:中间数据统计 + Logger.Log($"电流平均值: {current.Average():F6} A, 最大值: {current.Max():F6} A"); + Logger.Log($"铂丝电阻平均值: {ptResistance.Average():F6} Ω, 初始电阻: {initialResistance:F6} Ω"); + Logger.Log($"温升最大值: {deltaT.Max():F4} ℃, 平均值: {deltaT.Average():F4} ℃"); // 2. ========== 加热段拟合 → 热导率 λ ========== double tStart = 0.1; @@ -342,14 +395,17 @@ public partial class D7896ViewModel : ObservableObject double slope = LeastSquaresSlope(heatingPoints); if (slope <= 0) slope = 0.0001; + Logger.Log($"加热段拟合斜率 B = {slope:F6} (ΔT vs ln(t))"); + double avgCurrentSq = current.Average(c => c * c); double avgResistance = ptResistance.Average(); double powerPerLength = (avgCurrentSq * avgResistance) / _config.TestParameters.PlatinumWireLength; double lambda = powerPerLength / (4 * Math.PI * slope); - + Logger.Log($"单位长度加热功率 Q = {powerPerLength:F6} W/m"); + Logger.Log($"热导率 λ = {lambda:F6} W/(m·K)"); // 3. ========== 冷却段拟合 → 热扩散率 α ========== - double coolingStart = 1.0; - double coolingEnd = 2.0; + double coolingStart = heatingDuration; // 0.8 秒 + double coolingEnd = totalDuration; // 1.6 秒 int coolingStartIdx = FindIndex(time, coolingStart); int coolingEndIdx = FindIndex(time, coolingEnd); if (coolingStartIdx < 0) coolingStartIdx = n / 2; @@ -369,6 +425,10 @@ public partial class D7896ViewModel : ObservableObject if (alpha <= 0 || double.IsNaN(alpha) || double.IsInfinity(alpha)) alpha = 0.12e-6; // 默认值 + Logger.Log($"冷却段拟合斜率 D = {coolingSlope:F6} (lnΔT vs t)"); + Logger.Log($"时间常数 τ = {tau:F6} s"); + Logger.Log($"热扩散率 α = {alpha:E6} m²/s"); + // 准备冷却曲线数据点(用于绘图) var coolingPoints = new List(); for (int i = coolingStartIdx; i <= coolingEndIdx; i++) @@ -478,14 +538,6 @@ public partial class D7896ViewModel : ObservableObject CurveTitle = $"已完成 {CurrentMeasurementIndex} 次测量"; } - private void GenerateTemperatureCurve(float lambda, float alpha) { /* 旧方法,不再使用 */ } - - private OxyColor GetColorForIndex(int index) - { - var colors = new[] { OxyColors.Red, OxyColors.Blue, OxyColors.Green, OxyColors.Orange, - OxyColors.Purple, OxyColors.Brown, OxyColors.Pink, OxyColors.Cyan, OxyColors.Magenta, OxyColors.Olive }; - return colors[(index - 1) % colors.Length]; - } private void CalculateAverages() { diff --git a/ViewModels/MeasurementResult.cs b/ViewModels/MeasurementResult.cs index c456edd..60016ef 100644 --- a/ViewModels/MeasurementResult.cs +++ b/ViewModels/MeasurementResult.cs @@ -1,4 +1,5 @@ using CommunityToolkit.Mvvm.ComponentModel; +using System.Diagnostics; // 添加命名空间 namespace ASTM_D7896_Tester.ViewModels; @@ -19,10 +20,20 @@ public partial class MeasurementResult : ObservableObject public void CalculateVhcAndCp(double density) { CalculateVhc(); // 先计算 VHC + + // 日志:记录计算前的参数 + Debug.WriteLine($"[MeasurementResult] 计算比热容 - 密度: {density} kg/m³, 体积热容: {VolumetricHeatCapacity} kJ/(m³·K)"); + if (density > 0) - SpecificHeatCapacity = VolumetricHeatCapacity * 1000 / density; // 注意单位转换 + { + SpecificHeatCapacity = VolumetricHeatCapacity * 1000 / density; + Debug.WriteLine($"[MeasurementResult] 计算得到比热容: {SpecificHeatCapacity} J/(kg·K)"); + } else + { SpecificHeatCapacity = 0; + Debug.WriteLine($"[MeasurementResult] 警告: 密度无效 (density={density}),比热容设为0"); + } } [ObservableProperty] @@ -30,10 +41,17 @@ public partial class MeasurementResult : ObservableObject public void CalculateVhc() { - if (ThermalDiffusivity > 0) - VolumetricHeatCapacity = ThermalConductivity / (ThermalDiffusivity * 1e-6) / 1000.0; - else - VolumetricHeatCapacity = 0; - } + 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"); + } + } } \ No newline at end of file diff --git a/Views/D7896View.xaml b/Views/D7896View.xaml index cdc334d..3484787 100644 --- a/Views/D7896View.xaml +++ b/Views/D7896View.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" - d:DesignHeight="768" d:DesignWidth="1024"> + d:DesignHeight="768" d:DesignWidth="1024" Loaded="UserControl_Loaded"> @@ -221,7 +221,7 @@ - + diff --git a/Views/D7896View.xaml.cs b/Views/D7896View.xaml.cs index 3ff7eab..a79b1b7 100644 --- a/Views/D7896View.xaml.cs +++ b/Views/D7896View.xaml.cs @@ -29,5 +29,10 @@ namespace ASTM_D7896_Tester.Views InitializeComponent(); DataContext = new D7896ViewModel(); } + + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + + } } } diff --git a/appsettings.json b/appsettings.json index f8b106e..6a51af3 100644 --- a/appsettings.json +++ b/appsettings.json @@ -25,7 +25,7 @@ "TestParameters": { "MeasurementCount": 10, "IntervalSeconds": 30, - "PlatinumWireLength": 0.07, + "PlatinumWireLength": 0.07, //铂丝长度(单位:米) "PlatinumWireDiameter": 0.00006, "ReportOutputPath": "Reports\\", "DefaultSampleVolume": 40.0,