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

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

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

串級PID的相關概念

FPGA之家 ? 來源:菜刀和小麥 ? 作者:菜刀和小麥 ? 2022-07-03 14:26 ? 次閱讀

什么是串級PID?

什么是串級PID?顧名思義就是兩個串起來的PID,下面是一個雙閉環(huán)的例子,外環(huán)是位置環(huán),內(nèi)環(huán)是速度環(huán),最終的執(zhí)行器是電機,電機輸出產(chǎn)生了速度和位置;具體框圖如下圖所示;

80935934-f41c-11ec-ba43-dac502259ad0.png

當然執(zhí)行器也可以是四軸飛行器,整體過程如下:

我們在外環(huán)給定相應的位置高度,外環(huán)PID的輸出就是內(nèi)環(huán)PID的期望值;

內(nèi)環(huán)PID的輸出將產(chǎn)生相應的油門大小,最終飛行器會產(chǎn)生上升的速度;

內(nèi)環(huán)反饋值為速度,控制相應的速度達到外環(huán)所需的速度期望值;

最終外環(huán)達到期望的位置;

可能這里比較抽象,好吧,下面繼續(xù)細化一下硬件的細節(jié);

PID的算法控制其實是一種無系統(tǒng)模型的控制,可以根據(jù)參數(shù)經(jīng)驗經(jīng)驗去調(diào)試系統(tǒng);

但是實際的物理對象的模型其實早就確定好了,PID的輸入量和輸出量的物理意義也會因為實際的被控對象而改變;

換句話說,PID的輸入基本上和系統(tǒng)的反饋量相關,而實際的反饋量是什么,從一開始就因為系統(tǒng)而確定下來了;

內(nèi)環(huán)和外環(huán)

如果外環(huán)是因,那內(nèi)環(huán)就是果。萬物皆有因果。

比如伺服控制器的三環(huán):

位置環(huán)

速度環(huán)

電流環(huán)

外環(huán)的變化會直接導致內(nèi)環(huán)的變化,而內(nèi)環(huán)是直接導致執(zhí)行器變化的關鍵,如果這里依然使用飛行器作為例子,對于整個四軸飛行系統(tǒng)而言;

我們通過控制電機的電流,從而決定電機的輸出扭矩;

扭矩和負載一起決定電機轉速;

螺旋槳快速旋轉從而產(chǎn)生了飛行器的升力,于是也決定了上升的速度;

最終也導致了飛行器的位置變化;

這是整個的控制過程。

如果只用單環(huán)的PID去控制系統(tǒng),可以在給定系統(tǒng)期望的情況下達到所需要的位置嗎?

答案是可以。

那這樣串級PID還有什么意義嗎?

答案是。

我們試想一下,如果單純使用單環(huán)PID去控制系統(tǒng)。

那我們看一下單環(huán)的PID系統(tǒng)框圖;

80a44212-f41c-11ec-ba43-dac502259ad0.png

我們設定了一個高度,并且希望飛行器達到預期位置高度,那么這時候系統(tǒng)的反饋值只有位置量;

那么飛行器是以什么樣的速度去飛行?以什么樣的加速度去啟動?我們就無法去有效地控制飛行器的速度,讓它去快速地到達期望的位置,具體位置曲線如下圖所示;

80bc9c40-f41c-11ec-ba43-dac502259ad0.png

其實不難理解,因為一開始的高度差很大,所以PID計算輸出的值就很大,因此初始速度會非常大,隨著飛行器越來越接近期望位置,偏差越來越小,PID輸出量逐漸減小,因此速度逐漸減小。

其實很多時候,PID只是底層,稱之為內(nèi)環(huán)PID,通過它可以先穩(wěn)定某個系統(tǒng),優(yōu)化動態(tài)特性,然后在外層嵌套其他算法,當然,外面有好幾層PID的控制系統(tǒng)是也很常見的。也就是我們介紹的串級PID的系統(tǒng),具體如下所示;

80d2b552-f41c-11ec-ba43-dac502259ad0.png

控制器的本質是出入跟輸出的函數(shù)映射關系。

其實從這個角度來看,通常PID適用于低階的線性時不變系統(tǒng),在此基礎上限制到P,I,D三個系數(shù)。

整體還需要根據(jù)具體的系統(tǒng),有所變化,有的系統(tǒng)其實只需要兩個系數(shù)(比如PD或PI),甚至有的系統(tǒng)只需要一個就行(比如P)。因此上面系統(tǒng)中,外環(huán)只需要使用P環(huán)節(jié)就足夠了,另外可以對速度曲線進行規(guī)劃。

假設這里使用了速度曲線規(guī)劃,因為可以對飛行器的速度進行控制了;

所以我們期望它盡快達到最大速度,因此從最開始的階段進行勻加速,達到最大速度后開始勻速上升,即將到達期望位置的時候,進行勻減速,最終懸停到目標位置;

那么整體的位置變化曲線如下所示;

80e216e6-f41c-11ec-ba43-dac502259ad0.png

換句說話說,就是外環(huán)PID的輸出作為內(nèi)環(huán)PID的輸入;

下面是單環(huán)PID的偽算法;

previous_error:=0//上一次偏差
integral:=0//積分和

//循環(huán)
//采樣周期為dt
loop:
//setpoint設定值
//measured_value反饋值
error:=setpoint?measured_value//計算得到偏差
integral:=integral+error×dt//計算得到積分累加和
derivative:=(error?previous_error)/dt//計算得到微分
output:=Kp×error+Ki×integral+Kd×derivative//計算得到PID輸出
previous_error:=error//保存當前偏差為下一次采樣時所需要的歷史偏差
wait(dt)//等待下一次采用
gotoloop

那么改成串級PID需要如何操作呢?

具體偽算法如下所示;

previous_error:=0//上一次偏差
integral:=0//積分和

previous_error_inner:=0//內(nèi)環(huán)PID上一次偏差
integral_inner:=0//內(nèi)環(huán)PID積分和


//循環(huán)
//采樣周期為dt
loop:

//外環(huán)計算
//setpoint外環(huán)設定值
//measured_value外環(huán)反饋值
error:=setpoint?measured_value//計算得到偏差
integral:=integral+error×dt//計算得到積分累加和
derivative:=(error?previous_error)/(n*dt)//計算得到微分
output:=Kp×error+Ki×integral+Kd×derivative//計算得到PID輸出
previous_error:=error//保存當前偏差為下一次采樣時所需要的歷史偏差

setpoint_inner=output//外環(huán)的PID輸出賦值給內(nèi)環(huán)的PID輸入

wait(n*dt)//等待下一次采樣
gotoloop

loop_inner:
//setpoint_inner內(nèi)環(huán)設定值
//measured_value_inner內(nèi)環(huán)反饋值
error_inner:=setpoint_inner?measured_value_inner//計算得到偏差
integral_inner:=integral_inner+error_inner×dt//計算得到積分累加和
derivative_inner:=(error_inner?previous_error_inner)/dt//計算得到微分
//計算得到PID輸出
output_inner:=Kp_inner×error+Ki_inner×integral_inner+Kd_inner×derivative_inner
previous_error_inner:=error_inner//保存當前偏差為下一次采樣時所需要的歷史偏差
wait(dt)//等待下一次采樣
gotoloop_inner

這里將內(nèi)環(huán)PID的相關變量加了后綴 _inner,loop是外環(huán)PID進行周期控制,loop_inner是內(nèi)環(huán)PID進行周期控制,兩者相互獨立,將外環(huán)PID的輸出賦值給內(nèi)環(huán)PID的輸入即可;

遇到干擾的時候,內(nèi)環(huán)控制器首先進行粗調(diào),外環(huán)控制器再進一步細調(diào)。

因此控制效果必然優(yōu)于單環(huán)的PID控制系統(tǒng)。

串級控制系統(tǒng)在結構上僅僅比簡單控制系統(tǒng)多了一個內(nèi)環(huán)回路,可是實踐證明,對于相同的干擾,串級控制系統(tǒng)的控制質量是簡單控制系統(tǒng)無法比擬的。

PID參數(shù)

串級PID的參數(shù)整定基本遵循從內(nèi)到外,先整定內(nèi)環(huán)PID的參數(shù),再整定外環(huán)PID的參數(shù);

根據(jù)經(jīng)驗法調(diào)試參數(shù),通常來說先整定內(nèi)環(huán)比例參數(shù)P,然后整定積分參數(shù)I,動態(tài)特性可以整理微分參數(shù)D,當然還需要對飽和的情況進行處理;

總之可以觀察輸入輸出曲線;80f115e2-f41c-11ec-ba43-dac502259ad0.gif那到底什么樣的響應曲線算好的呢?

一般來說并不存在最優(yōu)的,比如有的對速度和加速度有限制,有的系統(tǒng)一定不能出現(xiàn)超調(diào)量等等,有的系統(tǒng)則是響應越快越好。所以還是那句話,我不要你覺得,我要我覺得,合適才是最好的。

總結

本文簡單介紹了串級PID的相關概念,以四軸飛行器為例,對比了簡單PID和串級PID的優(yōu)劣;作者能力有限,難免存在錯誤和紕漏,請不吝賜教。

原文標題:到底什么是串級PID?

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜

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

    關注

    141

    文章

    8768

    瀏覽量

    143743
  • 硬件
    +關注

    關注

    11

    文章

    3112

    瀏覽量

    65841
  • 串級PID
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2062

原文標題:到底什么是串級PID?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是PID? 簡單PIDPID的優(yōu)劣對比

    什么是PID? 什么是PID?顧名思義就是兩個串起來的
    的頭像 發(fā)表于 02-26 15:21 ?1.9w次閱讀
    什么是<b class='flag-5'>串</b><b class='flag-5'>級</b><b class='flag-5'>PID</b>? 簡單<b class='flag-5'>PID</b>和<b class='flag-5'>串</b><b class='flag-5'>級</b><b class='flag-5'>PID</b>的優(yōu)劣對比

    請問minifly的飛控PID程序里面是單PID還是PID?

    minifly的飛控PID程序里面是單PID還是PID,求大神指教
    發(fā)表于 07-25 23:07

    一文詳解PID控制?

    概念控制系統(tǒng)是改善控制質量的有效方法之一,在過程控制中得到了廣泛的應用。所謂控制,就是采用兩個控制器串聯(lián)工作,外環(huán)控制器的輸出
    發(fā)表于 10-22 10:11

    實例分析:簡單PIDPID的優(yōu)劣

    和加速度有限制,有的系統(tǒng)一定不能出現(xiàn)超調(diào)量等等,有的系統(tǒng)則是響應越快越好。所以還是那句話,我不要你覺得,我要我覺得,合適才是最好的。總結本文簡單介紹了PID相關
    發(fā)表于 02-27 07:00

    什么是PID?

    什么是PID?單環(huán)PID的偽算法
    發(fā)表于 03-07 08:11

    角度單環(huán)PID/PID的原理圖

    角度單環(huán)PID的原理圖PID的原理圖
    發(fā)表于 03-07 06:42

    基于大疆RM3508電機的PID相關資料推薦

    1.前言最近參加ROBOCON,我負責編寫傳球機器人,由于傳球機構需要一個電機轉固定角度來帶動球,所以便用大疆3508電機通過PID來實現(xiàn),不得不說3508電機還是真的強,先看一下效果吧。視頻
    發(fā)表于 06-30 06:15

    PID控制的原理是什么?如何去實現(xiàn)PID的源碼呢

    PID控制的原理是什么?如何去實現(xiàn)PID的源碼呢?
    發(fā)表于 12-17 06:28

    PID控制來控制電機

    的加減速過程不考慮),該怎么控制呢?那就要將兩者結合起來了,即PID控制來控制電機。PID
    發(fā)表于 01-10 08:30

    基于PID控制技術的堆垛機控制器的設計

    本文從提高堆垛機作業(yè)系統(tǒng)的工作效率和可靠性的角度出發(fā),利用控制原理和積分分離的PID 算法,建立了堆垛機
    發(fā)表于 08-29 11:41 ?14次下載

    PID控制原理

    PID控制原理 計算機控制系統(tǒng)的典型結構如下圖所示,系統(tǒng)中有兩個PID控制器,Gc2(
    發(fā)表于 04-28 14:33 ?1.5w次閱讀
    <b class='flag-5'>串</b><b class='flag-5'>級</b><b class='flag-5'>PID</b>控制原理

    PID

    PID,有MPU6050,HMC5883,MS5611等驅動。
    發(fā)表于 12-02 10:18 ?7次下載

    到底什么是PID

    什么是PID?顧名思義就是兩個串起來的PID,下面是一個雙閉環(huán)的例子,外環(huán)是位置環(huán),內(nèi)環(huán)是速度環(huán),最終的執(zhí)行器是電機,電機輸出產(chǎn)生了速度和位置;
    發(fā)表于 03-17 19:14 ?119次下載
    到底什么是<b class='flag-5'>串</b><b class='flag-5'>級</b><b class='flag-5'>PID</b>

    控制pid參數(shù)怎么調(diào)節(jié)

    ,PID(比例-積分-微分)控制器是常用的控制算法。本文將介紹控制PID參數(shù)的調(diào)節(jié)方法。 1.
    的頭像 發(fā)表于 08-23 09:13 ?307次閱讀

    pid內(nèi)環(huán)和外環(huán)怎么確定

    在控制系統(tǒng)中,PID控制器是一種常見的控制策略,它通過將兩個PID控制器串聯(lián)起來,實現(xiàn)對系統(tǒng)的精確控制。
    的頭像 發(fā)表于 08-23 09:17 ?332次閱讀