本文设计的智能车以STC16F40K128最小系统板为系统核心控制,通过陀螺仪MPU6050读取车身角度以及通过编码器对电机转速的控制,调节S3010舵机控制转向,从而实现车在一定速度下保持直立状态,车上装载着工字电感和校正电容用来采集电磁线赛道中20khz的电磁信号,并通过OPA4377运算放大器,对信号进行放大,并使用PID控制算法控制转向舵机的角度和调节电机的转速,对车进行闭环控制,从而实现单车对方向的判断。为了提高单车的稳定性,在单车的机械结构和算法上做了许多工作。
学校:大连海事大学
队伍名称:同舟拾队
参赛队员:闫恩鹏、莫智荣、薛苏展
指导老师:牛小兵、薛征宇
第一章 引言
1. 智能车大赛简介
全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。随着21
世纪智能科学与控制,人工智能等技术的发展,智能控制与人们的生产生活联系越来越紧密,智能汽车竞赛以"
立足培养,重在参与,鼓励探索,追求卓越"
为指导思想旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识。截至2021
年智能汽车竞赛已经举办了16
届,在行业领域内具有很大影响力,大学生智能汽车竞赛极大的激发了广大学生的创新能力,为我国智能控制领域培养了大量后备人才,为我国在智能控制领域的发展做出了巨大贡献。
在第十六届大学生智能汽车竞赛中,本组使用宏晶科技公司提供的STC16
F40K128的16
位微处理器作为核心控制单元。使用MPU6050
陀螺仪来读取单车行驶过程中的倾角以及角加速度等信息以控制单车的直立运行以及实现转向的稳定,通过PID
算法构成的平衡环使单车可以直立运行。使用编码器并使用PI
算法来实现对单车的速度控制。车模上的电容电感在电磁线上方运动时会产生的电动势,在通过外接运算放大器以及单片机的数模转换来读取动生电动势以判断单车在电磁线上的运动状态,通过读取电动势的值并使用归一化,差比和,二阶滤波等算法计算单车偏离赛道的程度并反馈到由PD
算法构成的方向环来控制舵机打角以实现单车转向,在通过实验改良了车模的机械结构调整重心使单车在低速时的运行更加稳定。
综上通过平衡环,方向环,速度环实现了对单车的闭环控制,有效提高了车模运行的稳定性,快速性以及准确性。
第二章 设计方案
1. 系统总体方案设计
根据大赛的要求,智能车微处理器选用STC16F40K128最小系统板,采用PID控制算法通过陀螺仪MPU6050读取车身角度以及通过编码器对电机转速的控制,从而调节S3010舵机控制转向,通过对前轮方向的变化,从而实现车在一定速度下保持直立状态。
▲ 图2.1 系统结构图
车上装载着10mH工字电感和6.8nf校正电容用来采集电磁线赛道中20khz的电磁信号,并通过OPA4377运算放大器,将信号进行放大,最小系统板对其采集并进行归一化处理,通过使用PID控制算法控制转向舵机的转动角度和调节电机的转速,对车进行闭环控制,从而实现单车对方向的判断。在日常训练阶段,为了更好地提升单车的稳定性,采用上位机软件,对车的运行状况进行实时监控。
2. 整体效果
1. 电池置于单车底盘,以降低重心。
2. 车模前端靠近单车车头处安装轻便坚固的板子,横向放置铜柱,用以摔倒后支撑车身,防止因车摔倒所导致主板、电磁支架板受损。
3. 主板置于单车后座,并通过铜柱将驱动板置于主板之下,进一步降低重心。
4. 使用两根碳杆固定电磁支架板,防止因车模行进时产生的抖动所导致的信号波动。
▲ 图2.2 车模左视图
第三章 机械结构设计
本次智能车比赛,单车拉力组采用最新引进的K型车模。为了更好地调节其稳定性,在备赛之初,我们对K车模的行进方式、机械结构进行了深入讨论研究。在调试过程中我们发现了一些对车稳定性影响的重要因素:转向结构、传感器位置,重心结构等。
1. 车体重心调整
对于电单车而言,重心的调整是稳定行驶的基础。根据实验可以发现,重心越靠前,转向速度越慢,所以前瞻需要尽可能要轻,单车的重心整体靠后,同时还需做到左右两边重量,尽可能相等,这才不易于摔倒。车子重心尽量靠下,这样可以减少横向重力转移,以防止总体抓地力的减少,有利于转弯。
2. 前轮定位
前轮的安装一共有1 3孔、2 4孔、3 6孔,由于受限于舵机S3010大小的限制,采用了2 4孔,使转弯更加灵活。
▲ 图3.1 结构调整部分
3. 舵机的安装
在舵机方面,在充分比较了单车配套的SD-12小舵机,选择使用S3010舵机,其性能强且不易于损坏。由于前瞻装备有牛角架的缘故,舵机的转向有限,在误差范围内左右转向可实现0至18度。
▲ 图3.2 舵机输出安装
4. 编码器安装
编码器具有测定速度的功能,在智能车稳定行进过程中起着至关重要的作用。通过编码器去测量脉冲数,我们可以读出车的速度,从而将速度稳定在我们所需要的状态。
第四章 硬件设计
高效的硬件电路是智能车自动平稳行驶的关键。为了让单车更好地行驶循迹,我们对设计电路的可靠性,简洁性进行了相对应的提升。可靠性是设计电路的第一要求,也是最为关键的部分。秉着电磁兼容的理念,我们对各个电路的各个环节,进行接地滤波等。简洁性则便于连接,以及便于后期的故障排查和程序调试,同时尽量保持左右两边器件重量一致。
本次比赛中我们设计的智能车硬件分为5大板块,主板、电机驱动板、电磁支架板、运算放大器板、陀螺仪MPU6050,它们的作用分别是主导控制、电机驱动、信号采集、信号放大、角度采集。
1. 单片机系统
STC16F 系列单片机是 STC 生产的单时钟/机器周期(1T)的单片机,是宽电压、高速、高可靠、低功耗、强抗静电、较强抗干扰的新一代 16 位 8051 单片机,超级加密。
STC16F40K128 核心板,使用内部可调晶振作为时钟源,预留外部晶振接口。内置 CH340E,仅需一根 type-c 线即可下载和在线仿真。
2. 传感器的选择
(1) 10mH工字电感和6.8nf校正电容
对于一辆能自由行驶的单车而言,寻迹尤为重要。由于本次比赛条件限制,综合比较红外传感器和电感电容传感器对于循迹的优劣性之后,我们决定采用电磁的方式进行循迹。
▲ 图4.1 工字电感与校正电容
(2) 陀螺仪MPU6050
为了能让车稳定行驶,陀螺仪也是必不可少的。MPU6050为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。通过陀螺仪可以读到角速度、角度姿态等,从而可以通过程序使单车处于直立状态。
▲ 图4.2 陀螺仪
(3) 编码器
本次比赛采用了带方向的编码器,其具有体积小,重量轻,精度高,抗干扰能力强等特点,可以精准的测量电机的转速,从而使车跑得更稳定。
▲ 图4.3 编码器
3. 电路设计
(1) 主板
主板主要包括两个方面,分别为舵机驱动电路和稳压模块电路。
SPX29302
芯片最大输出电流3A
,且在高电流时具有低压降的特性,稳定高效且保证了舵机的灵敏度。同时还具有反极性电压保护。
▲ 图4.3.1 主板电源电路
稳压模块,我们采用AMS1117
电源芯片,将电源电压稳定在5V
用来给陀螺仪,单片机等供电。
(2) 驱动板
本次比赛采用div8701
配合TPH1R403NL MOS
管驱动电机,其无需升压电路,避免boost
升压电路产生的电磁干扰,其还具有体积小,性价比高等特点,同时TPH1R403NL
体积小,内阻低,可过大电流等特点,可以很好的节省空间,尤为适合电单车。
▲ 图4.3.2 驱动电路图
(3) 电磁支架板
电磁支架板可以更好的减轻前瞻的重量,使重心尽量靠单车中部,同时既美观又便捷。其上装载着10mH
工字电感和6.8nf
校正电容用来采集电磁线赛道中20khz
的电磁信号。从而达到寻迹的效果。
▲ 图4.3.3 电磁支架上的电路
(4) 运放板
为了更好的寻迹,使单车能采集到相应的信号,需要将电磁信号进行放大。OPA4377
运算模块是高性能的双路低电压轨至轨输出运算放大器。相较于传统的运放,OPA4377
具有超低噪音,失真极小,低功率等特点。
▲ 图4.3.4 电机驱动电路图
第五章 软件设计
高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的智能车系统采用四电感采集的方式对赛道进行跟踪与识别。在单车的平衡、转向和速度控制方面,我们使用 了鲁棒性很好的经典 PID 控制算法,配合使用理论计算和实际参数补偿的办法, 使单车能够稳定快速寻线。
1.平衡环控制
静止的单车属于一维倒立摆,是不稳定。为了使其稳定,务必对系统进行调整与控制。
1) 平衡原理
对于倒立摆的特性:不稳定,只要偏离平衡位置,就会有一个力(重力分力)使系统更加偏离平衡位置,这样偏差就会越来越大。
为了使其平衡,需要一个力平衡重力的分离。当车身做圆周运动时,车身需要重力的分力提供向心力,当需要的向心力大于重力分力时,产生的这个离心力便会使车身做离心运动,往预定位置回正。
2) 姿态检测
为了使车身平稳,我们需要实时检测车身姿态,并对其进行闭环控制。我们采用的传感器是MPU6050,通过dmp解算,得到姿态角与角速度,从而进行控制。
3) 平衡环PID控制
平衡环PID为位置式PID
计算公式:
Servo_angle = Balance_Kp * Servo_Bias + Balance_Ki * Servo_Integration - Balance_Kd * Gyro_y;
- Kp:提供初始回复力,使舵机在车身向左倾斜时往左打角,向右倾斜时往右打角。Kd:由于当只有Kp作用时,当车身处于平衡状态时车身具有一个未能消减的速度,故需要kd消除车身自身振荡。Ki:消除稳态误差,提供稳态时的舵机打角。
2.速度环控制
单车的速度环控制采用增量式PI控制的方法,该控制方法在单车平稳运行时和上下坡时具有良好的性能。
3.方向环控制
1)电感采集与归一化处理
为实现较好的巡线,我们采用4电感检测,其中两个水平电感用于巡线,两个垂直电感用于识别赛道元素。
电感产生的电动势经运放放大后由单片机的4个ADC通道采集。经过多次采集得到最大值与最小值,经
ADC_100=100*(ADC-ADCmin)/(ADCmax-ADCmin)将其换算到0--100的范围。
最后采用差比和的方法得到车身距离电磁线的距离。
error = -1*(ADC0_100-ADC3_100)/(ADC0_100+ADC3_100+0.00001);
2)方向环PD控制
方向环为位置式PD控制。
车身与电磁线的偏差值进行方向环的相关运算后得到随动的理想倾角,理想倾角作用于平衡环改变单车航线,从而达到巡线目的。
对于kd对于的微分项,若采用离散的一阶微分,随着采样时间的缩短,存在较大的噪声信号。为了消除噪声,我们采样了二阶线性微分,有效抑制了噪声。
黄色为二阶线性微分。
除此之外,对于单车出现的转角过大,冲出赛道问题。我们通过读取陀螺仪转向的角速度,用以抑制单车转角。提高单车稳定性。
▲ 图5.1 数据曲线
4.赛道元素处理
1)坡道
由于单车是一个不稳定系统。上坡与下坡的速度改变会导致车身不稳,故需要尽量保证单车速度的稳定。
我们将过坡分为3个过程。上坡、坡上与下坡,通过陀螺仪检测俯仰角来判断过程。
上坡加速,在坡上初步减速,下坡再次减速,使车身能够平稳过坡。
2)直角弯
由于直角弯存在一条与车身垂直的电磁线,故可以通过单车电磁板上的垂直电感识别出直角。
检测出直角后,单车经过一个固定的流程,行驶到垂直线上,并启用巡线程序。
3)十字路口
十字路口存在左右两条垂直电磁线,通过垂直电感识别。
触发识别后对单车进行稳定性处理。
5.慢车道与快车道区别
对于慢赛道,单车需要更稳定的平衡环参数,同时,由于车速较慢与抖动的加剧,过大的方向环PD参数会导致车身不稳定。我们选择将方向PD参数减小,利用陀螺仪转弯角速度来抑制车身往一边倾倒。
第六章 总结
经过了大半年智能车的制作与调试,我们学到了很多。在机械结构、重心结构上尝试了大量的方案,在电路的设计与实验上经历了各种改进,在程序上一步一步的深入探讨优化。从最初的直立到转圈,再到沿线寻迹,我们经历了许许多多。在这大半年里,我们一步一个脚印,从中学到了不少知识,总结了不少经验,尽最大努力将小车改进与完善。
在智能单车机械结构调整方面,首先考虑的是车身左右两边的重量,其次则是重心在车身的布局,力求重心靠后,分布集中,为此不断地更换结构,进行各种尝试,努力做到更好。在智能单车硬件电路设计方面,采用模块化管理,便于后期故障维修、排查,同时做好滤波、接地等工作,力求可靠简洁。软件上,运用自控原理,尝试了各种算法,深入剖析智能单车的特点,对其的认识也在不断加深。从简单的确定中值到直立行进再到循迹行进,从简单的直线到十字、直角、坡道。
在做车的半年里,曾为单车在赛场上飞奔时感到兴奋,也曾为硬件、软件上各种问题所苦恼。焊板子,换场地,重新装车,程序调试,故障分析,这些举动再平常不过。印象最为深刻的是在比赛前一天,由于我们的疏忽导致信号发生器进水,更换新的之后,单车还得重调,同时随时还有陀螺仪卡死的危险,最终我们克服困难,怀揣着紧张而又激动的心情,完成了本次比赛。在智能车的比赛中,我们收获的不仅仅是做车的经验,同时还收获了深厚的友谊。看着单车就像看着自己的孩子一样,为它的成功而喜悦,也为它的失败而懊恼。
最后感谢主委会为我们举办了一场别开生面的比赛,感谢学校对同舟学社的大力支持,以及牛小兵老师和薛征宇老师的帮助与指导。
参考文献
[1] 张昊飏, 马旭, 卓晴. 基于电磁场检测的寻线智能车设计[J]. 电子产品世界, 2009(11):54-56.
[2] 学做智能车[M]. 北京航空航天大学出版社 , 卓晴, 2007
[3] 李宏扬.跟踪微分器改进算法的应用分析[J] 吉林大学学报(信息科学版). 2021,39(01)
[4] 单片机控制PID调节的自平衡自行车[J]. 党新安,唐鹏,杨立军. 机械设计与制造. 2019(10)
[5] 自平衡自行车机器人的运动学分析[J]. 郭磊,黄用华,廖启征,魏世民. 北京邮电大学学报. 2011(06)
[6] 基于STM32和MPU6050的姿态控制系统[J]. 范浩,徐龙,赖福明,蔡文广,吕明泽,李媛. 电子元器件与信息技术. 2020(02)