搞自動化的,永遠離不開PID控制這一主題,網上各種PID控制理論滿天飛,但實際工程中所使用的PID大多數都不複雜(向鍋爐給水聯調的這種複雜的除外),調個速,調個壓什麼的,相對簡單,這一篇就夠用了。(文章有點長,沒辦法,一個知識點誰也不能三言兩語就講完,真正想學的希望耐心看完,不想學的請跳過。)
使用FB41進行PID控制詳解
一、PID概述
1、PID控制:比例、積分、微分控制,也稱PID調解,當被控對象的結構和參數不能被完全掌控或得不到精确的數學模型時,控制理論的其它技術難以采用時,系統控制器的結構和參數必須依靠經驗和現場調試來确定,這時應用PID最為方便,即當我們不完全了解一個系統和被控對象時,或不能通過有效的測量手段來獲得系統參數時,最适合用PID控制。PID控制,實際也有PI控制和PD控制,PID控制器就是根據系統的誤差,利用比例、積分、微分計算出控制量進行控制的。
2、本文中所讨論的功能塊(SFB41/FB41,SFB42/FB42,SFB43/FB43)僅僅是使用于S7和C7的CPU中的循環中斷程序中。該功能塊,定期計算所需要的數據,保存在指定的DB中(背景數據塊)。允許多次調用該功能塊。CONT_C塊與PULSEGEN塊組合使用,可以獲得一個帶有比例執行機構脈沖輸出的控制器(例如,加熱和冷卻裝置)。
· SFB41/FB41 (CONT_C), 連續控制方式;
· SFB42/FB42 (CONT_S), 步進控制方式;
· SFB43/FB43 (PULSEGEN), 脈沖寬度調制器;
注意:SFB41/42/43,與FB41/42/43兼容,可以用于CPU 313C、CPU 313C-2 DP/PTP 和CPU 314C-2 DP/PTP中。
二、PID控制系統
1、連續一時間PID控制系統如圖3-1所示。圖中,D(s)為控制器。在PID控制系統中,D(s)完成PID控制規律,稱為PID控制器。 PID控制器是一種線性控制器,用輸出量y(t)和給定量r(t)之間的誤差的時間函數。e(t)=r(t)-y(t)
PID控制原理圖
(3-1)的比例,積分,微分的線性組合,構成控制量u(t)稱為比例(Proportional)
積分(Integrating)微分(Differentiation)控制,簡稱PID控制。實際應用中,可以根據受控對象的特性和控制的性能要求,靈活地采用不同的控制組合,構成
(1)比例(P)控制器
P控制器
(2)比例十積分(PI)控制器
PI控制器
(3)比例十積分十微分(PID)控制器式中 KP——比例放大系數;TI——積分時間; TD——微分時間。
PID控制器
2、模塊圖(原理圖研究明白就成PID的高手了)
PID總圖
三、使用FB41進行PID調整的說明
FB41稱為連續控制的PID用于控制連續變化的模拟量,與FB42的差别在于後者是離散型的,用于控制開關量,其他二者的使用方法和許多參數都相同或相似。PID的初始化可以通過在OB100中調用一次,将參數COM-RST置位,當然也可在别的地方初始化它,關鍵的是要控制COM-RST;PID的調用可以在OB35中完成,一般設置時間為200MS,一定要結合幫助文檔中的PID框圖研究以下的參數,可以起到事半功倍的效果 。以下将重要參數用黑體标明.簡單應用隻需重點關注黑體字的參數就可以了。其他的可以使用默認參數。
A:所有的輸入參數:
COM_RST: BOOL: 重新啟動PID:當該位TURE時:PID執行重啟動功能,複位PID内部參數到默認值;通常在系統重啟動時執行一個掃描周期,或在PID進入飽和狀态需要退出時用這個位;
MAN_ON: BOOL:手動值ON;當該位為TURE時,PID功能塊直接将MAN的值輸出到LMN,這可以在PID框圖中看到;當該位為FALSE時則自動,也就是說,這個位是PID的手動/自動切換位;。
PEPER_ON: BOOL:過程變量外圍值ON:過程變量即反饋量,此PID可直接使用過程變量PIW(不推薦),也可使用 PIW規格化後的值(常用),因此,這個位為FALSE;
P_SEL: BOOL:比例選擇位:該位ON時,選擇P(比例)控制有效;一般選擇有效;
I_SEL: BOOL:積分選擇位;該位ON時,選擇I(積分)控制有效;一般選擇有效;
INT_HOLD BOOL:積分保持,不去設置它;
I_ITL_ON BOOL:積分初值有效,I-ITLVAL(積分初值)變量和這個位對應,當此位ON時,則使用I-ITLVAL變量積分初值。一般當發現PID功能的積分值增長比較慢或系統反應不夠時可以考慮使用積分初值;
D_SEL : BOOL:微分選擇位,該位ON時,選擇D(微分)控制有效;一般的控制系統不用;
CYCLE : TIME:PID采樣周期,一般設為200MS;
SP_INT: REAL:PID的給定值;一般是HMI過來的設定值,real型;
PV_IN : REAL:PID的反饋值(也稱過程變量);比如壓力,要從piw×××轉換為工程量。
PV_PER: WORD:未經規格化的反饋值,由PEPER-ON選擇有效,直接使用piw×××;(不推薦)
MAN : REAL:手動值,由MAN-ON選擇有效;
GAIN : REAL:比例增益,實際就是Pid的P;
TI : TIME:積分時間,實際就是Pid的I;
TD : TIME:微分時間,實際就是Pid的D;
TM_LAG: TIME:和微分有關,基本不用;
DEADB_W: REAL:死區寬度,就是sp和pv的偏差死區,0-100.0的範圍,如果輸出在平衡點附近微小幅度振蕩,可以考慮用死區來降低靈敏度;
LMN_HLM: REAL:PID上極限,一般是100%;
LMN_LLM: REAL:PID下極限;一般為0%,如果需要雙極性調節,則需設置為-100%;(正負10V輸出就是典型的雙極性輸出,此時需要設置-100%);
PV_FAC: REAL:過程變量比例因子
PV_OFF: REAL:過程變量偏置值(OFFSET)
LMN_FAC: REAL:PID輸出值比例因子;
LMN_OFF: REAL:PID輸出值偏置值(OFFSET);
I_ITLVAL:REAL:PID的積分初值;有I-ITL-ON選擇有效;
DISV :REAL:允許的擾動量,前饋控制加入,一般不設置;
B:部分輸出參數說明:
LMN :REAL:PID輸出;0-100的範圍,要先進行規格化,在送出。
LMN_P :REAL:PID輸出中P的分量;(可用于在調試過程中觀察效果)
LMN_I :REAL:PID輸出中I的分量;(可用于在調試過程中觀察效果)
LMN_D :REAL:PID輸出中D的分量;(可用于在調試過程中觀察效果)
C:規格化概念及方法:
PID參數中重要的幾個變量,給定值,反饋值和輸出值都是用0.0~100.0之間的實數表示,而這幾個變量在實際中都是來自與模拟輸入,或者輸出控制模拟量的因此,需要将模拟輸出轉換為0.0~100.0的數據,或将0.0~100.0的數據轉換為模拟輸出,這個過程稱為規格化。規格化的方法:(即變量相對所占整個值域範圍内的百分比對應與27648數字量範圍内的量)
對于輸入和反饋,執行:變量*100/27648,然後将結果傳送到PV-IN和SP-INT
對于輸出變量 ,執行:LMN*27648/100,然後将結果取整傳送給PQW即可;
D:PID的調整方法:
一般不用D,除非一些大功率加熱控制等慣大的系統;僅使用PI即可,一般先使I等于0,P從0開始往上加,直到系統出現等幅振蕩為止,記下此時振蕩的周期,然後設置I為振蕩周期的0.48倍,應該就可以滿足大多數的需求。
四、實際應用舉例
1、打開S7,新建OB35并打開,編成語言采用"梯形圖",在标準庫中把FB41拖入程序中,如下圖:
圖3 FB41 功能塊
在"?"處輸入FB41的背景數據塊,回車後提示數據塊沒有被建立,現在是否建立的提示,點擊OK即可。調用FB41時需要注意以下幾點:(1)在視圖中語言最好選擇梯形圖,如果選語句表,則調用FB41會出現以下界面:
圖4語句表形式的PID功能塊
當你轉換為語句表時他不會轉化成圖3的形式,但以梯形圖編程視圖建立的圖3的可以轉換成圖4的形式,并且可以再轉化回圖3 的形式。(2)背景數據塊可以随便起名,他可以在FB41調用的時候建立,也可以提前建立。(3)FB41也可以提前建立。
附錄一: SFB 41/FB 41"CONT_C"輸入參數的說明:
注:(1)"設定值通道"和"過程變量通道"中的參數,應該有相同的單位。例如,如果使用PV_IN作為"過程物理值"或者"過程物理值百分比",SP_INT必須使用相應相同的單位;如果使用PV_PER作為外圍設備的實際數值,SP_INT隻能使用"-100.0 至 100.0(%)"作為設定值。如果設定值是SP_INT是0~10Mpa中的8Mpa,那麼需要填寫0.8,PV_PER填寫硬件外設地址IW XXX;(2 )受控量通道中的參數應該有相同的單位。
附錄二: SFB 41/FB 41"CONT_C"輸出參數的說明:
附錄三:PID常用口訣: 參數整定找最佳,從小到大順序查,先是比例後積分,最後再把微分加,曲線振蕩很頻繁,比例度盤要放大,曲線漂浮繞大灣,比例度盤往小扳,曲線偏離回複慢,積分時間往下降,曲線波動周期長,積分時間再加長,曲線振蕩頻率快,先把微分降下來,動差大來波動慢,微分時間應加長,理想曲線兩個波,前高後低4比1。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!