【十七届恩智浦智能车】有刷平衡单车——控制篇(串级)

  • 写在前面
  • 有刷平衡单车全控制
    • 单车平衡稳定
      • 陀螺仪姿态解算
      • 增量式PID和位置式PID
      • 电机串级调试
        • ==角速度环==
        • ==角度环==
        • ==速度环==
        • 调试方法
        • 舵机环——动态零点
    • 单车行走直立
      • 行走姿态受力分析
      • 向心力环处理方式
  • 部分代码
    • 补充
  • ==写得不好仅供参考,如有意见以你为准,希望大家取得好成绩(冲无刷)==

写在前面

大二第一次参加智能车竞赛,u1s1这比赛是真滴烧币,(不排除是我老弄炸东西的可能),花了少说4个月,学到的东西不多,心态倒是好了不少,总体还算是有收获,还是遗憾占大头,现在已经想找别的东西做了,就把所学分享给大家吧!;有不少人刚接触动轮,对有刷不是很熟悉,如果按照Lq官方开源代码调不成功十有八九是电机出事了,按照以下方向调串级,可以达到不抖且中度抗干扰。希望龙邱品控能更好一点(Lq的驱动做的还不错- =),希望逐飞的方案能更早一点(狗头保命)

有刷平衡单车全控制

单车平衡稳定

陀螺仪姿态解算

  1. 首先是关于陀螺仪的选取,我们选择的是龙邱的Mpu6050,配合Lq开源的DMP进行角度融合,实测角度实时性和准确性不错。但是由于DMP解算的问题,上电以后会飘几十秒,需要扶稳等待(坑1),缺点还是Lq质量堪忧,一共坏了三个最后使用祖传原子Mpu。
  2. 尝试过使用icm20602经过滤波处理通过四元素融合解算角度,实测角速度精度高且相较MPU受噪音影响小,对角速度环拟合帮助大,缺点是四元素融合在静态会由于噪音影响积分增大,但有细微振动则不会,因此实测对单车影响不大,推荐使用该方案!

增量式PID和位置式PID

详见https://blog.csdn.net/as480133937/article/details/89508034
侵删

简单来说,增量式和位置式本质相同,对位置式来说,PID分别进行比例、积分、微分对应现在、过去、未来,而增量式的I在形式上则恰好与位置式P等同,其他两个参数同理,并且有运算量少的优点。

电机串级调试

串级框架方面,由于角速度的响应快速以及动量轮平衡所根据的动量守恒原理,将角速度环作为内环输出,而中间是角度环,外面则是速度环,浅图示一下:

角速度环

角速度环方面使用的是增量式PD,看到有人是使用位置式的,其实两种基本一样,只不过增量式计算量较小,对算力压力不大,另外在单车这种高速振动的系统中,实测增量式中加入积分环节效果一般,很容易因各种问题导致饱和,当然也有看到使用位置式PID调的很好的,这可能和陀螺仪的漂移有关,也就要大家自己来选取一款合适的陀螺仪了,这里就抛砖引玉一下。

角度环

在Lq所开源的Lqr算法当中是以角度环作为主输出,其中用一个D来处理角速度,实际上加速度才是真正要考虑的点,这也是不耐造的原因之一,(或许加一个角速度环会更好???)在调试过程中,角度环主要是用来补偿速度环带来的溢出或者延迟,因此角度环我只采用了简单的位置式P进行处理,并且调试过程中是粗调的。

速度环

速度环虽然作为最外环,我却认为是很重要的一环,因为他决定了你单车受到干扰后保持稳定的能力,采用的是位置式PID进行精调。很多人不理解速度环到底是怎么作为输入的???????很简单的例子,假设单车往左倒需要动轮逆时针转动(车屁股视角),通过编码器的极性你就可以判断出此时车身的姿态到底是往哪边倒的,此时为了让车往右的方向归,便需要不断加速来平衡,这中间就涉及到了溢出的问题,也就是车子会向右倒,这时候就需要粗调角度环来抑制这个影响。(当车身右倒,角度环大就抵消了)

调试方法

先精调角速度环,到往一个方向倒开始觉得困难了就可以调速度环,加上了速度环以后,车子能立2s左右倒下后开始调速度环,一开始建议大家三个环都只进行普通的P控制,实测效果也非常好,能立且抗干扰能力比Lqr好太多。调参过程中尽可能大的增加速度环,外界干扰姿态,观察归正情况,若有过冲则增大角度环,而角速度环更像是一个比例系数(如果是纯P),所有的修正均可通过修正速度环处理,调好以后加上D值精调。

舵机环——动态零点

调好了平衡以后就该引入舵机输入了,舵机打角以后车身姿态是显而易见的会变的,我们可以通过关闭电机后手扶单车测量中点的角度变化,通过一个简单的比例系数P,对舵机PWM输入进行处理并输出叠加到零点上。

4.27补充:有关于舵机对于姿态平衡的影响,其实是分两个方面的,首先是舵机打角后零点的改变,第二个比较容易忽视的地方是舵机打角过程中与地面的作用力,该点影响因素较多,因此直接上上位机进行满打角对角度进行观测,结果发现两个因素极性相反,但是后者很快会被抵消,但是处理不好也是调试过程中倒地的重要因素之一,以下是上位机测试

单车行走直立

行走姿态受力分析

暂时懒得写了,同样是动态零点,转哪边零点就往哪边,处理好了就可以压弯。

向心力环处理方式

暂时懒得写了,同样是简单P,别问为啥不用F=(m*v^2)/2,实测调好了能用,当然也可以尝试一下,算法总能找到更好的,调好了无差别压弯,至少1m的速度可以流畅控制转向。(前提是前面所有参数调试好蓝牙控制飞一般的感觉)

部分代码

完成以上的调试步骤,基本上完赛速度就能上0.7以上了,当然这肯定不是最完美的控制系统,只是给大家一个思路,也没必要无脑冲LQ的开源代码。(最近逐飞刚出无刷新方案,真的猛,建议大家可以尝试用该套路嵌入无刷中控制,无刷存的力比有刷大得多,主要是不容易烧,但是他的稳态转速没那么好控制叭)




补充

增量式PI中并不是不能用I,纯角速度PI效果甚至比角速度P与速度P耦合更加好,其中作出的对积分的限制决策大家可以自己决定,可以贴上几个思路供大家参考,其中思路3实测可行。

写得不好仅供参考,如有意见以你为准,希望大家取得好成绩(冲无刷)

【十七届恩智浦智能车】平衡单车——控制篇(串级)相关推荐

  1. 第十三届恩智浦智能车平衡组

    比赛刚结束,谈谈做车的体会,很幸运获得华南赛区一等奖,今年直立决赛是对抗赛,观赏性有点低,环岛是今年才有,再加上颠婆,很多人都跪在了这里,对我们第一次参赛的很有优势,过不了颠婆车要适当增重才行,还有就 ...

  2. 恩智浦智能车MOS双驱动

    "恩智浦"智能车MOS双驱动 特性: 控制信号3.3V与5V兼容 模块供电电压:5V-12V 双路PWM调制,控制电机正反转,占空比0%~100% 工作频率可达200KHz(建议频 ...

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

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

  4. 恩智浦智能车大赛2020_我校AI电磁车队荣获2020年全国大学生“恩智浦”杯智能汽车竞赛全国一等奖...

    日前,第十五届"恩智浦"全国大学生智能汽车竞赛线下全国总决赛在南京信息工程大学落幕.我校工程实训中心智能车工作室天职师大AI电磁车队在毛福新老师的指导下,精心准备,沉着应战,一路过 ...

  5. 智能车浅谈——控制规律篇

    文章目录 前言 计算机控制系统 常用控制规律 PID控制 比例(P)控制器 比例积分(PI)控制器 比例积分微分(PID)控制 位置式PID 增量式PID 数字PID控制算法的改进 PID参数整定 小 ...

  6. 恩智浦智能车核心板LPC54606PCB原理图

    恩智浦智能车核心板LPC54606PCB原理图 做了份LPC54606的核心板,用来给学弟学妹们学习焊接和编程,引脚几乎全引出,数字地模拟地之前做了隔离处理,测试后可用,压缩包含 PCB的3D展示感兴 ...

  7. 智能车竞赛线上培训:英飞凌AURIX的智能车应用--基础四轮篇

      全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一.   本竞赛以"立足培养,重在参与,鼓励探索 ...

  8. 智能车浅谈——硬件篇

    目录 初识小车 硬件系统 1.电源系统 线性电源 开关电源 2.人机交互系统 3.MCU最小系统 4.传感器系统 摄像头 电感 编码器 5.驱动系统 机械结构 17届完赛代码 智能车系列文章汇总 前言 ...

  9. 智能车浅谈——图像篇

    文章目录 前言 认识图像 基本含义 图像类型 数字图像 彩色图像 灰度图像 黑白图像 小结 图像处理 图像压缩 二值化 固定阈值法 大津法 图像降噪(腐蚀) 寻边线 总结 17届完赛代码 17届完赛代 ...

  10. 第十六届智能车竞赛 | 单车拉力组浅析

    简 介: 单车拉力组是今年新引进的一个组别,车模是全新的电动摩托结构,这种自行车原理的车模也是第一次引入大赛,对于新车模的控制,的确都还没有太丰富的经验,入门的难点也就在这里了,怎样控制车模平衡,怎样 ...

最新文章

  1. Cuda Stream流 分析
  2. Spring boot注入配置为java静态属性
  3. OpenStack 界面开发中的排序问题
  4. suse安装MySQL-python_python2.7.9安装mysql-python模块
  5. Fastboot和Recovery
  6. CSS深入理解学习笔记之overflow
  7. vector iterator not incrementable 的问题
  8. Android实现文字一个一个显示出来
  9. matlab 获取视频图像的信息
  10. u-boot启动参数命令格式
  11. 部门直推!百度大搜索招聘NLP、搜索方向算法工程师!
  12. selenium的基本使用
  13. 发现Tensorflow
  14. ZooKeeper学习专题之四:示例 实时更新server列表
  15. 使用php第三方包mpdf将网页装换成pdf文件【2】
  16. 将数据库表中的数据读出以xml的形式下载到手机端
  17. php 在线拍卖系统源码,php拍卖系统,源码
  18. 解决 jq ui 弹框 select2 input 失效问题
  19. 树莓派外挂ESP32-USB
  20. AI人工智能毕业设计课题:植物识别,植物识别系统

热门文章

  1. C#正则表达式用法总结
  2. 新势力盯上了“新能源车险”
  3. MySQL数据库基础
  4. win2019微软更新服务器,微软2019 Windows 10更新十一月版正式版推送
  5. 企业如何避免创新者的窘境
  6. 产业互联网周报:博通610亿美元收购VMware;阿里云财报13年来首次年度盈利;华为:对所有供应商提出碳减排要求...
  7. Python爬虫采集网易云音乐热评实战
  8. 01.FFmpeg下载以及安装
  9. 第一个小程序demo
  10. 国内优秀的PHP后台管理系统(CMS)整理