PID算法是工程控制領域常用的一種算法,其有著技術成熟,不需要建立數學模型,參數整定靈活,適用性強,魯棒性強,控制效果好等優點,得到了廣泛的應用,其參數整定對控制效果影響極大,針對增量式的PID的參數整定方法在現有的文獻中較少涉及。
PID分位置式PID和增量式PID兩種,由于位置式PID控制的輸出與整個過去的狀態有關,用到了誤差的累加值;而增量式PID的輸出只與當前狀態和前兩狀態的誤差有關,因此位置式PID控制的累積誤差相對更大,增量式PID輸出的是控制量增量,如果微處理器出現故障,誤動作影響較小,而執行機構本身有記憶功能,可仍保持原位,不會嚴重影響系統的工作,而位置式的輸出直接對應對象的輸出,對系統影響較大,因此實際中增量式PID應用更加廣泛。
增量式PID控制
增量式PID控制,數字PID控制算法的一種基本形式,是通過對控制量的增量(本次控制量和上次控制量的差值)進行PID控制的一種控制算法。
增量式PID控制主要是通過求出增量,將原先的積分環節的累積作用進行了替換,避免積分環節占用大量計算性能和存儲空間。
增量式PID控制的主要優點為:
①算式中不需要累加。控制增量Δu(k)的確定僅與最近3次的采樣值有關,容易通過加權處理獲得比較好的控制效果;
②計算機每次只輸出控制增量,即對應執行機構位置的變化量,故機器發生故障時影響范圍小、不會嚴重影響生產過程;
③手動—自動切換時沖擊小。當控制從手動向自動切換時,可以作到無擾動切換。
由于增量式需要對控制量進行記憶,所以對于不帶記憶裝置的系統,只能使用位置式PID控制方式進行控制。
增量式pid參數調整公式
增量式PID控制根據位置式PID控制公式,寫出n-1時刻的控制量:
設
得到
令 為積分系數; 為微分系數,可以將上式簡化為
增量式PID控制算法
當執行機構需要的不是控制量的絕對值,而是控制量的增量(例如去驅動步進電動機)時,需要用PID的“增量算法”。
增量式PID控制算法可以通過(2-4)式推導出。由(2-4)可以得到控制器的第k-1個采樣時刻的輸出值為:
由(2-6)可以看出,如果計算機控制系統采用恒定的采樣周期T,一旦確定A、B、C,只要使用前后三次測量的偏差值,就可以由(2-6)求出控制量。
增量式PID控制算法與位置式PID算法(2-4)相比,計算量小得多,因此在實際中得到廣泛的應用。
位置式PID控制算法也可以通過增量式控制算法推出遞推計算公式:
(2-7)就是目前在計算機控制中廣泛應用的數字遞推PID控制算法。
增量式PID控制算法C51程序
/*====================================================================================================
PID Function
The PID (比例、積分、微分) function is used in mainly
control applications. PIDCalc performs one iteration of the PID
algorithm.
While the PID function works, main is just a dummy program showing a typical usage.
=====================================================================================================*/
typedef struct PID
{
int SetPoint; //設定目標
Desired Value long SumError; //誤差累計
double Proportion; //比例常數 Proportional Const
double Integral; //積分常數 Integral Const
double Derivative; //微分常數 Derivative Const
int LastError; //Error[-1]
int PrevError; //Error[-2]
} PID;
static PID sPID;
static PID *sptr = &sPID;
*=======================================================================
Initialize PID Structure PID參數初始化
=====================================================================================================*/
void IncPIDInit(void)
{
sptr-》SumError = 0;
sptr-》LastError = 0; //Error[-1]
sptr-》PrevError = 0; //Error[-2]
sptr-》Proportion = 0; //比例常數
Proportional Const sptr-》Integral = 0; //積分常數Integral Const
sptr-》Derivative = 0; //微分常數
Derivative Const sptr-》SetPoint = 0;
}
/*====================================================================================================
增量式PID計算部分
=====================================================================================================*/
int IncPIDCalc(int NextPoint)
{
register int iError, iIncpid; //當前誤差
iError = sptr-》SetPoint - NextPoint; //增量計算
iIncpid = sptr-》Proportion * iError //E[k]項
- sptr-》Integral * sptr-》LastError //E[k-1]項
+ sptr-》Derivative * sptr-》PrevError; //E[k-2]項
//存儲誤差,用于下次計算
sptr-》PrevError = sptr-》LastError;
sptr-》LastError = iError;
//返回增量值
return(iIncpid);
}
結合上述公式探討PID的普遍控制規律和常用參數整定方法
(一)先來討論PID三個參數的控制規律
1. 比例調節規律(Kp):是按比例反應系統的偏差,系統一旦出現了偏差,比例調節立即產生調節作用用以減少偏差。
2. 積分調節規律(Ki):實質上就是對偏差累積進行控制,直至偏差為零。使系統消除穩態誤差,提高無差度。
3. 微分調節規律(Kd):微分作用反映系統偏差信號的變化率,具有預見性,能預見偏差變化的趨勢,因此能產生超前的控制作用,在偏差還沒有形成之前,已被微分調節作用消除。
4. 比例積分微分控制規律PID:PID控制規律是一種較理想的控制規律,它在比例的基礎上引入積分,可以消除余差,再加入微分作用,又能提高系統的穩定性。
(二)再來討論PID參數整定的一般方法
1. 實驗湊試法,整定步驟為“先比例,再積分,最后微分,這也是初接觸PID的人常使用的。
2. 理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器參數。
3. 實驗經驗法,擴充臨界比例度法,實驗經驗法調整PID參數的方法中較常用的是擴充臨界比例度法,其最大的優點是,參數的整定不
依賴受控對象的數學模型,直接在現場整定、簡單易行。
總之,對于PID的初用者,增量式的PID參數整定的時候,采用同位置式的比例Kp,積分Ki,微分Kd相同的系數,理解起來比較容易,整定自然就會符合以上所說的規律,可以達到預期的控制效果。
-
PID
+關注
關注
35文章
1472瀏覽量
85480 -
增量式PID
+關注
關注
0文章
5瀏覽量
8324
發布評論請先 登錄
相關推薦
評論