久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3896|回復(fù): 1
收起左側(cè)

溫控PID算法

[復(fù)制鏈接]
ID:404701 發(fā)表于 2018-10-10 19:43 | 顯示全部樓層 |閱讀模式

溫度控制與PID算法
    溫度控制與PID算法j較為復(fù)雜,下面結(jié)合實(shí)際淺顯易懂的闡述一下PID控制理論,將溫度控制及PID算法作一個(gè)簡(jiǎn)單的描述。


1.溫度控制的框圖

   file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg     這是一個(gè)典型的閉環(huán)控制系統(tǒng),用于控制加熱溫區(qū)的溫度(PV)保持在恒定的溫度設(shè)定值(SV)。系統(tǒng)通過(guò)溫度采集單元反饋回來(lái)的實(shí)時(shí)溫度信號(hào)(PV)獲取偏差值(EV),偏差值經(jīng)過(guò)PID調(diào)節(jié)器運(yùn)算輸出,控制發(fā)熱管的發(fā)熱功率,以克服偏差,促使偏差趨近于零。例如,當(dāng)某一時(shí)刻爐內(nèi)過(guò)PCB板較多,帶走的熱量較多時(shí),即導(dǎo)致溫區(qū)溫度下降,這時(shí),通過(guò)反饋的調(diào)節(jié)作用,將使溫度迅速回升。其調(diào)節(jié)過(guò)程如下:

     file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg    溫度控制的功率輸出采用脈寬調(diào)制的方法。固態(tài)繼電器SSR的輸出端為脈寬可調(diào)的電壓UOUT    當(dāng)SSR的觸發(fā)角觸發(fā)時(shí),電源電壓UAN通過(guò)SSR的輸出端加到發(fā)熱管的兩端;當(dāng)SSR的觸發(fā)角沒(méi)有觸發(fā)信號(hào)時(shí),SSR關(guān)斷。因此,發(fā)熱管兩端的平均電壓為

      Ud(t/T)* UAN=K* UAN

  其中K= t/T,為一個(gè)周期T中,SSR觸發(fā)導(dǎo)通的比率,稱為負(fù)載電壓系數(shù)或是占空比,K的變化率在01之間。一般是周期T固定不便,調(diào)節(jié)t, 當(dāng)t0T的范圍內(nèi)變化時(shí),發(fā)熱管的電壓即在0UAN之間變化,這種調(diào)節(jié)方法稱為定頻調(diào)寬法。下面將要描述的PID調(diào)節(jié)器的算式在這里的實(shí)質(zhì)即是運(yùn)算求出一個(gè)實(shí)時(shí)變化的,能夠保證加熱溫區(qū)在外界干擾的情況下仍能保持溫度在一個(gè)較小的范圍內(nèi)變化的合理的負(fù)載電壓系數(shù)K

   file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg



file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg



2.溫度控制的兩個(gè)階段

      溫度控制系統(tǒng)是一個(gè)慣性較大的系統(tǒng),也就是說(shuō),當(dāng)給溫區(qū)開(kāi)始加熱之后,并不能立即觀察得到溫區(qū)溫度的明顯上升;同樣的,當(dāng)關(guān)閉加熱之后,溫區(qū)的溫度仍然有一定程度的上升。另外,熱電偶對(duì)溫度的檢測(cè),與實(shí)際的溫區(qū)溫度相比較,也存在一定的滯后效應(yīng)。

  這給溫度的控制帶來(lái)了困難。因此,如果在溫度檢測(cè)值(PV)到達(dá)設(shè)定值時(shí)才關(guān)斷輸出,可能因溫度的滯后效應(yīng)而長(zhǎng)時(shí)間超出設(shè)定值,需要較長(zhǎng)時(shí)間才能回到設(shè)定值;如果在溫度檢測(cè)值(PV)未到設(shè)定值時(shí)即關(guān)斷輸出,則可能因關(guān)斷較早而導(dǎo)致溫度難以達(dá)到設(shè)定值。為了合理地處理系統(tǒng)響應(yīng)速度(即加熱速度)與系統(tǒng)穩(wěn)定性之間地矛盾,我們把溫度控制分為兩個(gè)階段。


  file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg

(1)      PID調(diào)節(jié)前階段

在這個(gè)階段,因?yàn)闇貐^(qū)的溫度距離設(shè)定值還很遠(yuǎn),為了加快加熱速度,SSR與發(fā)熱管處于滿負(fù)荷輸出狀態(tài),只有當(dāng)溫度上升速度超過(guò)控制參數(shù)“加速速率”,SSR才關(guān)閉輸出。“加速速率”描述的是溫度在單位時(shí)間的跨度,反映的是溫度升降的快慢,如上圖所示。用“加速速率”限制溫升過(guò)快,是為了降低溫度進(jìn)入PID調(diào)節(jié)區(qū)的慣性,避免首次到達(dá)溫度設(shè)定值(SV)時(shí)超調(diào)過(guò)大。

在這個(gè)階段,要么占空比K=0, SSR關(guān)閉;要么占空比K=100, SSR全速輸出。PID調(diào)節(jié)器不起作用,僅由“加速速率”控制溫升快慢。


2 PID調(diào)節(jié)階段

在這個(gè)階段,PID調(diào)節(jié)器調(diào)節(jié)輸出,根據(jù)偏差值計(jì)算占空比(0100%),保證偏差(EV)趨近于零,即使系統(tǒng)受到外部干擾時(shí),也能使系統(tǒng)回到平衡狀態(tài)。


3. PID算法

          PID控制的原理是基于下面的算式:輸出M(t)是比例項(xiàng),積分項(xiàng)和微分項(xiàng)的函數(shù)。

file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg       其中:

            M(t)     PID回路的輸出,是時(shí)間的函數(shù)

             Kc       PID回路的比例增益

            e        PID回路的偏差(設(shè)定值(SV)與過(guò)程變量(PV)之差)

            Minitial  PID回路的靜態(tài)輸出值

      

            為了能讓數(shù)字計(jì)算機(jī)處理這個(gè)算式,連續(xù)算式必須離散化為周期采樣偏差算式,才能用來(lái)計(jì)算輸出值。數(shù)字計(jì)算機(jī)處理的算式如下:

file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg    從這個(gè)公式可以看出,積分項(xiàng)是從第一個(gè)采樣周期到當(dāng)前采樣周期所有誤差   項(xiàng)的函數(shù),微分項(xiàng)是當(dāng)前采樣和前一次采樣的函數(shù),比例項(xiàng)僅是當(dāng)前采樣的函數(shù)。在數(shù)字計(jì)算機(jī)中,不保存所有的誤差項(xiàng),其實(shí)也不必要。由于計(jì)算機(jī)從第一次采樣開(kāi)始,每有一個(gè)過(guò)程采樣值必須計(jì)算一次輸出值,只需要保存前一次過(guò)程值(PVn-1)和積分項(xiàng)前值。利用計(jì)算機(jī)處理的重復(fù)性,可以將以上算式變換為:



file:///C:/Users/18120/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg   其中:

       Mn      在第n 采樣時(shí)刻,PID回路的輸出計(jì)算值

       SV      PID 回路設(shè)定值

       PVn     在第n 采樣時(shí)刻的過(guò)程變量值

       PVn-1   在第n1 采樣時(shí)刻的過(guò)程變量值

       MX     積分前項(xiàng)值

      Mintial   PID回路的靜態(tài)輸出值

Kc      PID回路的比例增益

KI       積分項(xiàng)的比例常數(shù) KI=Kc * Ts / Ti   

         Ts是離散化時(shí)的采樣時(shí)間間隔  Ti是積分時(shí)間參數(shù);

KD      微分項(xiàng)的比例常數(shù) KD=Kc * Td / Ts

         Ts是離散化時(shí)的采樣時(shí)間間隔  Td是微分時(shí)間參數(shù);


從上面PID的算式,可以分析三個(gè)基本參數(shù)Kc, KI, KD在實(shí)際控制中的作用:


(1)      比例調(diào)節(jié)作用:比例項(xiàng)按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少偏差。但是過(guò)大的比例調(diào)節(jié),使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。

(2)      積分調(diào)節(jié)作用:積分項(xiàng)消除系統(tǒng)的穩(wěn)態(tài)誤差,提高無(wú)差度。只要有偏差,積分就進(jìn)行,直到無(wú)偏差時(shí),積分運(yùn)算才停止,積分調(diào)節(jié)項(xiàng)輸出一常數(shù)值。積分作用的強(qiáng)弱取決于積分時(shí)間常數(shù)TiTi越小,積分作用越強(qiáng)。積分控制可提高系統(tǒng)的無(wú)差度,但積分項(xiàng)輸出響應(yīng)緩慢,使得系統(tǒng)調(diào)節(jié)時(shí)間增長(zhǎng)。

(3)      微分調(diào)節(jié)作用:微分項(xiàng)反映系統(tǒng)過(guò)程變量的變化率((PVn-1-PVn/ Ts),具有預(yù)見(jiàn)性,能預(yù)見(jiàn)變化的趨勢(shì),因此,能產(chǎn)生超前的調(diào)節(jié)作用,在偏差還沒(méi)有形成之前,已被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動(dòng)態(tài)性能。在微分時(shí)間參數(shù)Td選擇合適的情況下,可以減少超調(diào),減少調(diào)節(jié)時(shí)間。微分調(diào)節(jié)對(duì)干擾有放大效果,過(guò)強(qiáng)的微分調(diào)節(jié),對(duì)系統(tǒng)抗干擾不利。此外,微分項(xiàng)反映的是過(guò)程變量的變化率,而當(dāng)過(guò)程變量沒(méi)有變化時(shí),微分調(diào)節(jié)輸出為零。微分調(diào)節(jié)不能單獨(dú)使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PDPID調(diào)節(jié)器。

以上面的推導(dǎo),C程序如下

/*   

pid算法C源程序,還有實(shí)現(xiàn)pid自動(dòng)調(diào)整。51用于控制溫度26-100攝氏度。

TIME:2011-07-29 20:15:07

*/


#include <stdlib.h>

#include "global_varible.h"


/****************************************************************************

* 模塊名: PID

* 描述:   PID調(diào)節(jié)子程序

*        采用PID-PD算法。在偏差絕對(duì)值大于△e時(shí),用PD算法,以改善動(dòng)態(tài)品質(zhì)。

*        當(dāng)偏差絕對(duì)值小于△e時(shí),用PID算法,提高穩(wěn)定精度。

*PIDout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]

*============================================================================

* 入口:   無(wú)

* 出口:   無(wú)

* 改變:   PID_T_Run=加熱時(shí)間控制

*****************************************************************************/

void PID_Math(void)

{

       signedlong ee1;                //偏差一階

       //signedlong ee2;             //偏差二階

       signedlong d_out; //積分輸出


       if(!Flag_PID_T_OK)

              return;

       Flag_PID_T_OK= 0;


       Temp_Set= 3700; //溫度控制設(shè)定值37.00


       PID_e0  = Temp_Set - Temp_Now; //本次偏差

       ee1 = PID_e0 - PID_e1;                    //計(jì)算一階偏差        

       //ee2= PID_e0-2*PID_e1+PID_e2;           //計(jì)算二階偏差

      

       //一階偏差的限制范圍

       if(ee1> 500)  ee1 = 500;

       if(ee1< -500) ee1 = -500;

       PID_e_SUM+= PID_e0;           //偏差之和

      

       //積分最多累計(jì)的溫差  

       if(PID_e_SUM> 200)   PID_e_SUM = 200;

       if(PID_e_SUM< -200)  PID_e_SUM = -200;

       PID_Out= PID_kp * PID_e0 + PID_kd * ee1;     //計(jì)算PID比例和微分輸出

       if(abs(PID_e0)< 200)                                      //如果溫度相差小于1.5度則計(jì)入PID積分輸出

       {

              if(abs(PID_e0)> 100){                              //如果溫度相差大于1度時(shí)積分累計(jì)限制

                     if(PID_e_SUM> 100)          PID_e_SUM = 100;

                     if(PID_e_SUM< -100)  PID_e_SUM = -100;

              }

              

              d_out= PID_ki * PID_e_SUM;                          //積分輸出

              if(PID_e0< -5){                                       //當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)積分累計(jì)限制

                     if(PID_e_SUM> 150)   PID_e_SUM = 150;

                     if(PID_e_SUM> 0)      d_out >>= 1;   //當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)削弱積分正輸出                        

              }

              PID_Out+= d_out;                                 //PID比例,積分和微分輸出

       }

       else

              PID_e_SUM=0;


       PID_Out/= 100;                                              //恢復(fù)被PID_Out系數(shù)放大的倍數(shù)

       if(PID_Out> 200)  PID_Out=200;

       if(PID_Out<0)       PID_Out=0;   

       if(PID_e0> 300)   PID_Out=200;              //當(dāng)前溫度比設(shè)定溫度低3度則全速加熱  

       if(PID_e0< -20)    PID_Out=0;                         //當(dāng)前溫度高于設(shè)定溫度0.2度則關(guān)閉加熱      


       Hot_T_Run= PID_Out;                                          //加熱時(shí)間控制輸出

              

//     PID_e2= PID_e1;                        //保存上次偏差

       PID_e1= PID_e0;                        //保存當(dāng)前偏差

}

回復(fù)

使用道具 舉報(bào)

ID:140370 發(fā)表于 2020-6-14 04:40 | 顯示全部樓層
圖掛了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 538在线精品| www.av在线 | 久久久久欧美 | 日韩影院在线观看 | 精品一区二区观看 | 精品一区二区三区在线观看 | 欧美h版| 久久精品97| 成人国产精品免费观看视频 | 日韩在线免费视频 | 国产成人在线视频播放 | 国产高清免费 | h视频免费在线观看 | 国产成人在线一区二区 | 欧美日韩在线一区二区 | a级在线观看 | 人人九九精 | 亚州精品天堂中文字幕 | 亚洲欧美日韩精品久久亚洲区 | 91社区在线观看播放 | 国产精品久久久久久久久久久免费看 | 日日噜| 99精品观看 | 亚洲一区中文 | 欧美精品久久 | 久久精品99久久 | 亚洲成人精品在线 | 婷婷丁香在线视频 | 高清人人天天夜夜曰狠狠狠狠 | 久久久久久亚洲精品 | 国产成人短视频在线观看 | 欧美日韩在线一区 | 天天综合网91 | 天天久久 | 一区二区三区国产 | 天堂网中文字幕在线观看 | 精品国产一区二区在线 | 一本色道精品久久一区二区三区 | 91精品免费 | 午夜免费网站 | 欧美日韩在线一区二区三区 |