精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

就增量式PID的函數進行編寫

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

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

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


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

#define value 1400.0

首先定義結構體pid的相關內容,后面將根據PID里面的相關參數進行修改調整,觀察波形情況。

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

將PID結構體中的參數進行初始化設置,其中的參數是我經過調整后的參數

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;
    //可調節PID 參數。使跟蹤曲線慢慢接近階躍函數200.0 // 
    pid.kp = 0.33333;//原始值0.2
    pid.ki = 0.2111;//原始值0.1
    pid.kd = 0.1;//原始值0.3
}

接下來實現PID實現的過程函數:

float pid_realise(float speed)//實現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; 
}

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

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以內
 {
       num++;
  if(num==6)
  {
    printf("run number is %d\r\n",count);
    break;
  }
  else count++;
 }
 else count++;
   }
}

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

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

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

    關注

    35

    文章

    1471

    瀏覽量

    85286
  • 函數
    +關注

    關注

    3

    文章

    4304

    瀏覽量

    62427
  • 編寫
    +關注

    關注

    0

    文章

    29

    瀏覽量

    8433
收藏 人收藏

    評論

    相關推薦

    淺析位置PID增量PID算法

    位置PID增量PID算法通常依據控制器輸出與執行機構的對應關系,將基本數字PID算法分為位
    發表于 01-15 18:35

    教你用C語言實現位置PID增量PID

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

    位置PID增量PID的區別在哪?

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

    什么是增量PID

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

    位置PID增量PID簡介

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

    位置PID增量PID區別是什么?

    位置 PID增量 PID有什么區別。在小車調速里一般用增量
    發表于 10-26 06:54

    請問如何調節增量pid

    增量pid中的kpkikd對應位置的中的pi d 的值嗎,調節增量
    發表于 11-09 07:27

    增量PID控制算法

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

    增量pid分析及參數整定

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

    增量與位置PID

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

    增量pid參數調整公式及策略

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

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

    本文檔的主要內容詳細介紹的是使用單片機和Arduino實現增量PID位置PID算法和PID
    發表于 05-28 16:30 ?68次下載
    使用單片機和Arduino實現<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控制算法程序設計方案下載
    發表于 03-29 09:48 ?7次下載
    <b class='flag-5'>增量</b><b class='flag-5'>式</b><b class='flag-5'>PID</b>控制算法程序設計方案下載

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

    PID:智能小車入門(位置增量PID的公式今年大二,以一個新人的角度來說一下PID及其用
    發表于 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的區別

    PID(比例-積分-微分)控制器作為工業自動化領域中的核心控制算法,廣泛應用于各種需要精確控制的系統中。在PID控制器的實現中,有兩種主要的控制模式:位置PID
    的頭像 發表于 06-05 16:23 ?6107次閱讀