钢淬火时的温度测量
此示例演示了如何使用"热电偶"单元来模拟淬火过程中钢的温度测量。
在淬火期间,将钢加热到再结晶温度以上的温度,然后通过浸入液体中快速冷却。 由于温度较高,无法使用传统的温度测量仪器(热敏电阻或半导体温度传感器,液体温度计)。 为了在如此恶劣的条件下测量温度,工业和实验室使用热电偶将热电势差转换为电势差。
模型概述
打开模型 thermocouple_quenching.
cd(@__DIR__) # 转到带有示例的文件夹
engee.open("thermocouple_quenching.engee");
在这个模型中,"热质量"块模拟一个钢瓶加热到850°C的初始温度。"恒体积室"块模拟一个淬火浴,并通过强制对流将钢瓶冷却到20°c。
图形的计算和输出
在这个计算实验中,我们将改变不同块的参数。 为了以防万一,我们将再次设置初始参数,我们得到第一个结果。
engee.set_param!("热电偶/热电偶", "parameterization"=>"Type K (t≥0 degC)")
engee.set_param!("热电偶/热电偶", "C_vector"=>"TypeK_Cvec")
engee.set_param!("热电偶/单个变量的表格函数",
"Table"=>"TypeK_degC", "BreakpointsForDimension1"=>"TypeK_Volts")
engee.set_param!("热电偶/对流传热",
"h" => Dict("value" => 4000, "unit" => "W/(m^2*K)"))
让我们执行模型:
data = engee.run("thermocouple_quenching")
plot(data["TemperatureOut"].time, data["TemperatureOut"].value, leg=false, lw=2)
"1-D搜索表"块将"热电偶"块的输出电压连接到温度刻度,也就是说,它允许您将伏特转换为度。 让我们输出热电偶温度与气缸温度的时间依赖性的对数图,并确保计算值和实际值匹配。
tempOut = data["TemperatureOut"]
tempCylinder = data["热质量。T"]
plot( tempOut.time, tempOut.value, xaxis = (:log10, [10^-1, :auto]), lw=2 )
plot!( tempCylinder.time, tempCylinder.value .- 273.15, c=:red, ls=:dash, lw=2 )
正如我们所看到的,转换为摄氏度后,图表非常匹配。
让我们看看罐内液体的温度是如何变化的。
tempVolume = data["定体积照相机(TJ)。T"]
plot( tempVolume.time, tempVolume.value .- 273.15,
xaxis = (:log10, [10^-1, :auto]), lw=2, ls=:dashdot, leg=false )
导热液体特性的模型受最高温度的限制,因此,为了避免过热,在模型中规定了冷却罐的体积和罐与环境之间的界面("罐"块)的体积足够大的值。
我们看到液体达到52.1°C(325.3K)的温度,保持在以下值设定的允许范围内:
maxTemp = engee.get_param("热电偶/导热液体的性质(TJ)", "T_max_2D");
minTemp = engee.get_param("热电偶/导热液体的性质(TJ)", "T_min_2D");
println("最高允许温度: ", maxTemp["value"], maxTemp["unit"])
println("最低允许温度: ", minTemp["value"], minTemp["unit"])
更改为S型热电偶(TPP10)
目前,"热电偶"单元的参数对应于K型热电偶(TCA),该单元的非线性特性可在NIST ITS-90数据库中找到[1]。 我们将保存结果以供以后比较。:
TypeK_tout = tempOut;
TypeK_vout = data["热电偶。p.v"];
来计算S型热电偶(TPP10)。 让我们将热电偶装置切换到另一种模式。:
engee.set_param!("热电偶/热电偶", "parameterization"=>"Type B, E, J, K (t≤0 degC), N, R, S or T")
我们将用S型热电偶的可用系数代替热电偶模型的系数。:
engee.set_param!("热电偶/热电偶", "C_vector"=>"TypeS_Cvec")
此外,我们将非线性校正块中的表格("一个变量的表格函数")更改为适当的表格。:
engee.set_param!("热电偶/单个变量的表格函数",
"Table"=>"TypeS_degC", "BreakpointsForDimension1"=>"TypeS_Volts")
让我们运行这个模型,并保存结果进行比较。:
data = engee.run("thermocouple_quenching")
plot(data["TemperatureOut"].time, data["TemperatureOut"].value, leg=false, lw=2)
TypeS_tout = data["TemperatureOut"];
TypeS_vout = data["热电偶。p.v"];
现在我们可以推导出两种类型热电偶的输出特性。:
plot( TypeS_vout.time, TypeS_vout.value, xaxis = (:log10, [10^-1, :auto]), ls=:dashdot, lw=2, label="S型" )
plot!( TypeK_vout.time, TypeK_vout.value, c=:red, ls=:dash, lw=2, label="K型" )
不同类型热电偶正输出端的电压不同。 但在输出端计算的温度测量值是相同的。
plot( TypeS_tout.time, TypeS_tout.value, xaxis = (:log10, [10^-1, :auto]), ls=:dashdot, lw=2, label="S型" )
plot!( TypeK_tout.time, TypeK_tout.value, c=:red, ls=:dash, lw=2, label="K型" )
改变传热特性
在这个例子中,"热质量"块的参数"比热容系数"和"对流传热"块的"传热系数"是在水中钢瓶工业硬化的比例模型的实验室研究中获得的估计值[2]。
为简单起见,将这些参数设置为常量。 为了获得更准确的结果,有必要将它们设置为温度的函数(如果有数据可用),但有一种更简单的方法。 您可以使用这些参数的不同值运行模拟,并获得一系列估计值。
将"对流传热"块中的参数"传热系数"设置为4000。
engee.set_param!("热电偶/对流传热",
"h" => Dict("value" => 2000, "unit" => "W/(m^2*K)"))
让我们运行模型并构建一个图表。
data = engee.run("thermocouple_quenching")
tempOut4000 = TypeK_tout;
tempOut2000 = data["TemperatureOut"]
plot( tempOut2000.time, tempOut2000.value, ls=:dash, lw=2, label="2000 W/(K*m)^2" )
plot!( tempOut4000.time, tempOut4000.value, c=:red, xaxis = (:log10, [10^-1, :auto]), lw=2, label="4000 W/(K*m)^2", ls=:dashdot )
结论
该模型旨在使用热电偶精确测量淬火期间钢的温度,而传统传感器无法工作。 为了改进结果,您需要使用传热系数与温度的实际依赖关系,而不是常数值。
参考书目
[1]Angela Y.Lee,NIST ITS-90热电偶数据库-SRD60,国家标准与技术研究所,2000年。 https://data.nist.gov/od/id/ECBCC1C1302A2ED9E04306570681B10748。
[2]Hasan,H.S.,M.J.Peet,J.M.Jalil和H.K.D.H.Bhadeshia。 "钢淬火时的传热系数。"热和传质47,no.3(2011年3月):315-21。 https://doi.org/10.1007/s00231-010-0721-4。