那曲檬骨新材料有限公司

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

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

3天內不再提示

增量式PID算法在c代碼部分的實現過程

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

stm32控制器下經常會用到對溫度控制,適度控制,轉速控制等需要自動控制相關的操作,因此在使用中需要不斷提高對自動控制 原理部分的學習,一個好的自動控制系統包含三個 主要因素:穩,快,準。穩即系統的穩定性,快即系統的快速性,準即控制的準確性。

在自動控制中比例增益,積分時間,微分時間三個主要變量。下面就這三個變量進行動態展示。

動圖

如上圖所示,假設在單位階躍響應下,比例控制幅值,kp越大值越高相關的,積分時間控制精確度,數值越大波形超調量越大,微分時間控制波形的平緩程度。

下面貼出增量式PID算法在c代碼部分的實現過程。

//實現增量式PID算法 

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

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


int main()
{
    pid_init();
    int count = 0;
    while(count<400)//進行400次 PID 運算,使初始值從0開始接近200.0   
    {
        float speed = pid_realise(200.0);//設定值設定為200.0  
        printf("%f\n",speed);//輸出每一次PID 運算后的結果  
        count++;
    }
}


void pid_init()
{
    pid.set_speed = 0.0;
    pid.actual_speed = 0.0;
    pid.error = 0.0;
    pid.error_next = 0.0;
    pid.error_last = 0.0;
    //可調節PID 參數。使跟蹤曲線慢慢接近階躍函數200.0 // 
    pid.kp = 0.2;
    pid.ki = 0.01;
    pid.kd = 0.2;
}


float pid_realise(float speed)//實現pid  
{
    pid.set_speed = speed;//設置目標速度  
    pid.error = pid.set_speed - pid.actual_speed;
    float increment_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; 
    
}

運行數據得到圖標如下 :

poYBAGKqov2ALrgkAABTRApyEyM634.png

審核編輯:湯梓紅

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

    關注

    112

    文章

    16448

    瀏覽量

    179479
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357603
  • PID
    PID
    +關注

    關注

    35

    文章

    1473

    瀏覽量

    85826
收藏 人收藏

    評論

    相關推薦

    淺析位置PID增量PID算法

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

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

    控制器”,拿控制電機來說,參考下面模型:下面引用一段網上經典的話:工業應用中PID及其衍生算法是應用最廣泛的算法之一,是當之無愧的萬能算法
    發表于 05-30 08:00

    收藏干貨 PID算法實現

    ,是當之無愧的萬能算法,如果能夠熟練掌握PID算法的設計與實現過程,對于一般的研發人員來講,應該是足夠應對一般研發問題了,而難能可貴的是,
    發表于 06-22 11:37

    STM32如何去實現增量PID算法

    盡快進入狀態。特地分享一些自己如何實現過程。首先說說增量PID的公式,這個關系到MCU算法
    發表于 09-13 06:54

    PID算法增量算法

    這里的PID是指控制類的比例-積分-微分算法,而不是進程ID號。PID算法,不管是原理上,還是代碼上都比較簡單。主要運用在電機控制、開關電源
    發表于 09-13 06:06

    如何實現增量PID

    雖然PID不是什么牛逼的東西,但是真心希望以后剛剛接觸這塊的人能盡快進入狀態。特地分享一些自己如何實現過程。首先說說增量
    發表于 09-13 08:19

    增量PID的stm32實現及其整定過程 

    源:增量PID的stm32實現,整定過程  首先說說增量
    發表于 09-13 07:35

    使用C語言進行PID算法實現

    前文對PID算法離散化和增量PID算法原理進行來探索,之后又使用Matlab進行了仿真實驗,對
    發表于 09-15 09:20

    如何去實現基于stm32的PID算法增量程序呢

    PID算法可分為哪幾類?PID算法的參數有哪些呢?如何去實現基于stm32的PID
    發表于 12-02 07:48

    增量PID控制算法

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

    位置型PIDC語言代碼實現過程詳細資料概述

    上一節中已經抽象出了位置性 PID增量PID 的數學表達式,這一節,重 點講解 C 語言代碼
    發表于 07-16 08:00 ?8次下載

    在三菱FX2NPLC上實現增量PID算法的控制

    實際系統中,PLC控制模擬量可采用PLC自帶的PID過程控制模塊,但對要求比較高的場合采用改進的PID控制算法,就必須由用戶自己編制
    的頭像 發表于 12-31 08:11 ?1.3w次閱讀
    在三菱FX2NPLC上<b class='flag-5'>實現</b>了<b class='flag-5'>增量</b><b class='flag-5'>式</b><b class='flag-5'>PID</b><b class='flag-5'>算法</b>的控制

    如何使用免疫粒子群優化算法實現增量PID控制

    基于粒子群優化算法的收斂速度快簡單易實現的特點和免疫算法的免疫記憶、免疫自我調節和多峰值收斂的特點,本文設計出免疫粒子群算法,并將其應用于PID
    發表于 11-01 15:41 ?7次下載
    如何使用免疫粒子群優化<b class='flag-5'>算法</b><b class='flag-5'>實現</b><b class='flag-5'>增量</b><b class='flag-5'>式</b>的<b class='flag-5'>PID</b>控制

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

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

    PID控制算法C語言實現

    PID算法C實現1、PID算法簡介1.1、各個環節的作用2、位置型
    發表于 01-13 13:39 ?45次下載
    <b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b>的<b class='flag-5'>C</b>語言<b class='flag-5'>實現</b>
    德州扑克大盲注| bet365金融技巧| 香港六合彩网址大全| 百家乐官网百家乐官网游戏| 皇冠百家乐官网在线游戏| 澳门百家乐规则| 大发888娱乐城网页版| 原平市| 公海百家乐官网的玩法技巧和规则| 百家乐览| 真人娱乐城送体验金18| 百家乐官网博彩通| 新利娱乐| 网上玩百家乐官网的玩法技巧和规则 | 百家乐官网几点开奖| 微信百家乐官网群资源| 威尼斯人娱乐城梧州店| 百家乐官网的路怎样看| 真人百家乐开户须知| 大发888娱乐出纳柜台| 百家乐官网娱乐城怎么样| 百家乐官网棋牌游戏源码| 百家乐官网伴侣破解版| 百家乐真人游戏娱乐平台| 兴海县| 做生意的门的方向| 大发888游戏场下载| 网络百家乐官网赌博赢钱| 赌百家乐的高手| 大发888.comwf| 百家乐官网赌场现金网平台排名| 网上百家乐骗人的吗| 做生意讲究风水| 最新娱乐城注册送彩金| 杨公24山属性| 大发888缺少 casino| 百家乐官网的奥秘| 新全讯网网站112| e世博百家乐官网攻略| 大发888体育| 七胜百家乐官网赌场娱乐网规则 |