當前位置:首頁 > 公眾號精選 > 小麥大叔
[導讀]理想的PID算法往往不能滿足實際使用中的很多場景,比如積分飽和的問題,因此需要在此基礎上對積分器做抗飽和處理,積分anti windup的優(yōu)化。這不,隆哥這次面試,直接掛在這么基礎的知識點上,腸子悔青,在這里簡單總結一下。

0?前面的話

理想的PID算法往往不能滿足實際使用中的很多場景,比如積分飽和的問題,因此需要在此基礎上對積分器做抗飽和處理,積分anti windup的優(yōu)化。這不,隆哥這次面試,直接掛在這么基礎的知識點上,腸子悔青,在這里簡單總結一下。



推薦一首歌,是仙劍的插曲,音樂響起,便想起了童年,非常懷念,斯人已去,世上再無阿桑,也向歌手致敬。


目錄

  • 1 什么是積分飽和

  • 2 實際的例子

  • 3 負面影響

  • 4 如何防止積分飽和

  • 5 PID算法(抗飽和)

  • 6 參考


1 什么是積分飽和

積分飽和Integral windupintegrator windup)是指PID控制器或是其他有積分器的控制器中可能會發(fā)生的一種現(xiàn)象。

這種現(xiàn)象往往發(fā)生在誤差有大幅變化(例如大幅增加),積分器因為誤差的大幅增加有很大的累計量,因為積分器的輸出滿足下式;

離散化形式表示為:

所以隨著時間的增加,每次累積較大的誤差 ,很容易造成積分飽和并產(chǎn)生較大的過沖,而且當誤差變?yōu)樨摃r,其過沖仍維持一段時間之后才恢復正常的情形。

2 實際的例子

這里舉一個直流電機調速例子,先看下圖;

  • 隆哥設定了轉速為 ,這里可以是 100 rpm,但是由于某種原因電機一開始堵轉了,所以反饋的轉速 0;
  • 這時候仍然處于堵轉狀態(tài),那偏差 就會一直處于很大的狀態(tài),積分器對偏差 進行累積,便迅速達到一個很大的值,導致 PID的輸出已經(jīng)接近輸出的 上限,導致最終輸出的 PWM的占空比很大;
  • 此時,堵轉忽然消失,但是前面提到 PID的輸出已經(jīng)接近輸出的 上限,因此電機轉速也急劇上升,當 時, ,此時偏差都處于負數(shù)狀態(tài);
  • 雖然誤差變成負數(shù),并且積分器開始累加負數(shù),但是由于之前積分器累積的值已經(jīng)很大,于是,PID依然會保持較大的輸出一段時間,從而產(chǎn)生了很大的過沖;

通常會產(chǎn)生的輸出如下圖所示;

從圖中我們不難發(fā)現(xiàn),這里有三個過程;

  • 過程①:因為這個過程存在 較大幅度變化的誤差,因此積分器累積了較大的值,從圖中可以看到,積分器的面積比較大(陰影部分);
  • 過程②:此時積分已經(jīng)飽和,產(chǎn)生了較大的過沖,并且在較長的一段時間內,一直處于過沖的狀態(tài);
  • 過程③:積分脫離飽和狀態(tài),產(chǎn)生了積極的調節(jié)作用,消除靜差,系統(tǒng)輸出達到設定值;

3 負面影響

積分器的作用是消除系統(tǒng)穩(wěn)態(tài)誤差,如果出現(xiàn)積分飽和,往往會對系統(tǒng)造成負面的影響;

  • 系統(tǒng)輸出會產(chǎn)生較大的過沖(超調量);
  • 如果產(chǎn)生正向飽和(圖一所示)則系統(tǒng)對于反向的變化會偏慢;

系統(tǒng)產(chǎn)生了較大的過沖 ,并且較大的一段時間 都處于過沖的狀態(tài);具體如下圖所示;

4 如何防止積分飽和

為了防止PID控制器出現(xiàn)積分飽和,需要在算法加入抗積分飽和(anti-integral windup)的算法;通常有以下幾種措施;

  • 積分分離或者稱為去積分算法;
  • 在飽和的時候將積分器的累計值初始化到一個比較理想的值;
  • 若積分飽和因為目標值突然變化而產(chǎn)生,將目標值以適當斜率的斜坡變化可避免此情形;
  • 將積分累計量限制上下限,避免積分累計量超過限制值;
  • 如果 PID輸出已經(jīng)飽和,重新計算積分累計量,使輸出恰好為合理的范圍;

TI文檔中的方法

下面是TI的位置式PI算法所做的改進,如下圖所示;

比例部分的輸出:

積分部分的輸出:

未做處理的PID輸出:

最終PID輸出

抗積分飽和用的系數(shù)

根據(jù)我的理解,由上述輸出和①式可知,判斷系統(tǒng)是否處于飽和的狀態(tài);

如果 ,說明積分器處于飽和狀態(tài),此時使 系數(shù)為0,這樣防止積分進一步進行累積。

反計算抗飽和法

反計算Anti-Windup法,簡稱AW法,就是在輸出限幅部分根據(jù)輸入信號和輸出信號的差值,把 作為反饋值輸入到積分部分,從而達到抑制積分飽和現(xiàn)象的目的;

具體如下圖所示;

不難發(fā)現(xiàn),在輸出未飽和的情況下, 因此不會對積分器造成影響;當系統(tǒng)發(fā)生飽和時,則

現(xiàn)在假設此時為正向飽和,則 ,那么 ,所以最終將 反饋到積分部分;那么從圖中可知,相當于從 中減去了 ,這樣可以削弱積分,讓它退出飽和的狀態(tài);

關于 系數(shù), 越大,積分器退出飽和的作用越強,反之則越弱;

當然,積分抗飽和的方法還有很多 遇限積分削弱法,遇限保留積分法 ,這只是其中的一種,下面給出TI的位置式PID算法,增量式的抗飽和處理也是類似的做法。

5 PID算法(抗飽和)

TI的算法中只實現(xiàn)了比例和積分,如果需要微分項,可以去除結尾部分的注釋;

/*?==================================================================================
File?name:???????PID_REG3.H??(IQ?version)????????????????????
=====================================================================================*/


#ifndef?__PIDREG3_H__
#define?__PIDREG3_H__

typedef?struct?{??_iq??Ref;??????//?Input:?Reference?input?
??????_iq??Fdb;??????//?Input:?Feedback?input?
??????_iq??Err;????//?Variable:?Error
??????_iq??Kp;????//?Parameter:?Proportional?gain
??????_iq??Up;????//?Variable:?Proportional?output?
??????_iq??Ui;????//?Variable:?Integral?output?
??????_iq??Ud;????//?Variable:?Derivative?output??
??????_iq??OutPreSat;???//?Variable:?Pre-saturated?output
??????_iq??OutMax;??????//?Parameter:?Maximum?output?
??????_iq??OutMin;??????//?Parameter:?Minimum?output
??????_iq??Out;??????//?Output:?PID?output?
??????_iq??SatErr;???//?Variable:?Saturated?difference
??????_iq??Ki;???????//?Parameter:?Integral?gain
??????_iq??Kc;????????//?Parameter:?Integral?correction?gain
??????_iq??Kd;???????????//?Parameter:?Derivative?gain
??????_iq??Up1;??????????//?History:?Previous?proportional?output
??????}?PIDREG3;?????????????

typedef?PIDREG3?*PIDREG3_handle;
/*-----------------------------------------------------------------------------
Default?initalizer?for?the?PIDREG3?object.
-----------------------------------------------------------------------------*/
?????????????????????
#define?PIDREG3_DEFAULTS?{?0,????\
???????????????????????????0,????\
???????????????????????????0,????\
???????????????????????????_IQ(1.3),??\
???????????????????????????0,????\
???????????????????????????0,????\
???????????????????????????0,????\
???????????????????????????0,????\
???????????????????????????_IQ(1),???\
???????????????????????????_IQ(-1),??\
???????????????????????????0,????\
???????????????????????????0,????\
???????????????????????????_IQ(0.02),??\
???????????????????????????_IQ(0.5),??\
???????????????????????????_IQ(1.05),??\
???????????????????????????0,????\
???????????????????}


/*------------------------------------------------------------------------------
??PID?Macro?Definition
------------------------------------------------------------------------------*/



#define?PID_MACRO(v)?????????????????????\
?v.Err?=?v.Ref?-?v.Fdb;??????????/*?Compute?the?error?*/??????\
?v.Up=?_IQmpy(v.Kp,v.Err);????????/*?Compute?the?proportional?output?*/??\
?v.Ui=?v.Ui?+?_IQmpy(v.Ki,v.Up)?+?_IQmpy(v.Kc,v.SatErr);?/*?Compute?the?integral?output?*/???\
?v.OutPreSat=?v.Up?+?v.Ui;????????/*?Compute?the?pre-saturated?output?*/??\
?v.Out?=?_IQsat(v.OutPreSat,?v.OutMax,?v.OutMin);??/*?Saturate?the?output?*/?????\
?v.SatErr?=?v.Out?-?v.OutPreSat;???????/*?Compute?the?saturate?difference?*/??\
?v.Up1?=?v.Up;???????????/*?Update?the?previous?proportional?output?*/


#endif?//?__PIDREG3_H__

//?Add?the?lines?below?if?derivative?output?is?needed?following?the?integral?update
//?v.Ud?=?_IQmpy(v.Kd,(v.Up?-?v.Up1));?
//?v.OutPreSat?=?v.Up?+?v.Ui?+?v.Ud;?

6 參考

https://www.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html

雖然寫的不一定是最好,但是每一個字、每一個公式都是用心碼的,每一張圖都是用心畫的,每一句話都是加入了自己的理解,如果幫到了你,請無情三連吧;另外筆者能力有限,文中難免存在錯誤和紕漏,望輕拍指正。

增量式PID到底是什么?

?簡易PID算法的快速掃盲?

?一文教你搞懂C語言的Q格式

??現(xiàn)成輪子OSAL操作系統(tǒng)抽象層的移植

?一招教你單片機固件快速瘦身

基礎知識 | hex文件格式詳解


—— The End?—


長按識別二維碼關注獲取更多內容



免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉