0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PID的模擬控制和數(shù)字控制實現(xiàn) 數(shù)字PID算法的兩種類型

CHANBAEK ? 來源:嵌入式之入坑筆記 ? 作者:嵌入式之入坑筆記 ? 2023-08-22 11:02 ? 次閱讀

前面的文章已經(jīng)介紹過什么是pid了,現(xiàn)在再回顧一下:

PID:是過程控制中常用的一種針對某個對象或者參數(shù)進(jìn)行自動控制的一種算法。

這一篇分享不打算再深究pid的理論知識,如果有不懂或者對pid感興趣的朋友,可以自行查閱資料,或者看我前面的文章。

這次分享一下pid算法的常見實現(xiàn)和流程。主要簡單分享一下pid的模擬控制實現(xiàn)和數(shù)字控制實現(xiàn)。

1、PID的模擬控制

在以前,計算機系統(tǒng)沒這么發(fā)達(dá)的時候,那個時候很多的系統(tǒng)是通過硬件電子的方式去實現(xiàn)的。如果有觀察過一些老物件的話,會發(fā)現(xiàn)以前那個時代的很多電子式的控制系統(tǒng),都是很巨大很笨重的,里面滿滿的都是電子元器件

到了后面計算機技術(shù)發(fā)展迅猛,很多的系統(tǒng)可以依靠軟件算法實現(xiàn)了,也極大地減少了系統(tǒng)的元器件電子的使用,使得很多系統(tǒng)功能強大的同時還體積小巧輕便。

比如下圖這個模擬反饋控制系統(tǒng)的示意圖:

圖片

上圖是一個簡單的模擬閉環(huán)反饋控制系統(tǒng),它可以實現(xiàn)將被控量通過反饋回路反饋到輸入端,從而對被控量和期望輸出值進(jìn)行比較,形成一個閉環(huán)的自動控制系統(tǒng)。

圖中的模擬調(diào)節(jié)器的意思就是控制規(guī)律的方案是通過模擬硬件的方式來實現(xiàn)的,如果想要調(diào)整系統(tǒng)的控制規(guī)律就需要修改調(diào)節(jié)器的硬件。這就是模擬控制系統(tǒng)的意思。

而模擬PID的實現(xiàn)也是通過模擬電子器件搭建的電路實現(xiàn)的,通過電子元器件的方式實現(xiàn)比例、積分、微分單元,然后整合在一塊組成一個控制系統(tǒng),這就是模擬PID了。如下的示意圖:

圖片

模擬PID的微分方程如下:

圖片

而PID調(diào)節(jié)器的傳遞函數(shù)如下:

圖片

2、PID的數(shù)字控制

數(shù)字控制系統(tǒng)是以微型計算機作為控制器,通過軟件的方式來實現(xiàn)控制規(guī)律的一種控制系統(tǒng)。當(dāng)我們想要改變控制器的控制規(guī)律,一般只要通過改變相應(yīng)的程序或者軟件參數(shù)即可以實現(xiàn)改變控制規(guī)律。

數(shù)字控制系統(tǒng)的示意圖如下:

圖片

通過數(shù)字控制實現(xiàn)的PID的差分方程如下:

圖片

3、數(shù)字PID算法的兩種類型 — 位置式、增量式

數(shù)字PID:指的是PID控制算法的實現(xiàn)是通過計算機軟件程序?qū)崿F(xiàn)的,計算機需要對輸入的連續(xù)信號進(jìn)行采集,然后通過量化作為控制器的輸入?yún)?shù),從而經(jīng)過算法的調(diào)節(jié)實現(xiàn)目標(biāo)對象的控制。

PID控制算法在計算機系統(tǒng)中,一般都是采用的數(shù)值逼近的方法進(jìn)行的。因為在很多的系統(tǒng)中,它一般都是連續(xù)的,而計算機要進(jìn)行運算就要依靠計算機的運算,計算機的運算是離散的。所以想要讓計算機能夠?qū)崿F(xiàn)PID算法程序,就必須要將PID算法的連續(xù)函數(shù)進(jìn)行離散化,從而能夠在計算中通過軟件算法的方式實現(xiàn)。

一般而言,計算機實現(xiàn)PID算法的時候,在采樣周期很小的時候,積分部分可以用對誤差求和的方式代替,微分部分可以用差商的方式代替,從而實現(xiàn)將連續(xù)的PID算法的差分方程進(jìn)行離散化,能夠通過計算機實現(xiàn)。

數(shù)字PID主要有兩種:位置式PID和增量式PID

3.1、位置式PID

位置式PID:指的是PID控制器經(jīng)過運算輸出的Uk是被控對象的實際控制量大小。

這個概念是不是咋一看有點拗口?不理解?別急,舉個例子看看就知道了。

打個比方:我要進(jìn)行一個閥門的控制,從而控制流體的流量大小。假設(shè)閥門的開度位置為0~100,當(dāng)前閥門的開度在位置20的地方。現(xiàn)在我希望加大流體的流量,通過修改設(shè)定值,PID通過調(diào)節(jié),最終輸出控制量Uk=80,即這個時候閥門的開度要到80的位置。這就是位置式PID輸出的是對被控對象的實際控制量大小的理解。

圖片

再來位置式PID的離散公式。如下:

圖片

式中:

圖片

通過進(jìn)一步整理,可以表示為:

圖片

其中:

Kp - 比例系數(shù)
Ki - 積分系數(shù);Ki = Kp*T/Ti;
Kd - 微分系數(shù);Kd = Kp*Td/TT:采樣時間
Ti:積分時間
Td:微分時間

從上面的公式可以看出,位置式PID只需要計算第K次和K-1次的誤差即可,并且控制器會對偏差進(jìn)行累加,也就是控制器的每次輸出Uk都和過去的狀態(tài)有關(guān)。

這也會帶來一些問題,因為位置pid的輸出Uk和以前的狀態(tài)有關(guān),如果控制器出現(xiàn)異常,那么可能會導(dǎo)致Uk的輸出大幅變化,導(dǎo)致執(zhí)行機構(gòu)的狀態(tài)大幅變化,嚴(yán)重的話可能會導(dǎo)致嚴(yán)重的生產(chǎn)事故。

另外,因為位置PID要對偏差進(jìn)行累積,所以會導(dǎo)致系統(tǒng)的運算量變大,這對于運算性能不夠好的計算機也是一種負(fù)擔(dān)。

3.2、增量式PID

增量式PID:指的是控制器的輸出是對被控對象的增量?Uk,而不是實際的控制量大小。

怎么去理解增量式PID呢?

打個比方:比如我要控制一個步進(jìn)電機轉(zhuǎn)動的角度,步進(jìn)電機轉(zhuǎn)動之后所在的位置沒有達(dá)到我們期望的位置,但是又快要接近了,這個時候PID控制器輸出的是變化的增量,而不是實際的控制量。

這么說吧,假如我希望步進(jìn)電機轉(zhuǎn)動到角度120°,現(xiàn)在是115°了,所以只要再增加+5°的輸出角度即可。如果因為控制超了,到了123°的位置,這個時候只要減少-3°即可。所以這種情況下控制的輸出是增量變化,而不是實際的控制量大小。

圖片

增量式PID的離散公式如下:

圖片

整理如下:

圖片

式中:

圖片

從增量式PID的離散公式可以看到:增量式PID跟n時刻、n-1時刻、n-2時刻的偏差都有關(guān)系,但是不會對偏差進(jìn)行累積,所以相比位置式PID的計算量要小,也不會跟過去的偏差有關(guān)聯(lián),所以控制的穩(wěn)定性會更好。

4、數(shù)字PID算法的程序流程

上面分享了數(shù)字PID的離散化公式,代碼也是有實現(xiàn)的,但是因為暫時還沒整理好,就留著下次分享的時候再放上來吧。這里先放PID算法的程序流程圖,其實說到這里,PID的算法也已經(jīng)可以自己去實現(xiàn)了。

(1)位置式PID的算法實現(xiàn)的流程圖

圖片

(2)增量式PID的算法實現(xiàn)流程圖

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7372

    瀏覽量

    87637
  • PID算法
    +關(guān)注

    關(guān)注

    2

    文章

    170

    瀏覽量

    24259
  • PID
    PID
    +關(guān)注

    關(guān)注

    35

    文章

    1469

    瀏覽量

    85197
  • 數(shù)字控制
    +關(guān)注

    關(guān)注

    2

    文章

    178

    瀏覽量

    25792
  • 模擬控制
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    15049
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)字PID控制算法的研究

    數(shù)字PID控制算法的研究
    發(fā)表于 06-13 11:42

    基于C語言的數(shù)字PID控制算法實現(xiàn)

    基于C語言的數(shù)字PID控制算法實現(xiàn)
    發(fā)表于 06-13 11:45

    PID算法與直流電機的PWM技術(shù)控制相關(guān)資料分享

    技術(shù)控制。本文圍繞下面幾個問題展開:什么是PID控制算法?  PID控制
    發(fā)表于 06-29 08:44

    什么是PID控制算法呢?PID控制算法有何作用

    什么是PID控制算法呢?PID控制算法有何作用?PID
    發(fā)表于 02-25 07:36

    數(shù)字PID控制實現(xiàn)技術(shù)

      目的:掌握數(shù)字PID控制算法在工程應(yīng)用中的實現(xiàn)技術(shù),包括采樣周期、字長的選取,無擾切換與抗積分飽和
    發(fā)表于 10-20 16:09 ?39次下載

    數(shù)字PID控制實驗

    數(shù)字PID控制實驗 Ⅰ 標(biāo)準(zhǔn)PID 控制算法一.實驗要求1. 了解和掌握連續(xù)
    發(fā)表于 05-15 00:18 ?7981次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>實驗

    位置式PID控制算法研究

    由51單片機組成的數(shù)字控制系統(tǒng)控制中,PID控制器是通過PID控制算法
    發(fā)表于 03-16 15:26 ?153次下載

    pid算法_什么是pid算法

    PID控制器是一種最優(yōu)控制。本文講述了增量式PID算法原理與數(shù)字
    發(fā)表于 01-01 11:58 ?1.1w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>算法</b>_什么是<b class='flag-5'>pid</b><b class='flag-5'>算法</b>

    數(shù)字PID控制算法講解

    數(shù)字PID控制算法是將模擬PID離散化得到,各參數(shù)有著明顯的物理意義,調(diào)整方便,所以
    發(fā)表于 01-16 16:27 ?903次下載
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>講解

    如何利用高速dsp和準(zhǔn)pid控制數(shù)字控制電源

    如何利用高速dsp和準(zhǔn)pid控制數(shù)字控制電源?
    發(fā)表于 04-09 11:15 ?33次下載
    如何利用高速dsp和準(zhǔn)<b class='flag-5'>pid</b><b class='flag-5'>控制</b>的<b class='flag-5'>數(shù)字控制</b>電源

    數(shù)字PID控制算法教程之如何對標(biāo)準(zhǔn)PID算法進(jìn)行改進(jìn)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)字PID控制算法教程之如何對標(biāo)準(zhǔn)PID算法進(jìn)行改進(jìn)主要內(nèi)容包括了:
    發(fā)表于 12-04 08:00 ?15次下載
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>教程之如何對標(biāo)準(zhǔn)<b class='flag-5'>PID</b><b class='flag-5'>算法</b>進(jìn)行改進(jìn)

    如何使用DSP進(jìn)行數(shù)字PID控制器的設(shè)計

    基于數(shù)字信號處理器(DSP)TMS320I F 2407和外接D/A轉(zhuǎn)換芯片,實現(xiàn)數(shù)字PID控制器,采用的
    發(fā)表于 01-02 16:30 ?34次下載
    如何使用DSP進(jìn)行<b class='flag-5'>數(shù)字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>器的設(shè)計

    直流電機PID閉環(huán)數(shù)字控制器設(shè)計

    直流電機PID閉環(huán)數(shù)字控制器設(shè)計(核達(dá)中遠(yuǎn)通電源技術(shù)有限公司電話號碼)-直流電機PID閉環(huán)數(shù)字控制器設(shè)計,有需要的可以參考!
    發(fā)表于 09-15 15:39 ?40次下載
    直流電機<b class='flag-5'>PID</b>閉環(huán)<b class='flag-5'>數(shù)字控制</b>器設(shè)計

    數(shù)字PID控制的原理

    數(shù)字PID控制的原理 自從計算機和各類微控制器芯片進(jìn)入控制領(lǐng)域以來,用計算機或微控制器芯片取代
    發(fā)表于 03-09 14:23 ?1940次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>的原理

    兩種實現(xiàn)PID控制算法的技巧

    PID控制算法公式*
    的頭像 發(fā)表于 05-19 16:45 ?745次閱讀
    <b class='flag-5'>兩種</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>PID</b><b class='flag-5'>控制</b>的<b class='flag-5'>算法</b>的技巧