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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于SPCE061A的水溫監(jiān)控系統(tǒng)設(shè)計

          基于SPCE061A的水溫監(jiān)控系統(tǒng)設(shè)計

          作者: 時間:2011-06-01 來源:網(wǎng)絡(luò) 收藏

          2.1 A/D轉(zhuǎn)換子程序
          A/D轉(zhuǎn)換:每間隔1s執(zhí)行一次溫度采樣操作.每次采樣執(zhí)行18次A/D轉(zhuǎn)換;在IRQ5_2Hz中斷服務(wù)程序中完成,IRQ5_2Hz用以提供1 s時間以確定AD采樣的時間間隔,A/D轉(zhuǎn)換子程序流程圖如圖5所示。

          本文引用地址:http://www.ex-cimer.com/article/172712.htm

          e.JPG


          2.2 溫度PID控制的實現(xiàn)
          本方案利用位置式PID算法,將溫度傳感器采樣輸入作為當前輸入,然后與設(shè)定值進行相減得偏差,然后再對之進行PID運算產(chǎn)生輸出結(jié)果four,然后讓four控制定時器的時間進而控制加熱器。IRQ2_TimerB提供溢出頻率為64 Hz的中斷信號,配合主程序的PID運算結(jié)果four確定加熱時間,實現(xiàn)加熱器功率調(diào)節(jié),該部分子程序流程圖如下圖6所示。

          f.JPG



          3 系統(tǒng)運行性能測試
          本系統(tǒng)的關(guān)鍵之處在于PID控制。對于PID系統(tǒng)來說,系統(tǒng)性能的好壞主要取決于PID控制的參數(shù)的設(shè)定。由PID控制原理知:比例(P)控制能迅速反應(yīng)誤差,減小穩(wěn)態(tài)誤差:比例作用的加大,會引起系統(tǒng)的不穩(wěn)定。積分(I)控制的作用,只要系統(tǒng)有偏差存在,積分作用不斷地積累,輸出控制量以消除誤差;積分作用太強會使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)振蕩。微分(D)控制可以減小超調(diào)量,克服振蕩,使系統(tǒng)的穩(wěn)定性提高,同時加快系統(tǒng)的動態(tài)響應(yīng)速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能。
          本系統(tǒng)能夠?qū)崿F(xiàn)的基本功能如下:
          1)溫度的實時采集顯示:
          2)對溫度的變化能夠做出及時的處理,能夠應(yīng)用PID調(diào)節(jié);
          3)通過UART實現(xiàn)上下位機通信。并在上位機上顯示溫度的變化曲線。
          在系統(tǒng)調(diào)試過程中,通過改變關(guān)鍵的PID系統(tǒng)參數(shù)Kp、Kd,觀察系統(tǒng)運行性能的變化,以使系統(tǒng)處于最佳運行狀態(tài),以下是測試過程及測試結(jié)果。
          1)Kp=1.5、Kd=1.0(溫升:20~40℃)對應(yīng)的曲線如圖7所示,由圖形可以看出來,由于過大,造成超調(diào)量過大。

          g.JPG



          評論


          相關(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); })();