コード例 #1
0
        /// <summary>
        /// 根据温度值算出电阻值。
        /// </summary>
        /// <param name="temperature">温度值</param>
        /// <param name="rtdType">RTD类型(PT100/PT1000),该参数决定R0为100还是1000</param>
        /// <returns></returns>
        public static double ConvertTemperatureToResistance(double temperature, RTDType rtdType = RTDType.PT100)
        {
            double r0; //0℃时RTD的阻值

            switch (rtdType)
            {
            case RTDType.PT100: r0 = 100; break;

            case RTDType.PT1000: r0 = 1000; break;

            default: r0 = 100; break;
            }

            if (temperature <= 0 && temperature >= MinTemperature)
            {
                return(r0 * (1 + A * temperature + B * Math.Pow(temperature, 2) + C * (temperature - r0) * Math.Pow(temperature, 3)));
            }
            else if (temperature > 0 && temperature <= MaxTemperature)
            {
                return(r0 * (1 + A * temperature + B * Math.Pow(temperature, 2)));
            }
            else
            {
                return(-1);
            }
        }
コード例 #2
0
        /// <summary>
        /// 根据电阻值算出温度值。
        /// </summary>
        /// <param name="resistance">电阻值</param>
        /// <param name="rtdType">RTD类型(PT100/PT1000),该参数决定R0为100还是1000</param>
        /// <returns></returns>
        public static double ConvertResistanceToTemperature(double resistance, RTDType rtdType = RTDType.PT100)
        {
            double normalizeFactor = 1; //使用RTTable前需对传入的resistance进行归一化,具体描述见RTTable的注释

            switch (rtdType)
            {
            case RTDType.PT100: normalizeFactor = 100; break;

            case RTDType.PT1000: normalizeFactor = 10; break;

            default: normalizeFactor = 100; break;
            }

            //将电阻归一化到TRTable描述的R值上
            int resistanceNormalized = (int)(resistance * normalizeFactor);

            return(Interpolation.LinearInterpolation1D(TRTable, 1, MinTemperature, resistanceNormalized));
        }
コード例 #3
0
ファイル: RTD.cs プロジェクト: ziyushijie/SharpToolDemo
 /// <summary>
 /// Convert Voltage Value of RTD into Temperature Value
 /// </summary>
 /// <param name="temperature">Temperature Value Measured(the default unit is ℃)</param>
 /// <param name="resValue">Resistance Value of RTD(Unit:Ohm)</param>
 /// <returns></returns>
 public static double Convert(double resValue, RTDType type)
 {
     return(RTD3851ValueConvertor.ConvertResistanceToTemperature(resValue, type));
 }
コード例 #4
0
ファイル: RTD.cs プロジェクト: ziyushijie/SharpToolDemo
 /// <summary>
 /// Convert Voltage Array of RTD into Temperature Array
 /// </summary>
 /// <param name="temperature">Temperature Array Measured(the default unit is ℃) </param>
 /// <param name="resValues">Resistance Array of RTD(Unit:Ohm) </param>
 /// <returns></returns>
 public static double[] Convert(double[] resValues, RTDType type)
 {
     return(Array.ConvertAll(resValues, new Converter <double, double>(x => RTD3851ValueConvertor.ConvertResistanceToTemperature(x, type))));
 }