久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

歡迎來到高端IT就業培訓專家——華清遠(yuan)見(jian)教育科(ke)技集團

400-611-6270

當前位置:IT培訓 > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > PID算法的C程序實現方式,大神帶你入門
PID算法的C程序實現方式,大神帶你入門
時(shi)間:2018-04-24作者:華清遠見

一、PID算法(fa)簡介

 在(zai)水溫控制(zhi)模型、智能車比賽、四軸飛行器穩定(ding)(ding),平(ping)衡車速(su)度等控制(zhi)實現時,因為(wei)(wei)預設值(zhi)與(yu)實際(ji)控制(zhi)效果之間存(cun)在(zai)一(yi)(yi)定(ding)(ding)的偏差、實際(ji)輸出與(yu)數據反饋之間存(cun)在(zai)一(yi)(yi)定(ding)(ding)的延時,往(wang)往(wang)不能得到理想的控制(zhi)效果。PID作為(wei)(wei)應用為(wei)(wei)廣泛的一(yi)(yi)種(zhong)自(zi)動控制(zhi)器,在(zai)實際(ji)控制(zhi)中加入(ru)PID算法將能達到系統不斷(duan)靈活變化的效果。

上(shang)面的提到的幾種實例都(dou)可以稱為惰性系統(tong)(過程(cheng)控制(zhi)對象具(ju)有(you)“一介(jie)滯后+純滯后”與“二介(jie)滯后+純滯后 ”特(te)點,說白了就是響應延(yan)遲+反饋延(yan)時(shi)),PID控制(zhi)器是一種最優控制(zhi)器。

顧名(ming)思義,P指是比例(Proportion),I指是積(ji)分(fen)(fen)(Integral),D指微分(fen)(fen)(Differential)。在電機調速系統中(zhong),輸入信號(hao)為正(zheng),要(yao)求電機正(zheng)轉(zhuan)時(shi)(shi),反饋(kui)信號(hao)也為正(zheng)(PID算法(fa)時(shi)(shi),誤(wu)差=輸入-反饋(kui)),同時(shi)(shi)電機轉(zhuan)速越高,反饋(kui)信號(hao)越大。要(yao)想搞懂PID算法(fa)的(de)原理,首先必須先明(ming)白P,I,D各自的(de)含義及控(kong)制規律:

1.1比例P

 Proportion(比例(li)),就是輸(shu)入偏(pian)差乘以一個(ge)常數。

比(bi)例調節器方程為:

y=Kp*e(t)

調節(jie)器的輸出與輸入偏差(cha)成正比(bi)。比(bi)例項(xiang)部分(fen)其實(shi)就(jiu)是對預設值(zhi)和反(fan)饋值(zhi)差(cha)值(zhi)的放(fang)大倍(bei)數。

圖示

圖1 比例(li)放大示意(yi)圖

控制(zhi)對(dui)象為電(dian)機(ji)時,比例(li)Kp越(yue)大(da)時,電(dian)機(ji)轉(zhuan)速(su)(su)回歸(gui)到輸入值的速(su)(su)度將更快,及(ji)調節靈敏度就越(yue)高。從而,加Kp值,可以減少從非穩態到穩態的時間(jian)。但是同時也可能(neng)造(zao)成電(dian)機(ji)轉(zhuan)速(su)(su)在預(yu)設值附近(jin)振蕩的情形,即用(yong)力(li)過猛,調整跨(kua)度太大(da),如果(guo)是舵機(ji)轉(zhuan)向(xiang)系統,會出現智能(neng)車搖擺S型(xing)前進,這就是Kp過大(da)造(zao)成的,所以又引入積分I解決此問題。

1.2 積分I

Integral(積(ji)分),積(ji)分作用(yong)是指(zhi)調節器的輸(shu)出與輸(shu)入偏差的積(ji)分成(cheng)比例的作用(yong)。

積分方程為:

Ti是積分時間(jian)常(chang)數(shu),它表(biao)示(shi)積分速度(du)的大小,Ti越(yue)大,積分速度(du)越(yue)慢,積分作用(yong)越(yue)弱。

圖示

圖(tu)2 積分調節示意圖(tu)

積(ji)(ji)分環節(jie)的(de)(de)(de)調節(jie)作用(yong)雖然會消(xiao)除靜(jing)態誤差(cha)(cha),但也會降低系(xi)統(tong)(tong)的(de)(de)(de)響應速(su)度,也就是(shi)積(ji)(ji)分項的(de)(de)(de)調節(jie)存在明顯的(de)(de)(de)滯后,因為(wei)Ti代表的(de)(de)(de)是(shi)時(shi)間常(chang)數(shu),Ti值越大(da),時(shi)間越長,滯后效(xiao)果(guo)越明顯,增(zeng)加(jia)系(xi)統(tong)(tong)的(de)(de)(de)超調量(liang)(liang)。積(ji)(ji)分常(chang)數(shu)T I 越大(da),積(ji)(ji)分的(de)(de)(de)積(ji)(ji)累(lei)(lei)作用(yong)越弱(ruo)。增(zeng)大(da)積(ji)(ji)分常(chang)數(shu)T I 會減(jian)慢(man)靜(jing)態誤差(cha)(cha)的(de)(de)(de)消(xiao)除過程,但可以減(jian)少(shao)超調量(liang)(liang),提高系(xi)統(tong)(tong)的(de)(de)(de)穩定性(xing)。所以,必須根據實際控制(zhi)的(de)(de)(de)具體(ti)要(yao)求來確(que)定TI 。比(bi)如:當差(cha)(cha)值不(bu)是(shi)很大(da)時(shi),可以減(jian)小控制(zhi)效(xiao)果(guo),維持原系(xi)統(tong)(tong)的(de)(de)(de)輸出值。但是(shi)還是(shi)要(yao)將偏差(cha)(cha)進行加(jia)法積(ji)(ji)累(lei)(lei)。當這(zhe)個(ge)和累(lei)(lei)加(jia)超過預定值時(shi),再一次性(xing)進行處理。從而(er)避(bi)免了頻繁控制(zhi)而(er)出現振蕩現象。

1.3 微分D

Derivative(微分),微分項部分其實(shi)就是求電機轉速的變化率。也就是前后(hou)兩次差值的差。

微(wei)分調節器的微(wei)分方程(cheng)為(wei)

圖示

圖3 微(wei)分控制器曲線

微(wei)分(fen)(fen)(fen)反(fan)應(ying)了偏(pian)(pian)差(cha)信號的(de)(de)(de)(de)變(bian)化(hua)規律,或者(zhe)說是變(bian)化(hua)趨(qu)勢,偏(pian)(pian)差(cha)的(de)(de)(de)(de)微(wei)分(fen)(fen)(fen)實(shi)際偏(pian)(pian)差(cha)的(de)(de)(de)(de)變(bian)化(hua)速率,變(bian)化(hua)越(yue)快(kuai),其微(wei)分(fen)(fen)(fen)絕(jue)對值越(yue)大(da)(da)。偏(pian)(pian)差(cha)增(zeng)大(da)(da)時,其微(wei)分(fen)(fen)(fen)為(wei)正;偏(pian)(pian)差(cha)減小時,其微(wei)分(fen)(fen)(fen)為(wei)負(fu)(fu)。控(kong)制(zhi)器(qi)輸出量(liang)的(de)(de)(de)(de)微(wei)分(fen)(fen)(fen)部分(fen)(fen)(fen)與誤差(cha)的(de)(de)(de)(de)微(wei)分(fen)(fen)(fen)成(cheng)正比,反(fan)映了被控(kong)量(liang)變(bian)化(hua)的(de)(de)(de)(de)趨(qu)勢。根據(ju)偏(pian)(pian)差(cha)信號的(de)(de)(de)(de)變(bian)化(hua)趨(qu)勢來進(jin)行(xing)超前(qian)調(diao)節(jie)(jie),從而增(zeng)加(jia)了系統的(de)(de)(de)(de)快(kuai)速性(xing)(xing)。Td值越(yue)大(da)(da),超前(qian)控(kong)制(zhi)作用就會越(yue)明顯,可(ke)(ke)以在做到提前(qian)控(kong)制(zhi)。比例僅僅是偏(pian)(pian)差(cha)的(de)(de)(de)(de)放大(da)(da)增(zeng)幅,表示當前(qian)調(diao)節(jie)(jie)參數(shu),微(wei)分(fen)(fen)(fen)是預測(ce)偏(pian)(pian)差(cha)的(de)(de)(de)(de)變(bian)化(hua),相當于提前(qian)加(jia)入(ru)了控(kong)制(zhi)數(shu)據(ju)。在比例微(wei)分(fen)(fen)(fen)調(diao)節(jie)(jie)器(qi)中,能夠(gou)提前(qian)控(kong)制(zhi)偏(pian)(pian)差(cha),也(ye)有可(ke)(ke)能出現(xian)負(fu)(fu)值,避免了惰性(xing)(xing)系統的(de)(de)(de)(de)超調(diao)現(xian)象。

一、PID算法內容(rong)

2.1 PID算法選擇

PID算法(fa)中有比例積分調(diao)節(jie)(PI),比例微(wei)分調(diao)節(jie)器(PD),可(ke)根(gen)據系統要求進(jin)行選擇,通(tong)常(chang)為了改善調(diao)節(jie)品(pin)質,往往把比例、積分、微(wei)分三種作(zuo)用組合起來,形成(cheng)PID調(diao)節(jie)器。理想的PID微(wei)分方程(cheng)為:

其中u(t) 調節器的輸出信號;

e(t) 調節(jie)器的偏差(cha)信號,它等(deng)于給(gei)定值與測量值之差(cha)

Kp 為比例增益;

T i 積(ji)分時間

T d 微分時間(jian)

KP /T I 積分(fen)系數

KP / T D 微分系數

2.2 PID算法要求

PID需要(yao)在(zai)一個閉環系統(tong)(tong)里面(橋黑(hei)板)。閉環系統(tong)(tong)即在(zai)控(kong)制系統(tong)(tong)中(zhong),有執(zhi)行處(chu)理單元,同時(shi)必須(xu)有輸入反饋(kui)單元,電機(ji)系統(tong)(tong)中(zhong),必須(xu)有編(bian)碼器、測速(su)電機(ji)等測速(su)設備。控(kong)制系統(tong)(tong)原理圖如下(xia):

圖4 閉環PID控制(zhi)系統

2.3 PID參數常用小口訣:

整定參數尋最(zui)佳,從小到大逐步查(cha);

先調比例后積分,微分作用最后加;

曲線震蕩很頻繁,比(bi)例(li)刻度要放大(da);

曲線漂浮(fu)波(bo)動大,比例(li)刻度要拉小;

曲線偏離回復慢,積分時間往小降;

曲線波動周期(qi)長,積分時間要加長;

曲線震蕩動(dong)作繁,微分時間要(yao)加長。

一、C代碼實現

由于計(ji)算機控(kong)(kong)制(zhi)(zhi)是(shi)一種采(cai)樣控(kong)(kong)制(zhi)(zhi),它只(zhi)能(neng)根據采(cai)樣許可(ke)的偏差計(ji)算控(kong)(kong)制(zhi)(zhi)量,而(er)不(bu)能(neng)象模擬控(kong)(kong)制(zhi)(zhi)那(nei)樣連續輸出控(kong)(kong)制(zhi)(zhi)量,進行連續控(kong)(kong)制(zhi)(zhi)。那(nei)么上面的PID公(gong)式(shi)不(bu)能(neng)直接(jie)使用,必須進行離散化處理

假設采(cai)樣時間(jian)間(jian)隔為T,則在(zai)k時刻:

偏差(cha)為e(k);

積(ji)分為e(k)+e(k-1)+e(k-2)+...+e(0);

微分為(wei)(e(k)-e(k-1))/T;

從(cong)而(er)公式離(li)散化后如(ru)下:

k 采(cai)樣信號,k=0,1,2,…

u k 第k 次(ci)采(cai)樣時刻的計(ji)算機輸(shu)出值

e k 第k 次采樣(yang)時刻輸入的偏(pian)差值

e k −1 第(di)k-1 次采樣時刻輸(shu)入的偏差(cha)值。

實際上面(mian)的公式(shi)為位置式(shi)PID,運算較多,占(zhan)用單片機資源,還可以(yi)推(tui)出增量式(shi)PID:

U(k) = P *e(k) + I *[e(k)+e(k-1)+...+e(0)]+ D *[e(k)-e(k-1)]。

簡化后可以在(zai)C語言中(zhong)寫成:

u(k) = u(k)-u(k-1) = Kp(e(k) - e(k-1)) + Ki *e(k) + Kd(e(k)) - 2e(k-1) + e(k-2))

上(shang)面的表達式(shi)(shi)就是增量式(shi)(shi)表達形(xing)式(shi)(shi),u(k)與最后三次計(ji)算偏差有關(guan)。

C語言理解代碼:

//創(chuang)建變量(liang)結構(gou)體

struct pid_type{

float Kp; //PI調節的比例常數

float Ti; //PI調節的積(ji)分常(chang)數

float T; //采(cai)樣(yang)周期

float Ki;

float ek; //偏差e[k]

float ek1; //偏(pian)差e[k-1]

float ek2; //偏(pian)差(cha)e[k-2]

float uk; //u[k]

signed int uk1; //對(dui)u[k]四舍五入取整

signed int adjust; //調節器輸出調整量

}pid;

//變量初始

void Pid_Init(void)

{

pid.Kp=4;

pid.Ti=0.005;

pid.T=0.001;

pid.Ki=0.6; //微分(fen)系數(shu)Kd=KpTd/T。根據實際(ji)調節(jie)

pid.ek=0;

pid.ek1=0;

pid.ek2=0;

pid.uk=0;

pid.uk1=0;

pid.adjust=0;

}

int PIDadjust(float ek) //PI調(diao)節算法

{

if( gabs(ek)<0.1 )

{

pid.adjust=0;

}

else

{

pid.uk=pid.Kp*(pid.ek-pid.ek1)+pid.Ki*pid.ek; //計(ji)算控制增量

pid.ek1=pid.ek;

pid.uk1=(signed int)pid.uk;

if(pid.uk>0)

{

if(piduk-piduk1>=0.5)

{

pi.uk1=pid.uk1+1;

}

}

if(piduk<0)

{

if(pid.uk1-pid.uk>=0.5)

{

pid.uk1=pid.uk1-1;

}

}

adjust=pid.uk1;

}

return adjust;

}

一、小結

增大(da)比例系數P一般將加快系統的(de)響應,在(zai)有(you)靜(jing)(jing)差的(de)情(qing)況下有(you)利于(yu)減小靜(jing)(jing)差,但(dan)是過大(da)的(de)比例系數會使系統有(you)比較大(da)的(de)超調,并產(chan)生振蕩,使穩定(ding)性變(bian)壞。

增(zeng)大積分時間I有利于減小超調,減小振蕩,使系(xi)統(tong)的穩定性增(zeng)加,但(dan)是系(xi)統(tong)靜(jing)差消除時間變長。

增大微(wei)分時間D有利于加(jia)快(kuai)系(xi)統(tong)的響應速度,使(shi)系(xi)統(tong)超調量減(jian)小(xiao),穩定性增加(jia),但系(xi)統(tong)對擾動的抑制能(neng)力減(jian)弱(ruo)。

也可以說比例系(xi)數P代表(biao)(biao)著現在(zai),表(biao)(biao)明現在(zai)預(yu)設(she)值與實際的偏(pian)(pian)差(cha),積(ji)分(fen)代表(biao)(biao)著過去,是(shi)過去Ti時間內的偏(pian)(pian)差(cha)積(ji)累,可以減(jian)少(shao)震蕩,微分(fen)D代表(biao)(biao)著未來,反(fan)應(ying)了偏(pian)(pian)差(cha)變化率,可以超前預(yu)測并提(ti)出(chu)控(kong)制。

這里有關PID資料的講的非常好,推薦給大家:

1. //blog.csdn.net/u010312937/article/details/53363831#t3《PID控制(zhi)算法的C語言實現<完(wan)整版(ban)>》

2. //blog.csdn.net/qq229596421/article/details/51419813

3. //blog.csdn.net/msdnwolaile/article/details/51038196

祝君爽!!


發表評論

全國咨詢電話:400-611-6270,雙(shuang)休日及節假(jia)日請致電值班手機:15010390966

在線(xian)咨詢: 曹老師(shi)QQ(3337544669), 徐(xu)老師(shi)QQ(1462495461), 劉老師(shi) QQ(3108687497)

企業(ye)培訓洽(qia)談(tan)專線(xian)(xian):010-82600901,院校合作(zuo)洽(qia)談(tan)專線(xian)(xian):010-82600350,在線(xian)(xian)咨詢:QQ(248856300)

Copyright 2004-2018 華清(qing)遠見教育科技(ji)集團 版權所有 ,京(jing)ICP備16055225號,京(jing)公海網安備11010802025203號

有位老師想和(he)您聊一聊