<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于GSM的中央空調(diào)末端控制器研究

          基于GSM的中央空調(diào)末端控制器研究

          作者: 時(shí)間:2009-12-17 來(lái)源:網(wǎng)絡(luò) 收藏
          短消息的接收與發(fā)送由處理器和SIM300模塊通過(guò)16C550芯片串行通信完成,處理器向SIM300模塊發(fā)送AT指令讀取或發(fā)送短消息。發(fā)送中文短信息時(shí),發(fā)送的是漢字的UCS2編碼,所以在初始化SIM300模塊時(shí)須發(fā)送指令“AT+CMGF=0”,把模塊的短消息工作模式設(shè)置為PDU模式,以UCS2編碼方式發(fā)送短消息。同樣,SIM300模塊收到的短消息也是PDU編碼方式,要讀取出用戶發(fā)送的中文指令就必須將消息內(nèi)容解碼成ASCII字符。根據(jù)實(shí)際應(yīng)用情況(發(fā)送漢字信息較少且固定),從節(jié)約系統(tǒng)資源的角度考慮,直接查找漢字的UCS2編碼表,查出要發(fā)送漢字的UCS2碼并發(fā)送。
            發(fā)送短消息首先要向SIM300模塊發(fā)送整個(gè)短消息代碼位數(shù)的16進(jìn)制數(shù),之后是短信頭代碼“001100D”、中國(guó)區(qū)號(hào)“+86”的編碼“9168”和發(fā)送的目的手機(jī)號(hào)碼。此處的目的手機(jī)號(hào)碼必須是每?jī)晌换Q得來(lái),由于手機(jī)號(hào)碼是11位,最后一位用“N”補(bǔ)齊,而短消息內(nèi)容是用UCS2碼編寫,所以繼續(xù)發(fā)送編碼方式代碼“0008A7”,最后才是短消息正文的UCS2碼。
            當(dāng)有新消息到達(dá)時(shí),收到的數(shù)據(jù)包內(nèi)封裝了消息發(fā)送時(shí)間、來(lái)自的手機(jī)號(hào)碼和消息正文。如果來(lái)自的手機(jī)號(hào)碼與預(yù)先設(shè)置的用戶號(hào)碼不一致則直接將短消息刪除;一致則繼續(xù)判斷短消息正文。由于接收到的短消息也是由UCS2編碼處理過(guò)的中文,所以把消息正文內(nèi)容與預(yù)先約定好的“設(shè)定溫度”和“當(dāng)前狀態(tài)”兩種UCS2編碼相比較后分別轉(zhuǎn)到相應(yīng)的處理函數(shù),若與約定的兩種編碼都不一致,則視為錯(cuò)誤消息刪除。
            本文全部程序代碼由C語(yǔ)言編寫,短消息發(fā)送部分代碼如下:
          void gprs_msg(char*number,char*msgr)//短信發(fā)送函數(shù)
          {
            char ctl[]={26,0};
            char head[]=″0011000D9168″;//短信頭代碼及中國(guó)區(qū)號(hào)
            char headmsg[]=″0008A7″;//短信編碼方式代碼
            unsigned int count;
            char sum[2];

          本文引用地址:http://www.ex-cimer.com/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;//計(jì)算短信長(zhǎng)度

            sum[0]=(char)(count/10+48);
            sum[1]=(char)(count%10+48);//將短信長(zhǎng)度
                          //解碼為16進(jìn)制

            tty_writecmd(sum,2);
            tty_write(head,strlen(head));
            tty_write(number,strlen(number));
            tty_write(headmsg,strlen(headmsg));//發(fā)送短信頭
            tty_write(msgr,strlen(msgr));//發(fā)送短信正文

            tty_write(ctl,1);
            tty_write(″r″,strlen(″r″));//發(fā)送短信結(jié)束代碼
            usleep(300000);//進(jìn)程休眠
            printf(″Message sent.n″);
          }
            上述函數(shù)封裝了PDU模式發(fā)送短消息的頭信息和正文字符長(zhǎng)度等,參數(shù)僅為目的手機(jī)號(hào)碼的PDU編碼和短消息正文的UCS2編碼。這樣做避免了大量的重復(fù)代碼,也提高了程序的運(yùn)行效率。
          1.3 增量式PID控制策略
            PID是一種線性,它根據(jù)給定值r(t)與實(shí)際輸出y(t)構(gòu)成控制偏差:
           

            式中:KP為比例系數(shù);TI為積分時(shí)間常數(shù);TD為微分時(shí)間常數(shù)。
            由于計(jì)算機(jī)處理的是數(shù)字量,的驅(qū)動(dòng)對(duì)象是風(fēng)閥執(zhí)行器,所以控制系統(tǒng)中使用的控制策略是數(shù)字增量式PID。
            u(k)=Ae(k)-Be(k-1)+Ce(k-2)
            以下是增量式PID控制策略的實(shí)現(xiàn)函數(shù):
          double PID(double feedback)
          {
            double Err,pErr,dErr,dU;
            Err=Command-feedback;//當(dāng)前誤差
            pErr=Err-ppreErr;//比例項(xiàng)增量式誤差
            dErr=Err-2*preErr+pre2Err;//微分項(xiàng)增量式誤差
            dU=Proportion*pErr+pDerivative*dErr+ Integral*Err;
          //控制量增量
            pre2Err=preErr;
            preErr=Err;
            return dU;
          }
          2 實(shí)驗(yàn)
            本實(shí)驗(yàn)對(duì)象以1.3噸的系統(tǒng)的實(shí)物模型為例,該系統(tǒng)可以模擬多種運(yùn)行模式,并可以通過(guò)對(duì)執(zhí)行風(fēng)閥輸入模擬信號(hào)來(lái)調(diào)節(jié)風(fēng)閥的具體開度,以此來(lái)調(diào)整送入房間的送風(fēng)量,達(dá)到控制模擬房間制冷量的目的。本實(shí)驗(yàn)對(duì)象有2個(gè)模擬房間,其中裝置的驅(qū)動(dòng)閥為TANG TECH TM04~24,溫濕度傳感器為VECTOR ADS-H1T1。嵌入式的D/A輸出的0~4.096 V信號(hào)經(jīng)放大至0~10 V后,直接驅(qū)動(dòng)風(fēng)閥驅(qū)動(dòng)器。模擬房間的的溫濕度傳感器輸出范圍為1~5 V,直接輸入處理器內(nèi)部A/D的AIN[0]腳。
            系統(tǒng)提供了兩種用戶短消息內(nèi)容的識(shí)別,分別是“設(shè)定溫度XX”和“查詢狀態(tài)”。如用戶發(fā)送“查詢狀態(tài)”,而當(dāng)前室內(nèi)狀態(tài)為23℃,則系統(tǒng)自動(dòng)向用戶返回短消息“溫度:23;狀態(tài):正?!?。如果室內(nèi)是異常溫度,則系統(tǒng)發(fā)送短消息自動(dòng)報(bào)警“溫度60;狀態(tài)警告”。如果用戶發(fā)送“設(shè)定溫度23”,則系統(tǒng)將當(dāng)前室內(nèi)設(shè)定溫度改為23℃,并回復(fù)“已設(shè)定溫度23”。此時(shí)本地的控制器以PID進(jìn)行溫度控制。
            為了使用戶可以方便關(guān)閉室內(nèi)控制器,而又不需要增加其他的短消息內(nèi)容,本文設(shè)置了最高溫度限制50℃。當(dāng)用戶發(fā)送“設(shè)定溫度”大于49℃時(shí),系統(tǒng)認(rèn)為用戶要求關(guān)閉控制器,繼而把溫度設(shè)定點(diǎn)改為OFF,風(fēng)閥完全關(guān)閉,同時(shí)返回短消息“已關(guān)閉”。采用這種方法,既保證了系統(tǒng)有關(guān)閉風(fēng)閥的功能,又不需要添加新的短消息命令??刂破麝P(guān)閉后,如果用戶再次發(fā)送短消息設(shè)置室內(nèi)溫度為正常范圍內(nèi)的溫度,則控制器重新開啟。
            短消息命令詳情見表1。

            為了測(cè)試系統(tǒng)節(jié)能實(shí)際效果,在室外溫度9℃的條件下開啟2個(gè)模擬房間的控制器,并設(shè)置預(yù)期室內(nèi)溫度23℃。假定2個(gè)房間中,模擬房間一8:00有人,模擬房間二9:00開始有人;通過(guò)計(jì)算表明,9:00開啟模擬房間二的室內(nèi)控制器要比8:00同時(shí)開啟2個(gè)模擬房間的室內(nèi)控制器節(jié)約全天所耗能量的7%左右。
            本文實(shí)現(xiàn)了遠(yuǎn)程控制方法,通過(guò)手機(jī)短信方式,對(duì)系統(tǒng)裝置進(jìn)行控制及對(duì)室內(nèi)溫度進(jìn)行實(shí)時(shí)監(jiān)控和管理。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)可以方便、靈活、快捷、按需調(diào)節(jié)房間的溫度,實(shí)現(xiàn)節(jié)能。并且,系統(tǒng)可擴(kuò)充性強(qiáng),在軟件升級(jí)后還可實(shí)現(xiàn)如末端能量計(jì)量等更多功能。

          pid控制器相關(guān)文章:pid控制器原理



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();