大学生智能车电磁三轮组pid算法控制

在此之前,首先先说一下我所理解的智能车电磁循迹的基本原理

首先是

1——电磁传感器(也就是电感)采集数据

2——通过某种算法处理数据(滤波)计算误差,【左右电感差值】

3——将误差传入转向环pid——传出一个左右电机速度误差

4——左右电机速度环收到误差分别做加减运算完成差速转向

5——在这个转向过程中,电感采集到的数据在不断变化,同时误差也在不断变化,构成一个闭环循环体

ps:其中速度环控制的速度是由正交编码器采集到的。

在这个学习过程中最佳学习顺序如下

第一步,学习电感采集数据并在oled中显示

第二步,学习电感数据的滤波算法以及误差的计算方法(算法有很多种)

第三步,学习并写出编码器采集到的电机转速数据

第四步,学习并写出电机的速度环pid,左右电机分别写一个(因为要差速控制转向)

第五步,学习并写出转向环pid,传入差值传入速度环,进行速度控制

我在这个学习过程中遇到的问题有

1.在速度环中检测速度的是编码器,而控制电机转速的是pwm占空比,这两个数值大小,比例是不同的,要用那种算法来解决此问题?

解决办法:我是直接将此差值写入到PID算法中比例系数Kp当中,编码器采集到的数据比较小而所需写入的占空比较大这两者的差值用这个系数来抵消。并且在此系数的基础上来进行PID系数的微调,

2.在转向环中仍然存在这种问题,电感值与电机差速比例不同,同样利用PID系数来修正。

代码如下

//全部采用位置式PID(增量式还没学)
//代码更新时间2023.05.25
void PID_Init(void)//pid初始化
{pid_motorL.Kp=150;//Kp与Kd很大是因为误差与实际要用的值相差很大pid_motorL.Ki=0;pid_motorL.Kd=50;pid_motorR.Kp=150;pid_motorR.Ki=0;pid_motorR.Kd=50;pid_ADC.target_val=0;pid_ADC.Kp=0.7;pid_ADC.Ki=0;pid_ADC.Kd=0.5;
}
//左电机速度环
int16 PID_runL(float target_val,float now_val)
{pid_motorL.err=target_val-now_val;//计算误差值(期望转速-当前转速)pid_motorL.integral=pid_motorL.err-pid_motorL.err_last;//积分(误差的累加)pid_motorL.actual_val=  pid_motorL.Kp*pid_motorL.err+pid_motorL.Ki*pid_motorL.actual_val+pid_motorL.Kd*(pid_motorL.err-pid_motorL.err_last);pid_motorL.err_last=pid_motorL.err;return pid_motorL.actual_val;//返回电机转速
}
//右电机速度环
int16 PID_runR(float target_val,float now_val)
{pid_motorR.err=target_val-now_val;//计算误差值(期望转速-当前转速)pid_motorR.integral=pid_motorR.err-pid_motorR.err_last;//积分(误差的累加)pid_motorR.actual_val=  pid_motorR.Kp*pid_motorR.err+pid_motorR.Ki*pid_motorR.actual_val+pid_motorR.Kd*(pid_motorR.err-pid_motorR.err_last);pid_motorR.err_last=pid_motorR.err;return pid_motorR.actual_val;//返回电机转速
}
//电感值转向环
int16 PID_ADC(void)
{pid_ADC.err=Parameter_EM.ADC_E;//此误差位电感采集后的误差pid_ADC.integral=pid_ADC.err-pid_ADC.err_last;//积分(误差的累加)pid_ADC.actual_val=     pid_ADC.Kp*pid_ADC.err+pid_ADC.Ki*pid_ADC.actual_val+pid_ADC.Kd*(pid_ADC.err-pid_ADC.err_last);pid_ADC.err_last=pid_ADC.err;return pid_ADC.actual_val;//返回电机应该达到的转速差
}

如有更好解决办法欢迎在评论区指出,以上学习过程如有不足欢迎指出。

作者:一个学习单片机的小菜。

关于智能车_电磁三轮pid控制的学习过程相关推荐

  1. 智能车大赛电磁组------电感的测试

    智能车大赛电磁组------电感的测试 前言 在装车的时候发现车队里的有部分电感是坏的,然后我们就需要一个比较有效的方法来鉴定电感的好坏. 我的F车车: 工具 数字示波器,我们用的是正点原子的手持示波 ...

  2. 百度智能车竞赛丝绸之路1——智能车设计与编程实现控制

    百度智能车竞赛丝绸之路1--智能车设计与编程实现控制 百度智能车竞赛丝绸之路2--手柄控制 一.项目简介 本项目现已基于鲸鱼机器人开发套件对其整体外形进行设计,并且对应于实习内容--以"丝绸 ...

  3. 入门智能车 | 带你认识PID闭环控制 - 增量式PID实现电机速度闭环

    带你认识PID闭环控制 - 增量式PID实现电机速度闭环 闭环控制是指控制论的一个基本概念.指作为被控的输出量以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系.带有反馈信息的系统 ...

  4. 【智能车】电磁传感器

    这里写自定义目录标题 问题 分析 传输线 全波放大 浮地 方案 问题 采用逐飞的运放电路,先同相放大后倍压检波,得到的直流电平直接给RT1064核心板ADC,发现从车身两侧的电感采集到的数据有非常大的 ...

  5. 智能车单车组之平衡控制内扰分析

    目录 前言 一.内扰分析 总结 前言 紧接上一篇博客电单车平衡控制理论篇最后两个问题: 如何通过改变前轮打角获得我们想要的回复力 如何通过前轮打角产生的回复力控制车身的平衡 本文讨论如何获得我们想要的 ...

  6. 智能车竞赛技术报告 | 电磁越野组 - 哈尔滨工业大学 - 紫丁香三队

    简 介: 本文详细介绍了我们为了十六届全国大学生智能车大赛室外越野组准备的车模.车模采用Infineon公司的TC377芯片作为控制器,通过电感采集数据,并离线训练神经网络,后使用nnom部署到单片机 ...

  7. 第七届CUIT智能车竞赛(电磁循迹)

    第七届CUIT智能车竞赛 作为一名大一新生,我和几名队友一起组队参加了CUIT第七届智能车竞赛(四轮组),比赛一共花了大概一个多月的样子,再加上前期对一些东西的提前学习,也算是花了挺长时间的了,现在比 ...

  8. 智能车 PID 调试

    智能车 PID 调试 文章目录 智能车 PID 调试 学习目的 开环控制与闭环控制 开环控制 闭环控制 小结 PID 概述 简介 PID 公式: 舵机 PID 分析 算法 电机 PID 分析 算法 调 ...

  9. 模拟小信号调理电路(智能车电磁组)

    一.智能车竞赛电磁组: 官方规定:漆包线上产生"20KHz 100mA"的交变电磁方波信号. 二.传感器检测调理电路(分立元件):谐波选频电路.交流放大电路.整流滤波电路. 距离漆 ...

最新文章

  1. Virtualbox安装使用注意
  2. VS2008中Web Reference和Service Reference的区别
  3. matlab绘制y3=e (-x),MATLAB图形绘制-二维配套实验
  4. 中文乱码各个浏览器的处理
  5. CentOS 6.5源码包安装MySQL
  6. 图片跟着鼠标_刷完几百张网易云Banner,我发现了2个PPT图片处理的大招!
  7. 数据结构与算法刷题记录
  8. ES关于文档的基本操作
  9. 工业大数据分析综述:模型与算法
  10. 新发布 | Azure镜像市场正式上线
  11. 搭建apache_??4、Apache环境web搭建
  12. 如何测试MacBook的电池
  13. 论【软件工程是不是教会不怎么会写程序的人软件开发】
  14. 家具从设计到生产一步完成 有屋拆单 SU草图拆单 全屋定制拆单 衣柜橱柜拆单 办公家具设计拆单 展柜定制拆单 宠物家具定制设计拆单软件 有屋软件
  15. 全世界最全牛人的博客
  16. PTA 4-4 查询水果价格
  17. 2015美团校招部分笔试题
  18. docker安装zabbix怎样修改图标和登录页文字
  19. 国内主流短信验证码平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
  20. 再说System Verilog 与 Verilog 的关系

热门文章

  1. esp-idf4.4 esp32s3 usb_cdc和u盘使用
  2. ZeroMemory memset 等清零的用法
  3. ROS机器人开发实践源代码下载
  4. cesium 3Dtiles、地图 自动旋转、罗盘控件
  5. 基于STM32F103单片机的地震震动开关检测报警器系统
  6. 一个屌丝程序猿的人生(一百一十九)
  7. 【VMware vSAN 7.0】6.13 将双节点集群分配给共享见证主机—我们有软硬件解决方案
  8. appwidget实现和RemoteView分析
  9. 大数据告诉你,中国女人的勤奋碾压全世界!
  10. 计算机考研复试专业课常见问题----1