在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

PID控制器開發筆記之八:帶死區的PID控制器的實現

bojie1024 ? 來源:bojie1024 ? 作者:bojie1024 ? 2022-12-06 10:39 ? 次閱讀

在計算機控制系統中,由于系統特性和計算精度等問題,致使系統偏差總是存在,系統總是頻繁動作不能穩定。為了解決這種情況,我們可以引入帶死區的PID算法

1、帶死區PID的基本思想

帶死區的PID控制算法就是檢測偏差值,若是偏差值達到一定程度,就進行調節。若是偏差值較小,就認為沒有偏差。用公式表示如下:

pYYBAGOOq3mAJIWWAAAYKl8zInE772.png

其中的死區值得選擇需要根據具體對象認真考慮,因為該值太小就起不到作用,該值選取過大則可能造成大滯后。

帶死區的PID算法,對無論位置型還是增量型的表達式沒有影響,不過它是一個非線性系統。

除以上描述之外還有一個問題,在零點附近時,若偏差很小,進入死去后,偏差置0會造成積分消失,如是系統存在靜差將不能消除,所以需要人為處理這一點。

2、算法實現

前面我們描述了帶死區的PID控制的基本思想。在接下來我們來實現這一思想,同樣是按位置型和增量型來分別實現。

(1)位置型PID算法實現

前面我們對微分項、積分項采用的不同的優化算法,他們都可以與死區一起作用于PID控制。這一節我們就來實現一個采用抗積分飽和、梯形積分、變積分算法以及不完全微分算法和死區控制的PID算法。首先依然是定義一個PID結構體

接下來我們實現帶死區、抗積分飽和、梯形積分、變積分算法以及不完全微分算法的增量型PID控制器。/*定義結構體和公用體*/

typedef struct
{
  float setpoint;               /*設定值*/
  float kp;                     /*比例系數*/
  float ki;                     /*積分系數*/
  float kd;                     /*微分系數*/
  float lasterror;              /*前一拍偏差*/
  float preerror;               /*前兩拍偏差*/
  float deadband;               /*死區*/
  float result;                 /*PID控制器計算結果*/
  float output;                 /*輸出值0-100%*/
  float maximum;                /*輸出值上限*/
  float minimum;                /*輸出值下限*/
  float errorabsmax;            /*偏差絕對值最大值*/
  float errorabsmin;            /*偏差絕對值最小值*/
  float alpha;                  /*不完全微分系數*/
  float derivative;              /*微分項*/
  float integralValue;          /*積分累計量*/
}CLASSICPID;
接下來我們實現帶死區、抗積分飽和、梯形積分、變積分算法以及不完全微分算法的增量型PID控制器。
void PIDRegulator(CLASSICPID vPID,float pv)
{
  float thisError;
  float result;
  float factor;

  thisError=vPID->setpoint-pv; //得到偏差值
  result=vPID->result;

  if (fabs(thisError)>vPID->deadband)
  {
    vPID-> integralValue= vPID-> integralValue+ thisError;

    //變積分系數獲取
    factor=VariableIntegralCoefficient(thisError,vPID->errorabsmax,vPID->errorabsmin);

    //計算微分項增量帶不完全微分
    vPID-> derivative =kd*(1-vPID->alpha)* (thisError-vPID->lasterror +vPID->alpha*vPID-> derivative;

result=vPID->kp*thisError+vPID->ki*vPID-> integralValue +vPID-> derivative;
  }
  else
  {
    if((abs(vPID->setpoint-vPID->minimum)deadband)&&(abs(pv-vPID->minimum)deadband))
    {
      result=vPID->minimum;
    }
  }

  /*對輸出限值,避免超調和積分飽和問題*/
  if(result>=vPID->maximum)
  {
    result=vPID->maximum;
  }

  if(result<=vPID->minimum)
  {
    result=vPID->minimum;
  }

  vPID->preerror=vPID->lasterror;  //存放偏差用于下次運算
  vPID->lasterror=thisError;
  vPID->result=result;

  vPID->output=((result-vPID->minimum)/(vPID->maximum-vPID->minimum))*100.0;
}

3、總結

引入死區的主要目的是消除穩定點附近的波動,由于測量值的測量精度和干擾的影響,實際系統中測量值不會真正穩定在某一個具體的值,而與設定值之間總會存在偏差,而這一偏差并不是系統真實控制過程的反應,所以引入死區就能較好的消除這一點。

當然,死區的大小對系統的影響是不同的。太小可能達不到預期的效果,而太大則可能對系統的正常變化造成嚴重滯后,需要根據具體的系統對象來設定。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16416

    瀏覽量

    178762
  • PID
    PID
    +關注

    關注

    35

    文章

    1473

    瀏覽量

    85649
  • 計算機控制
    +關注

    關注

    0

    文章

    36

    瀏覽量

    10766
  • PID控制器
    +關注

    關注

    2

    文章

    173

    瀏覽量

    18620
收藏 人收藏

    評論

    相關推薦

    PID控制器開發筆記之一:PID算法原理及基本實現

    ; //微分系數floatlasterror;//前一拍偏差floatpreerror;//前兩拍偏差floatdeadband;//死區floatresult; //輸出值}PID;接下來實現
    發表于 04-21 16:58

    PID控制器開發筆記之二:積分分離PID控制器實現

    `前面的文章中,我們已經講述了PID控制器實現,包括位置型PID控制器和增量型PID
    發表于 04-28 23:33

    PID控制器開發筆記之三:抗積分飽和PID控制器實現

    飽和的思想很簡單,解釋在控制器輸出的最大最小值附近限制積分的累積情況,以防止在恢復時沒有響應。根據前面得分系我們可以得到如下的流程圖:(1)位置型PID算法實現對于位置型PID的抗積分
    發表于 05-05 17:24

    PID控制器開發筆記四:梯形積分PID控制器實現

    ; //微分系數floatlasterror;//前一拍偏差floatresult; //輸出值floatintegral;//積分值}PID;接下來實現PID控制器:void
    發表于 05-13 11:37

    什么是pid控制,什么是pid控制器

    什么是pid控制器 所謂PID控制,就是在一個閉環控制系統中,使被控物理量能夠迅速而準確地無限接近于
    發表于 09-10 12:39 ?1.7w次閱讀
    什么是<b class='flag-5'>pid</b><b class='flag-5'>控制</b>,什么是<b class='flag-5'>pid</b><b class='flag-5'>控制器</b>

    pid控制器原理

    pid控制器原理       在工程實際中,應用最為廣泛的調節控制規律為比例積分微分控制
    發表于 09-10 12:44 ?1.4w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>原理

    Smith預估的預測PID控制器的設計

    Smith預估的預測PID控制器的設計  PID控制器因算法簡單、魯棒性好、可靠
    發表于 10-25 11:07 ?6663次閱讀
    <b class='flag-5'>帶</b>Smith預估<b class='flag-5'>器</b>的預測<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>的設計

    PID控制器PID算法的研究

    PID 算法 在過程控制中,PID 控制器,一直是應用最為廣泛的一種自動控制器PID
    發表于 11-21 17:03 ?29次下載

    pid控制器的輸入輸出_PID控制器控制實現

    本文首先介紹的是PID控制器的工作原理,其次介紹的是pid控制器的輸入輸出,最后介紹了PID控制器
    的頭像 發表于 06-01 09:09 ?2.9w次閱讀

    PID控制器控制電壓的詳細介紹和PID控制器的C程序的概述

    本文檔的主要內容介紹的是PID控制器控制電壓的詳細介紹和PID控制器的C程序的概述
    發表于 06-07 08:00 ?71次下載
    <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>的C程序的概述

    pid控制器工作原理

    PID控制器廣泛應用于工業過程控制。工業自動化領域的大約95%的閉環操作使用PID控制器控制器
    發表于 07-18 15:10 ?1.1w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>工作原理

    PID控制的理論和PID控制器設計的及PID控制器參數整定的以及分析

    PID控制作為一種經典的控制方法而廣泛應用于工業控制中,是實際工業生產過程正常運行的基本保障。隨著計算機技術的飛躍發展和人工智能技術滲透到自動控制
    發表于 12-04 08:00 ?26次下載
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>的理論和<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>設計的及<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>參數整定的以及分析

    PID控制器的含義

    PID控制器的含義 PID 控制器是一種線性控制器,它根據給定值與實際輸出值構成控制偏差。將偏差
    發表于 03-09 14:22 ?3839次閱讀

    PID控制器與PWM控制器的區別

    在工業自動化和控制系統設計中,PID控制器(比例-積分-微分控制器)和PWM控制器(脈沖寬度調制控制器
    的頭像 發表于 06-05 18:25 ?3382次閱讀

    PID控制器的類型和選擇指南

    PID控制器是一種廣泛應用于工業控制系統中的控制器,它根據系統的偏差來計算控制量,以實現對系統的
    的頭像 發表于 11-06 10:37 ?687次閱讀
    主站蜘蛛池模板: xvideos69日本hd| 444kk免费| 欧美尺寸又黑又粗又长| 天天色啪| 久久久久久久国产免费看| 久久99精品福利久久久| 福利视频亚洲| 黄在线视频| 欧美一区二区三区不卡视频| 免费一区在线观看| 亚洲人成伊人成综合网久久| 特级中国aaa毛片| 你懂得视频在线| 黄色日比| 国产精品色片| 天天操天天操| 美女天天操| 100000免费啪啪18免进| 久久久久免费| 欧美性猛| aⅴ一区二区三区| 四虎影库永久在线| 久久欧洲视频| 中文永久免费看电视网站入口| 天堂网中文| 日本人69xxxxxxxx69| 禁漫画羞羞动漫入口| 四虎影院久久| 国内自拍 亚洲系列 欧美系列| wwwxx在线| 国产情侣草莓视频在线| 亚洲aaa视频| 四虎在线永久免费观看| 久优草| 午夜精品久久久久久毛片| 51国产| 曰韩毛片| 久青草视频在线| 天天操天天爽天天射| 1515hh四虎免费观com| 婷婷六月天激情|