这篇文章主要是基于B车模这种单电机四轮车模来写的,内容是讲两者PID之间的差异,以及两者各自的主要控制参数,并不讲它们的完整的PID程序要如何写。
写PID的时候,首先要理解电机控制与舵机控制的区别。很多人有一个误区就是把电机和舵机当成同一个系统来控制,在调车的时候也是用同样的方法来进行调车。我们首先来看两个公式:
1、err = target - measure(偏差 = 设定值 - 实际值);
2、out(控制量) = P * err + I*err的累积 +D * (err - pre_err);
在舵机中,err就是摄像头计算的中线与中线的偏差值,控制量则是舵机引脚的电压值,也就是舵机打角角度大小。
在电机中,err是电机的设定速度与实际速度的差值,而我们的控制量则是电机输入电压的大小
比如都是单纯的P(比例)控制,假设target(设定值)不变,measure(实际值)小于target的情况下,舵机的P输出会使得err逐渐减小,并随之时间的推移趋近于0,其实理论上单纯的P控制是不会达到target的,但是现实中的系统是个连续的,而我们在程序上控制是一个差分系统,舵机就会在保持上一个时间的状态直到下一个状态的输出,假设小车一开始是直线行驶,但中线在小车右侧,那么P输出会让舵机向右打角,越接近中线,舵机打角越小直到达到中心线,但我们会认为小车还是直线行驶吗?是不是越接近中线小车转弯角度越小呢?实际恰恰相反,单纯的P控制会让小车在达到中线时转弯角度最大,因为小车的转弯角度是由之前舵机打角一直积累下来的, 在这段时间内,舵机就会保持转弯的状态导致超过target,所以舵机的P控制会导致超调现象
而在电机中,情况则不同。在理想状态下,不考虑电机死区的问题,电机的转速是与电机的输入功率接近线性关系,在单纯的P控制的情况下,假设target(设定值)不变,measure(实际值)小于target的情况下,电机的P输出会导致怎样的变化呢?结果应该是一开始的err值是最大的,所以out值最大,电机转速加快,导致err值变小,out值相应变小,电机转速减慢,err值又变大,out值相应变大,电机转速加快,电机一直这两个过程中来回变化,如果在变化不大的情况下,在我们眼中看来,电机是基本没有变化的,但measure值与target值相差甚远,所以如果不是特别极端的情况下,电机的P控制是不会导致超调现象的
那在调车的过程中,我们要怎样去调节参数呢?其实在上面的内容中,我们能知道舵机的P控制能够去达到我们的设定值了,也就是说单纯的P控制理论上是可以控制小车的运动了,即P是舵机最主要的参数,我们可以单纯通过调节P来控制小车的转弯了,但单纯的P控制是不完美的,因为它会使得measure会在target上下浮动,要经过很长的时间才能达到target,这时候就引入了I值和D值了,D值比较容易理解,就是抑制误差剧烈变化,能够使得measure会比较平缓地接近target。而I值则是通过误差的累积来控制输出角度的大小。但赛道不仅仅是直道,有直角弯,也有小弯,还有S弯之类的,这些都是要通过情况分类和慢慢调参数才能得到一个最合适的值。所以一般调舵机的参数的时候一般都是先把I值和D值设为0,再通过调P值慢慢地使得小车能够比较好地转弯后,再引入I值和D值。
在调节电机的过程中,我当时对它的理解是电机的转速主要是与误差的累积是相关的,当电机没有达到target时,控制量会持续增大,直到转速等于target为止,即I是电机最主要的参数。即我们可以单纯控制I值来让电机达到我们的target,在电机控制中,P值由于与err值相关联,当measure一定时,当err逐渐变小时,P值的输出量也会变小,也就是说,P值除了一开始促进电机的转速外,其他时候都是抑制电机的转速变化。所以一般我们在调电机的参数时,是先把P值和D值设为0,然后慢慢调I值直到找到一个合适的值,再引入P值和D值。

恩智浦(飞思卡尔)智能车舵机和电机PID控制相关推荐

  1. ai电磁组属于什么组_飞思卡尔智能车电磁组分区算法介绍

    写在之前的话: 1.目前我是一名在校学生,这也是我第一次写博客,不周之处,请多谅解: 2.此算法并非原创,借鉴自山东德州学院第八届白杨队(PS:个人看法,对于一些人把别人的开源东西改头换面一下就说是自 ...

  2. 第五届“飞思卡尔”智能车竞赛分赛区赛后总结

    两天紧张的比赛结束了,第五届"飞思卡尔"智能车竞赛安徽省分赛区的全部比赛也到此结束了.在黄山,我体验了黄山风景的美丽,也体会了各院校在"飞思卡尔"项目上的强大. ...

  3. 飞思卡尔智能车—无线充电电源(节能组)

    飞思卡尔智能车-无线充电电源(节能组) 详细参赛要求请以智能车官方为准,此文章仅分享本人参赛经验,开源硬件电路设计,供大家学习! 无线充电部分设计思路: 无线充电接收线圈,超级电容充电,启动电压5V, ...

  4. 红外寻迹小车基于K128单片机的红外对管飞思卡尔智能车(5个对管)程序部分

    红外寻迹小车基于K128单片机的红外对管飞思卡尔智能车(5个对管)软件部分包括: 出库 直行模块 大,小弯道 环岛 s弯 停车 #include "headfile.h" #inc ...

  5. 飞思卡尔智能车摄像头上位机…

    原文地址:飞思卡尔智能车摄像头上位机采集程序 作者:玲声依旧美 基于飞思卡尔XS128单片机 摄像头采集测试程序     OV7620采集程序说明:摄像头数据口接PA0-PA7:行中断接PT0,场中断 ...

  6. 最小二乘法在飞思卡尔智能车路径搜索中的应用

    1.什么是最小二乘法 最小二乘法就是要使得观测点和估计点的距离的平方达到最小,我们可以使用一些已知的离散的点,拟合出一条与这些离散点最为接近的曲线,从而可以分析出这些离散点的走向趋势. 如图所示是一个 ...

  7. 飞思卡尔智能车之摄像头使用篇

    飞思卡尔智能车之摄像头使用    今天来给大家说说摄像头的使用,很显然摄像头对摄像头组的重要性是不言而喻的,因为摄像头是小车提取赛道信息最关键的传感器了,所以只有把摄像头使用好才能让你的小车快速稳定的 ...

  8. 飞思卡尔智能车—电磁循迹(节能组)

    飞思卡尔智能车-电磁循迹(节能组) 详细参赛要求请以智能车官方为准,此文章仅分享本人参赛经验,开源硬件电路设计,供大家学习! 电磁循迹部分设计思路: 电感采集电磁信号,放大,整流,滤波,AD采集 电磁 ...

  9. 回忆属于我的第五届“飞思卡尔”智能车竞赛

    飞思卡尔,一个原本陌生,而现在常常挂在嘴边的名字-- 09年高考的结束,注定了我只能来到芜湖职业技术学院这个专科,当时的心情很失落,其实无论拿哪次模拟考的成绩,我都是可以上个二本的,郁闷了-- 因为自 ...

  10. 关于智能车_电磁三轮pid控制的学习过程

    大学生智能车电磁三轮组pid算法控制 在此之前,首先先说一下我所理解的智能车电磁循迹的基本原理 首先是 1--电磁传感器(也就是电感)采集数据 2--通过某种算法处理数据(滤波)计算误差,[左右电感差 ...

最新文章

  1. 64 bit Ubuntu support 32 bit binary
  2. [2018.12.9]BZOJ2153 设计铁路
  3. JVM-09自动内存管理机制【内存分配和回收策略】
  4. @valid注解_springboot使用自定义注解对接口参数校验
  5. python中如何安装 EasyGui模块
  6. PingingLab传世经典系列《CCNA完全配置宝典》-3.4 Trunk进阶配置
  7. 【招聘(广州)】-年薪30W起-自助打印领域业内第一
  8. [vue] vue的:class和:style有几种表示方式?
  9. Spring课程 Spring入门篇 总结
  10. 超级卡特兰数(bzoj 4706: B君的多边形)
  11. 每个人都应该知道的Android Studio快捷方式
  12. Linux文件系统(四)---三大缓冲区之inode缓冲区 (内存inode映像 )
  13. a股历史30年的大盘价_上交所成立30周年!6张图读懂A股30年
  14. python 中文转Unicode编码 Unicode编码转中文
  15. 图象处理基本算法[整理]
  16. 做实验好比开车,危险一直都在,为啥出事的就是你?
  17. 新版标准日本语高级_第19课
  18. web系统多语言切换
  19. 【408】计算机统考科目知识整理
  20. 一年级计算机课画画用什么,一年级学画画入门教程

热门文章

  1. python奇数平方和_平方和
  2. 电子发票撤销 java_增值税电子发票作废如何办理?
  3. 计算机声卡和显卡驱动,电脑系统会不会影响声卡和显卡程序
  4. 中芯国际2020年第三季度收入76.38亿元,同比增长31.7%
  5. 高等数学---第八章多元函数微分学---多元函数的极值与最值
  6. 前端和后端开发哪个工资高?
  7. mysql where查询字段是json,mysql json查询某字段包含a和b:
  8. 2021年西式面点师(中级)考试题库及西式面点师(中级)模拟试题
  9. PS 快捷键大全(psshortcut)
  10. easyui合并单元格封装