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%左右。
本文实现了GSM远程控制方法,通过手机短信方式,对中央空调系统末端装置进行控制及对室内温度进行实时监控和管理。实验结果表明,系统可以方便、灵活、快捷、按需调节房间的温度,实现节能。并且,系统可扩充性强,在软件升级后还可实现如末端能量计量等更多功能。