right_angle?right_angle: angle ; angle = angle angle ; PWM_SetSteer((int) angle ); lasterror=error; } 另外,如果想使舵機(jī)更順滑,可以對(duì)偏差error的計(jì)算進(jìn)行處理,如將歸一" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

PID算法的代碼實(shí)現(xiàn)

麥辣雞腿堡 ? 來(lái)源:古月居 ? 作者:Carry_qing ? 2023-11-28 15:57 ? 次閱讀

PID算法的代碼實(shí)現(xiàn)

舵機(jī)控制

在對(duì)舵機(jī)的控制中,我采用的是位置式PD算法。

將左右電感的偏差值賦給error,再代入公式進(jìn)行解算,最后傳給舵機(jī)輸出子函數(shù),控制舵機(jī)正確打角。

void steer_control()  
{
    error=AD_M_Left[0]-AD_M_Right[0];
    
    direction_controlout=dirP*error+dirD*(error-lasterror);
    angle=mid_angle+direction_controlout;
    
    angle=angle >right_angle?right_angle:angle;
    angle=angle< left_angle?left_angle:angle;
    
    PWM_SetSteer((int)angle); 
    lasterror=error;
    
}

另外,如果想使舵機(jī)更順滑,可以對(duì)偏差error的計(jì)算進(jìn)行處理,如將歸一化后的值開(kāi)方處理等。

電機(jī)控制

在對(duì)電機(jī)的控制中,我采用的是增量式PID算法。

首先要設(shè)定一個(gè)目標(biāo)速度set_speed,再將當(dāng)前速度與其比較,得出的差值代入公式計(jì)算,得到最終需要輸出的電機(jī)占空比,從而控制電機(jī)轉(zhuǎn)速。

需要注意的是,電機(jī)PID控制作為閉環(huán)控制,最好將其放入PIT定時(shí)器中斷,同時(shí)在中斷中用左右兩個(gè)編碼器分別測(cè)出實(shí)時(shí)速度,這樣可以使其控制的更精確。

void PID_computer_newL(int left_speed_in)
{
    ec_left=set_speed-left_speed_in;
    
    pwm_L+=speedL_P*(ec_left)+speedL_I*(ec_left-eb_left)+speedL_D*(ec_left-2*eb_left+ea_left);
    if(pwm_L > 600)  pwm_L=600;  
    if(pwm_L< -600)  pwm_L=-600; 
    
    PWM_SetMotorL((int)pwm_L);  
    
    ea_left=eb_left;
    eb_left=ec_left;
    
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PID
    PID
    +關(guān)注

    關(guān)注

    35

    文章

    1467

    瀏覽量

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

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62228
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68083
  • 控制算法
    +關(guān)注

    關(guān)注

    4

    文章

    165

    瀏覽量

    21647
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是PID,PID算法代碼實(shí)現(xiàn)

    在直流有刷電機(jī)的基礎(chǔ)驅(qū)動(dòng)中,如果電機(jī)負(fù)載不變,我們只要設(shè)置固定的占空比(電壓),電機(jī)的速度就會(huì)穩(wěn)定在目標(biāo)范圍。
    發(fā)表于 03-23 12:32 ?1508次閱讀

    PID控制算法代碼 PID控制算法的原理

    算法的原理,然后帶大家使用FPGA來(lái)實(shí)現(xiàn)(C語(yǔ)言實(shí)現(xiàn)過(guò)程特別簡(jiǎn)單)。 二. PID算法 PID
    的頭像 發(fā)表于 07-20 09:23 ?2475次閱讀
    <b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b><b class='flag-5'>代碼</b> <b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b>的原理

    C51實(shí)現(xiàn)PID算法代碼

    C51實(shí)現(xiàn)PID算法代碼真正要用PID算法的時(shí)候,發(fā)現(xiàn)書(shū)上的
    發(fā)表于 01-10 14:27

    什么是PID控制算法?PID控制算法C語(yǔ)言是如何實(shí)現(xiàn)的?

    什么是PID控制算法?PID控制算法C語(yǔ)言是如何實(shí)現(xiàn)的?特殊情況下的控制算法該如何去調(diào)整?比例、
    發(fā)表于 06-29 09:24

    PID算法代碼實(shí)現(xiàn)

    目錄一. 緒論二. 角度環(huán)串級(jí)PID原理1. PID基本算法2. 姿態(tài)角串級(jí)PID原理三. 如何用STM32實(shí)現(xiàn)角度-角速度的串級(jí)
    發(fā)表于 08-17 06:44

    使用C語(yǔ)言進(jìn)行PID算法實(shí)現(xiàn)

    前文對(duì)PID算法離散化和增量式PID算法原理進(jìn)行來(lái)探索,之后又使用Matlab進(jìn)行了仿真實(shí)驗(yàn),對(duì)PID三個(gè)參數(shù)又有了更深入的認(rèn)識(shí),接下來(lái)我們
    發(fā)表于 09-15 09:20

    基于遺傳算法PID整定_源代碼

    基于遺傳算法PID整定_源代碼
    發(fā)表于 09-26 16:31 ?14次下載

    PID算法實(shí)現(xiàn)

    PID算法實(shí)現(xiàn)
    發(fā)表于 12-20 22:54 ?3次下載

    位置式PID算法的C語(yǔ)言代碼

    本文主要介紹位置式PID算法的C語(yǔ)言代碼以及它的寫(xiě)法,具體的一起來(lái)了解一下。
    發(fā)表于 02-26 10:17 ?1.3w次閱讀
    位置式<b class='flag-5'>PID</b><b class='flag-5'>算法</b>的C語(yǔ)言<b class='flag-5'>代碼</b>

    PID控制算法原理是什么?pid控制算法的c語(yǔ)言實(shí)現(xiàn)介紹和測(cè)試代碼概述

    最近兩天在考慮一般控制算法的C語(yǔ)言實(shí)現(xiàn)問(wèn)題,發(fā)現(xiàn)網(wǎng)絡(luò)上尚沒(méi)有一套完整的比較體系的講解。于是總結(jié)了幾天,整理一套思路分享給大家。 在工業(yè)應(yīng)用中PID 及其衍生算法是應(yīng)用最廣泛的
    發(fā)表于 08-23 08:00 ?46次下載
    <b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b>原理是什么?<b class='flag-5'>pid</b>控制<b class='flag-5'>算法</b>的c語(yǔ)言<b class='flag-5'>實(shí)現(xiàn)</b>介紹和測(cè)試<b class='flag-5'>代碼</b>概述

    使用C語(yǔ)言實(shí)現(xiàn)51單片機(jī)中的PID算法代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用使用C語(yǔ)言實(shí)現(xiàn)51單片機(jī)中的PID算法代碼免費(fèi)下載。
    發(fā)表于 09-25 17:17 ?30次下載
    使用C語(yǔ)言<b class='flag-5'>實(shí)現(xiàn)</b>51單片機(jī)中的<b class='flag-5'>PID</b><b class='flag-5'>算法</b><b class='flag-5'>代碼</b>免費(fèi)下載

    PID算法原理_調(diào)試經(jīng)驗(yàn)以及代碼總結(jié)

    PID算法原理_調(diào)試經(jīng)驗(yàn)以及代碼總結(jié)分享。
    發(fā)表于 05-25 15:59 ?16次下載

    PID算法原理、調(diào)試方法及源代碼

    PID算法原理、調(diào)試方法及源代碼
    發(fā)表于 07-06 10:25 ?13次下載

    PID算法原理、調(diào)試經(jīng)驗(yàn)以及代碼資料

    PID算法原理、調(diào)試經(jīng)驗(yàn)以及代碼資料
    發(fā)表于 11-21 10:25 ?15次下載

    PID控制算法的C語(yǔ)言實(shí)現(xiàn)

    PID算法C實(shí)現(xiàn)1、PID算法簡(jiǎn)介1.1、各個(gè)環(huán)節(jié)的作用2、位置型PID
    發(fā)表于 01-13 13:39 ?45次下載
    <b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b>的C語(yǔ)言<b class='flag-5'>實(shí)現(xiàn)</b>