新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC12C5A60S2設計的馬弗爐溫度控制器方案

        STC12C5A60S2設計的馬弗爐溫度控制器方案

        作者: 時間:2011-09-28 來源:網絡 收藏

        馬弗爐是高性能機電一體化的新一代智能產品,適用于煤炭、電力、化工、冶金等行業和部門進行工業分析。設計以單片機作為控制中心,采用PID控制算法和自適應控制技術,自動調整預加熱溫度,并可以存儲記憶,確保試驗順利完成,自動化程度高。

        1.馬弗爐主要技術指標
        測溫范圍:0~1000℃
        測溫精度:±3℃
        控溫精度:±10℃(在250~1000℃范圍內)
        升溫時間:(室溫~920℃)≤30min
        電源:AC220V±22V@50Hz±1Hz
        功率:3.5kW
        具有快速灰化和緩慢灰化、揮發分、羅加指數、黏結指數等四個專用加熱程序;另外,溫度控制器有一個自選程序,通過按鍵可選擇所需設定的溫度和保溫時間。

        2.設計思路
        設計采用PID算法來控制PWM的占空比,由PWM信號控制IGBT的通斷,使用時鐘專用芯片DS1302進行定時控制,從而實現在不同時段對爐溫的控制。

        3.系統結構
        由單片機,熱電偶放大器與數字轉換器MAX6675,時鐘芯片DS1302,I級精度K形熱電偶,鍵盤及顯示系統組成,系統結構如圖1所示。

        圖1 系統結構框圖

        PID簡介

        1.基本概念
        ①基本偏差e(t):表示當前測量值與設定目標之間的偏差。設定目標是被減數,結果可以是正或負,正數表示還沒有達到,負數表示已經超過了設定值,這是面向比例項用的一個變動數據。

        ②累計偏差∑e(t)=e(t)+e(t-1) +…+e(t-n):這是我們每一次測量得到偏差值的總和,是代數和,要考慮正負號運算的。這是面向積分項用的一個變動數據。

        ③基本偏差的相對量e(t)-e(t-1):用本次的基本偏差減去上一次的基本偏差,用于考察當前控制對象的趨勢,作為快速反應的重要依據,這是面向微分項用的一個變動數據。

        ④三個基本參數Kp、Ki、Kd:這是做好一個控制器的關鍵常數,分別稱為比例常數、積分常數和微分常數。不同的控制對象需要選取不同的值,經過現場調試才能獲得較好的效果。

        2.三個基本參數Kp、Ki、Kd實際控制中的作用
        ①比例環節:即時成比例地反應控制系統的偏差信號e(t),偏差一旦產生,調節器立即產生控制作用以減小偏差。比例作用大,可以加快調節,減少誤差,但過大比例會使系統穩定性下降。

        ②積分環節:主要用于消除靜差,提高系統的無差度。積分作用的強弱取決于積分時間常數Ti。Ti越大,積分作用越弱,反之則越強。

        ③微分環節:能反應偏差信號的變化趨勢(變化速率),并能在偏差信號的值變得過大之前,在系統中引入一個有效的早期修正信號,從而加快系統的動作速度,減小調節時間。

        3.參數的設置與調整
        ①加溫迅速達到目標值,但溫度過沖很大。

        比例系數太大,致使在未達到設定溫度前加熱比例過高;微分系數過小,對對象反應不敏感。

        ②加溫經常達不到目標值,小于目標值時間多。

        比例系數過小,加溫比例不夠;積分系數過小,對靜差補償不足。

        ③基本在控制溫度內,但上下偏差大,經常波動。

        微分系數小,對及時變化反應慢;積分系數過大,使微分反應被鈍化。

        ④受環境影響較大

        微分系數小,對及時變化反應慢;設定的基本定時周期過長,不能得到及時修正。

        下面給出PID控制程序:
        #ifndef _PID_H__
        #define _PID_H__
        #includeintrins.h>
        #includemath.h>
        #includestring.h>
        struct PID {
        unsigned int SetPoint; // 設定目標 Desired Value
        unsigned int Proportion; // 比例常數 Proportional Const
        unsigned int Integral; // 積分常數 Integral Const
        unsigned int Derivative; // 微分常數 Derivative Const
        unsigned int LastError; // Error[-1]
        unsigned int PrevError; // Error[-2]
        unsigned int SumError; // Sums of Errors
        }
        struct PID spid; // PID Control Structure
        unsigned int rout; // PID Response (Output)
        unsigned int rin; // PID Feedback (Input)
        sbit output=P1^4;
        unsigned char high_time,low_time,count=0;//占空比調節參數
        unsigned char set_temper=920;
        void PIDInit (struct PID *pp)
        {
        memset ( pp,0,sizeof(struct PID));
        }
        unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint )
        {
        unsigned int dError,Error;
        Error = pp->SetPoint - NextPoint; // 偏差
        pp->SumError += Error; // 積分
        dError = pp->LastError - pp->PrevError; // 當前微分
        pp->PrevError = pp->LastError;
        pp->LastError = Error;
        return (pp->Proportion * Error//比例
        + pp->Integral * pp->SumError //積分項
        + pp->Derivative * dError); // 微分項
        }

        4. 溫度采集電路
        熱電偶作為一種主要的測溫元件,具有結構簡單、制造容易、使用方便、測溫范圍寬、測溫精度高等特點。但是,熱電偶的應用卻存在著非線性、冷端補償、數字化輸出等幾方面的問題。設計中采用的MAX6675是一個集成了熱電偶放大器、冷端補償、A/D轉換器及SPI串口的熱電偶放大器與數字轉換器,其電路如圖2所示。

        圖2 溫度采集電路圖

        MAX6675從SPI串行接口輸出數據的過程如下:MCU使CS變低并提供時鐘信號給SCK,由SO讀取測量結果。CS變低將停止任何轉換過程;CS變高將啟動一個新的轉換過程。一個完整串行接口讀操作需16個時鐘周期,在時鐘的下降沿讀16個輸出位,第1位和第15位是一偽標志位且總為0;第14位到第3位為以MSB到LSB順序排列的轉換溫度值;第2位平時為低,當熱電偶輸入開放時為高;開放熱電偶檢測電路完全由MAX6675實現,為開放熱電偶檢測器操作,T-必須接地,并使接地點盡可能接近GND腳;第1位為低電平以提供MAX6675器件身份碼,第0位為三態。

        圖3 SO端輸出溫度數據的格式

        圖4 MAX6675的SPI接口時序

        下面給出相應的溫度值讀取程序及數據轉換程序:
        void max6675()
        {
        uchar m;
        uint temp;
        temp=0;
        max_sck=0;
        max_cs=1;
        delay(180ms);
        max_cs=0 ;
        max_sck=1;
        _nop_();
        max_sck=0;
        _nop_();
        if(max_so==1){temp |=0x0001;}
        for(m=0;m15;m++)
        {
        temp=1;
        max_sck=1;
        _nop_();
        max_sck=0;
        if(max_so==1){temp |=0x0001;} }
        temp=(temp0x7fe0)>>5;
        t[0]=temp/1000+0x30;
        t[1]=temp%1000/100+0x30;
        t[2]=temp%100/10+0x30;
        t[3]=temp%10+0x30;
        print(1,0,t);
        }

        圖5 定時電路圖

        圖6 單片機系統電路圖

        圖7 主程序流程圖

        5.定時電路
        使用時鐘專用芯片DS1302進行定時控制,通過外加很少的電路就可以實現高精度的時鐘信號。外圍電路簡單可靠,時間精度高,通過外接鋰電池后可以實現時間信息存儲。

        6.單片機系統
        采用組成單片機最小系統,有2路PWM,選用一路作為IGBT的控制信號。另外,STC12C5A60S2內部還有1K的EEPROM,用于設置自選程序,通過按鍵選擇所需設定的溫度和保溫時間。顯示模塊采用128×64液晶顯示。

        7.軟件設計

        圖8 子程序流程圖

        程序流程圖如圖8所示。

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


        溫濕度控制器相關文章:溫濕度控制器原理
        熱電偶相關文章:熱電偶原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 体育| 浦北县| 中方县| 全州县| 会同县| 洛宁县| 泽普县| 永德县| 通榆县| 安福县| 中西区| 石景山区| 仙游县| 年辖:市辖区| 西平县| 盐亭县| 阜康市| 青铜峡市| 天气| 伊金霍洛旗| 全椒县| 武陟县| 广昌县| 临西县| 荔波县| 申扎县| 临颍县| 新河县| 青神县| 齐齐哈尔市| 阿拉善右旗| 长阳| 临邑县| 尖扎县| 辽中县| 赫章县| 武威市| 海城市| 汉寿县| 兴文县| 安多县|