RM新时代网站-首页

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

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

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

第九章-PID整定方法 STM32PID驅(qū)動(dòng)編碼器 STM32PID控制電機(jī)轉(zhuǎn)速

STM32智能小車V1.5 ? 來(lái)源:STM32智能小車V1.5 ? 作者:STM32智能小車V1.5 ? 2024-08-21 16:37 ? 次閱讀

功能介紹放開頭, 使用便捷無(wú)需愁

這是全網(wǎng)最詳細(xì)、性價(jià)比最高的STM32實(shí)戰(zhàn)項(xiàng)目入門教程,通過(guò)合理的硬件設(shè)計(jì)和詳細(xì)的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過(guò)3萬(wàn)字筆記、12多個(gè)小時(shí)視頻、20多章節(jié)代碼手把手教會(huì)你如何開發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。

V3.3.0-STM32智能小車

視頻: https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click

V3:HAL庫(kù)開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。

第九章-PID整定方法

9.1-調(diào)整合適的采樣周期和PID調(diào)參方法

正如之前所說(shuō),現(xiàn)在我們PID控制函數(shù)是在主函數(shù)中循環(huán)調(diào)用,這樣的調(diào)用方式并不能保證實(shí)時(shí)性,不能保證周期得到調(diào)用

所以我們要把PID控制函數(shù)放到中斷里面定時(shí)執(zhí)行,那么如何放到中斷里面執(zhí)行,執(zhí)行的周期是多少合適那?
在這里插入圖片描述
在這里插入圖片描述

if(TimerCount %10 ==0)//每20ms一次
		{
			Motor_Set(PID_realize(&pidMotor1Speed,Motor1Speed),0);
		    TimerCount=0;
		}
	}

燒錄測(cè)試一下,是否可以改變波形和調(diào)整參數(shù)
在這里插入圖片描述
借助上位機(jī)調(diào)節(jié)PID

  1. 調(diào)節(jié)P 把I=0、D=0先給正值或負(fù)值值測(cè)試P 正負(fù)、然后根據(jù)PID函數(shù)輸入和輸出估算P 大小,然后I=0 D=0去測(cè)試,調(diào)節(jié)一個(gè)較大值
  2. 調(diào)節(jié)I 把P等于前面的值 然后測(cè)試I給較大正值和負(fù)值 測(cè)試出I正負(fù),然后I從小值調(diào)節(jié),直到?jīng)]有偏差存在
  3. 一般系統(tǒng)不使用D
    在這里插入圖片描述
    然后當(dāng)前系統(tǒng)特點(diǎn) :I 對(duì)于系統(tǒng)更重要

下面我們調(diào)節(jié)I
在這里插入圖片描述
給一個(gè)較小的i 發(fā)現(xiàn) 有一個(gè)大的超調(diào),我們就減少p 、減小一半p

下面是減少一半p 的效果
在這里插入圖片描述
這個(gè)效果還可以

整理雙電機(jī)速度控制

首先我們的需要是控制兩個(gè)電機(jī),那么這兩個(gè)電機(jī)的特點(diǎn)不同,他們的P I D 參數(shù)不同,要控制不同的目標(biāo)速度,那么他們的目標(biāo)值、實(shí)際值、偏差等都會(huì)不同,所以我們的PID函數(shù)就要能夠根據(jù)輸入?yún)?shù)控制電機(jī)

我們?cè)黾觮Pid 類型函數(shù)的定義用于控制電機(jī)
在這里插入圖片描述

tPid pid1_speed;//電機(jī)1的轉(zhuǎn)速控制
tPid pid2_speed;//電機(jī)2的轉(zhuǎn)速控制

//初始化PID參數(shù)
void PID_init()
{
	pid1_speed.actual_val=0.0;//初始化電機(jī)1轉(zhuǎn)速PID 結(jié)構(gòu)體
	pid1_speed.target_val=0.0;
	pid1_speed.err=0.0;
	pid1_speed.err_last=0.0;
	pid1_speed.err_sum=0.0;
	pid1_speed.Kp=0.0;
	pid1_speed.Ki=0.0;
	pid1_speed.Kd=0.0;
	
	pid2_speed.actual_val=0.0;//初始化電機(jī)2轉(zhuǎn)速PID 結(jié)構(gòu)體
	pid2_speed.target_val=0.0;
	pid2_speed.err=0.0;
	pid2_speed.err_last=0.0;
	pid2_speed.err_sum=0.0;
	pid2_speed.Kp=0.0;
	pid2_speed.Ki=0.0;
	pid2_speed.Kd=0.0;
}

更改一下PID函數(shù),這里我們使用結(jié)構(gòu)體作為函數(shù)地址

訪問因?yàn)槭堑刂?,訪問結(jié)構(gòu)體變量要用->

float PID_realize(tPid * pid,float actual_val)
{
	pid- >actual_val = actual_val;//傳遞真實(shí)值
	pid- >err = pid- >target_val - pid- >actual_val;//目標(biāo)值減去實(shí)際值等于誤差值
	pid- >err_sum += pid- >err;//誤差累計(jì)求和
	//使用PID控制
	pid- >actual_val = pid- >Kp*pid- >err + pid- >Ki*pid- >err_sum + pid- >Kd*(pid- >err - pid- >err_last);
	//保存上次誤差:最近一次 賦值給上次
	pid- >err_last = pid- >err;
	
	return pid- >actual_val;
}

更改主函數(shù),對(duì)PID函數(shù)的使用
在這里插入圖片描述

然后可以分別調(diào)節(jié)電機(jī)1的參數(shù)和電機(jī)二的參數(shù)

把測(cè)試好的PID 參數(shù)分別寫在PID_init里面

以上是入門篇

通過(guò)上面的學(xué)習(xí)與實(shí)操,大家對(duì):PWM、電機(jī)驅(qū)動(dòng)、PID閉環(huán)控制、串口通信等有了一定掌握,如果上面那個(gè)章節(jié)掌握不好,一定要多看兩遍視頻,多敲邊代碼,還有疑惑可以百度查找或者留言問題。

后面的內(nèi)容就是偏應(yīng)用比較簡(jiǎn)單了。

這樣咱們第九章就結(jié)束了,PID就完成了,后面的章節(jié)利用PID做小車控制。

審核編輯 黃宇

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

    關(guān)注

    45

    文章

    3638

    瀏覽量

    134419
  • PID
    PID
    +關(guān)注

    關(guān)注

    35

    文章

    1472

    瀏覽量

    85475
  • 電機(jī)轉(zhuǎn)速
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    11367
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F103C8T6實(shí)現(xiàn)直流電機(jī)速度PID控制

    前面完成了基于STM32F103C8T6+L298N+MG513P30直流電機(jī)的PWM控制和兩種方法編碼器實(shí)時(shí)速度反饋,拿到這個(gè)反饋值后我
    的頭像 發(fā)表于 06-15 16:52 ?4998次閱讀
    <b class='flag-5'>STM32</b>F103C8T6實(shí)現(xiàn)直流<b class='flag-5'>電機(jī)</b>速度<b class='flag-5'>PID</b><b class='flag-5'>控制</b>

    電機(jī)控制PID的問題

    在實(shí)際使用電機(jī)驅(qū)動(dòng)器控制電機(jī)的時(shí)候,PID
    發(fā)表于 11-17 17:45

    stm32電機(jī)驅(qū)動(dòng)編碼器讀取

    系列文章目錄第一節(jié)stm32電機(jī)驅(qū)動(dòng)編碼器讀取反饋 第二節(jié) stm32電機(jī)
    發(fā)表于 09-01 08:35

    單級(jí)PID控制編碼器的直流減速電機(jī)速度

    STM32 Cubemax(七) —— 單級(jí)PID控制編碼器的直流減速電機(jī)速度文章目錄系列文章目錄前言一、pandas是什么?二、使用步驟
    發(fā)表于 09-03 08:01

    STM32電機(jī)PID參數(shù)

    如何去實(shí)現(xiàn)STM32電機(jī)PID參數(shù)?如何去編寫STM32
    發(fā)表于 09-23 08:07

    PID控制器設(shè)計(jì)與參數(shù)方法綜述

    PID控制器設(shè)計(jì)與參數(shù)方法綜述-2005
    發(fā)表于 03-31 17:46 ?25次下載

    PID控制最通俗的解釋與PID參數(shù)的方法

    PID控制最通俗的解釋與PID參數(shù)的方法
    發(fā)表于 01-04 14:47 ?42次下載

    PID控制參數(shù)的原理和的的計(jì)算方法PID參數(shù)的方法和概述

    PID是比例、積分、微分的簡(jiǎn)稱,PID控制的難點(diǎn)不是編程,而是控制器的參數(shù)。參數(shù)
    發(fā)表于 05-31 08:40 ?45次下載
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>參數(shù)的原理和<b class='flag-5'>整</b><b class='flag-5'>定</b>的的計(jì)算<b class='flag-5'>方法</b><b class='flag-5'>整</b><b class='flag-5'>定</b><b class='flag-5'>PID</b>參數(shù)的<b class='flag-5'>方法</b>和概述

    PID控制的理論和PID控制器設(shè)計(jì)的及PID控制器參數(shù)的以及分析

    深入研究了PID控制理論,運(yùn)用了多種方法設(shè)計(jì)了PID控制器。內(nèi)容包括兩個(gè)部分,其中第一部分為前四
    發(fā)表于 12-04 08:00 ?26次下載
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b>的理論和<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>設(shè)計(jì)的及<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>參數(shù)<b class='flag-5'>整</b><b class='flag-5'>定</b>的以及分析

    PID控制中如何PID參數(shù)

    可以得到各種輸出響應(yīng)特性,也就是說(shuō),通過(guò)適當(dāng)給定PID參數(shù),大多數(shù)的控制任務(wù)都可以由PID完成。本文根據(jù)經(jīng)典PID控制理論,結(jié)合玖陽(yáng)自動(dòng)化科
    發(fā)表于 06-01 10:28 ?67次下載

    STM32】HAL庫(kù) PWM控制電機(jī)轉(zhuǎn)速編碼器讀取(超詳解)

    小伙伴對(duì)于電機(jī)驅(qū)動(dòng)編碼器不懂的話請(qǐng)看:電機(jī)驅(qū)動(dòng)講解:【平衡小車制作】(二)電機(jī)
    發(fā)表于 01-14 12:39 ?95次下載
    【<b class='flag-5'>STM32</b>】HAL庫(kù) PWM<b class='flag-5'>控制</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>轉(zhuǎn)速</b>與<b class='flag-5'>編碼器</b>讀?。ǔ斀猓? />    </a>
</div>                            <div   id=

    QT上位機(jī)控制stm32,并利用PID控制編碼電機(jī)旋轉(zhuǎn)

    由于最近在學(xué)習(xí)電機(jī)控制算法之類的東西,看到論文大多使用PID、或以PID衍生的ADRC作為電機(jī)的主流控制
    發(fā)表于 05-06 10:02 ?18次下載
    QT上位機(jī)<b class='flag-5'>控制</b><b class='flag-5'>stm32</b>,并利用<b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>編碼</b><b class='flag-5'>電機(jī)</b>旋轉(zhuǎn)

    基于stm32的半實(shí)物仿平臺(tái)開發(fā)——FreeRTOS、PID控制電機(jī)

    、傳送帶、編碼器電機(jī)、L298N驅(qū)動(dòng)模塊、蜂鳴器、OLED顯示屏、LED燈一起構(gòu)成滑塊運(yùn)動(dòng)狀態(tài)與電機(jī)速度分配的雙閉 環(huán)調(diào)速系統(tǒng)。單片機(jī)輸出占空比可變的PWM波給
    發(fā)表于 05-16 15:49 ?9次下載
    基于<b class='flag-5'>stm32</b>的半實(shí)物仿平臺(tái)開發(fā)——FreeRTOS、<b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>電機(jī)</b>

    單級(jí)PID控制編碼器的直流減速電機(jī)速度

    STM32 Cubemax(七) —— 單級(jí)PID控制編碼器的直流減速電機(jī)速度目錄 STM32
    發(fā)表于 05-16 15:51 ?9次下載
    單級(jí)<b class='flag-5'>PID</b><b class='flag-5'>控制</b>帶<b class='flag-5'>編碼器</b>的直流減速<b class='flag-5'>電機(jī)</b>速度

    第九章 數(shù)模和模數(shù)轉(zhuǎn)換

    電子發(fā)燒友網(wǎng)站提供《第九章 數(shù)模和模數(shù)轉(zhuǎn)換.ppt》資料免費(fèi)下載
    發(fā)表于 11-18 09:14 ?0次下載
    <b class='flag-5'>第九章</b> 數(shù)模和模數(shù)轉(zhuǎn)換
    RM新时代网站-首页