资讯详情

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

简 介: 本设计以第十六届全国智能车大赛为背景,采用组委会统一指定的K型车模,16位单片机STC16F通过指定的轨道元素,实现电动自行车的平衡。以Keil为了开发环境,使用陀螺仪获取车模的角度,使用电感传感器获取轨道信息PID控制算法解决了交叉、坡道、直角等特殊轨道元素,并以适当的速度沿着轨道运行。该智能车系统具有一定的智能性和稳定性,可以为研究自行车平衡提供一些经验。

学 校:哈尔滨工业大学队伍名称:紫丁香二队参赛队员:蔡臻达???刘宗源徐 程???带队教师:张 依???陶秩欧陶秩欧陶秩欧陶秩欧

第一章


1.1 全国大学生智能车大赛介绍介绍

??为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,全国大学生智能汽车竞赛由教育部自动化专业教学指导委员会主办。

??全国大学生智能汽车竞赛是以智能汽车为研究对象的创意科技竞赛,是全国大学生的探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以"以培养为基础,注重参与,鼓励探索,追求卓越"为了指导思想,旨在促进高校素质教育,培养大学生的综合知识应用能力、基本工程实践能力和创新意识,激发大学生从事科学研究和探索的兴趣和潜力,倡导理论联系实际、务实的学习风格和团队合作的人文精神,为优秀人才的脱颖而出创造条件。

??全国大学生智能汽车竞赛由竞赛秘书处设计,规范标准硬软件技术平台,竞赛过程包括理论设计、实际生产、车辆调试、现场竞赛等环节,要求学生组成团队,协调工作,初步体验工程研发项目从设计到实现的全过程。本次竞赛融合了科学性、趣味性和观赏性,是一场以快速发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械、汽车等多学科专业的创意竞赛。比赛规则透明,评价标准客观,坚持公开、公平、公正的原则,力求健康、普及、可持续发展。

1.2 第十六届自行车拉力组规则介绍

??自行车拉力组是第十六届比赛的新组,使用了类似摩托车的两轮K型车型,需要在不使用惯量轮的情况下平衡车型。

??指定车模微控制器STC系列单片机。比赛没有轨道,只有电磁线。允许使用电感、红外光电、摄像头传感器、激光传感器等。

??赛道使用电磁线进行导引,赛道元素包括直道、弯道、坡道、十字路口。

1.3 报告内容

??本报告介绍了电路板设计、机械结构调整、传感器放置、 ??平衡控制算法和电磁跟踪算法展示了我们在备战过程中的尝试和努力。

第二章 设计和调整机械结构


??智能汽车的核心是控制策略和算法。然而,机械结构也是限制赛车速度的一个巨大瓶颈。如果赛车的程序结构很好,但机械部得不好,其速度将受到极大的限制。今年的自行车比赛属于第一届。与以往只追求快速的旧规则不同,自行车比赛要求车型在快速轨道上疾驰,在慢速轨道上稳定,这对汽车的机械结构提出了很大的要求。

??当速度较高时,模具转弯时会有明显的倾斜,坡道上会有剧烈的颠簸。此时,对汽车的机械结构有很高的要求。同时,当速度较慢时,机械性能会影响汽车本身的平衡能力,这对运行的对称性和稳定性提出了更高的要求。因此,我们在不违反规则的情况下模具进行了多方面的改造,使模具具有良好的运行性能。

2.1 整车布局

??我们组采用了官方指定的新组K车模,车模尺寸为256.5*119.26*62mm,轮胎直径67.5mm。该模型的设计采用单舵机的平衡模式,平衡能力差,更依赖于模型的对称性和质量分布。因此,增加重量来改善质量分布,使其更加均匀。驱动电机是RS-380,工作电压5.4-9V,额定工作电压DC7.2V,空转速度可达15000r/min,空载电流0.55A,最大扭矩可达91.32g.cm,最大输出功率12.6W。伺服电机为S3010舵机,6V电压时扭力可达6.5kg*cm,动作速度快,车模整体质量轻。智能车的形状大致如图所示2.1

??(1) 调整电池位置,使电池中心位于车身中心 ??(2) 将电池从原来的位置取出,放在车身下方以减少中心 ??(3) 舵机改换s3010,扭矩更大,控制更方便 ??(4) 调整前轮倾角,确保车辆在行驶中的稳定性。 ??(5) 采用牛角架和三碳杆固定电磁前瞻,减轻车辆重量,提高车辆稳定性。

▲ 图2.1 智能车实物

2.2 电池安装

??我们组使用的电池是龙邱定制的锂电池,额定电压7.4V,电量可达3000mAh,放电能力强,可轻松驱动电机旋转。同时,该电池具有重量小、体积小的特点K就模型而言,它可以有效地减轻模型的重量。模型的原始电池是将电池放置在模型中心,导致模型重心高,不利于模型的平衡。因此,通过合理选择电池位置,将电池放置在模型底部,从而降低整个汽车的重心,最终更加稳定和轻。侧视图如图所示2.2所示。

▲ 图2.2 电池安装示意图

2.3 转向舵机的选择和安装

??K允许使用的电机有SD-12和S3010两种舵机,原车型使用的舵机是SD-12舵机,这两种舵机各具特点:SD-舵机体积小,重量轻,安装方便,但易损坏,使用寿命短;S3010舵机体积大,重量相对较重,需要额外的固定装置,拆卸复杂,但使用寿命长,扭矩大,更有利于模具控制。我们组根据自行车拉力赛的需要,考虑到控制性能,采用了S3010舵机追求更好的稳定性和控制车模平衡的能力。

??在舵机的安装中,车模对称尤为重要。舵机安装时,应保证左右对称,以确保舵机左右转向时力臂相等,并在最大范围内提高舵机的响应速度。根据理论分析,功率等于速度和扭矩的乘积。增加转向速度必然会降低输出扭矩。扭矩太小会导致迟钝。因此,在安装过程中,必须考虑转向机构的响应速度与舵机扭矩的关系,以获得最佳的转向效果。实验结束后,我们的舵机安装如图2所示.3所示。

▲ 图2.3 舵机安装示意图

font face="黑体" color="#7a37ab">2.4 前轮倾角调节

  K车模作为单车车模,对前轮的倾角提供了多种选择。这些倾角的不同会对平衡带来不同的影响。转向总成对于单车的自稳定性至关重要。如果单车不能转向(例如,车把被卡住),则无法抵抗倾斜,因此会倾倒。对于这一点,转向轴倾角(即前轮倾角)可以控制轨迹量,对自行车的自稳定性起着重要的作用。转向轴倾角为图2.4中的st所示。

▲ 图2.4 转向轴倾角示意图

  经过理论分析和实际的调试,我们发现转向轴倾角只能在合理的角度范围内才能使车模稳定。而车模在合理倾角时,倾角越小,越容易平衡但对速度有一定限制,倾角越大,越容易转向易于提速。本着追求更快的原则,我们将车模前轮倾角调到所能达到的最大值,具体倾角如图2.5所示。

▲ 图2.5 前轮倾角示意图

2.5 电磁前瞻安装及位置

  单车拉力组作为室外电磁组别,车模的电磁前瞻基本有两种安装方式:第一种是单杆装法,即使用一个碳杆固定在车模前端;第二种是双杆装法,即使用两个碳杆固定在车模后端。两种方式相比,第一种方案可以有效减轻车的重量,且固定杆短会使车模摇晃幅度减少,但是下坡时仍存在颠簸;第二种方案可以防止因牛角架而引起的卡舵机现象,在慢速时稳定性较好,但是过长的碳杆导致车模整体变重,转向困难,且坡道更加颠簸。因此,结合前两种方案,我们制定出来三杆固定的方式,在方案一的基础上再加如两个固定杆,使车模重量未有明显变化的同时,尽可能的减少杆上下摇晃的可能,使速度得到保证的同时,又增加了车的稳定性。

  同时,因为单片机的处理能力和自身平衡算法的影响,车模的转向响应在快速时明显捉襟见肘,因此,我们采用加长前瞻的处理方式,使电磁信号能够更早被接收从而提高反应速度。具体安装及位置如下图2.6。

▲ 图2.6 电磁前瞻示意图

2.6 车模主要技术参数

  智能车主要技术参数包括物理尺寸、电路指标等,具体参数见表 2.1。

▲ 图2.6.1 表21 智能车主要技术参数

 

第三章 件电路设计


  硬件是基础,只有一个良好、稳定的硬件环境才能保证车能平稳快速的行驶。智能车电路部分主要由六个部分组成:单片机模块、电源模块、驱动模块、电磁模块、传感器模块和其余调试模块。我们在整个系统设计过程中严格按照规范进行。本着可靠、高效的原则,在满足各个要求的情况下,尽量使设计的电路简单,PCB的效果简洁出众。

3.1 单片机模块

  单片机最小系统是智能车系统的核心控制部件。我们采用了STC16F芯片。原理图如图3.1所示:

▲ 图3.1 单片机系统原理图

3.2 电源模块

  电源模块为系统其他各个模块提供所需要的电源。电源模块可以说是智能车的命脉,电源模块的可靠性决定了车模的其他部分能否正常发挥作用。电源的不稳定将导致单片机复位、传感器不能正常工作等严重问题,因此稳定优秀的电源模块对车模尤为重要。

3.2.1 电压需求

  电源设计中主要考虑到需要的电压和电流,并通过LED灯显示电池电压,便于直观发现供电是否正常。我们需要的电源要求包括3.3V,5V,-3.3V,6V等。

3.2.2 供电实现

(1) 电池采用锂电池供电,额定电压7.4V,满电电压8.4V,可以直接给电机供电。 (2) 使用稳压芯片TPS 76850 输出电压5V,用于陀螺仪、串口下载等供电。原理图如图3.2.2.1所示

▲ 图3.2 DCDC电路 7.2V-5V原理图

(3) 使用稳压芯片TPS 76833 输出电压3.3V,用于OLED、单片机、编码器、蓝牙模块运放板等供电。

▲ 图3.3 转换电压 5V-3.3V原理图

(4) 使用开关稳压芯片MIC29302输出6V电压给舵机供电,用电池直接供电容易烧毁舵机,29302具有防止电流反灌功能有效提高舵机使用寿命。

▲ 图3.4 转换电压 7.2V-6V原理图

(5) 使用稳压芯片LM2663来获得-3.3V电压。运放工作需要正负3.3V供电。

▲ 图3.5 转压电路3.3V转-3.3V原理图

3.3 驱动模块

  驱动电路为智能车驱动电机提供控制和驱动,这部分电路的设计要求以能够通过大电流为主要指标。驱动电路的基本原理是 H 桥驱动原理。经过对各种驱动芯片详细对比,我们最后选用芯片为BTN7971。BTN7971是集成半桥电路,电路简单,只需要简单的几个外围电阻,缺点是输入电压要高于7V才能正常工作。但是由于是采用锂电池供电,供电电压始终高于7V,因此这一缺点也得以缓解。另外电路的简洁使最后的电路板面积更小可以有效的减少质量分布不均所带来的平衡问题。

▲ 图3.6 BTN驱动原理

3.4 电磁运放模块

  电磁传感器输出的信号,即电感线圈两端的电压,比较小而且波动较大,需要进行调理。我们采用运算放大器放大采回的电压信号,然后经过二极管和电容的整流和滤波,得到较为平稳而且较大的电压值。经过对于多个运放芯片的比较,我们最后采用了OPA4171芯片。电路图如下:

▲ 电磁信号检波放大电路原理图

3.5 传感器模块

3.5.1 电磁传感器

  由于赛道的电磁线通过的电流为 100mA20KHZ 的信号,为了检测其信号我们采用10mH 的电感和 6.8nF 的电容并联谐振,来感应20KHZ的信号。选择好的电感电容非常重要,由此我们选择使用配谐度高的电感电容来采集信号。

3.5.2 编码器

  采用增量式512线光电编码器,其供电电压为3.3V5V,输出为小幅值的正弦信号。为了将此信号放大整形,设计了信号调理电路,其基本原理是使用一个运放做成比较器电路,调节参考电压,使输出变为0V-3.3V的方波信号,送入单片机进行运算。### 3.5.3 陀螺仪

  采用icm20602六轴加速度计,硬件SPI可达10波特率,精度高体积小。

 

第四章 论分析及控制算法实现


4.1 角度融合

  经过我们的长期调试,发现通过陀螺仪采集到的原始数据经过转换后使用一阶互补滤波或者卡尔曼滤波能够得到较好的波形,是成功平衡的基础。此外,我们对加速度计的信任不能太高,太高了,会导致融合的角度容易产生波动,最终会导致舵机的控制不够丝滑。

4.2 路径识别

  使用电磁传感器对赛道的电磁信息进行采集,在对采集到的数据进行处理后,对已处理的电感数据进行循迹处理。

4.2.1 数据处理

  由于噪声的存在,采集到的电磁信号不可以直接使用,需要先进行取平均操作和归一化处理。将多次采集的电感值去除最大值和最小值后求取平均值,然后进行归一化处理。归一化是使用电感数值的最大值和最小值对采集到的电感值进行处理,使处理后的值处于0到100之间。对电感采集的值进行处理后可以消除部分噪声。

4.2.2 循迹处理

  对电感数值进行处理后,需要使用电感数值获取小车偏离赛道的程度和方向。我们使用了4个电感对赛道电磁信息进行采集,使用通过差比和计算得到的数值标识小车偏离赛道的程度和方向。

4.3 PID控制算法介绍

【通用原理部分,此处省略3000字...】

4.4 舵机的PID控制算法

  对于舵机的闭环控制,我们采用了位置式PID控制算法。   使用计算式如下:

angle_out = kp * (angle+expect_angle) + ki*integral + kd*gyro

  根据网上的技术资料和实际测试,我们发现当车向一侧倾斜时控制舵机往相同的方向打一定角度的舵机能够使车保持平衡。但只使用PD控制算法,电单车会因为路面不平,机械零点不对称等一系列因素,小车将会跑着跑着往一边倾斜,然后开始向车身倾斜的那一边转圈,最后越转越小直到倒下。此时我们就需要引入积分量了,积分参数乘以积分的累加值等于积分输出。让舵机的控制变为位置式PID,这个积分输出有滞后的作用,但是电单车又必须要这么做。积分输出小了,在直线行驶的时候电单车,还是会先向一边倾斜,然后转圈直到倒下。积分输出大了,就会导致舵机响应严重的滞后。这里这个积分输出需要有一个合理的值,同时积分的累加值是需要限幅的。

  经过不断调试,最终我们选择了一组PID参数,得到了较为理想的平衡控制效果和转向反应速度。

4.5 驱动电机的PI控制算法

  经过反复调试,我们发现当单车Ki和Kp差不多相等时速度较为稳定且反应较快。   使用计算式如下:

Pwm +=kp * (Last_bias - Bias) + ki * Bias

 

第五章 发工具及交互工具的选用


  在车模开发和调试过程中,开发工具和交互工具发挥了很重要的作用。从电路板的设计到控制程序的编写,各种电脑上的开发工具提供了很大的帮助。在调车时,交互工具简化了调节参数的过程并使参数可以得到直接的显示,极大地减轻了调车的负担。

5.1 开发工具的使用

  我们选用了STC16F作为车模的控制器,并使用Keil编写代码,作为软件开发环境,使用Altium Designer绘制电路板,作为硬件开发环境。

5.2 人机交互工具的使用

  在调试过程中,人机交互是重要的部分,人机交互功能实现的好坏会极大地影响调车的效率。我们通过屏幕实现机器向人传递信息,通过按键和拨码实现人向机器传递信息。

  屏幕我们选择OLED液晶,该屏幕尺寸小,分辨率高,使用效果图5.1所示。按键采用五项按键,可以实现上下左右及确定操作,操作方便且占空间较小。使用4个拨码开关用于切换小车的不同模式。

▲ 图5.1 OLED屏显示界面

5.3 两机交互工具的使用

  调试时两机之间的交互也是十分重要的。出现问题时能否及时发现原因很 大程度上取决于两机交互功能实现的好坏。我们采用蓝牙模块实现电脑和小车之间的信息交互。虽然蓝牙的传输距离和传输速度有限,但足以满足调试要求且蓝牙实现起来较为简单。

 

第六章


6.1 车模总结

6.1.1 控制方面

  使用PID对车模倾角进行控制,实现了车模的平衡;使用PD对车模转向进行控制,实现了车模有效循迹;使用PI对车模速度进行控制,实现了车模速度的稳定控制。

6.1.2 结构方面

  通过增加配重、改变电路板位置和改变传感器安装位置等措施,尽量地做到了车模重量分布合理均匀;尝试多种车模前轮倾角,最终确定出最有利于提速的前轮倾角;自行设计和焊接电路板,实现转压、采集和控制等功能。

6.1.3 不足之处

  更改车模结构时,忽略了车模结构对慢速的影响,使车模慢速没有达到很慢,慢速成绩有待提升。

6.2 工作总结

  在备赛的将近一年时间里,我们学到了很多知识,克服了很多挫折困难,锻炼了自己。

  从最初的电路设计到电机舵机的控制,从电机舵机的控制到基本循迹,从基本循迹到处理各种元素,从处理各种元素到提升车模的速度和稳定性,以及最后从快速调节切换至慢速调节,每一次取得的进步都是我们用努力换来的。在备赛的过程中,我们在学长的帮助下,广泛地阅读文献,不断地尝试各种算法和车模结构,积极地与其他队伍交流,我们在备赛过程中不断地学习新的知识,不断地提升车模性能,最终取得了不错的成绩。

  在备赛过程中我们,我们面临很多的困难和挫折:和其他队伍竞争、调车陷入瓶颈、遇到难以解决的问题、因为疫情比赛时间一改再改、国赛规则突然发生改变…但每一次我们都坚持了下来,三个人团结一致,一起克服困难。

  感谢智能车竞赛,通过智能车竞赛我们都有了进步,得到了锻炼。

 


  借此次写报告的机会向帮助过我们的人和团体表示感谢。

  感谢指导我们的学长,帮助我们的指导老师,为我们提供便利的学校以及组委会的老师。

  感谢日夜相伴的队员,感谢一同备赛相互帮助的其他队伍。

  最后,向没有机会出现在队员名单中的幕后英雄致敬。

 

考文献


[1] 卓晴,黄开胜,邵贝贝.学做智能车 [M].北京:北京航空航天大学出版社.2007. [2] 王淑娟,蔡惟铮,齐明.模拟电子技术基础 [M].北京:高等教育出版社.2009 [3] 张军.AVR单片机应用系统开发典型实例 [M].北京:中国电力出版社,2005. [4] 张文春.汽车理论 [M].北京.机械工业出版社.2005. [5] 殷剑宏,吴开亚.图论及其算法 [M] .中国科学技术大学出版社,2003. [6] 夏克俭.数据结构及算法 [M] .北京:国防工业出版社, 2001. [7] 邵贝贝.单片机嵌入式应用的在线开发方法 [M].北京.清华大学出版社.2004. [8] 蔡述庭."飞思卡尔"杯智能汽车竞赛设计与实践 [M].北京:北京航空航天大学出版社. 2012. [9] 自平衡自行车的运动仿真[J]. COMSOL 博客, 2015.

附录 主要程序:

///////////////////////////////////////////////////////////////////////////////////
//定时器中断,每10ms执行一次,timer:uint16类型,最高65535 
////////////////////////////////////////////////////////////////////////////////////
void INT2_int (void) interrupt 10  		  // 陀螺仪FIFO定时中断,10ms,
{ 
        
	int data Servo_PWM;						        // 舵机PID

	///////转向控制///////////////////////////
	Zhongzhi = get_diff();// 根据电感采集的归一化偏差数值计算中值的位置	
	Zhongzhi = 0.5 - Turn_Kp*Zhongzhi;    // 计算期望的倾斜角度
	if(Zhongzhi > 4.5)	Zhongzhi = 4.5;		// 左拐,限幅
	if(Zhongzhi < -3.5)	Zhongzhi = -3.5;	// 右拐,限幅
	
	Encoder = myabs(Read_Encoder(1));		  // 编码器采值	
	
	//ICM_Read();
	Angle_Balance = angle;    				      // 角度更新
	
	if(KEY_Read(KEY3) == 0)           // 单击K3(走起,启停键)读取		
	{ 
        
		Flag_Stop =! Flag_Stop;   			// 单击走起,再击停车		
	}  
	else if(KEY_Read_Comb() == KEY02DOWN) // 组合键读取
	{ 
        
		Zhongzhi = Angle_Balance;				// 同时按下K0 K2键标定初始值
	}									      // 按键控制,控制发车等
	
	//Velocity = 60 - myabs(left - right) * 0.1;                // 变速控制
  //Velocity = 45 + myabs((int)Angle_Balance) * 1.5;          // 变速控制
	
	Servo_PWM = SBB_Get_BalancePID(Angle_Balance, gyro[1]);	    // PID计算单车平衡的PWM数值	
	if(	Servo_PWM < - Servo_Delta)	  Servo_PWM = - Servo_Delta;// 舵机角度 
限制
	else if(Servo_PWM > Servo_Delta)  Servo_PWM =   Servo_Delta;// 舵机角度限制
	PWMServo = Servo_Center + Servo_PWM;	                      // 转换为舵机控制PWM 		
	PWMMotor = SBB_Get_MotorPI(Encoder, Velocity) / 15;					// 电机增量式PI控制
	
	//if(left == 99 && right == 99)	Flag_Stop = 1;	            // 冲出赛道停车
	if(Angle_Balance > 35 || Angle_Balance < -45)	Flag_Stop = 1;// 摔倒停车判断
	
	if(Flag_Stop == 1)						       // 停车		
	{ 
        
		PWMMotor = 0;                      // 电机关闭
		PWMServo = Servo_Center;           // 舵机回中
		Integration = 0;                   // 积分参数归零
	}
	
	MotorCtrl(PWMMotor);	       			 	// 电机PWM
	ServoCtrl(PWMServo);				         // 舵机控制PWM,舵机范围:【约1500±300】	
						
	Flag_getTurn++;                      // 转向标志
	Flag_Show++;						             // OLED信息显示标志
}


  • 图2.1 智能车实物
  • 图2.2 电池安装示意图
  • 图2.3 舵机安装示意图
  • 图2.4 转向轴倾角示意图
  • 图2.5 前轮倾角示意图
  • 图2.6 电磁前瞻示意图
  • 图2.6.1 表21 智能车主要技术参数
  • 图3.1 单片机系统原理图
  • 图3.2 DCDC电路 7.2V-5V原理图
  • 图3.3 转换电压 5V-3.3V原理图 560、
  • 图3.4 转换电压 7.2V-6V原理图
  • 图3.5 转压电路3.3V转-3.3V原理图
  • 图3.6 BTN驱动原理
  • 电磁信号检波放大电路原理图
  • 图5.1 OLED屏显示界面

标签: a智能集成电力电容器电容智能交互屏智能电容器实物智能型pid传感器20智能集成电力电容器怎么办ki5030电容式传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台