关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于GSM的中央空调末端控制器研究

基于GSM的中央空调末端控制器研究

作者: 时间:2009-12-17 来源:网络 收藏
短消息的接收与发送由处理器和SIM300模块通过16C550芯片串行通信完成,处理器向SIM300模块发送AT指令读取或发送短消息。发送中文短信息时,发送的是汉字的UCS2编码,所以在初始化SIM300模块时须发送指令“AT+CMGF=0”,把模块的短消息工作模式设置为PDU模式,以UCS2编码方式发送短消息。同样,SIM300模块收到的短消息也是PDU编码方式,要读取出用户发送的中文指令就必须将消息内容解码成ASCII字符。根据实际应用情况(发送汉字信息较少且固定),从节约系统资源的角度考虑,直接查找汉字的UCS2编码表,查出要发送汉字的UCS2码并发送。
  发送短消息首先要向SIM300模块发送整个短消息代码位数的16进制数,之后是短信头代码“001100D”、中国区号“+86”的编码“9168”和发送的目的手机号码。此处的目的手机号码必须是每两位互换得来,由于手机号码是11位,最后一位用“N”补齐,而短消息内容是用UCS2码编写,所以继续发送编码方式代码“0008A7”,最后才是短消息正文的UCS2码。
  当有新消息到达时,收到的数据包内封装了消息发送时间、来自的手机号码和消息正文。如果来自的手机号码与预先设置的用户号码不一致则直接将短消息删除;一致则继续判断短消息正文。由于接收到的短消息也是由UCS2编码处理过的中文,所以把消息正文内容与预先约定好的“设定温度”和“当前状态”两种UCS2编码相比较后分别转到相应的处理函数,若与约定的两种编码都不一致,则视为错误消息删除。
  本文全部程序代码由C语言编写,短消息发送部分代码如下:
void gprs_msg(char*number,char*msgr)//短信发送函数
{
  char ctl[]={26,0};
  char head[]=″0011000D9168″;//短信头代码及中国区号
  char headmsg[]=″0008A7″;//短信编码方式代码
  unsigned int count;
  char sum[2];

本文引用地址:https://www.eepw.com.cn/article/163402.htm

  tty_writecmd(″at″,strlen(″at″));
  tty_writecmd(″at″,strlen(″at″));
  tty_write(″at+cmgs=″,strlen(″at+cmgs=″));

  count=strlen(msgr)/2+14;//计算短信长度

  sum[0]=(char)(count/10+48);
  sum[1]=(char)(count%10+48);//将短信长度
                //解码为16进制

  tty_writecmd(sum,2);
  tty_write(head,strlen(head));
  tty_write(number,strlen(number));
  tty_write(headmsg,strlen(headmsg));//发送短信头
  tty_write(msgr,strlen(msgr));//发送短信正文

  tty_write(ctl,1);
  tty_write(″r″,strlen(″r″));//发送短信结束代码
  usleep(300000);//进程休眠
  printf(″Message sent.n″);
}
  上述函数封装了PDU模式发送短消息的头信息和正文字符长度等,参数仅为目的手机号码的PDU编码和短消息正文的UCS2编码。这样做避免了大量的重复代码,也提高了程序的运行效率。
1.3 增量式PID控制策略
  PID是一种线性,它根据给定值r(t)与实际输出y(t)构成控制偏差:
 

  式中:KP为比例系数;TI为积分时间常数;TD为微分时间常数。
  由于计算机处理的是数字量,的驱动对象是风阀执行器,所以控制系统中使用的控制策略是数字增量式PID。
  u(k)=Ae(k)-Be(k-1)+Ce(k-2)
  以下是增量式PID控制策略的实现函数:
double PID(double feedback)
{
  double Err,pErr,dErr,dU;
  Err=Command-feedback;//当前误差
  pErr=Err-ppreErr;//比例项增量式误差
  dErr=Err-2*preErr+pre2Err;//微分项增量式误差
  dU=Proportion*pErr+pDerivative*dErr+ Integral*Err;
//控制量增量
  pre2Err=preErr;
  preErr=Err;
  return dU;
}
2 实验
  本实验对象以1.3吨的系统的实物模型为例,该系统可以模拟多种运行模式,并可以通过对执行风阀输入模拟信号来调节风阀的具体开度,以此来调整送入房间的送风量,达到控制模拟房间制冷量的目的。本实验对象有2个模拟房间,其中装置的驱动阀为TANG TECH TM04~24,温湿度传感器为VECTOR ADS-H1T1。嵌入式的D/A输出的0~4.096 V信号经放大至0~10 V后,直接驱动风阀驱动器。模拟房间的的温湿度传感器输出范围为1~5 V,直接输入处理器内部A/D的AIN[0]脚。
  系统提供了两种用户短消息内容的识别,分别是“设定温度XX”和“查询状态”。如用户发送“查询状态”,而当前室内状态为23℃,则系统自动向用户返回短消息“温度:23;状态:正常”。如果室内是异常温度,则系统发送短消息自动报警“温度60;状态警告”。如果用户发送“设定温度23”,则系统将当前室内设定温度改为23℃,并回复“已设定温度23”。此时本地的控制器以PID进行温度控制。
  为了使用户可以方便关闭室内控制器,而又不需要增加其他的短消息内容,本文设置了最高温度限制50℃。当用户发送“设定温度”大于49℃时,系统认为用户要求关闭控制器,继而把温度设定点改为OFF,风阀完全关闭,同时返回短消息“已关闭”。采用这种方法,既保证了系统有关闭风阀的功能,又不需要添加新的短消息命令。控制器关闭后,如果用户再次发送短消息设置室内温度为正常范围内的温度,则控制器重新开启。
  短消息命令详情见表1。

  为了测试系统节能实际效果,在室外温度9℃的条件下开启2个模拟房间的控制器,并设置预期室内温度23℃。假定2个房间中,模拟房间一8:00有人,模拟房间二9:00开始有人;通过计算表明,9:00开启模拟房间二的室内控制器要比8:00同时开启2个模拟房间的室内控制器节约全天所耗能量的7%左右。
  本文实现了远程控制方法,通过手机短信方式,对系统装置进行控制及对室内温度进行实时监控和管理。实验结果表明,系统可以方便、灵活、快捷、按需调节房间的温度,实现节能。并且,系统可扩充性强,在软件升级后还可实现如末端能量计量等更多功能。

pid控制器相关文章:pid控制器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭