快捷搜索:

基于PID控制策略和3C2410芯片实现中央空调末端装

中央空调末尾节制器是中央空调系统中最紧张的装配之一,对付中央空调的节能有侧紧张意义。现有的中央空调末尾风阀启/停节制有手动开闭节制和固准光阴调整的风量节制两种。启动后的节制策略常采纳PID或隐隐节制措施对室内温度进行节制。这种由中央空调节制系统集中的固定调整算法,虽然节制系统轻易实现,但它只适用于负荷和作息光阴固定的用户,若何根据用户的实际需求来调剂末尾送风装配调整光阴,是节能和维持舒适度的关键。现有按照需求实现远程末尾节制的要领有蓝牙技巧和以太网。而蓝牙的有效传输间隔短,以太网又布线繁杂,受地域、情况、经济前提等影响的限定。

为了办理以上问题,本文设计实现了一种基于手机SIM卡GSM收集的中央空调末尾风阀异地节制模块。GSM除语音营业外,另有短消息数据传输营业。该模块不只可以完成室内温度信息经由过程GSM收集以短信息的形式申报用户,同时也可以由用户经由过程该模块发送期望设定室内温度给末尾节制器,完生远程节制。

本文以Samsung公司的S3C2410芯片作为处置惩罚器,以Linux2.6为嵌入式操作系统,基于PID节制策略,经由过程手机短信的要领对中央空调末尾装配进行远程节制,实现了对室内温度的设置和监控,取得了很好的实际效果。

1 末尾节制器系统设计

1.1 节制器系统硬件设计

本文基于ARM9平台,采纳Linux嵌入式操作系统,以S3C2410处置惩罚器为核心。系统硬件主要由以下模块组成:

(1)GSM/GPRS射频模块。用来与GPRS收集进行通信的射频模块,本文选用Simcom公司推出的工业级GSM/GPRS双频Modem模块SIM300,具有完备的Modem旌旗灯号,在收集通信时可以作为一个Modem而存在。模块采纳串行接口通信,主要为语音传输、短信息和数据营业供给无线接口,带GPRS功能。SIM300芯片的外围电路采纳了芯片的范例连接,使用阻容充电和施密特触发器整形得到上电后大年夜约1.5 s低电平延时来启动。

(2)16C550串行接口。16C550是一种用于将并口数据转换成串口数据的高速UART芯片,并自带16位FIFO缓存通道,而且波特率可选。一方面可得到完备的Modem节制,另一方面也是为了得到精准的UART波特率,本文在SIM300射频模块与处置惩罚器组成的节制单元进行串行通信时应用16C550芯片。16C550芯片的虚拟地址为0xdb000000,事情在带中断的FIFO要领;其波特率设置为115200,传输无校验,8位数据位,1位竣事位,轻忽输入BREAK、帧差错和奇偶校验错,应用标准模式传输。

(3)CPU中央处置惩罚单元。采纳Samsung公司临盆的32/16位高机能基于ARM920T内核的RISC微处置惩罚器S3C2410,具有低功耗、自带8通道10位ADCDAC、并支持NAND Flash和SDRAM存储器等特征。该单元包括S3C2410微节制器的最小系统、时钟电路、复位电路等部分。

(4)输入输出单元:模拟房间内的温度传感器旌旗灯号输入到处置惩罚器的A/D转换器;处置惩罚器经由过程PID算法获得的输出量由D/A转换器输出以节制送风履行阀的开度,调剂房间内的送风量从而达到调节室内温度的目的。

图1为系统硬件框图。

1.2 节制器系统软件设计

操作系统采纳实时性强的Linux2.6内核,编译器应用gcc 4.0.2版本,完成了各个功能模块的接口函数。因为在进行嵌入式系统内核开拓时,若交叉编译对象(分外是gcc)版本较低则无法编译高版本内核,版本过高也不可。是以本文为共同要采纳的Linux2.6.18内核开拓末尾节制器,进行定制开拓交叉编译情况。详细如下:crosstool-0.43,binutils-2.16.1.tar.bz2,gcc-4.0.2,glibc-2.3.5,glibc-linuxthreads-2.3.5,linux-libc-headers-2.6.12.0,gdb-6.5,天生交叉编译对象为arm-9tdmi-linux-gcc。此中短消息通信线程的初始化和主轮回共分为以下4个步骤:

(1)完成串口初始化。系统启动并完成初始化后,开始反复读取16C550芯片发来的串口数据。当GSM模块收到新短信后,经由过程串口向处置惩罚器发送1个字符串。该字符串款式、长度及内容都是固定的,以+CMTI开首,以此为依据判断是否新短信到来。

(2)向SIM300模块发送读取短消息的AT指令,判断短消息内容。首先经由过程手机号来判断短消息是否由用户发来。假如短消息由用户发来,则判断用户发送的指令,否则直接删除。

(3)假如用户发送的内容是“设定温度XX”(XX代表二位温度值),则将“XX”经由过程解码函数解码成ASCII字符,再经由过程换算获得用户期望设置的温度发送给温度节制模块,着末删除该信息。假如用户发送的内容是“查询状态”,则将当前温度值和室内状态以短消息的形式发送给用户手机,着末同样删除该信息。

(4)处置惩罚器继承读取串口数据。

短消息通信法度榜样流程如图2所示。

处置惩罚器经由过程串口与GSM模块通信,串行通信的基础参数有:波特率、数据位、竣事位及校验要领等。串口驱动法度榜样实现了对串口的读写操作,给利用法度榜样供给发送接管数据的接口。串口正常事情之前,必要进行初始化设置,选择串口事情要领,设置波特率、数据款式及中断,建立数据行列步队和旌旗灯号量。利用法度榜样只要调用响应的函数,就可以实现响应的功能。

以串口发送一个字符串为例先容发送法度榜样,此中buf表示要发送的字符串,nbytes表示字符的个数:

int tty_write(char*buf,int nbytes)

{

int i;

for(i=0;i《nbytes;i++) {

write(tty_fd,&buf[i],1);

usleep(100);

}

return tcdrain(tty_fd);

}

短消息的接管与发送由处置惩罚器和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];

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远程节制措施,经由过程手机短信要领,对中央空调系统末尾装配进行节制及对室内温度进行实时监控和治理。实验结果注解,系统可以方便、机动、快捷、按需调节房间的温度,实现节能。并且,系统可扩充性强,在软件进级后还可实现如末尾能量计量等更多功能。

责任编辑:gt

您可能还会对下面的文章感兴趣: