湿球温度计算、含湿量计算、焓值计算等 原创程序 SCL

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    194

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

湿球温度计算、含湿量计算、焓值计算等 原创程序 SCL

12971

2

2018-10-06 10:06:51

 之前发布过一个湿球温度计算的SCL代码,主要是翻译网上的一个C语言的,但是PLC跑不动,实际关键问题在于迭代算法的优化。本程序是优化了迭代算法。采用了二分法迭代,PLC正常计算。以下供大家参考学习 最难算的莫过于是湿球温度,因为需要迭代运算。这个程序对于做楼控项目的工程师非常有用的哦。

本程序可计算 露点、湿球温度、含湿量、比焓、饱和空气压力、水蒸气分压


//####################################################
//露点焓值等公式法   采用二分法迭代计算的湿球温度
//饱和空气分压采用简便算法
//本程序可计算 露点、湿球温度、含湿量、比焓、饱和空气压力、水蒸气分压
//EBC LW 20181006

//####################################################
FUNCTION_BLOCK FB14
TITLE =   'DP&H'
AUTHOR:   EBC_LW
NAME:     DPH
VERSION:      '0.01'
FAMILY:   EBC
KNOW_HOW_PROTECT

VAR_INPUT
 Tdb:REAL:=23.0;  //干球温度℃
 RH:REAL:=55.0;//相对湿度%
 ATM:REAL:=101.325; //大气压力KPa(千帕)
END_VAR
VAR_OUTPUT
 Pws:REAL;//饱和空气压力KPa(千帕)
 Pw:REAL;//空气的水蒸气分压力KPa(千帕)
 Tdp:REAL;//露点温度℃
 Twb:REAL;//湿球温度℃
 d:REAL;//空气的含湿量g/KgDA
 H:REAL;//空气焓值Kj/KgDA
END_VAR
VAR_TEMP
 LogEW:REAL;
 TEMP_twb:REAL;//湿球温度猜测值
 TEMP_pws:REAL;//猜测的湿球温度的饱和空气压力KPa(千帕)
 TEMP_d:REAL; //猜测的湿球温度的空气含湿量g/Kg干空气
 TEMP_dt:REAL;//用于迭代的差值
 TEMP_hmid:REAL;//湿球温度猜测的焓值
 TEMP_tlow:REAL;//用于迭代的下限
 TEMP_thigh:REAL;//用于迭代的上限

 I:INT; //迭代循环变量
END_VAR
VAR
    // Static Variables

END_VAR
//=====================================================================
//露点温度计算           
LogEW:= 0.66077 + 7.5 * Tdb / (237.3 + Tdb) +  (LOG(RH)- 2)  ;
Tdp:=((0.66077- logEW)*237.3)/(logEW - 8.16077) ;
//=====================================================================
//焓值的计算
  Pws:=0.6112*EXP((18.678-Tdb/234.5)*Tdb/(Tdb+257.14));//简化算法
  Pw:=RH/100*Pws;//求出空气的水蒸汽分压力KPa
  //d:=621.9*(0.01*RH*Pws/(ATM-0.01*RH*Pws));
  d:=621.9*(Pw/(ATM-Pw));
  H:=1.01*Tdb+0.001*d*(2500+1.84*Tdb);
//=====================================================================
//湿球温度的计算
 TEMP_tlow := Tdp; //露点值赋给低限
 TEMP_thigh := Tdb;//干球温度赋给高限
    FOR I:= 1 TO 100 BY 1 DO  //迭代100次
     TEMP_dt:=(TEMP_thigh-TEMP_tlow)*0.5;//二分法
       TEMP_twb:=TEMP_tlow+TEMP_dt;
       //----------------------------------------------------------------------- Kpa
       //计算该湿球温度下的饱和空气压力KPa(千帕)
       TEMP_pws := 0.6112*EXP((18.678-TEMP_twb/234.5)*TEMP_twb/(TEMP_twb+257.14));
      //-----------------------------------------------------------------------g/kg(a)
      //计算该湿球温度下的含湿量
      TEMP_d:=621.9 * (TEMP_pws/(ATM - TEMP_pws));
      //-----------------------计算焓值-------------------------------------------------kJ/kg
      //计算该湿球温度下的焓值
     
      TEMP_hmid:= 1.01 * TEMP_twb + 0.001*TEMP_d* (2501 + 1.84 * TEMP_twb);
      //--------------------------------------------------------------------
      IF (H-TEMP_hmid)>=0.0 THEN
        TEMP_tlow:=TEMP_twb;
         ELSE
        TEMP_thigh:=TEMP_twb;
      END_IF;
         IF ABS(TEMP_dt)<0.0001 THEN//设置迭代精度
            EXIT;
         END_IF;
    END_FOR;
 Twb:=TEMP_twb;//返回迭代猜测正确的湿球温度
END_FUNCTION_BLOCK

原创程序 QQ 275578306

转载请注明出处


 

湿球温度计算、含湿量计算、焓值计算等 原创程序 SCL 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54631条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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