一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

PID控制算法原理、方法概述

電子工程技術(shù) ? 來源:YXQ ? 2019-08-12 08:39 ? 次閱讀

PID控制應(yīng)該算是應(yīng)用非常廣泛的控制算法了。小到控制一個元件的溫度,大到控制無人機的飛行姿態(tài)和飛行速度等等,都可以使用PID控制。這里我們從原理上來理解PID控制。

PID(proportion integration differentiation)其實就是指比例,積分,微分控制。先把圖片和公式擺出來,看不懂沒關(guān)系。(一開始看這個算法,公式能看懂,具體怎么用怎么寫代碼也知道,但是就是不知道原理,不知道為什么要用比例,微分,積分這3個項才能實現(xiàn)最好的控制,用其中兩個為什么不行,用了3個項能好在哪里,每一個項各有什么作用)

總的來說,當?shù)玫较到y(tǒng)的輸出后,將輸出經(jīng)過比例,積分,微分3種運算方式,疊加到輸入中,從而控制系統(tǒng)的行為,下面用一個簡單的實例來說明。

比例控制算法

我們先說PID中最簡單的比例控制,拋開其他兩個不談。還是用一個經(jīng)典的例子吧。假設(shè)我有一個水缸,最終的控制目的是要保證水缸里的水位永遠的維持在1米的高度。假設(shè)初始時刻,水缸里的水位是0.2米,那么當前時刻的水位和目標水位之間是存在一個誤差的error,且error為0.8.這個時候,假設(shè)旁邊站著一個人,這個人通過往缸里加水的方式來控制水位。如果單純的用比例控制算法,就是指加入的水量u和誤差error是成正比的。

即:u=kp*error

假設(shè)kp取0.5,那么t=1時(表示第1次加水,也就是第一次對系統(tǒng)施加控制),那么u=0.5*0.8=0.4,所以這一次加入的水量會使水位在0.2的基礎(chǔ)上上升0.4,達到0.6.。

接著,t=2時刻(第2次施加控制),當前水位是0.6,所以error是0.4。u=0.5*0.4=0.2,會使水位再次上升0.2,達到0.8。

如此這么循環(huán)下去,就是比例控制算法的運行方法??梢钥吹剑罱K水位會達到我們需要的1米。

但是,單單的比例控制存在著一些不足,其中一點就是 –穩(wěn)態(tài)誤差?。ㄎ乙彩强戳撕芏啵⑶蚁肓撕镁貌畔胪ㄊ裁词欠€(wěn)態(tài)誤差以及為什么有穩(wěn)態(tài)誤差)。

像上述的例子,根據(jù)kp取值不同,系統(tǒng)最后都會達到1米,只不過kp大了到達的快,kp小了到達的慢一些。不會有穩(wěn)態(tài)誤差。但是,考慮另外一種情況,假設(shè)這個水缸在加水的過程中,存在漏水的情況,假設(shè)每次加水的過程,都會漏掉0.1米高度的水。

仍然假設(shè)kp取0.5,那么會存在著某種情況,假設(shè)經(jīng)過幾次加水,水缸中的水位到0.8時,水位將不會再變換?。?!因為,水位為0.8,則誤差error=0.2。所以每次往水缸中加水的量為u=0.5*0.2=0.1.同時,每次加水,缸里又會流出去0.1米的水?。。〖尤氲乃土鞒龅乃嗟窒?,水位將不再變化!!

也就是說,我的目標是1米,但是最后系統(tǒng)達到0.8米的水位就不再變化了,且系統(tǒng)已經(jīng)達到穩(wěn)定。由此產(chǎn)生的誤差就是穩(wěn)態(tài)誤差了。

(在實際情況中,這種類似水缸漏水的情況往往更加常見,比如控制汽車運動,摩擦阻力就相當于是“漏水”,控制機械臂、無人機的飛行,各類阻力和消耗都可以理解為本例中的“漏水”)

所以,單獨的比例控制,在很多時候并不能滿足要求。

積分控制算

還是用上面的例子,如果僅僅用比例,可以發(fā)現(xiàn)存在暫態(tài)誤差,最后的水位就卡在0.8了。于是,在控制中,我們再引入一個分量,該分量和誤差的積分是正比關(guān)系。所以,比例+積分控制算法為:

u=kp*error+ ki?∫ error

還是用上面的例子來說明,第一次的誤差error是0.8,第二次的誤差是0.4,至此,誤差的積分(離散情況下積分其實就是做累加),∫error=0.8+0.4=1.2. 這個時候的控制量,除了比例的那一部分,還有一部分就是一個系數(shù)ki乘以這個積分項。由于這個積分項會將前面若干次的誤差進行累計,所以可以很好的消除穩(wěn)態(tài)誤差(假設(shè)在僅有比例項的情況下,系統(tǒng)卡在穩(wěn)態(tài)誤差了,即上例中的0.8,由于加入了積分項的存在,會讓輸入增大,從而使得水缸的水位可以大于0.8,漸漸到達目標的1.0.)這就是積分項的作用。

微分控制算法

換一個另外的例子,考慮剎車情況。平穩(wěn)的駕駛車輛,當發(fā)現(xiàn)前面有紅燈時,為了使得行車平穩(wěn),基本上提前幾十米就放松油門并踩剎車了。當車輛離停車線非常近的時候,則使勁踩剎車,使車輛停下來。整個過程可以看做一個加入微分的控制策略。

微分,說白了在離散情況下,就是error的差值,就是t時刻和t-1時刻error的差,即u=kd*(error(t)-error(t-1)),其中的kd是一個系數(shù)項。可以看到,在剎車過程中,因為error是越來越小的,所以這個微分控制項一定是負數(shù),在控制中加入一個負數(shù)項,他存在的作用就是為了防止汽車由于剎車不及時而闖過了線。從常識上可以理解,越是靠近停車線,越是應(yīng)該注意踩剎車,不能讓車過線,所以這個微分項的作用,就可以理解為剎車,當車離停車線很近并且車速還很快時,這個微分項的絕對值(實際上是一個負數(shù))就會很大,從而表示應(yīng)該用力踩剎車才能讓車停下來。

切換到上面給水缸加水的例子,就是當發(fā)現(xiàn)水缸里的水快要接近1的時候,加入微分項,可以防止給水缸里的水加到超過1米的高度,說白了就是減少控制過程中的震蕩。

現(xiàn)在再回頭看這個公式,就很清楚了

括號內(nèi)第一項是比例項,第二項是積分項,第三項是微分項,前面僅僅是一個系數(shù)。很多情況下,僅僅需要在離散的時候使用,則控制可以化為

每一項前面都有系數(shù),這些系數(shù)都是需要實驗中去嘗試然后確定的,為了方便起見,將這些系數(shù)進行統(tǒng)一一下:

這樣看就清晰很多了,且比例,微分,積分每個項前面都有一個系數(shù),且離散化的公式,很適合編程實現(xiàn)。

講到這里,PID的原理和方法就說完了,剩下的就是實踐了。在真正的工程實踐中,最難的是如果確定三個項的系數(shù),這就需要大量的實驗以及經(jīng)驗來決定了。通過不斷的嘗試和正確的思考,就能選取合適的系數(shù),實現(xiàn)優(yōu)良的控制器

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

    關(guān)注

    230

    文章

    10659

    瀏覽量

    184886
  • PID控制算法
    +關(guān)注

    關(guān)注

    1

    文章

    21

    瀏覽量

    10827

原文標題:拋棄公式,從原理上真正理解PID控制算法

文章出處:【微信號:EngicoolArabic,微信公眾號:電子工程技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    模糊PID控制算法如何控制勻速升溫

    ,誤差較小時采用模糊PID控制,實現(xiàn)了2種控制方法的優(yōu)勢互補。 同時在此基礎(chǔ)上,給出了Fuzzy PID
    發(fā)表于 05-30 10:38

    什么是PID控制算法?PID控制算法C語言是如何實現(xiàn)的?

    什么是PID控制算法PID控制算法C語言是如何實現(xiàn)的?特殊情況下的
    發(fā)表于 06-29 09:24

    PID控制算法的基本思想是什么?PID控制算法是如何形成的?

    常用的控制算法有哪幾種?各自有什么特點?PID控制算法的基本思想是什么?PID
    發(fā)表于 06-30 06:04

    PID控制算法是如何形成的

    常用的控制算法有哪幾種?分別有何特點?PID控制算法的基本思想是什么?PID
    發(fā)表于 12-21 07:05

    pid控制的實現(xiàn)基本概述

    一.基本概述pid((proportion integration differentiation)其實就是指比例,積分,微分控制)是一種控制方式,實際使用的時候就是量化出來的。是一種
    發(fā)表于 01-14 07:33

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

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

    PID控制算法仿真與控制

    PID控制算法仿真與控制:了解計算機控制過程,及用不同種高級語言編寫實驗程序的方法與特點。單回路
    發(fā)表于 07-01 18:25 ?42次下載

    pid算法_什么是pid算法

    PID控制器是一種最優(yōu)控制。本文講述了增量式PID算法原理與數(shù)字PID
    發(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>

    PID控制算法總結(jié)

    本課題是基于 PID 控制算法來進行控制的。在未做這個 課題之前,對于 PID 控制
    發(fā)表于 03-09 10:57 ?1次下載

    單片機的PID控制方法

    本文檔詳細介紹了PID算法,以及單片機的PID控制方法
    發(fā)表于 08-30 17:02 ?16次下載

    PID控制算法控制算法

    PID控制算法控制算法
    發(fā)表于 11-17 11:43 ?12次下載

    PID控制器與PID算法的研究

    PID 算法 在過程控制中,PID 控制器,一直是應(yīng)用最為廣泛的一種自動控制器;
    發(fā)表于 11-21 17:03 ?30次下載

    PID控制算法原理是什么?pid控制算法的c語言實現(xiàn)介紹和測試代碼概述

    最近兩天在考慮一般控制算法的C語言實現(xiàn)問題,發(fā)現(xiàn)網(wǎng)絡(luò)上尚沒有一套完整的比較體系的講解。于是總結(jié)了幾天,整理一套思路分享給大家。 在工業(yè)應(yīng)用中PID 及其衍生算法是應(yīng)用最廣泛的
    發(fā)表于 08-23 08:00 ?46次下載
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>原理是什么?<b class='flag-5'>pid</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>的c語言實現(xiàn)介紹和測試代碼<b class='flag-5'>概述</b>

    數(shù)字PID控制算法教程之如何對標準PID算法進行改進

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

    第五章:PID控制算法控制算法

    PID控制算法控制算法說明。
    發(fā)表于 06-04 14:42 ?11次下載