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

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

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

20.4-使用兩個通道進(jìn)行PID電磁循跡 電磁循跡小車 電磁循跡算法 智能車環(huán)島

dfhjgfg ? 來源:dfhjgfg ? 作者:dfhjgfg ? 2024-08-20 10:50 ? 次閱讀

20.4-使用兩個通道進(jìn)行PID電磁循跡

面我們沒有使用PID完成了循跡

循跡部分代碼如下、我們是利用計算的差比和值 根據(jù)差比和大小和正負(fù)數(shù)控電機(jī),那么我們用PID循跡也是利用這個值,非PID循跡中我們目標(biāo)是讓g_fVoltageOuter 值等于零 ,所以我們每當(dāng) g_fVoltageOuter 大于0.5或者小于-0.5時候電機(jī)就會發(fā)生反應(yīng),想做或者右邊運(yùn)動,

PID中也是我們的

目標(biāo): 讓g_fVoltageOuter變量等于零

輸入: 當(dāng)前g_fVoltageOuter 值

輸出: 兩個輪子的要控制速度 這里輸出一個差速值,兩個電機(jī)一個加 另一個電機(jī)減 這個差速值 就可以控制電機(jī)趨向 正確方向運(yùn)動。

先按照筆記講解說明,然后按照講解已經(jīng)改好的代碼,然后教一下如何改代碼。比較難理解,大家結(jié)合之前篇章多理解學(xué)習(xí)。

在這里插入圖片描述
復(fù)制一下20.3 的代碼 然后再這基礎(chǔ)修改。

定義保存PID計算結(jié)果的變量

float g_fVoltagePidOut;//電磁循跡PID計算輸出

在這里插入圖片描述
定義一個用于電磁循跡PID參數(shù)的結(jié)構(gòu)體

tPid pidVoltage;//電磁循跡PID代碼

在這里插入圖片描述
然后初始化一下PID的參數(shù),給PID參數(shù)賦值。這里說一下如何計算PID參數(shù)

首先我們先看P I D 的計算函數(shù),這個是我們在電機(jī)控制時候?qū)懙?/strong>
在這里插入圖片描述
我們做電磁循跡 ,循跡不需要關(guān)歷史累計誤差結(jié)果,所以我們只用 P D 參數(shù) I=0可以

然后我們做一個假設(shè),假設(shè)兩次程序第一次g_fVoltageOuter 值是0 、第二次g_fVoltageOuter 是0.5 并且我們知道我們的目標(biāo)值是零。

然后分析先定P -3 、D 比P 小很多定 -1 。后面我們在調(diào)整。
在這里插入圖片描述
所以我們的PID初始化先這么寫

pidVoltage.actual_val=0.0;
pidVoltage.target_val=0.00;//電磁循跡PID 的目標(biāo)值為0
pidVoltage.err=0.0;
pidVoltage.err_last=0.0;
pidVoltage.err_sum=0.0;
pidVoltage.Kp=-3.00;
pidVoltage.Ki=0;
pidVoltage.Kd=-1.00;

在這里插入圖片描述
聲明一下變量

extern tPid pidVoltage;//電磁循跡PID代碼

在這里插入圖片描述
編寫PID控制部分代碼
在這里插入圖片描述
PID輸出控制部分代碼

g_fVoltagePidOut = PID_realize(&pidVoltage,g_fVoltageOuter);//PID計算輸出偏差目標(biāo)速度 這個速度,會和基礎(chǔ)速度加減
?
g_fHW_PID_Out1 = 1 + g_fVoltagePidOut;//電機(jī)1速度=基礎(chǔ)速度+電磁PID輸出速度
g_fHW_PID_Out2 = 1 - g_fVoltagePidOut;//電機(jī)1速度=基礎(chǔ)速度-電磁PID輸出速度
if(g_fHW_PID_Out1 >5) g_fHW_PID_Out1 =5;//進(jìn)行限幅 限幅速度在0-5之間
if(g_fHW_PID_Out1 < 0) g_fHW_PID_Out1 =0;
if(g_fHW_PID_Out2 >5) g_fHW_PID_Out2 =5;//進(jìn)行限幅 限幅速度在0-5之間
if(g_fHW_PID_Out2 < 0) g_fHW_PID_Out2 =0;

motorPidSetSpeed(g_fHW_PID_Out1,g_fHW_PID_Out2);//通過計算的速度控制電機(jī)

在這里插入圖片描述
搖擺十分嚴(yán)重 我們把PD 縮小一些,然后提高基礎(chǔ)速度到1.5

PID參數(shù)調(diào)整如下

pidVoltage.actual_val=0.0;
pidVoltage.target_val=0.00;//電磁循跡PID 的目標(biāo)值為0
pidVoltage.err=0.0;
pidVoltage.err_last=0.0;
pidVoltage.err_sum=0.0;
pidVoltage.Kp=-1.0;  //電磁循跡P參數(shù)
pidVoltage.Ki=0;
pidVoltage.Kd=-0.2;//電磁D參數(shù)

如果更改了電感,電感的最大電壓值可能會變化,需要修改

這個變量

float g_fVoltageMax[4]={2.89,2.89,2.89,2.89};//用于歸一化的最大ADC電壓采集值 不同賽道要獲得更好循跡效果 需要重新采集這個值

審核編輯 黃宇

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

    關(guān)注

    15

    文章

    1133

    瀏覽量

    51814
  • 智能車
    +關(guān)注

    關(guān)注

    21

    文章

    403

    瀏覽量

    76961
  • 循跡
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    13072
收藏 人收藏

    評論

    相關(guān)推薦

    第13章-循跡功能 STM32智能小車循跡教程 PID循跡算法分析

    第13章-循跡功能 循跡小車講解 原理分析 STM32智能小車循跡教程 紅外對管使用
    的頭像 發(fā)表于 08-21 16:27 ?1487次閱讀
    第13章-<b class='flag-5'>循跡</b>功能 STM32<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'>算法</b>分析

    20.2-電磁桿在磁軌道的測試 零基礎(chǔ)入門智能車競賽 STM32電磁小車

    20.2-電磁桿在磁軌道的測試 零基礎(chǔ)入門智能車競賽 智能車競賽 電磁桿原理圖 電磁循跡
    的頭像 發(fā)表于 08-20 10:52 ?654次閱讀
    20.2-<b class='flag-5'>電磁</b>桿在磁軌道的測試 零基礎(chǔ)入門<b class='flag-5'>智能車</b>競賽 STM32<b class='flag-5'>電磁</b><b class='flag-5'>小車</b>

    20.3-使用兩個通道進(jìn)行電磁循跡 智能車競賽 電磁桿原理圖 電磁循跡小車 STM32電磁小車 電磁循跡算法

    20.3-使用兩個通道進(jìn)行電磁循跡 智能車競賽 電磁
    的頭像 發(fā)表于 08-20 10:56 ?807次閱讀
    20.3-使用<b class='flag-5'>兩個</b><b class='flag-5'>通道</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>電磁</b><b class='flag-5'>循跡</b> <b class='flag-5'>智能車</b>競賽 <b class='flag-5'>電磁</b>桿原理圖 <b class='flag-5'>電磁</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b> STM32<b class='flag-5'>電磁</b><b class='flag-5'>小車</b> <b class='flag-5'>電磁</b><b class='flag-5'>循跡</b><b class='flag-5'>算法</b>

    【TG401_EVB開發(fā)板申請】智能小車單線高速算法電磁循跡

    項(xiàng)目名稱:智能小車單線高速算法電磁循跡試用計劃:以此板為主板,配合ldc1000磁阻傳感器,運(yùn)用單磁軌
    發(fā)表于 12-28 09:53

    PID循跡模塊原理

    前言?讓小車進(jìn)行循跡最重要的是獲取相對于循跡線的位置,關(guān)于循跡模塊的原理我已經(jīng)在之前的一篇博客
    發(fā)表于 09-07 06:29

    電磁循跡智能車是由哪些模塊組成的

    我的第一輛智能車電磁循跡智能車以下是所用的模塊:舵機(jī),電機(jī),L298N驅(qū)動模塊,PID算法,O
    發(fā)表于 01-14 09:08

    智能車控制之電磁循跡介紹

    這一次,我們開始正式進(jìn)入了,車輛的控制大致可以分成一下部分:循跡,需要電磁傳感器,或者攝像頭。這兩個應(yīng)該是智能車最有可能使用的傳感器了,其他的就算是另辟蹊徑了。然后我主要使用的是
    發(fā)表于 01-19 06:23

    智能車電磁循跡相關(guān)資料下載

    飛思卡爾智能車電磁循跡(組別通用),六路運(yùn)放,適用于電磁組所有組別,電路運(yùn)行穩(wěn)定,且移植性較強(qiáng)。
    發(fā)表于 03-02 06:41

    節(jié)能組電磁循跡部分電路設(shè)計分享

    飛思卡爾智能車,節(jié)能組電磁循跡部分電路設(shè)計,僅分享比賽經(jīng)驗(yàn),開源硬件電路設(shè)計,供大家參考學(xué)習(xí)!
    發(fā)表于 03-02 06:43

    智能循跡小車程序

    智能循跡小車,基于stm32的智能循跡小車HC-SR04,步進(jìn)電機(jī)
    發(fā)表于 12-04 10:30 ?39次下載

    基于51單片機(jī)的智能循跡小車的設(shè)計

    基于51單片機(jī)的智能循跡小車的設(shè)計,智能車設(shè)計
    發(fā)表于 06-02 16:16 ?182次下載

    循跡小車的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是循跡小車的資料合集免費(fèi)下載包括了:視頻教程,循跡小車程序,L9110驅(qū)動芯片資料,循跡
    發(fā)表于 03-31 08:00 ?0次下載
    <b class='flag-5'>循跡</b><b class='flag-5'>小車</b>的資料合集免費(fèi)下載

    湖南科技大學(xué)信達(dá)杯(基于stc15的電磁循跡小車

    湖南科技大學(xué)信達(dá)杯(基于stc15的電磁循跡小車
    發(fā)表于 11-23 17:51 ?31次下載
    湖南科技大學(xué)信達(dá)杯(基于stc15的<b class='flag-5'>電磁</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>)

    基于CW32的遙控循跡小車

    本實(shí)驗(yàn)是使用CW32單片機(jī)制作一入門的遙控循跡小車。遙控采用藍(lán)牙配合手機(jī)APP進(jìn)行遙控。循跡使用一
    的頭像 發(fā)表于 11-17 17:46 ?1029次閱讀
    基于CW32的遙控<b class='flag-5'>循跡</b><b class='flag-5'>小車</b>

    20.0-電磁桿的組裝和實(shí)物介紹“這個是就是你想要的“-智能車電磁電磁循跡小車

    電子設(shè)計大賽20.0-電磁桿的組裝和實(shí)物介紹“這個是就是你想要的“-智能車電磁電磁循跡小車
    的頭像 發(fā)表于 08-20 11:07 ?437次閱讀
    20.0-<b class='flag-5'>電磁</b>桿的組裝和實(shí)物介紹“這個是就是你想要的“-<b class='flag-5'>智能車</b><b class='flag-5'>電磁</b>組 <b class='flag-5'>電磁</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>