新聞中心

        PID算法學(xué)習(xí)筆記

        作者: 時(shí)間:2012-09-15 來源:網(wǎng)絡(luò) 收藏

        1年前就有聽說 搖搖擺擺終于 可以來 詳細(xì)的 應(yīng)用學(xué)習(xí)下

        系統(tǒng)需求: 調(diào)壓器 恒壓恒流功能的使用

        最基本的比例調(diào)節(jié) U=P*Uk+U0

        u 為控制信號(hào)輸出UK為 當(dāng)前值 和 期望值的U0的偏差 P 為比例系數(shù)

        這個(gè)很容易理解的

        這種控制 只在 存在偏差 UK不等于0的時(shí)候 才起作用

        也就是說 這種控制一定會(huì)存在偏差,,偏差越小調(diào)節(jié)作用越弱

        當(dāng)然 如果增加K 可以使這個(gè)必然存在的偏差值 變小。。不過 增加K 會(huì)讓整個(gè)系統(tǒng)不穩(wěn)定,,

        (比如系統(tǒng)存在一個(gè)正偏差,,K很大,。。系統(tǒng)很容易就輸出到一個(gè) 傅偏差的值,,這樣系統(tǒng)很難穩(wěn)定 或者說K越大 系統(tǒng)波動(dòng) 的幅度也越大 增加K減小誤差 只適用與不存在超調(diào)的系統(tǒng) 也就是 輸出只會(huì)從一個(gè)方向逼近 理想值 不過這種系統(tǒng) 似乎不是很多 雖然也存在)

        這樣這個(gè)不穩(wěn)定的調(diào)節(jié)方式 是需要改進(jìn)的。

        為了減小這個(gè)必然存在的誤差 除了增大K 還有什么別的辦法呢?

        神奇的天才們給出了PID 控制的I部分

        你不是始終存在誤差嘛? 我讓你誤差累加 以增加我獲得誤差 值

        比如你的系統(tǒng) 誤差隨著時(shí)間變化 我采樣到 0.1 0.08 0.02 -0.02 在T3 也就是采樣到0.2的時(shí)候 這個(gè)誤差相對(duì)于0.1 時(shí)候來說已經(jīng)很小了。。使用Y=KX+u 的調(diào)節(jié) 很明顯已經(jīng)效果不咋樣了

        不過我們 如果 在0.02 時(shí)刻 把誤差視為 0.1+0.08+0.02=0.2 那么是否 能獲得更好的調(diào)節(jié)效果呢?

        于是 有了 積分環(huán)節(jié) T/Ti ∑UK 對(duì)誤差求和

        ,明眼人一看就知道 你這雖然 讓系統(tǒng)必然存在的誤差變小了,,甚至無限逼近與0 不過依然解決不了系統(tǒng)震蕩,,甚至?xí)屜到y(tǒng)震蕩的更嚴(yán)重

        不要緊,,為了解決這個(gè)問題 我們還有個(gè)微分環(huán)節(jié)

        (Td/T)[U(K)-U(k-1)]

        系統(tǒng)為什么震蕩?

        不就是UK-U(K-1) 有點(diǎn)大么(如果UK>0 U(K-1)>0 正常情況下UK- U(K-1)0 系統(tǒng)越調(diào) UK 應(yīng)該越逼近0)

        那么我把這個(gè)負(fù)值 加到你的系統(tǒng)中 讓你系統(tǒng) 越 逼近0的時(shí)候 輸出 越小或者說 抑制輸出變化速度 免得你震蕩嘛

        這個(gè)也就是微分的作用咯

        最后 記得給這三個(gè)部分 分別乘以一個(gè)系數(shù) 以調(diào)整每一部分的作用效果

        系數(shù)分別定為 P I D

        當(dāng)然還要加上一個(gè)系統(tǒng)初值U0

        PID調(diào)節(jié)公式就成了:

        S(K)=PU(k)+IT/Ti ∑UK+D (Td/T)[U(K)-U(k-1)])+ U0

        不覺得 積分環(huán)節(jié) T/Ti ∑UK 從0時(shí)刻積分到現(xiàn)在 很累么? 而且系統(tǒng)中 TX時(shí)刻出現(xiàn)的偶然情況(不屬于系統(tǒng)正常變化部分) 會(huì)一直影響著現(xiàn)在的輸出。。咋辦呢?

        用現(xiàn)在的S減去上一時(shí)刻的S 我只要 S的變化量加上一時(shí)刻的輸出 來確定現(xiàn)在的輸出 (S =s(T-1)+ds)

        于是我們就有了增量

        二:增量

        DS=S(K)-S(K-1)

        整個(gè)式子的化簡(jiǎn) 相信 。。。應(yīng)該都會(huì)吧#01

        DS=Pdu(k)+I t/ti(uk)+ D TD/T duk+du(k-1)

        于是我們只剩下 三個(gè)是需要的 UK UK-1 UK-2

        應(yīng)為DU(K-1) 是UK-1- UK-2

        QQ空間打公式太麻煩 所以比較懶的省了很多括號(hào) 還望大家見諒 相信 應(yīng)該都能看明白

        可能大家覺得這么著已經(jīng)湊合著了吧

        不過想想。。又積分 又微分。。是否會(huì)讓系統(tǒng)響應(yīng) 不是足夠快?

        呵呵 偉大的神人們說

        我找一個(gè)門限值US

        當(dāng)S(K)>US 的時(shí)候 我不要微分 讓系統(tǒng) 很快的調(diào) 盡快的把SK 調(diào)下來

        當(dāng)SK US 的時(shí)候 我加入積分部分讓系統(tǒng) 慢慢調(diào)精確的調(diào)、

        扯淡的理論 就寫到這里了 接下來 就玩真格的

        PID 在本中的應(yīng)用

        也就是C18 程序的具體實(shí)現(xiàn)

        當(dāng)然 我思路還很亂。。我去百度百度再來

        還要說一句 絕情才能成長(zhǎng) 多情的 多愁善感的人都是廢物



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 广宁县| 武隆县| 深水埗区| 岐山县| 阿巴嘎旗| 枣强县| 江津市| 加查县| 五原县| 关岭| 仙游县| 江陵县| 平邑县| 乌拉特中旗| 盐城市| 普兰店市| 兰西县| 金溪县| 乌兰浩特市| 宝兴县| 佛山市| 新乐市| 登封市| 高密市| 沁源县| 崇州市| 长治县| 从化市| 应用必备| 塘沽区| 娄底市| 青海省| 林甸县| 秭归县| 岑溪市| 通江县| 南川市| 云龙县| 陕西省| 凤翔县| 龙州县|