【技術】PID控制器改進筆記之五:改進PID控制器之串級設定

2021-02-23 木南創智

前面我們發布了一系列PID控制器相關的文章,包括經典PID控制器以及參數自適應的PID控制器。這一系列PID控制器雖說實現了主要功能,也在實際使用中取得了良好效果,但還有很多的細節部分可以改進以提高性能和靈活性。所以在這篇中我們來討論改進PID控制器以串級調節等複雜控制方式。

1、提出問題

我們前面提到的PID控制器其實都是基於單迴路來考慮的。但有些時候同一個被控對象可能會受到2個控制變量的影響,或者說為了實現一個被控對象更精確的控制需要同時引入兩個控制變量才能得到更好的效果。這個時候我們可以將對被控對象起主要作用的控制變量定義為主變量,相應的控制器作為主控制器;而將對被控對象起次要作用的控制變量定義為從變量,相應的控制器作為從控制器。於是一個串級調節系統就建立起來了。

由以上的控制方框圖我們可以知道,如果將副迴路看作一個整體的執行單元的話,主控制迴路就是一個單迴路的PID控制。同樣只考慮副迴路的話也只是一個單迴路的PID控制。但有所不同的是副迴路的設定值並非由我們輸入給它的,而是由主控制器的輸出施加給它的。所以,我們想解決PID控制器的串聯問題,需要考慮的就是處理如何將主控制器輸出施加給副控制器作為設定的問題。

2、分析設計

我們已經提出了實現PID控制器串級需要考慮的主要問題。接下裡我們需要分析採用什麼辦法解決這一問題並將其數位化。在此,我們先來考慮一下幾個方面的問題。

第一個問題是主控制器的輸出方式。一般來說,PID算法輸出的是實際物理量值的大小。在我們的PID控制器中我們輸出了實際物理量值和百分比。

第二個問題是副控制器的輸入方式。對於PID控制器設定值輸入肯定是與控制變量的物理量相對應的。很顯然以主控制器的物理量值作為副控制器的設定輸入肯定是不合適的。所以我們只有以百分比的方式作為副控制器設定值的輸入。

第三個問題是主副控制器的結合問題。既然以主控制器百分比輸出作為副控制器的設定輸入。而副控制器的設定值為物理量,我們需要根據百分比和副控制變量的量程來獲得副控制器的真正設定值。

第四個問題是PID算法該如何調整。對PID算法的調整並不複雜,事實上我們只需要根據是否是串級來處理設定值就好了。如果不是串級就正常處理;如果是串級就需要根據輸入和量程來計算設定值。我們可以用如下的流程圖來說明:

為了保持PID控制器算法的嚴謹性,我們並不需要將這段處理設定值的操作添加到PID控制算法內部,而只需要獨立處理完設定值的計算並賦值就可以了。

3、軟體實現

我們已經設計了如何實現PID控制器串級的方式。我們還需要將其算法以軟體的方式實現才能真正獲得我們想要的結果。

首先,我們在PID對象類型中添加標識是否為串級的屬性。這一屬性用於標識這一PID控制器是否處於串級控制狀態。只有副控制器需要設定為串級狀態。

其次,我們在PID控制器中添加針對串級副控制器設定值輸入的代碼。其實很簡單,就是在串級狀態下,將輸入的設定值百分比在物理量量程下計算為設定值的最終值。

void PIDRegulator(CLASSICPID *vPID){  float thisError;  float result;  float factor;  float increment;  float pError,dError,iError;  if(*vPID->pMA<1)        {   vPID->output=*vPID->pMV;       vPID->result=(vPID->maximum-vPID->minimum)*vPID->output/100.0+-vPID->minimum;   *vPID->pSV=*vPID->pPV;   vPID->setpoint=*vPID->pSV;  }  else                    {   if(vPID->sm==SMOOTH_ENABLE)     {     SmoothSetpoint(vPID);    }    else    {     if(vPID->cas==CASCADE)          {       vPID->setpoint=(vPID->maximum-vPID->minimum)*(*vPID->pSV)/100.0+vPID->minimum;      }      else      {       vPID->setpoint=*vPID->pSV;      }    }      thisError=vPID->setpoint-(*vPID->pPV);    result=vPID->result;    if(fabs(thisError)>vPID->deadband)    {     pError=thisError-vPID->lasterror;     iError=(thisError+vPID->lasterror)/2.0;     dError=thisError-2*(vPID->lasterror)+vPID->preerror;              factor=VariableIntegralCoefficient(thisError,vPID->errorabsmax,vPID->errorabsmin);              vPID->deltadiff=(*vPID->pKd)*(1-vPID->alpha)*dError+vPID->alpha*vPID->deltadiff;            increment=(*vPID->pKp)*pError+(*vPID->pKi)*factor*iError+vPID->deltadiff;       }    else    {     if((fabs(vPID->setpoint-vPID->minimum)<vPID->deadband)&&(fabs((*vPID->pPV)-vPID->minimum)<vPID->deadband))      {       result=vPID->minimum;      }     increment=0.0;    }        if(vPID->direct==DIRECT)    {     result=result+increment;    }    else    {     result=result-increment;    }        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=(vPID->result-vPID->minimum)/(vPID->maximum-vPID->minimum)*100.0;   *vPID->pMV=vPID->output;  }}

4、總結

這裡我們對PID控制器添加了串級控制的配置參數。當一個PID控制器作為串級調節的副控制器時,我們將串級配置參數使能,這樣將主調節器的輸出給副調節器的設定時就可實現串級。而此時主控制器的串級配置參數並不需要使能,其設定值由操作者給予。

嚴格來講串級控制並不是一種單獨的控制算法,而是一種控制方式。但為了實現串級控制方式,我們需要對PID控制算法做必要的適應性修改。

歡迎關注:

相關焦點

  • 【技術】PID控制器改進筆記之一:改進PID控制器之參數動態調整
    前面我們發布了一系列PID控制器相關的文章,包括經典PID控制器以及參數自適應的PID控制器。
  • 【技術】改進初學者的PID-介紹
    作者Brett Beauregard的原文網址:http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/ 結合新的Arduino PID庫的發布,我決定發布這一系列帖子。最後一個庫雖然穩定,但並沒有真正提供任何代碼解釋。這次計劃的目的是詳細解釋為什麼代碼是這樣的。
  • 四軸上兩種常用的PID算法(單環PID和串級PID)
    這裡主要講解的PID算法屬於一種線性控制器,這種控制器被廣泛應用於四軸上。
  • PID控制器的抗擾原理
    抗擾PID控制器採用了經典PID形式和抗擾控制設計方法,參數調節簡單、適用範圍廣、魯棒性強,其調節方法與PID工程調參經驗兼容。抗擾PID有PID、PI兩種形式,簡化後包含兩個參數(和):其中,決定抗擾性能(Disturbancerejection),決定閉環響應速度(Response speed)。
  • 【乾貨】PID原理和調試口訣詳解
    4,控制器的P,I,D項選擇:根據實際的目標系統調試出最佳的PID參數。(二)常用控制規律的特點:1、比例控制規律P:採用P控制規律能較快地克服擾動的影響,它的作用於輸出值較快,但不能很好穩定在一個理想的數值,不良的結果是雖較能有效的克服擾動的影響,但有餘差出現。
  • PID控制器的參數整定
    PID控制器的參數整定是控制系統設計的核心內容。它是根據被控過程的特性確定PID控制器的比例係數、積分時間和微分時間的大小。
  • PID控制器 | 1.PID控制原理和基本實現
    PID控制器(比例-積分-微分控制器),由比例單元(P)、積分單元(I)和微分單元(D)組成,具有算法簡單、魯棒性好、可靠性高等特點
  • 【精編】PID控制器的參數設定方法匯總(有特價)
    微分作用不能單獨使用,需要與另外兩種調節規律相結合,組成PD或PID控制器。在選擇數字PID參數之前,首先應該確定控制器結構。對允許有靜差(或穩態誤差)的系統,可以適當選擇P或PD控制器,使穩態誤差在允許的範圍內。對必須消除穩態誤差的系統,應選擇包含積分控制的PI或PID控制器。一般來說,PI、PID和P控制器應用較多。對於有滯後的對象,往往都加入微分控制。
  • PID控制及參數調節
    PID控制器問世至今以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。說明:在微分控制D中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關係。在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節。PID控制器問世至今已有近70年歷史,它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。
  • PID基本概念 P、I、D參數的作用是什麼?
    能熟練進行PID參數整定,將自動控制系統投自動,這代表著工程技術人員的自動化技能水平,但很多人並未真正掌握PID控制和PID參數整定。本文給大家介紹PID控制中P、I、D參數的作用。比例控制器實際上就是個放大倍數可調的放大器,即△P=Kp×e,式中Kp為比例增益,即Kp可大於1,也可小於1;e為控制器的輸入,也就是測量值與給定值之差,又稱為偏差。
  • PID很難理解?系統講解PID控制及參數調節,理論加實際才是真的好!
    PID控制器問世至今以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。PID調節控制是一個傳統控制方法,它適用於溫度、壓力、流量、液位等幾乎所有現場,不同的現場,僅僅是PID參數應設置不同,只要參數設置得當均可以達到很好的效果。均可以達到0.1%,甚至更高的控制要求。那麼什麼是PID控制?
  • PID控制及參數調節、PID圖難點詞彙、各種介質代號、PID圖例大集合!
    PID控制器問世至今以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。說明:在微分控制D中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關係。在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節。PID控制器問世至今已有近70年歷史,它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。
  • 兩個例子告訴你什麼是PID控制器?
    PID控制器是工業控制中應用最廣泛的一種控制器,那麼什麼是PID控制器呢?PID是比例(Proportion)積分(Integral)微分(Derivative)的縮寫。在製造生產過程中,如果需要使設備或空間保持恆定的溫度,那麼PID是最好的選擇。
  • 如何調整 PID 控制器?
    一、PID控制器用最簡單的術語來說,控制器計算 P、I 和 D 動作,並將每個參數乘以誤差或 E,它等於直接作用中的 SP-PV,如前所述。然後,將所有參數計算加起來以產生控制變量。– 對於使用術語增益的控制器,將此調諧參數調高可能會導致更敏感、更不穩定的環路。– 相反,在帶有比例帶單元的控制器上,降低此調整參數會以相同的方式影響迴路。請記住這一點,了解您擁有的控制器類型對於確保正確調整參數至關重要。
  • 8.PID控制器基礎知識簡介
    本次教程簡單介紹PID控制器的基礎知識,為後面的全向移動底盤PID參數整定做準備,這裡只是簡單介紹各種新名詞概念和簡單的離散PID公式的推導過程及
  • PID這樣講解,小白都能搞懂!
    PID控制器問世至今以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。PID控制器問世至今已有近70年歷史,它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。當被控對象的結構和參數不能完全掌握,或得不到精確的數學模型時,控制理論的其它技術難以採用時,系統控制器的結構和參數必須依靠經驗和現場調試來確定,這時應用PID控制技術最為方便。即當我們不完全了解一個系統和被控對象﹐或不能通過有效的測量手段來獲得系統參數時,最適合用PID控制技術。
  • PID的控制原理
    PID控制詳解讓我們先看一張圖:注意觀察pid三個值的變化對曲線的影響一、PID控制簡介
  • 一種改進穩態性能的改進型PI控制器丨CJEE文章推薦
    他們設計了一種改進的PI控制器,並與PR控制器進行了比較,仿真試驗結果也充分驗證了該控制器的可行性和有效性。
  • 我們辛辛苦苦研究控制理論,卻發現工業界只愛PID
    7. pid本質上是設計一個低通濾波器。因為低通抑制了幹擾和誤差。8. 李雅普諾夫和pid的理論根源是能量損耗。損耗導致誤差的能量,最終收斂。9. 支持向量機和模糊自適應神經網絡,在數學上其實是等價的10. 江南寫的「上海堡壘」中有一句話「我這輩子不過是個算泡泡的」。其實搞控制的不過是個證明收斂的。11.
  • 一起學:DDC控制器
    DDC系統可提供過往使用紀錄安裝在各區域(房間)的傳感器可由客戶調節改變該區域內設定點,當設定變化時,空氣處理系統或部分機械系統相應動作,該系統還可提供每月各客戶的操作紀錄清單。DDC系統能協助顧問工程師顧問工程師可很大地受益於DDC系統。