焓湿度的计算 原创程序

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    194

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

焓湿度的计算 原创程序

4342

9

2017-09-29 09:34:10

本程序适合博图的300/400/1200/1500 计算焓湿度的计算 通过查表方式来进行计算的,只有露点温度查表方式出来的差异叫大故采用公式方式计算出露点,若有什么好的计算方式及程序BUG请告知

FUNCTION_BLOCK "焓湿图计算"

TITLE = DP&H

{ S7_Optimized_Access := 'FALSE' }

AUTHOR : EBC_LW

FAMILY : EBC

NAME : DPH

VERSION : 0.1

//焓湿图的计算

   VAR_INPUT 

      TE : Real := 23.0;   // 温度℃

      RH : Real := 55.0;   // 湿度%

      B : Real := 1013.0;   // 大气压力hPa(百帕)

   END_VAR


   VAR_OUTPUT 

      Dp : Real;   // 露点温度℃

      H : Real;   // 空气焓值Kj/KgDA

      Ps : Real;   // 空气的水蒸气分压力hPa(百帕)

      d : Real;   // 空气的含湿量g/KgDA

      Rb : Real;   // 饱和空气密度Kg/M2

      Pb : Real;   // 饱和空气压力hPa(百帕)

      Cd : Real;   // 湿空气的比热Kj/(KgDA*K)

      ERR : Int;   // 错误代码

   END_VAR


   VAR 

      TB : Array[0..80, 0..2] of Real := -20.0, 1.395, 1.02, -19.0, 1.393, 1.13, -18.0, 1.384, 1.25, -17.0, 1.387, 1.37, -16.0, 1.373, 1.5, -15.0, 1.367, 1.65, -14.0, 1.362, 1.81, -13.0, 1.357, 1.98, -12.0, 1.352, 2.17, -11.0, 1.347, 2.37, -10.0, 1.341, 2.59, -9.0, 1.336, 2.83, -8.0, 1.331, 3.09, -7.0, 1.325, 3.36, -6.0, 1.32, 3.67, -5.0, 1.315, 4.0, -4.0, 1.31, 4.36, -3.0, 1.306, 4.75, -2.0, 1.301, 5.16, -1.0, 1.295, 5.61, 0.0, 1.29, 6.09, 1.0, 1.285, 6.65, 2.0, 1.281, 7.04, 3.0, 1.275, 7.57, 4.0, 1.271, 8.11, 5.0, 1.266, 8.7, 6.0, 1.261, 9.32, 7.0, 1.256, 9.99, 8.0, 1.251, 10.7, 9.0, 1.247, 11.46, 10.0, 1.242, 12.25, 11.0, 1.237, 13.09, 12.0, 1.232, 13.99, 13.0, 1.228, 14.94, 14.0, 1.223, 15.95, 15.0, 1.218, 17.01, 16.0, 1.214, 18.13, 17.0, 1.208, 19.32, 18.0, 1.204, 20.59, 19.0, 1.2, 21.92, 20.0, 1.195, 23.31, 21.0, 1.19, 24.8, 22.0, 1.185, 26.37, 23.0, 1.181, 28.02, 24.0, 1.176, 29.77, 25.0, 1.171, 31.6, 26.0, 1.166, 33.53, 27.0, 1.161, 35.56, 28.0, 1.156, 37.71, 29.0, 1.151, 39.95, 30.0, 1.146, 42.32, 31.0, 1.141, 44.82, 32.0, 1.136, 47.43, 33.0, 1.131, 50.18, 34.0, 1.126, 53.07, 35.0, 1.121, 56.1, 36.0, 1.116, 59.26, 37.0, 1.111, 62.6, 38.0, 1.107, 66.09, 39.0, 1.102, 69.75, 40.0, 1.097, 73.58, 41.0, 1.091, 77.59, 42.0, 1.086, 81.8, 43.0, 1.081, 86.18, 44.0, 1.076, 90.79, 45.0, 1.07, 95.6, 46.0, 1.065, 100.61, 47.0, 1.059, 105.87, 48.0, 1.054, 111.33, 49.0, 1.048, 117.07, 50.0, 1.043, 123.04, 55.0, 1.013, 156.94, 60.0, 0.981, 198.7, 65.0, 0.946, 249.38, 70.0, 0.909, 310.82, 75.0, 0.868, 384.5, 80.0, 0.823, 472.28, 85.0, 0.773, 576.69, 90.0, 0.718, 699.31, 95.0, 0.656, 843.09, 100.0, 0.589, 1013.0;   // 表格 温度/饱和空气密度/饱和空气水蒸汽分压

   END_VAR


   VAR_TEMP 

      I : Int;   // 循环变量

      LogEW : Real;

      Pb_Temp : Real;

      Rb_Temp : Real;

   END_VAR



BEGIN

//湿度转换为百分比

//RH_TEMP:=RH/100;

//通过温度查询参数采用线性插值算法,以后再研究哈平滑预测算法,这样更精确

#Pb_Temp := 0;

#Rb_Temp := 0;

FOR #I := 1 TO 80 BY 1 DO

   IF (#TE <= #TB[#I, 0]) & (#TE >= #TB[#I - 1, 0]) THEN//检查值是否在两个温度值之间,若两个温度值之间则进行线性插值运算

       //Y=Y0+(X-X0)/(X1-X0)*(Y1-Y0)  线性插值算法

       #Rb_Temp := #TB[#I - 1, 1] + (#TE - #TB[#I - 1, 0]) / (#TB[#I, 0] - #TB[#I - 1, 0]) * (#TB[#I, 1] - #TB[#I - 1, 1]);

       #Pb_Temp := #TB[#I - 1, 2] + (#TE - #TB[#I - 1, 0]) / (#TB[#I, 0] - #TB[#I - 1, 0]) * (#TB[#I, 2] - #TB[#I - 1, 2]);

       #ERR := 0;//无错误

   ELSE

       #ERR := 1;//温度不在查询范围

       

   END_IF;

   

END_FOR;

#Pb := #Pb_Temp;

#Rb := #Rb_Temp;

#Ps := #RH / 100.0 * #Pb;//求出空气的水蒸汽分压力hPa

#d := 622 * (#Ps / (#B - #Ps));//求出空气含湿量g/kg干空气

#H := 1.01 * #TE + 0.001 * #d * (2500 + 1.84 * #TE);//求出空气焓kJ/kg干空气

#Cd := 1.01 + 1.85 * #d * 0.001;//湿空气的比热

//通过水蒸汽分压力去查询饱和水蒸汽分压力的温度得出露点温度(当前不饱和分压去查询饱和分压下的温度) 误差较大这里不采用

(*

 FOR J:= 1 TO 80 BY 1 DO

   IF (Ps <=TB[J,2]) & (Ps >=TB[J-1,2]) THEN//检查值是否在两个温度值之间,若两个温度值之间则进行线性插值运算

       //Y=Y0+(X-X0)/(X1-X0)*(Y1-Y0)  线性插值算法

          DP:=TB[J-2,0] +(Ps - TB[J-1,2])/(TB[J,2]-TB[J-1,2])*(TB[J,0]-TB[J-1,0]);

          ERR:=0;//无错误

       ELSE

           ERR:=2;//分压不在查询范围

    END_IF;

       

  END_FOR; 

  *)

  //**************************************************************************************

  //温度湿度计算露点温度采用通用公式

  //LogEW=0.66077+7.5T/(237.3+T)+[log10(RH)-2]                 

  //Dp=[(0.66077-logEW)×237.3]/(logEW-8.16077)         

  //Dp--dew_point露点温度  RH--相对湿度   T--空气温度                

  #LogEW := 0.66077 + 7.5 * #TE / (237.3 + #TE) + ((LN(#RH) / LN(10)) - 2);

  #Dp := ((0.66077 - #LogEW) * 237.3) / (#LogEW - 8.16077);

  

  

END_FUNCTION_BLOCK

编于2017年 QQ275578306 欢迎交流学习

焓湿图.rar


焓湿度的计算 原创程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。