新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于模糊PID的鍋爐壓力控制器的設計

        基于模糊PID的鍋爐壓力控制器的設計

        作者: 時間:2010-07-27 來源:網絡 收藏

        0前言

        鍋爐自控系統是一個典型的大慣性、大滯后、多變量的過程控制系統,其涉及到壓力、溫度、水位等多個物理參數檢測與控制,需要同時控制風機、補水泵、加熱裝置,自動排除故障等。由于模擬輸入量多,需要的硬件電路也多,控制起來不簡單。現階段,很多廠家都是利用PLC對鍋爐進行控制,其自動化程度和可靠性較高,但是成本也很高,而且程序修改和參數設置比較困難。以為控制核心的智能控制系統由于成本低、可靠性好、安全性高,受到了更多企業的喜歡[1]。本文在借鑒現有各類溫度控制系統的基礎上,設計一個中檔系統,該系統采用STC89C51單片機作為核心,具體控制采用基于模糊的PID方式。

        1系統硬件電路設計[2]

        基于的控制系統主要包括單片機芯片、鍵盤、LED顯示、蜂鳴器報警電路、開關電路和輸入信號采集電路組成。硬件原理圖如圖1所示。

        基于模糊PID的鍋爐壓力控制器的設計
        圖1 硬件系統原理框圖

        該方案設計相對簡單,硬件電路中采用的STC89C51是臺灣宏晶科技推出的新一代超強抗干擾/高速/低功耗的單片機,指令代碼完全兼容傳統8051單片機,12時鐘/機器周期和6時鐘/機器周期可任意選擇,最新的D版本內部集成MAX810專用復位電路。

        輸入信號采集電路主要是采集水位信號和壓力控制器信號,水位信號包括水位極低、低水位、正常水位、高水位、水位極高;壓力控制器包括低壓、高壓、超高壓;開關電路主要是負責控制一段火燃燒機、二段火燃燒機、補水泵和鼓風機的控制;LED顯示主要是負責各種水位的顯示、各種壓力的顯示和各種故障顯示;蜂鳴器報警電路主要是缺水水位、超高水位、超高壓狀態、各種故障的蜂鳴報警。
        該系統完成的功能主要是根據鍋爐的水位和壓力,來控制水泵是否補水,控制一二段火開關的加熱,并根據具體情況控制風機進行降溫,并隨時可以進行故障報警。而且相應狀態都可以通過控制面板上的LED顯示出來。圖2為一段火開關控制電路。

        燃燒機控制過程:運行過程中,當壓力狀態顯示“低位”時,一段火、二段火同時啟動;當壓力狀態顯示“正常”時,二段火滅、一段火仍開,當壓力狀態顯示“高位”時,一段火、二段火全滅,繼續控制燃燒機風機吹掃30秒。當壓力下降,狀態再次顯示“低位”時,一段火、二段火再次同時啟動,如此循環直到停止運行。總之:低壓啟動,常壓保持,高壓停止,超高壓保護。在壓力狀態顯示“正常”時按“運行”鍵開始運行的話,一段火、二段火都不啟動,等壓力下降到“低位”時才啟動。

        基于模糊PID的鍋爐壓力控制器的設計
        圖2 一段火開關控制電路


        2調節規律的選擇[3-4]

        該系統采用常用的PID調節規律:

        其中: 作為單片機的輸入信號, 是給定值。但由于單片機只能處理數字信號,故用數字PID來表示:

        上式中, 次采樣時的偏差值和PID的輸出量; 和 —比例、積分和微分系數。
        在現實系統中,所測控的對象多具有大滯后、強耦合、時變等特征,僅采用PID控制往往存在調整時間長、超調量大、PID參數不易確定等不足。此處引入模糊思想對PID參數進行實時調整,以期獲得較好的控制效果。

        具體的調整方式如下式所示,其中a、b和c分別為比例系數、積分系數和微分系數的調整系數; 和 ——調整后用于求取PID輸出的比例系數、積分系數和微分系數; 和 ——起始的比例系數、積分系數和微分系數。

        3系統軟件設計[5]

        本系統中的軟件主要是根據系統要求運用C語言設計的,軟件能可靠地實現系統的各種功能。系統軟件設計采用模塊化思想。根據功能將系統軟件分為初始化系統、數據采集并對采集所得的數據進行處理。系統軟件主流程圖和中斷處理程序流程圖如圖3所示。

        基于模糊PID的鍋爐壓力控制器的設計
        圖3 系統軟件主流程圖


        本系統水泵自動控制過程如下:當爐水水位下降超過低位時,泵1啟動自動補水,當爐水水位上升超過高位時,泵1停止,當爐水水位再次下降超過低位時,泵1又啟動自動補水。如此循環直到停止運行。在水位狀態顯示“正常”時按“運行”鍵開始運行的話,泵1不啟動,等水位下降到“低位”時才啟動。在壓力控制運行過程中,當發生缺水、壓力超高、水位超高、燃燒機故障、煙溫超高等故障時聲光報警停機保護。

        下面是燃燒機故障程序:

        else if(status_ERR==1)
        {
        LED_RUN=LED_ON;
        LED_WAIT=LED_OFF;
        LED_BURNFAULT=LED_ON;
        MotorAlm=0; //警鈴開
        MotorAir=1; //強制關風機

        SecondBurn=1; //關二極火
        FirstBurn=1;
        status_Start=0;
        }
        else if(status_Watered==0WaterLowest==0)
        {
        MotorWater=0; //開水泵
        MotorAir=1; //關風機
        SecondBurn=1; //關二極火
        FirstBurn=1; //關一級火
        if(WaterHigh==0) //加水到高水位停止
        status_Watered=1; //置加過水標志
        LED_RUN=LED_ON;
        LED_WAIT=LED_OFF;
        status_Start=1; //置運行標志
        }
        ……
        else if(PressureHighest==1Pressurelower==1PressureHigh==1) //沒有壓力
        {
        status_PressureHighest=0;
        status_pressuresilence=0;
        LED_PRESSURE=LED_OFF;
        }

        4結束語

        本文設計了一個具有普遍實用意義的中檔單片機系統。該系統采用了STC89C51作為核心,具體控制算法采用能進行實時調整的方式,該系統能克服常規單片機PID控制系統的一些不足之處,達到較為理想的控制效果。該系統已經被廠家使用,系統運行穩定。

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


        蜂鳴器相關文章:蜂鳴器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 简阳市| 滦平县| 连山| 京山县| 余干县| 绵竹市| 宾阳县| 子洲县| 历史| 石家庄市| 齐齐哈尔市| 罗定市| 惠来县| 嘉祥县| 麻江县| 梁平县| 九龙坡区| 西华县| 罗甸县| 海口市| 松阳县| 闽清县| 新竹市| 仲巴县| 台前县| 伊春市| 佛教| 望城县| 甘德县| 璧山县| 汤原县| 衡山县| 普兰县| 凤城市| 田阳县| 墨脱县| 安国市| 泰兴市| 龙口市| 博爱县| 乐平市|