PID算法學習筆記
1年前就有聽說 搖搖擺擺終于 可以來 詳細的 應用學習下
系統(tǒng)需求: 調壓器 恒壓恒流功能的使用
最基本的比例調節(jié) U=P*Uk+U0
u 為控制信號輸出UK為 當前值 和 期望值的U0的偏差 P 為比例系數(shù)
這個很容易理解的
這種控制 只在 存在偏差 UK不等于0的時候 才起作用
也就是說 這種控制一定會存在偏差,,偏差越小調節(jié)作用越弱
當然 如果增加K 可以使這個必然存在的偏差值 變小。。不過 增加K 會讓整個系統(tǒng)不穩(wěn)定,,
(比如系統(tǒng)存在一個正偏差,,K很大,。。系統(tǒng)很容易就輸出到一個 傅偏差的值,,這樣系統(tǒng)很難穩(wěn)定 或者說K越大 系統(tǒng)波動 的幅度也越大 增加K減小誤差 只適用與不存在超調的系統(tǒng) 也就是 輸出只會從一個方向逼近 理想值 不過這種系統(tǒng) 似乎不是很多 雖然也存在)
這樣這個不穩(wěn)定的調節(jié)方式 是需要改進的。
為了減小這個必然存在的誤差 除了增大K 還有什么別的辦法呢?
神奇的天才們給出了PID 控制的I部分
你不是始終存在誤差嘛? 我讓你誤差累加 以增加我獲得誤差 值
比如你的系統(tǒng) 誤差隨著時間變化 我采樣到 0.1 0.08 0.02 -0.02 在T3 也就是采樣到0.2的時候 這個誤差相對于0.1 時候來說已經(jīng)很小了。。使用Y=KX+u 的調節(jié) 很明顯已經(jīng)效果不咋樣了
不過我們 如果 在0.02 時刻 把誤差視為 0.1+0.08+0.02=0.2 那么是否 能獲得更好的調節(jié)效果呢?
于是 有了 積分環(huán)節(jié) T/Ti ∑UK 對誤差求和
,明眼人一看就知道 你這雖然 讓系統(tǒng)必然存在的誤差變小了,,甚至無限逼近與0 不過依然解決不了系統(tǒng)震蕩,,甚至會讓系統(tǒng)震蕩的更嚴重
不要緊,,為了解決這個問題 我們還有個微分環(huán)節(jié)
(Td/T)[U(K)-U(k-1)]
系統(tǒng)為什么震蕩?
不就是UK-U(K-1) 有點大么(如果UK>0 U(K-1)>0 正常情況下UK- U(K-1)0 系統(tǒng)越調 UK 應該越逼近0)
那么我把這個負值 加到你的系統(tǒng)中 讓你系統(tǒng) 越 逼近0的時候 輸出 越小或者說 抑制輸出變化速度 免得你震蕩嘛
這個也就是微分的作用咯
最后 記得給這三個部分 分別乘以一個系數(shù) 以調整每一部分的作用效果
系數(shù)分別定為 P I D
當然還要加上一個系統(tǒng)初值U0
PID調節(jié)公式就成了:
S(K)=PU(k)+IT/Ti ∑UK+D (Td/T)[U(K)-U(k-1)])+ U0
不覺得 積分環(huán)節(jié) T/Ti ∑UK 從0時刻積分到現(xiàn)在 很累么? 而且系統(tǒng)中 TX時刻出現(xiàn)的偶然情況(不屬于系統(tǒng)正常變化部分) 會一直影響著現(xiàn)在的輸出。。咋辦呢?
用現(xiàn)在的S減去上一時刻的S 我只要 S的變化量加上一時刻的輸出 來確定現(xiàn)在的輸出 (S =s(T-1)+ds)
于是我們就有了增量 PID算法
二:增量PID算法
DS=S(K)-S(K-1)
整個式子的化簡 相信 。。。應該都會吧#01
DS=Pdu(k)+I t/ti(uk)+ D TD/T duk+du(k-1)
于是我們只剩下 三個系統(tǒng)狀態(tài)是需要的 UK UK-1 UK-2
應為DU(K-1) 是UK-1- UK-2
QQ空間打公式太麻煩 所以比較懶的省了很多括號 還望大家見諒 相信 應該都能看明白
可能大家覺得這么著已經(jīng)湊合著了吧
不過想想。。又積分 又微分。。是否會讓系統(tǒng)響應 不是足夠快?
呵呵 偉大的神人們說
我找一個門限值US
當S(K)>US 的時候 我不要微分 讓系統(tǒng) 很快的調 盡快的把SK 調下來
當SK US 的時候 我加入積分部分讓系統(tǒng) 慢慢調精確的調、
扯淡的理論 就寫到這里了 接下來 就玩真格的
PID 在本恒壓系統(tǒng)中的應用
也就是C18 程序的具體實現(xiàn)
當然 我思路還很亂。。我去百度百度再來
還要說一句 絕情才能成長 多情的 多愁善感的人都是廢物
評論