0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

20.4-使用两个通道进行PID电磁循迹 电磁循迹小车 电磁循迹算法 智能车环岛

dfhjgfg 来源:dfhjgfg 作者:dfhjgfg 2024-08-20 10:50 次阅读

20.4-使用两个通道进行PID电磁循迹

面我们没有使用PID完成了循迹

循迹部分代码如下、我们是利用计算的差比和值 根据差比和大小和正负数控电机,那么我们用PID循迹也是利用这个值,非PID循迹中我们目标是让g_fVoltageOuter 值等于零 ,所以我们每当 g_fVoltageOuter 大于0.5或者小于-0.5时候电机就会发生反应,想做或者右边运动,

PID中也是我们的

目标: 让g_fVoltageOuter变量等于零

输入: 当前g_fVoltageOuter 值

输出: 两个轮子的要控制速度 这里输出一个差速值,两个电机一个加 另一个电机减 这个差速值 就可以控制电机趋向 正确方向运动。

先按照笔记讲解说明,然后按照讲解已经改好的代码,然后教一下如何改代码。比较难理解,大家结合之前篇章多理解学习。

在这里插入图片描述
复制一下20.3 的代码 然后再这基础修改。

定义保存PID计算结果的变量

float g_fVoltagePidOut;//电磁循迹PID计算输出

在这里插入图片描述
定义一个用于电磁循迹PID参数的结构体

tPid pidVoltage;//电磁循迹PID代码

在这里插入图片描述
然后初始化一下PID的参数,给PID参数赋值。这里说一下如何计算PID参数

首先我们先看P I D 的计算函数,这个是我们在电机控制时候写的
在这里插入图片描述
我们做电磁循迹 ,循迹不需要关历史累计误差结果,所以我们只用 P D 参数 I=0可以

然后我们做一个假设,假设两次程序第一次g_fVoltageOuter 值是0 、第二次g_fVoltageOuter 是0.5 并且我们知道我们的目标值是零。

然后分析先定P -3 、D 比P 小很多定 -1 。后面我们在调整。
在这里插入图片描述
所以我们的PID初始化先这么写

pidVoltage.actual_val=0.0;
pidVoltage.target_val=0.00;//电磁循迹PID 的目标值为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计算输出偏差目标速度 这个速度,会和基础速度加减
​
g_fHW_PID_Out1 = 1 + g_fVoltagePidOut;//电机1速度=基础速度+电磁PID输出速度
g_fHW_PID_Out2 = 1 - g_fVoltagePidOut;//电机1速度=基础速度-电磁PID输出速度
if(g_fHW_PID_Out1 >5) g_fHW_PID_Out1 =5;//进行限幅 限幅速度在0-5之间
if(g_fHW_PID_Out1 < 0) g_fHW_PID_Out1 =0;
if(g_fHW_PID_Out2 >5) g_fHW_PID_Out2 =5;//进行限幅 限幅速度在0-5之间
if(g_fHW_PID_Out2 < 0) g_fHW_PID_Out2 =0;

motorPidSetSpeed(g_fHW_PID_Out1,g_fHW_PID_Out2);//通过计算的速度控制电机

在这里插入图片描述
摇摆十分严重 我们把PD 缩小一些,然后提高基础速度到1.5

PID参数调整如下

pidVoltage.actual_val=0.0;
pidVoltage.target_val=0.00;//电磁循迹PID 的目标值为0
pidVoltage.err=0.0;
pidVoltage.err_last=0.0;
pidVoltage.err_sum=0.0;
pidVoltage.Kp=-1.0;  //电磁循迹P参数
pidVoltage.Ki=0;
pidVoltage.Kd=-0.2;//电磁D参数

如果更改了电感,电感的最大电压值可能会变化,需要修改

这个变量

float g_fVoltageMax[4]={2.89,2.89,2.89,2.89};//用于归一化的最大ADC电压采集值 不同赛道要获得更好循迹效果 需要重新采集这个值

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电磁
    +关注

    关注

    15

    文章

    1074

    浏览量

    51708
  • 智能车
    +关注

    关注

    21

    文章

    402

    浏览量

    76906
  • 循迹
    +关注

    关注

    0

    文章

    14

    浏览量

    13020
收藏 人收藏

    评论

    相关推荐

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

    第13章-循迹功能 循迹小车讲解 原理分析 STM32智能小车循迹教程 红外对管使用
    的头像 发表于 08-21 16:27 1088次阅读
    第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-电磁杆在磁轨道的测试 零基础入门智能车竞赛 STM32电磁小车

    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 智能车竞赛 电磁杆原理图 电磁循迹
    的头像 发表于 08-20 10:52 584次阅读
    20.2-<b class='flag-5'>电磁</b>杆在磁轨道的测试 零基础入门<b class='flag-5'>智能车</b>竞赛 STM32<b class='flag-5'>电磁</b><b class='flag-5'>小车</b>

    20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 STM32电磁小车 电磁循迹算法

    20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁
    的头像 发表于 08-20 10:56 648次阅读
    20.3-使用<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>杆原理图 <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开发板申请】智能小车单线高速算法电磁循迹

    项目名称:智能小车单线高速算法电磁循迹试用计划:以此板为主板,配合ldc1000磁阻传感器,运用单磁轨
    发表于 12-28 09:53

    PID循迹模块原理

    前言 让小车进行循迹最重要的是获取相对于循迹线的位置,关于循迹模块的原理我已经在之前的一篇博客
    发表于 09-07 06:29

    电磁循迹智能车是由哪些模块组成的

    我的第一辆智能车电磁循迹智能车以下是所用的模块:舵机,电机,L298N驱动模块,PID算法,O
    发表于 01-14 09:08

    智能车控制之电磁循迹介绍

    这一次,我们开始正式进入了,车辆的控制大致可以分成一下部分:循迹,需要电磁传感器,或者摄像头。这两个应该是智能车最有可能使用的传感器了,其他的就算是另辟蹊径了。然后我主要使用的是
    发表于 01-19 06:23

    智能车电磁循迹相关资料下载

    飞思卡尔智能车电磁循迹(组别通用),六路运放,适用于电磁组所有组别,电路运行稳定,且移植性较强。
    发表于 03-02 06:41

    节能组电磁循迹部分电路设计分享

    飞思卡尔智能车,节能组电磁循迹部分电路设计,仅分享比赛经验,开源硬件电路设计,供大家参考学习!
    发表于 03-02 06:43

    智能循迹小车程序

    智能循迹小车,基于stm32的智能循迹小车HC-SR04,步进电机
    发表于 12-04 10:30 39次下载

    基于51单片机的智能循迹小车的设计

    基于51单片机的智能循迹小车的设计,智能车设计
    发表于 06-02 16:16 182次下载

    循迹小车的资料合集免费下载

    本文档的主要内容详细介绍的是循迹小车的资料合集免费下载包括了:视频教程,循迹小车程序,L9110驱动芯片资料,循迹
    发表于 03-31 08:00 0次下载
    <b class='flag-5'>循迹</b><b class='flag-5'>小车</b>的资料合集免费下载

    湖南科技大学信达杯(基于stc15的电磁循迹小车

    湖南科技大学信达杯(基于stc15的电磁循迹小车
    发表于 11-23 17:51 31次下载
    湖南科技大学信达杯(基于stc15的<b class='flag-5'>电磁</b><b class='flag-5'>循迹</b><b class='flag-5'>小车</b>)

    基于CW32的遥控循迹小车

    本实验是使用CW32单片机制作一入门的遥控循迹小车。遥控采用蓝牙配合手机APP进行遥控。循迹使用一
    的头像 发表于 11-17 17:46 983次阅读
    基于CW32的遥控<b class='flag-5'>循迹</b><b class='flag-5'>小车</b>

    20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁电磁循迹小车

    电子设计大赛20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁电磁循迹小车
    的头像 发表于 08-20 11:07 382次阅读
    20.0-<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>