国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

位置式PID與增量式PID

這篇具有很好參考價(jià)值的文章主要介紹了位置式PID與增量式PID。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

位置式PID與增量式PID

位置式與增量式PID

位置式PID與增量式PID的介紹和代碼實(shí)現(xiàn)

增量式pid和位置式pid

增量式pid和位置式pid相比各有什么優(yōu)缺點(diǎn)?

*PID*調(diào)參的實(shí)用方法和經(jīng)驗(yàn)有哪些?

在設(shè)計(jì)PID控制器時(shí),什么時(shí)候用增量式PID,什么時(shí)候用位置式PID

位置式PID

位置式PID與增量式PID

  • 因?yàn)橛姓`差積分 ∑e(i),一直累加,也就是當(dāng)前的輸出u(k)與過去的所有狀態(tài)都有關(guān)系,用到了誤差的累加值
  • 輸出的u(k)對(duì)應(yīng)執(zhí)行機(jī)構(gòu)的實(shí)際位置,一旦控制輸出出錯(cuò)(控制對(duì)象的當(dāng)前的狀態(tài)值出現(xiàn)問題 ),u(k)的大幅變化會(huì)引起系統(tǒng)的大幅變化
  • 位置式PID在積分項(xiàng)達(dá)到飽和時(shí),誤差仍然會(huì)在積分作用下繼續(xù)累積,一旦誤差開始反向變化,系統(tǒng)需要一定時(shí)間從飽和區(qū)退出,所以在u(k)達(dá)到最大和最小時(shí),要停止積分作用,并且要有積分限幅和輸出限幅
  • 當(dāng)輸出限幅的時(shí)候,積分累加部分也應(yīng)同時(shí)進(jìn)行限幅,以防輸出不變而積分項(xiàng)繼續(xù)累加,也即所謂的積分飽和過深
  • 在使用位置式PID時(shí),一般我們直接使用PD控制
  • 位置式 PID 適用于執(zhí)行機(jī)構(gòu)不帶積分部件的對(duì)象,如舵機(jī)和平衡小車的直立和溫控系統(tǒng)的控制
  • 位置式PID是一種非遞推式算法,可直接控制執(zhí)行機(jī)構(gòu)(如平衡小車),u(k)的值和執(zhí)行機(jī)構(gòu)的實(shí)際位置(如小車當(dāng)前角度)是一一對(duì)應(yīng)的,因此在執(zhí)行機(jī)構(gòu)不帶積分部件的對(duì)象中可以很好應(yīng)用
  • 位置式PID每次輸出均與過去的狀態(tài)有關(guān),計(jì)算時(shí)要對(duì)e(k)進(jìn)行累加,運(yùn)算工作量大

代碼示例

//pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
typedef struct PID
{ 
  float kp;
  float ki;
  float kd;
  float ek;     //當(dāng)前誤差
  float ek_1;   //上一次誤差
  float ek_sum; //誤差總和
  float limit;  //限幅
}PID;
 
static PID pid;
 
void PID_Init()
{
    pid.kp = 0.1;
    pid.ki = 0.2;
    pid.kd = 0.3;
    pid.limit = 1000;
    pid.ek = 0;
    pid.ek_1 = 0;
    pid.ek_sum = 0;
}
 
// 位置式PID控制
float PID_Postion(int Encoder,int Target)
{
    float pwm = 0;
    pid.ek = Target - Encoder; // 計(jì)算當(dāng)前誤差
    pid.ek_sum += pid.ek;      //求出偏差的積分
    pwm = pid.kp*pid.ek + pid.ki*pid.ek_sum + pid.kd*(pid.ek - pid.ek_1);   //位置式PID控制器
    pid.ek_1 = pid.ek;   //保存上一次偏差 
    if(pwm > pid.limit)
    {
      pwm =  pid.limit;
    }
    else if(pwm < -pid.limit)
    {
      pwm =  -pid.limit;
    }
    return pwm;
}

增量式PID

位置式PID與增量式PID

  • ▲u(k)對(duì)應(yīng)的是近幾次位置誤差的增量,而不是對(duì)應(yīng)與實(shí)際位置的偏差,沒有誤差累加
  • 增量式PID中不需要累加,控制增量Δu(k)的確定僅與最近3次的采樣值有關(guān),容易通過加權(quán)處理獲得比較好的控制效果,并且在系統(tǒng)發(fā)生問題時(shí),增量式不會(huì)嚴(yán)重影響系統(tǒng)的工作
  • 增量式PID誤動(dòng)作時(shí)影響小,必要時(shí)可用邏輯判斷的方法去掉出錯(cuò)數(shù)據(jù)
  • 手動(dòng)/自動(dòng)切換時(shí)沖擊小,便于實(shí)現(xiàn)無(wú)擾動(dòng)切換。當(dāng)計(jì)算機(jī)故障時(shí),仍能保持原值
  • 積分截?cái)嘈?yīng)大,有穩(wěn)態(tài)誤差
  • 溢出的影響大,有的被控對(duì)象用增量式則不太好

代碼示例

//根據(jù)增量式離散PID公式 
//pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
//e(k)代表本次偏差 
//e(k-1)代表上一次的偏差  以此類推 
//e(k-2)代表上上次的偏差
//pwm代表增量輸出
 
typedef struct PID
{ 
  float kp;
  float ki;
  float kd;
  float ek;     //當(dāng)前誤差
  float ek_1;   //上一次誤差
  float ek_2;   //上上一次誤差
  float limit;  //限幅
}PID;
 
static PID pid;
 
void PID_Init()
{
    pid.kp = 0.1;
    pid.ki = 0.2;
    pid.kd = 0.3;
    pid.limit = 1000;
    pid.ek = 0;
    pid.ek_1 = 0;
    pid.ek_2 = 0;
}
 
// 增量式PID控制
float PID_Increase(int Encoder,int Target)
{
    float pwm = 0;
    pid.ek = Target - Encoder; // 計(jì)算當(dāng)前誤差
    pid.ek_sum += pid.ek;      //求出偏差的積分
    pwm = pid.kp*(pid.ek - pid.ek_1) + pid.ki*pid.ek + pid.kd*(pid.ek - 2*pid.ek_1 + pid.ek_2);   //增量式PID控制器
    pid.ek_1 = pid.ek;   //保存上一次偏差 
    pid.ek_2 = pid.ek_1; //保存上上一次的偏差
    if(pwm > pid.limit)
    {
      pwm =  pid.limit;
    }
    else if(pwm < -pid.limit)
    {
      pwm =  -pid.limit;
    }
    return pwm;
}

聯(lián)系與區(qū)別

位置式PID與增量式PID

  • 增量式算法不需要做累加,控制量增量的確定僅與最近幾次偏差采樣值有關(guān),計(jì)算誤差對(duì)控制 量計(jì)算的影響較小。而位置式算法要用到過去偏差的累加值,容易產(chǎn)生較大的累加誤差
  • 增量式算法得出的是控制量的增量,例如在閥門控制中,只輸出閥門開度的變化部分,誤動(dòng)作 影響小,必要時(shí)還可通過邏輯判斷限制或禁止本次輸出,不會(huì)嚴(yán)重影響系統(tǒng)的工作。 而位置式的輸出直接對(duì)應(yīng)對(duì)象的輸出,因此對(duì)系統(tǒng)影響較大
  • 在進(jìn)行PID控制時(shí),位置式PID需要有積分限幅和輸出限幅,而增量式PID只需輸出限幅

推薦書籍

《自動(dòng)控制原理的故事》

《由入門到精通吃透PID》文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428850.html

到了這里,關(guān)于位置式PID與增量式PID的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 我的PID學(xué)習(xí)歷程---PID位置式和增量式

    我的PID學(xué)習(xí)歷程---PID位置式和增量式

    前一篇文章實(shí)現(xiàn)了使用TB6612驅(qū)動(dòng)電機(jī)及編碼器測(cè)速,但是在實(shí)際測(cè)速的過程中,如果我們 人為給電機(jī)一個(gè)阻力,電機(jī)的速度將會(huì)下降,編碼器接口獲取到的脈沖數(shù)也會(huì)減少 。 但是如果要使電機(jī) 保持一個(gè)恒定的速度 ,即使遇到阻力它的速度也不會(huì)下降。這個(gè)時(shí)候就需要引入

    2023年04月09日
    瀏覽(20)
  • PID控制器(位置式和增量式)

    PID控制:一種調(diào)節(jié)器控制規(guī)律為比例、積分、微分的控制。其中:P:比例(proportion)I:積分(integral)D:微分(derivative) 式子中Kp為比例系數(shù),Ti為積分時(shí)間參數(shù),Td為微分時(shí)間常數(shù)。 各參數(shù)的意義: Kp:比例系數(shù)。一般增大比例系數(shù),將加快系數(shù)的響應(yīng)。 Ti:積分時(shí)間常

    2024年02月16日
    瀏覽(23)
  • 【PID】基于Matlab實(shí)現(xiàn)增量式PID算法

    【PID】基于Matlab實(shí)現(xiàn)增量式PID算法

    ?作者簡(jiǎn)介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進(jìn),matlab項(xiàng)目合作可私信。 ??個(gè)人主頁(yè):Matlab科研工作室 ??個(gè)人信條:格物致知。 增量式PID控制較常規(guī)PID更具優(yōu)勢(shì),但有關(guān)其參數(shù)整定的方法很少,針對(duì)這種問題,介紹了增量式PID算法的原理及特點(diǎn),基于MATLAB平臺(tái)

    2024年02月14日
    瀏覽(20)
  • 博途PLC增量式PID和脈沖軸組合控制閥門開度(算法介紹)

    這篇博客我們以S7-1200PLC平臺(tái)來(lái)舉例,介紹我們的PID閉環(huán)控制器如何控制脈沖軸實(shí)現(xiàn)閥門角度控制。SMART PLC PID控制器控制伺服驅(qū)動(dòng)器實(shí)現(xiàn)關(guān)節(jié)角度控制詳細(xì)內(nèi)容請(qǐng)參考下面文章: https://rxxw-control.blog.csdn.net/article/details/129658364 https://rxxw-control.blog.csdn.net/article/details/129658364 增量

    2024年01月21日
    瀏覽(63)
  • STM32增量式pid直流電機(jī)調(diào)速(內(nèi)附源碼)

    STM32增量式pid直流電機(jī)調(diào)速(內(nèi)附源碼)

    ??????? 目錄 一. 1.硬件組成 2.模塊分析 ? ? ? ? 1.TB6612電機(jī)驅(qū)動(dòng)模塊 ????????2.直流減速電機(jī) ????????3.電源穩(wěn)壓模塊 二.接線 三.代碼思路講解(詳見源碼) 四.STM32cubmx配置 1.系統(tǒng)基礎(chǔ)配置:(重要) 2.電機(jī)旋轉(zhuǎn)方向引腳配置 3.TIM1每10ms觸發(fā)一次的定時(shí)器中斷 4.TI

    2024年02月16日
    瀏覽(28)
  • 4 OpenCV實(shí)現(xiàn)多目三維重建(多張圖片增量式生成稀疏點(diǎn)云)【附源碼】

    4 OpenCV實(shí)現(xiàn)多目三維重建(多張圖片增量式生成稀疏點(diǎn)云)【附源碼】

    本文是基于 OpenCV4.80 進(jìn)行的,關(guān)于環(huán)境的配置可能之后會(huì)單獨(dú)說(shuō),先提一嘴 vcpkg 真好用 從多張圖片逐步生成稀疏點(diǎn)云,這個(gè)過程通常包括以下步驟: 初始重建: 初始兩張圖片的選擇 十分重要 ,這是整個(gè)流程的基礎(chǔ),后續(xù)的增圖都是在這兩張圖片的基礎(chǔ)上進(jìn)行的 對(duì)于輸入圖

    2024年02月06日
    瀏覽(35)
  • STM32之增量式編碼器電機(jī)測(cè)速

    STM32之增量式編碼器電機(jī)測(cè)速

    編碼器,是一種用來(lái)測(cè)量機(jī)械旋轉(zhuǎn)或位移的傳感器。它能夠測(cè)量機(jī)械部件在旋轉(zhuǎn)或直線運(yùn)動(dòng)時(shí)的位移位置或速度等信息,并將其轉(zhuǎn)換成一系列電信號(hào)。 . 按監(jiān)測(cè)原理分類 光電編碼器 光電編碼器,是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器

    2024年02月13日
    瀏覽(23)
  • 霍爾增量式編碼器左右車輪線速度的計(jì)算

    對(duì)于霍爾式編碼器的左右輪線速度計(jì)算: 首先線速度=距離s / 時(shí)間 t 要獲得距離S ,也就是輪子在一段時(shí)間內(nèi)跑過的距離。要先知道一下兩個(gè)參數(shù): 1.輪子的半徑 r 2.輪子轉(zhuǎn)動(dòng)一圈的脈沖數(shù) cnt 輪子轉(zhuǎn)動(dòng)一圈的脈沖數(shù):如電機(jī)我們選用減速比為1:90的TT直流減速電機(jī),編碼器為

    2024年02月15日
    瀏覽(24)
  • 《LIO-SAM閱讀筆記》-為何要引入增量式里程計(jì)?

    前言: LIO-SAM在后端中同時(shí)維護(hù)著兩個(gè)里程計(jì),一個(gè)是增量式里程計(jì),一個(gè)是優(yōu)化后的里程計(jì),其中優(yōu)化后的里程計(jì)是經(jīng)過imu、回環(huán)、gps因子圖聯(lián)合優(yōu)化后的結(jié)果,是整個(gè)系統(tǒng)中最準(zhǔn)確的位姿估計(jì),那么為什么還需要維護(hù)增量式里程計(jì)呢? 以下是我的理解 ,不一定正確,如有

    2024年01月22日
    瀏覽(23)
  • 【程序】【必須】PID位置環(huán)控制,代碼+調(diào)參

    【程序】【必須】PID位置環(huán)控制,代碼+調(diào)參

    ? 前面兩篇博文已經(jīng)實(shí)現(xiàn)了電機(jī)測(cè)速和PID速度環(huán)控制,在這篇博文中,我們主要說(shuō)明位置環(huán)的代碼怎么寫以及PID參數(shù)怎么調(diào)。 ? 寫完速度環(huán)后位置環(huán)就很簡(jiǎn)單了。 ? 在串級(jí)PID中,內(nèi)環(huán)的控制量一般是外環(huán)控制量的微分。在我們這里,外環(huán)是控制量是電機(jī)轉(zhuǎn)動(dòng)的位置(也可

    2024年02月02日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包