国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

經(jīng)典PID控制器的積分分離優(yōu)化算法

454398 ? 來(lái)源:博客園 ? 作者:木南創(chuàng)智 ? 2020-11-04 14:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們已經(jīng)講述了PID控制器的實(shí)現(xiàn),包括位置型PID控制器和增量型PID控制器。但這個(gè)實(shí)現(xiàn)只是最基本的實(shí)現(xiàn),并沒(méi)有考慮任何的干擾情況。在本節(jié)及后續(xù)的一些章節(jié),我們就來(lái)討論一下經(jīng)典PID控制器的優(yōu)化與改進(jìn)。這一節(jié)我們首先來(lái)討論針對(duì)積分項(xiàng)的積分分離優(yōu)化算法

1、基本思想

我們已經(jīng)講述了PID控制引入積分主要是為了消除靜差,提高控制精度。但在過(guò)程的啟動(dòng)、結(jié)束或大幅度增減設(shè)定值時(shí),短時(shí)間內(nèi)系統(tǒng)輸出有很大偏差,會(huì)造成PID運(yùn)算的積分累積,引起超調(diào)或者振蕩。為了解決這一干擾,人們引入了積分分離的思想。其思路是偏差值較大時(shí),取消積分作用,以免于超調(diào)量增大;而偏差值較小時(shí),引入積分作用,以便消除靜差,提高控制精度。

具體的實(shí)現(xiàn)步驟是:根據(jù)實(shí)際情況,設(shè)定一個(gè)閾值;當(dāng)偏差大于閾值時(shí),消除積分僅用PD控制;當(dāng)偏差小于等于閾值時(shí),引入積分采用PID控制。則控制算法可表示為:

其中β稱(chēng)為積分開(kāi)關(guān)系數(shù),其取值范圍為:

由上述表述及公式我們可以知道,積分分離算法的效果其實(shí)與ε值的選取有莫大關(guān)系,所以ε值的選取實(shí)際上是實(shí)現(xiàn)的難點(diǎn),ε值過(guò)大則達(dá)不到積分分離的效果,而ε值過(guò)小則難以進(jìn)入積分區(qū),ε值的選取存在很大的主觀因素。

對(duì)于經(jīng)典的增量式PID算法,似乎沒(méi)有辦法由以上的公式推導(dǎo)而來(lái),因?yàn)棣码S著err(k)的變化在不是修改著控制器的表達(dá)式。其實(shí)我們可以換一種角度考慮,每次系統(tǒng)調(diào)節(jié)未定后,偏差應(yīng)該為零,然后只有當(dāng)設(shè)定值改變時(shí),系統(tǒng)才會(huì)響應(yīng)而開(kāi)始調(diào)節(jié)。設(shè)定值的改變實(shí)際上是一個(gè)階躍變化,此時(shí)的控制輸出記為U0,開(kāi)始調(diào)節(jié)時(shí),其調(diào)節(jié)增量其實(shí)與之前的一切沒(méi)有關(guān)系。所以我們就可以以變化時(shí)刻開(kāi)始為起點(diǎn),而得到帶積分分離的增量算法,以保證在啟動(dòng)、停止和快速變化時(shí)防止超調(diào)。公式如下:

其中β的取值與位置型PID算法一致??赡苡腥藭?huì)擔(dān)心偏差來(lái)回變化,造成積分作用的頻繁分離和引入,進(jìn)而使上述的增量表達(dá)式無(wú)法實(shí)現(xiàn)。其實(shí)我們分析一下就能發(fā)現(xiàn),在開(kāi)始時(shí),由于設(shè)定值變化引起的偏差大而分離了積分作用,在接近設(shè)定值時(shí),偏差變小就引入了積分,一邊消除靜差,而后處于穩(wěn)態(tài),直到下一次變化。

2、算法實(shí)現(xiàn)

這一部分,我們根據(jù)前面對(duì)其基本思想的描述,來(lái)實(shí)現(xiàn)基于積分分離的PID算法實(shí)現(xiàn),同樣是包括位置型和增量型兩種實(shí)現(xiàn)方式。首先我們來(lái)看一下算法的實(shí)現(xiàn)過(guò)程,具體的流程圖如下:

有上圖我們知道,與普通的PID算法的區(qū)別,只是判斷偏差的大小,偏差大時(shí),為PD算法,偏差小時(shí)為PID算法。于是我們需要一個(gè)偏差檢測(cè)與積分項(xiàng)分離系數(shù)β的函數(shù)。

 1 static uint16_t BetaGeneration(float error,float epsilon)
 2 
 3 {
 4 
 5   uint16_t beta=0;
 6 
 7   if(abs(error)<= epsilon)
 8 
 9 {
10 
11   beta=1;
12 
13 }
14 
15 return beta;
16 
17 }

1)位置型PID算法實(shí)現(xiàn)

根據(jù)前面的分析我們可以很輕松的編寫(xiě)程序,只需要在編寫(xiě)程序時(shí)判斷偏差以確定是否引入積分項(xiàng)就可以了。同樣先定義PID對(duì)象的結(jié)構(gòu)體:

 1 /*定義結(jié)構(gòu)體和公用體*/
 2 
 3 typedef struct
 4 
 5 {
 6 
 7   float setpoint;       //設(shè)定值
 8 
 9   float proportiongain;     //比例系數(shù)
10 
11   float integralgain;      //積分系數(shù)
12 
13   float derivativegain;    //微分系數(shù)
14 
15   float lasterror;     //前一拍偏差
16 
17   float result; //輸出值
18 
19   float integral;//積分值
20 
21   float epsilon; //偏差檢測(cè)閾值
22 
23 }PID;

接下來(lái)實(shí)現(xiàn)PID控制器:

 1 void PIDRegulation(PID *vPID, float processValue)
 2 
 3 {
 4 
 5   float thisError;
 6 
 7   thisError=vPID->setpoint-processValue;
 8 
 9   vPID->integral+=thisError;
10 
11   uint16_t beta= BetaGeneration(error, vPID->epsilon);
12 
13   if(beta>0)
14 
15 {
16 
17   vPID->result=vPID->proportiongain*thisError+vPID->derivativegain*(thisError-vPID->lasterror);
18 
19 }
20 
21 else
22 
23 {
24 
25 vPID->result=vPID->proportiongain*thisError+vPID->integralgain*vPID->integral+vPID->derivativegain*(thisError-vPID->lasterror);
26 
27 }
28 
29  
30 
31   vPID->lasterror=thisError;
32 
33 }

與普通的PID算法的區(qū)別就是上述代碼中增加了偏差判斷,來(lái)決定積分項(xiàng)的分離與否。

2)增量型PID算法實(shí)現(xiàn)

對(duì)于增量型PID控制,我們也可以采取相同的處理。首先定義PID對(duì)象的結(jié)構(gòu)體:

 1 /*定義結(jié)構(gòu)體和公用體*/
 2 
 3 typedef struct
 4 
 5 {
 6 
 7   float setpoint;       //設(shè)定值
 8 
 9   float proportiongain;     //比例系數(shù)
10 
11   float integralgain;      //積分系數(shù)
12 
13   float derivativegain;    //微分系數(shù)
14 
15   float lasterror;     //前一拍偏差
16 
17   float preerror;     //前兩拍偏差
18 
19   float deadband;     //死區(qū)
20 
21   float result; //輸出值
22 
23   float epsilon; //偏差檢測(cè)閾值
24 
25 }PID;

接下來(lái)實(shí)現(xiàn)PID控制器:

 1 void PIDRegulation(PID *vPID, float processValue)
 2 
 3 {
 4 
 5   float thisError;
 6 
 7   float increment;
 8 
 9   float pError,dError,iError;
10 
11  
12 
13   thisError=vPID->setpoint-processValue; //得到偏差值
14 
15   pError=thisError-vPID->lasterror;
16 
17   iError=thisError;
18 
19   dError=thisError-2*(vPID->lasterror)+vPID->preerror;
20 
21   uint16_t beta= BetaGeneration(error, vPID->epsilon);
22 
23   if(beta>0)
24 
25 {
26 
27 increment=vPID->proportiongain*pError+vPID->derivativegain*dError;   //增量計(jì)算
28 
29 }
30 
31 else
32 
33 {
34 
35 increment=vPID->proportiongain*pError+vPID->integralgain*iError+vPID->derivativegain*dError;   //增量計(jì)算
36 
37 }
38 
39   vPID->preerror=vPID->lasterror;  //存放偏差用于下次運(yùn)算
40 
41   vPID->lasterror=thisError;
42 
43   vPID->result+=increment;
44 
45 }

這就實(shí)現(xiàn)了增量型PID控制器積分分離算法,也沒(méi)有考慮任何的干擾條件,僅僅只是對(duì)數(shù)學(xué)公式的計(jì)算機(jī)語(yǔ)言化。

3、總結(jié)

積分分離算法的思想非常簡(jiǎn)單。當(dāng)然,對(duì)于β的取值,很多人提出了改進(jìn)措施,例如分多段取值,設(shè)定多個(gè)閾值ε1、ε2、ε3、ε4等,不過(guò)這些閾值也需要根據(jù)實(shí)際的系統(tǒng)來(lái)設(shè)定。除了分段取值外,甚至也有采用函數(shù)關(guān)系來(lái)獲取β值。當(dāng)然,這樣處理后就不再是簡(jiǎn)單的積分分離了,特別是在增量型算法中,實(shí)際上已經(jīng)演變?yōu)橐环N變積分算法了。已經(jīng)偏離了積分分離算法的設(shè)計(jì)思想,在后面我們會(huì)進(jìn)一步說(shuō)明。
編輯:hfy

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

    關(guān)注

    23

    文章

    4784

    瀏覽量

    98076
  • PID控制器
    +關(guān)注

    關(guān)注

    2

    文章

    173

    瀏覽量

    19704
  • PD控制器
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    16904
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    變頻內(nèi)置PID控制參數(shù)的含義

    變頻內(nèi)置PID控制是工業(yè)自動(dòng)化領(lǐng)域中的關(guān)鍵技術(shù)之一,廣泛應(yīng)用于電機(jī)調(diào)速、溫度控制、壓力調(diào)節(jié)等場(chǎng)景。PID
    的頭像 發(fā)表于 03-04 11:02 ?106次閱讀
    變頻<b class='flag-5'>器</b>內(nèi)置<b class='flag-5'>PID</b><b class='flag-5'>控制</b>參數(shù)的含義

    PID控制算法

    !簡(jiǎn)單的不是原始的,簡(jiǎn)單的也不是落后的,簡(jiǎn)單到了美的程度。先看看PID算法的一般形式: PID的流程簡(jiǎn)單到了不能再簡(jiǎn)單的程度,通過(guò)誤差信號(hào)控制被控量,而
    發(fā)表于 01-23 08:18

    C語(yǔ)言的PID算法

    .ActualSpeed += incrementSpeed; pid.err_last = pid.err_next; pid.err_next = pid.err; retu
    發(fā)表于 01-16 08:13

    C語(yǔ)言實(shí)現(xiàn)PID算法介紹

    PID 是 Proportional(比例)、Integral(積分)、Differential(微分)的首字母縮寫(xiě);是一種結(jié)合比例、積分和微分三種環(huán)節(jié)于一體的閉環(huán)控制
    發(fā)表于 01-16 07:24

    C語(yǔ)言增量式PID的通用算法

    C語(yǔ)言增量式PID通用算法控制算法PID使用的非常廣泛,但是在網(wǎng)上找代碼的時(shí)候發(fā)現(xiàn)好多代碼都不夠通用,需要自己改好多東西,而且當(dāng)一個(gè)項(xiàng)目需
    發(fā)表于 01-14 08:28

    CW32L012的PID溫度控制——算法基礎(chǔ)

    PID 控制算法是比例(Proportional)- 積分(Integral)- 微分(Derivative) 控制的簡(jiǎn)稱(chēng),是工業(yè)
    的頭像 發(fā)表于 01-05 16:27 ?2016次閱讀
    CW32L012的<b class='flag-5'>PID</b>溫度<b class='flag-5'>控制</b>——<b class='flag-5'>算法</b>基礎(chǔ)

    請(qǐng)問(wèn)如何優(yōu)化PID控制器的參數(shù)以實(shí)現(xiàn)快速響應(yīng)和減少超調(diào)?

    PID控制器在電機(jī)控制中起著關(guān)鍵作用。如何根據(jù)電機(jī)的特性和應(yīng)用需求調(diào)整PID控制器的參數(shù)(如比例系數(shù)、
    發(fā)表于 12-08 06:15

    怎樣理解變頻內(nèi)置PID控制參數(shù)的含義

    應(yīng)用三個(gè)維度展開(kāi)分析。 一、PID控制的基本原理與變頻實(shí)現(xiàn) PID(比例-積分-微分)控制是一
    的頭像 發(fā)表于 12-06 07:39 ?2010次閱讀

    Aerodiode高帶寬激光鎖定PID控制器

    。 PID-C型激光鎖定PID控制器專(zhuān)為實(shí)現(xiàn)寬達(dá)30MHz控制帶寬內(nèi)的最低噪聲水平而設(shè)計(jì)。該設(shè)備采用觸屏控制(無(wú)需電腦)的模塊化設(shè)計(jì),集成了
    的頭像 發(fā)表于 10-22 07:48 ?473次閱讀
    Aerodiode高帶寬激光鎖定<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>

    CW32電機(jī)控制基礎(chǔ)——PID控制原理

    將偏差的比例(Proportion)、積分(Integral)和微分(Differential)通過(guò)線性組合構(gòu)成控制量,用這一控制量對(duì)被控對(duì)象進(jìn)行控制,這樣的
    的頭像 發(fā)表于 09-30 11:44 ?2690次閱讀
    CW32電機(jī)<b class='flag-5'>控制</b>基礎(chǔ)——<b class='flag-5'>PID</b><b class='flag-5'>控制</b>原理

    PID控制算法學(xué)習(xí)筆記資料

    用于新手學(xué)習(xí)PID控制算法。
    發(fā)表于 08-12 16:22 ?7次下載

    改進(jìn)粒子群算法的永磁同步電機(jī)PID控制器

    較好的輸出增益,振蕩較小,抗干擾能力較強(qiáng)。 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:改進(jìn)粒子群算法的永磁同步電機(jī)PID控制器.pdf【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品
    發(fā)表于 05-28 15:44

    改進(jìn)的BP網(wǎng)絡(luò)PID控制器在無(wú)刷直流電機(jī)中的應(yīng)用

    通過(guò)分析學(xué)習(xí)速率對(duì)BP算法的影響,提出一種分層調(diào)整學(xué)習(xí)速率的改進(jìn)BP 網(wǎng)絡(luò)算法,并把該方法設(shè)計(jì)成 PID控制器應(yīng)用在無(wú)刷直流電機(jī)控制系統(tǒng)中,
    發(fā)表于 05-28 15:42

    永磁同步直線電機(jī)的粒子群PID空間矢量控制

    PID 控制器,并通過(guò) MAT- LAB/Simulink 對(duì)永磁同步直線電機(jī)和其空間矢量控制系統(tǒng)進(jìn)行建模和仿真實(shí)驗(yàn)。仿真結(jié)果表明,采用粒子群優(yōu)化
    發(fā)表于 03-27 12:07

    激光 PID 控制器的工作原理與優(yōu)勢(shì)

    在激光技術(shù)廣泛應(yīng)用的今天,激光設(shè)備的性能優(yōu)劣直接影響著眾多領(lǐng)域的生產(chǎn)與科研成果。而激光 PID控制器,憑借其卓越的調(diào)控能力,成為激光設(shè)備的 “智能核心調(diào)控”。
    的頭像 發(fā)表于 03-12 16:03 ?1155次閱讀