简 介: 本文设计的智能车以STC16F40K128最小系统板为系统核心控制,通过陀螺仪MPU6050读取车身角度以及通过编码器对电机转速的控制,调节S3010舵机控制转向,从而实现车在一定速度下保持直立状态,车上装载着工字电感和校正电容用来采集电磁线赛道中20khz的电磁信号,并通过OPA4377运算放大器,对信号进行放大,并使用PID控制算法控制转向舵机的角度和调节电机的转速,对车进行闭环控制,从而实现单车对方向的判断。为了提高单车的稳定性,在单车的机械结构和算法上做了许多工作。

关键词STC16F40K128OPA4377S3010舵机PID控制MPU6050工字电感校正电容

学校:大连海事大学     
队伍名称:同舟拾队       
参赛队员:闫恩鹏、莫智荣、薛苏展
指导老师:牛小兵、薛征宇    

第一章 引言


1. 智能车大赛简介

  全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。随着21世纪智能科学与控制,人工智能等技术的发展,智能控制与人们的生产生活联系越来越紧密,智能汽车竞赛以"立足培养,重在参与,鼓励探索,追求卓越"为指导思想旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识。截至2021年智能汽车竞赛已经举办了16届,在行业领域内具有很大影响力,大学生智能汽车竞赛极大的激发了广大学生的创新能力,为我国智能控制领域培养了大量后备人才,为我国在智能控制领域的发展做出了巨大贡献。

  在第十六届大学生智能汽车竞赛中,本组使用宏晶科技公司提供的STC16F40K128的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)


● 相关图表链接:

  • 图2.1 系统结构图
  • 图2.2 车模左视图
  • 图3.1 结构调整部分
  • 图3.2 舵机输出安装
  • 图4.1 工字电感与校正电容
  • 图4.2 陀螺仪
  • 图4.3 编码器
  • 图4.3.1 主板电源电路
  • 图4.3.2 驱动电路图
  • 图4.3.3 电磁支架上的电路
  • 图4.3.4 电机驱动电路图
  • 图5.1 数据曲线

智能车竞赛技术报告 | 单车拉力组-大连海事大学-同舟拾队相关推荐

  1. 第十六届全国大学生智能车竞赛技术报告 | 单车拉力组- 上海海事大学-骑摩托的蒙娜丽莎

    简 介: 本文设计的智能车系统以 STC16F40K128微控制器为核心控制单元,通过车体前方的电感检测赛道电磁信息,通过编码器检测智能车的实时速度,利用陀螺仪检测小车姿态,使用PID 控制算法调节电 ...

  2. 智能车竞赛技术报告 | 单车拉力组 - 沈阳航空航天大学 - 青梅绿茶队

    简 介: 本设计以第十六届全国智能车大赛为背景,车模使用大赛单车拉力组指定的 K型车模,以宏晶STC16F为主控,外加自行设计的母板.驱动板和前置运放模块,配备MPU6050陀螺仪.512线编码器.聚 ...

  3. 智能车竞赛技术报告 | 单车拉力组 - 长春理工大学- 追风零队 2021

    简 介: 本文介绍了长春理工大学单车拉力组在此次比赛中的成果.本次比赛采用北京科宇通博科技提供的K车模,该车模为两轮平衡摩托车,对选手们产生了极大的挑战.主控芯片采用STC16F40K128,软件平台 ...

  4. 智能车竞赛技术报告 | 单车拉力组 - 哈尔滨工业大学 - 紫丁香

    简 介: 本设计以第十六届全国智能车大赛为背景,采用大赛组委会统一指定的K型车模,以16位单片机STC16F为核心控制器,实现电单车的平衡并能通过指定赛道元素.以Keil为开发环境,利用陀螺仪获取车模 ...

  5. 智能车竞赛技术报告 |单车拉力组 - 大理工大学- 基于串级控制的智能循迹自形成研究

    学 校:大连理工大学  队伍名称:银龙队     参赛队员:朱炀爽     郁东辉     张婧宜     带队教师:吴振宇 李胜铭 §引 言   随着电子科技的不断发展,越来越多的自动化设备开始进入 ...

  6. 智能车竞赛技术报告 | 专科基础组 - 沈阳职业技术学院 - 秋名山菜鸟队

    简 介: 本文以第十六届全国大学生智能汽车竞赛为背景,介绍了专科基础组智能车设计方案.智能车系统采用大赛组委会提供的C 型车模,以宏晶公司的STC16F系列的微控制器 STC16F40K128作为核心 ...

  7. 智能车竞赛技术报告 | 节能信标组 - 中南民族大学 - 双子星

    学 校:中南民族大学 队伍名称:双子星    参赛队员:李双     卢星     欧阳水清   带队教师:吴嘉 蓝加平   第一章 引言   全国大学生智能汽车竞赛是以"立足培养.重在参与 ...

  8. 智能车竞赛技术报告 | 节能信标组 - 安徽工业大学 - 摸鱼大队

    学 校:安徽工业大学       队伍名称:摸鱼大队         参赛队员:孙方策 钱佳维 祝浩天带队 教师:钱牧云 刘一帆       第一章 引言   全国大学生智能汽车竞赛是一项以" ...

  9. 智能车竞赛技术报告 | 节能信标组 - 中国计量大学 - 赛博 - 8

    学校:中国计量大学    队伍名称:赛博-8       参赛队员:叶佳航 周豪 杨敬淳 带队教师:金小萍 陈东晓    第一章 引言 1.1智能车研究背景 1.1.1发展历史   近些年,一方面随着 ...

最新文章

  1. 阿里达摩院AI抗疫最新战报:已诊断3万多疑似病例CT影像,准确率96%
  2. boost::graph模块实现在无向图上使用连通分量算法
  3. Python程序开发——第八章 文件
  4. git push被拒绝_规范git项目提交并自动生成项目commit log
  5. 【牛客 - 551D】CSL 的字符串(单调栈,思维)
  6. Oracle备份如何到异机还原
  7. 技巧|BurpSuite实现监听代理流量,隐匿身份
  8. 5.Magento资源配置(Setup Resource)
  9. C语言substr函数用法,自己实现substr函数——C语言
  10. 量子力学概论_科学网—《量子力学导论》潘必才 - 中国科大出版社的博文
  11. 异速联客户端未获取到服务器信息,异速联客户端登陆服务器地址
  12. html设置ie11兼容,ie11浏览器兼容性问题设置方法
  13. 竞品分析:网易云音乐和QQ音乐,音乐类app的战场
  14. stm32F407 + FreeRTOS + FAT 文件系统移植
  15. linux百度文字识别,基于Linux平台的图片文字识别系统
  16. 如何打造一款火遍国内外的自走棋手游?我们跟《战歌竞技场》的美术和程序聊了聊
  17. SAP案例教程SD销售后台配置
  18. 阿里面试官:“你有高并发经验吗?”
  19. ITASCA PFC 2D3D DISCERETE ELEMENT MODELING
  20. 哪里有纯免费的PPT模板下载网站?

热门文章

  1. Apache用户认证、域名跳转、Apache访问日志
  2. 吃亏是福--创业[3]
  3. 《linux 内核全然剖析》 mktime.c
  4. 通知中心NSNotificationCenter的使用
  5. 博客园计划增加的功能
  6. 以后的知识点以PPT的形式展现
  7. iPhone 6c配置和5s相近 4寸屏基本确定
  8. V5SHOP网店系统V 8.0 仿京东模板
  9. 又见yx — 说说IT公司的团队头儿
  10. 在组策略中用户策略仅对特定计算机生效,如何对本地组策略设置使之不对特定用户生效?...