欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

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

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

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

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


#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ù)進行修改調(diào)整,觀察波形情況。

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

將PID結(jié)構(gòu)體中的參數(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;//設置目標速度  
    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ù)這里將進行設置,邏輯如下:初始化參數(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)//進行400次 PID 運算可以提高,使初始值從0開始接近200.0   
   {
       float speed = pid_realise(value);//設定值設定為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++;
   }
}

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

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

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

    關(guān)注

    35

    文章

    1473

    瀏覽量

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

    關(guān)注

    3

    文章

    4346

    瀏覽量

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

    關(guān)注

    0

    文章

    29

    瀏覽量

    8497
收藏 人收藏

    評論

    相關(guān)推薦

    淺析位置PID增量PID算法

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

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

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

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

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

    如何實現(xiàn)增量PID

    雖然PID不是什么牛逼的東西,但是真心希望以后剛剛接觸這塊的人能盡快進入狀態(tài)。特地分享一些自己如何實現(xiàn)的過程。首先說說增量PID的公式,這個關(guān)系到MCU算法公式的書寫,實際上兩個公式
    發(fā)表于 09-13 08:19

    什么是增量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對應位置的中的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ù)學模型,參數(shù)整定靈活,適用性強,魯棒性強,控制效果好等優(yōu)點,得到了廣泛的應用,其參數(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

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

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

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

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

    本文檔的主要內(nèi)容詳細介紹的是使用單片機和Arduino實現(xiàn)增量PID位置PID算法和PID
    發(fā)表于 05-28 16:30 ?69次下載
    使用單片機和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:智能小車入門(位置增量

    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)域中的核心控制算法,廣泛應用于各種需要精確控制的系統(tǒng)中。在PID控制器的實現(xiàn)中,有兩種主要的控制模式:位置PID
    的頭像 發(fā)表于 06-05 16:23 ?7447次閱讀