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

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

就增量式PID的函數(shù)進(jìn)行編寫

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-06-17 14:27 ? 次閱讀

首先,就增量式PID的函數(shù)進(jìn)行編寫:

頭文件,全局變量與宏定義如下:


#include "stdio.h"
#include "math.h"
void pid_init();//PID參數(shù)初始化
float pid_realise(float speed);//實現(xiàn)PID算法

#define value 1400.0

首先定義結(jié)構(gòu)體pid的相關(guān)內(nèi)容,后面將根據(jù)PID里面的相關(guān)參數(shù)進(jìn)行修改調(diào)整,觀察波形情況。

struct {
   float set_speed;//設(shè)定速度 
   float actual_speed;//實際速度
   float error;//偏差  
   float error_next;//上一個偏差  
   float error_last;//上上一個偏差 
   float kp,ki,kd;//定義比例,積分,微分參數(shù)  
}pid;

將PID結(jié)構(gòu)體中的參數(shù)進(jìn)行初始化設(shè)置,其中的參數(shù)是我經(jīng)過調(diào)整后的參數(shù)

void pid_init()
{
    pid.set_speed = 0;
    pid.actual_speed = 10000.0;//原始值0.0
    pid.error = 0.0;
    pid.error_next = 0.0;
    pid.error_last = 0.0;
    //可調(diào)節(jié)PID 參數(shù)。使跟蹤曲線慢慢接近階躍函數(shù)200.0 // 
    pid.kp = 0.33333;//原始值0.2
    pid.ki = 0.2111;//原始值0.1
    pid.kd = 0.1;//原始值0.3
}

接下來實現(xiàn)PID實現(xiàn)的過程函數(shù):

float pid_realise(float speed)//實現(xiàn)pid  
{   float increment_speed;//增量
    pid.set_speed = speed;//設(shè)置目標(biāo)速度  
    pid.error = pid.set_speed - pid.actual_speed;
 
     
    increment_speed = pid.kp*(pid.error-pid.error_next)+pid.ki*pid.error+\
    pid.kd*(pid.error-2*pid.error_next+pid.error_last);//增量計算公式  
    
    pid.actual_speed+= increment_speed;
    pid.error_last = pid.error_next;//下一次迭代  
    pid.error_next = pid.error;
    return pid.actual_speed; 
}

接著就是主函數(shù),主函數(shù)這里將進(jìn)行設(shè)置,邏輯如下:初始化參數(shù),進(jìn)行運(yùn)算,運(yùn)算次數(shù)設(shè)置為400次,可以提高,因為調(diào)整后的參數(shù),后面又有break可以跳出while循環(huán)因此不需要在意這里,接下來就是不斷判斷期望值與實際值誤差書否在5以內(nèi)

int main()
{ int count = 1;
 int num = 0;
 int type;
   pid_init();
   while(count<400)//進(jìn)行400次 PID 運(yùn)算可以提高,使初始值從0開始接近200.0   
   {
       float speed = pid_realise(value);//設(shè)定值設(shè)定為200.0
 type=abs(speed-value);
 printf("%f\n",speed);//
 if( type <= 5)    ///判斷每次的誤差是否在5以內(nèi)
 {
       num++;
  if(num==6)
  {
    printf("run number is %d\r\n",count);
    break;
  }
  else count++;
 }
 else count++;
   }
}

運(yùn)行函數(shù)之后得到如下圖所示的曲線,可以看到,假設(shè)單位階躍相應(yīng)的過程中期望值發(fā)生改變,假設(shè)初始值為7000,要調(diào)整到理想值按照當(dāng)前參數(shù)大約需要47次變換。

poYBAGKsIpGAdvXzAACd9Wm_4Fo256.pngpYYBAGKsIDGAU2BLAAA_s1izcYg029.png
審核編輯:湯梓紅

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

    關(guān)注

    37

    文章

    1480

    瀏覽量

    87532
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4374

    瀏覽量

    64385
  • 編寫
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8591
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    淺析位置PID增量PID算法

    位置PID增量PID算法通常依據(jù)控制器輸出與執(zhí)行機(jī)構(gòu)的對應(yīng)關(guān)系,將基本數(shù)字PID算法分為位
    發(fā)表于 01-15 18:35

    教你用C語言實現(xiàn)位置PID增量PID

    ,對那些噪聲較大的系統(tǒng)一般不用微分, 或在微分起作用之前先對輸入信號進(jìn)行濾波。ⅢPID算法代碼 PID 控制算法可以分為位置 PID
    發(fā)表于 05-30 08:00

    位置PID增量PID的區(qū)別在哪?

    什么是PIDPID控制器主要有哪些應(yīng)用?位置PID增量
    發(fā)表于 07-13 08:13

    什么是增量PID

    目錄:一、什么是增量PID二、硬件部分三、軟件部
    發(fā)表于 09-13 09:05

    位置PID增量PID簡介

    位置PID公式增量PID公式位置增量
    發(fā)表于 01-20 07:40

    位置PID增量PID區(qū)別是什么?

    位置 PID增量 PID有什么區(qū)別。在小車調(diào)速里一般用增量
    發(fā)表于 10-26 06:54

    請問如何調(diào)節(jié)增量pid?

    增量pid中的kpkikd對應(yīng)位置的中的pi d 的值嗎,調(diào)節(jié)增量
    發(fā)表于 11-09 07:27

    增量PID控制算法

    增量PID控制算法-2011,有需要的下來看看。
    發(fā)表于 04-01 14:54 ?30次下載

    增量pid分析及參數(shù)整定

    PID算法是工程控制領(lǐng)域常用的一種算法,其有著技術(shù)成熟,不需要建立數(shù)學(xué)模型,參數(shù)整定靈活,適用性強(qiáng),魯棒性強(qiáng),控制效果好等優(yōu)點,得到了廣泛的應(yīng)用,其參數(shù)整定對控制效果影響極大,針對增量PI
    發(fā)表于 11-24 16:27 ?1.6w次閱讀
    <b class='flag-5'>增量</b><b class='flag-5'>式</b><b class='flag-5'>pid</b>分析及參數(shù)整定

    增量與位置PID

    最近看了一些文獻(xiàn),發(fā)現(xiàn)其中一些文獻(xiàn)標(biāo)題寫著是用增量PID控制,但是看表達(dá)式乎仍是位置PID控制。不知是他弄錯了,還是我的理解錯了,下面根
    發(fā)表于 11-25 11:31 ?1749次閱讀

    增量pid參數(shù)調(diào)整公式及策略

    增量PID控制,數(shù)字PID控制算法的一種基本形式,是通過對控制量的增量(本次控制量和上次控制量的差值)
    的頭像 發(fā)表于 02-26 14:57 ?5.7w次閱讀

    使用單片機(jī)和Arduino實現(xiàn)增量PID位置PID算法和PID庫免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)和Arduino實現(xiàn)增量PID位置PID算法和PID
    發(fā)表于 05-28 16:30 ?69次下載
    使用單片機(jī)和Arduino實現(xiàn)<b class='flag-5'>增量</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'>PID</b>庫免費下載

    增量PID控制算法程序設(shè)計方案下載

    增量PID控制算法程序設(shè)計方案下載
    發(fā)表于 03-29 09:48 ?7次下載
    <b class='flag-5'>增量</b><b class='flag-5'>式</b><b class='flag-5'>PID</b>控制算法程序設(shè)計方案下載

    PID:智能小車入門(位置增量

    PID:智能小車入門(位置增量PID的公式今年大二,以一個新人的角度來說一下PID及其用
    發(fā)表于 01-14 11:22 ?17次下載
    <b class='flag-5'>PID</b>:智能小車入門(位置<b class='flag-5'>式</b>和<b class='flag-5'>增量</b><b class='flag-5'>式</b>)

    位置PID增量PID的區(qū)別

    PID(比例-積分-微分)控制器作為工業(yè)自動化領(lǐng)域中的核心控制算法,廣泛應(yīng)用于各種需要精確控制的系統(tǒng)中。在PID控制器的實現(xiàn)中,有兩種主要的控制模式:位置PID
    的頭像 發(fā)表于 06-05 16:23 ?9009次閱讀
    主站蜘蛛池模板: 丁香花成人另类小说 | 午夜精品福利在线观看 | 色香婷婷 | 月夜免费观看高清在线完整 | 性欧美极品另类 | 亚洲欧美国产高清va在线播放 | 在线观看永久免费 | 精品三级内地国产在线观看 | 欧美成人亚洲欧美成人 | 欧美xx高清 | 日韩中文视频 | 五月天婷亚洲 | 在线免费公开视频 | 亚洲高清国产一线久久 | 国产一区二区在线不卡 | freesexvideo性欧美2 | 欧美一级特黄aa大片视频 | 欧美在线成人午夜影视 | 天天操天天摸天天干 | 香港三级在线视频 | 国产精品福利午夜在线观看 | 不卡视频一区 | 国产综合免费视频 | 伊人网大香 | 日本成人一级片 | 男女爱爱免费高清 | 色狠狠成人综合网 | 亚洲一级特黄特黄的大片 | 美女免费视频黄 | 日本大片免费观看视频 | 国内精品久久久久久影院老狼 | 97久草 | 35qao强力打造免费上线高清 | 天天看片天天干 | 亚洲成人综合在线 | 日本黄页在线观看 | 免费一级毛片视频 | 在线jlzzjlzz免费播放 | 免费精品| 国产深夜福利在线观看网站 | 五月六月激情 |