float Resistance_To_Temperature(float Res,float Res_Base)
{/*NTC热敏电阻的温度计算涉及到特定的公式和一些关键参数。首先,需要了解NTC热敏电阻的阻值与其所处温度之间的关系。这种关系通常可以通过以下公式表示:Rt = R * EXP(B * (1/T1 - 1/T2))其中:Rt是热敏电阻在T1温度下的阻值。R是热敏电阻在T2常温(通常为25℃)下的标称阻值。T1和T2指的是K度,即开尔文温度,其中K度 = 摄氏度 + 273.15。B是热敏电阻的B值,这是一个重要的固有参数。EXP是e的n次方。通过测量热敏电阻在某一温度下的阻值Rt,并已知其在常温下的阻值R和B值,可以使用上述公式反推出T1的值。计算T1的公式为:T1 = 1 / (ln(Rt/R)/B + 1/T2)其中ln表示自然对数。*/float R = 100;//保温杯使用的是100k的NTC R是热敏电阻在T2常温(通常为25℃)下的标称阻值float T2 = 273.15 + 25;//K度,即开尔文温度,其中K度 = 摄氏度 + 273.15float B = 3950;//B是热敏电阻的B值,这是一个重要的固有参数float Ka = 273.15;//0℃=273.15Kfloat Temperature;R = Res_Base;if (Res <= 0.3) //电阻值小于0.3,认为是出现了NTC对地短路现象,理论上这个阻值对应温度值达到了250℃以上{//实测NTC短路,阻值计算出来小于 0.01Temperature = NTC_Temp_Max;}else if (Res >= 4200)//电阻值大于4200,认为是出现了NTC开路现象,理论上这个阻值对应温度值低于-40℃{//实测NTC开路(不接NTC),阻值计算出来大于 4500Temperature = NTC_Temp_Min;}else{Temperature = 1 / (1 / T2 + log(Res / R) / B) - Ka;//根据阻值计算温度值if (Temperature >= 93)//在100℃时,公式法比查表法温度高2.23℃,此处减去偏差{Temperature -= 2.23f;}else if (Temperature >= 80)//在85℃时,公式法比查表法温度高1.15℃,此处减去偏差{Temperature -= 1.15f;}}return Temperature;
}
下图右边为用C#运行此函数计算出来的阻值与温度对应关系