IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 从零开始制作一辆小单车 -> 正文阅读

[Python知识库]从零开始制作一辆小单车

目录

前言

一、关于电单车车模

二、电单车机械结构调整

1.重心居中

2.前叉安装孔

三、硬件电路设计

?四、软件设计

1.平衡控制

2.循迹控制

经验总结


前言

鉴于已经有大佬分享了电单车制作过程:电单车制作,在这篇博客里我只做补充。


一、关于电单车车模

16届使用的K车模,质量一言难尽,价格也十分离谱,后轮减速的齿轮组啮合有问题,跟车模生产精度有关,一般需要打磨轴承安装孔,以使后轮转动顺滑无明显阻尼感且无噪声为准。

明年会使用新的带有质量块的单车车模,参看博客:带质量块的单车

二、电单车机械结构调整

1.重心居中

在车左右加入配重块使得车模左右重力平衡(不仅要考虑质量相同,也要考虑质量分布,其实就是要让重力力矩相同),可以避免左右转灵敏度不一样的情况,按照扰动来理解就是让左右转时车的重力扰动相同,这样在相同的积分I参数下,车模转弯的表现就接近一致。

2.前叉安装孔

我们使用的是1、3孔,也可使用2、4孔,个人理解:1、3孔转向更灵敏,2、4孔使车模重心更低,运行更稳定。

前轮连杆推荐使用单连杆,双连杆虽然增大了强度,但是对安装精度提出了更高的要求,实际调试发现单连杆就可以了。


三、硬件电路设计

一套稳定可靠的硬件非常重要,可以大大加快调试的进度,硬件出问题,调试要终止且等待新硬件的周期很长。所以推荐大家在前期可以直接复刻龙邱或者逐飞的硬件方案,加快调车进度,后面再继续优化设计。

我们比赛硬件电路最终采用一体板设计,外形与车模相匹配,侧挂在车模右侧,目的是平衡车模左右重力。(这点比较重要,但也不那么重要)

主要器件:电机驱动采用DRV8701P,舵机供电芯片采用TPS54821,线性稳压采用ASM1117,电磁运放芯片采用OPA4377,串口下载采用:CH340E


?

?四、软件设计

1.平衡控制

电单车平衡采用串级PID控制,外环为车身偏转角度环,内环为角速度环?,框图如下: 外环使用PD控制,内环使用PI控制。难点在参数整定上,尤其是内环参数整定基本无迹可寻。外环参数整定好后基本不用改变,内环参数要跟着机械结构和车速进行调整,主要也是改比例系数,规律:大速度小P ,小速度大P,积分系数微调,跟机械结构关联大一些。

2.循迹控制

循迹使用PI控制,将循迹PI控制器的输出量作为上文平衡控制中的期望角度就能实现循迹。电磁排布方案如下:

水平电感对直线赛道敏感,纵向电感对弯道敏感。检测原理参考博客:电磁检测原理

想要能够较好的完成循迹任务,最关键的就是对偏差函数的构造,即:通过四个电感的数据来得到实际电磁线与车模运行方向的偏差。

可采用比较经典的偏差函数形式(差比和):

Error=\frac{K_{1}*\left ( L1-R1 \right )+K_{2}*\left ( L2-R2 \right )}{K_{3}*\left ( L1+R1 \right )+K_{4}*\left ( L2+R2 \right )}

电感值从左往右:L1、L2、R2、R1

K1~K4为需要自己整定的系数。循迹环的PI参数整定不太重要,前期可以只用P控制,且固定P值,调整K1~K4即可。调试流程: 先调直线循迹,不使用纵向电感,即K2,K4固定为0,只调整K1和K3,调到寻直线不晃动,然后加入K2和K4使小单车对弯道也敏感起来。

循迹还有一个前提就是内环带宽要跟地上偏差的变化速度,一般来说,偏差变化越快,内环的PID系数就要越大。


?

经验总结

  1. 电感循迹建议直接淘宝购买配频配幅的精密电感,信噪比高,方便省事
  2. 不同的场地电磁数据不同,尤其室外和室内电磁数据差别较大,这也是我比赛翻车的主要原因。
  3. 模糊PID可以在一定程度上提高鲁棒性,但是建议在最后再加入,还是要以整定PID参数为主。
  4. 电磁数据处理可以使用MATLAB等软件来辅助设计滤波器或者拟合偏差函数等,效率高
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:42:01  更:2021-08-16 11:42:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:50:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码