余差c演算法
① 什麼是PID調節器,並舉例說明P、I、D的調節作用。
PID 調節器是一個在工業控制應用中常見的反饋迴路部件,PID是以它的三種糾正演算法而命名的。這三種演算法都是用加法調整被控制的數值。而實際上這些加法運算大部分變成了減法運算因為被加數總是負值。以下是PID的調節作用舉例:
1.比例- 來控制當前,誤差值和一個負常數P(表示比例)相乘,然後和預定的值相加。P只是在控制器的輸出和系統的誤差成比例的時候成立。這種控制器輸出的變化與輸入控制器的偏差成比例關系。比如說,一個電熱器的控制器的比例尺范圍是10°C,它的預定值是20°C。那麼它在10°C的時候會輸出100%,在15°C的時候會輸出50%,在19°C的時候輸出10%,注意在誤差是0的時候,控制器的輸出也是0。
2.積分 - 來控制過去,誤差值是過去一段時間的誤差和,然後乘以一個負常數I,然後和預定值相加。I從過去的平均誤差值來找到系統的輸出結果和預定值的平均誤差。一個簡單的比例系統會振盪,會在預定值的附近來回變化,因為系統無法消除多餘的糾正。通過加上一個負的平均誤差比例值,平均的系統誤差值就會總是減少。所以,最終這個PID迴路系統會在預定值定下來。
3.微分- 來控制將來,計算誤差的一階導,並和一個負常數D相乘,最後和預定值相加。這個導數的控制會對系統的改變作出反應。導數的結果越大,那麼控制系統就對輸出結果作出更快速的反應。這個D參數也是PID被稱為可預測的控制器的原因。D參數對減少控制器短期的改變很有幫助。一些實際中的速度緩慢的系統可以不需要D參數。
(1)余差c演算法擴展閱讀:
用更專業的話來講,一個PID控制器可以被稱作一個在頻域系統的濾波器。這一點在計算它是否會最終達到穩定結果時很有用。如果數值挑選不當,控制系統的輸入值會反復振盪,這導致系統可能永遠無法達到預設值。
② PID演算法的C語言實現
基本流程
積分環節:主要是用來消除 靜差 (系統穩定後輸出值和設定值之間的差值,積分環節實際上就是偏差累積的過程,把累積的誤差加到原來系統上以抵消系統造成的靜差)
微分環節:反映了偏差信號的變化規律,根據偏差信號的變化規律來進行超前調節,從而增加系統的快速性
對上述公式進行離散化(采樣):兩個公式
增量型PID:
通過增量型PID公式可以看出,最終表達結果和最近三次的偏差有關,最終輸出結果應該為:
首先定義結構變數體:
然後初始化變數
最後編寫控制演算法
基本演算法,沒有考慮死區問題,沒有設定上下限
在啟動、結束或大幅度增減設定時,短時間內系統輸出有很大的偏差,會造成PID運算的積分積累,導致控制量超過執行機構可能允許的最大動作范圍對應的極限控制量,從而引起較大的超調,甚至是振盪。
為了克服這個問題,引入積分分離的概念,即當被控量和設定值偏差較大時,取消積分作用;當被控量接近設定值時,引入積分控制,以消除靜差,提高精度。
abs :絕對值
令index=0使積分環節失效
積分飽和現象:如果系統存在一個方向的偏差,PID控制器的輸出由於積分作用的不斷累加而加大,從而導致執行機構達到極限位置。此時計算器輸出量超出正常運行范圍而進入飽和區,一旦系統出現反向偏差,輸出量將逐漸從飽和區退出,進入飽和區越深則退出飽和區時間越長,在這段時間里,執行機構仍然停留在極限位置而不隨偏差反向而立即做出相應改變,造成性能惡化。
採用梯形積分能夠減小余差,提高精度
改變積分系數,若偏差大,積分作用減弱,系數減小;若偏差小,積分作用增強,系數增大。
變積分PID的基本思想是設法改變積分項的累加速度,使其與偏差大小對應。
使整個系統的穩定速度非常快
比例系數Kp的作用是加快系統的響應速度提高系統的調節精度
積分系數Ki的作用是消除系統的穩態誤差
微分系數Kd的作用是改善系統的動態特性
反應系統性能的兩個參數是系統誤差和誤差變化律