资讯详情

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

简 介: 本文介绍了长春理工大学自行车拉力组在本次比赛中的成绩。本次比赛采用北京科宇通博科技提供的K车模型,两轮平衡摩托车,对选手挑战很大。主控芯片采用STC16F40K软件平台为128Keil C251开发环境。 本文介绍了我们智能汽车控制系统的软硬件结构和开发过程。车辆涉及机械结构调整、传感器信号处理、控制算法优化等方面,其工作原理是使用单片定时器中断控制周期,在控制周期内,收集陀螺仪原始值、电感电压值、编码器脉冲等外设数据,简单信号处理数据,然后通过控制算法影响控制单元,如舵机、电机,从而实现K车模在赛道上大步流星!

学 校:长春理工大学队伍名称:追风零队2021年追风零队参赛队员:怀崇宸 辛明轩 王焯豪带队教师:吕超 姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇姚广宇


??第十六届全国大学生智能汽车竞赛以培训为基础,注重参与,鼓励探索。 以追求卓越为宗旨,鼓励科技竞赛的创新。

??自行车组竞赛要求宏晶科技公司的微控制器作为核心控制模块,通过增加道路传感器、电机驱动模块,编制相应的控制程序,完成可以独立识别道路的模型车。自行车组赛道的基本形状由折线组成,折线夹角不小于90°,折线长度不小于25厘米。两条相邻赛道之间的最小距离是100厘米。交通锥桶布置在轨道折线的所有内角,车模在运行过程中必须绕过交通锥桶的外侧。几何尺寸如下:

  • 70厘米高;
  • 底宽不大于35厘米;
  • 颜色可以是红色和白色;

??电磁导线的距离不小于80cm。因此,由轨道中折线组成的等效转弯半径不小于80cm。

??本次比赛我组采用宏晶科技公司 16 位微控制器 STC16F40K128 作为核心控制单元,独立构思控制方案和系统设计、电磁和陀螺仪信号采集处理、电机和舵机驱动输出和路径控制,最终实现一套智能汽车控制系统,可以独立识别路线,实时输出车身状态。在制造汽车的过程中,我们对汽车的整体结构进行了深入的研究,分别在机械上 结构、硬件和软件都得到了改进,硬件主要是考虑和实践各种传感器的布局,改进驱动电路,软件发生了几次重大变化,汽车的运行模式采用串级PID控制方法。

??在本报告中,我们主要通过介绍整体方案、机械、硬件、算法等方面,详细阐述了我们在智能汽车竞赛中的思想和创新。具体表现在电路的创新设计、 创新算法和辅助调试模块。在准备比赛的过程中,我们队成员查阅了大量的专业资料,反复调试汽车模型的参数。所有的球员都为智能汽车比赛付出了努力。

第一章 统总体设计


1.1 系统概述

??自行车拉力组智能汽车系统的整体工作模式是:通过陀螺仪收集自行车的姿态信息,通过电磁收集轨道信息,通过串行控制算法进行相应的动作。

??智能车系统结构图是根据智能车系统的基本要求设计的,如图1所示.1所示。

▲ 图1.1 智能车系统结构图

1.2 整车布局

??汽车布局如图1所示.2.车辆的布局符合轻质稳定的设计原则,具有以下特点:

??(1)车身底部安装陀螺仪,提高车模数据稳定性; ??(2)电磁杆采用空心轻质碳素杆,减小质心与旋转轴的距离; ??(3)降低并固定电池,降低重心,提高稳定性; ??(4)用锡纸包裹电机,减少电机对电磁信号的干扰;

▲ 图1.2 车模布局

第二章 设计和实现机械系统


??良好的机械结构将直接影响汽车的结构稳定性和高速模具的性能。模型车的机械机构和组装形式是整个模型车身的基础,机械结构的质量直接影响智能车的运行速度。从大量的实验经验可以看出,机械结构决定了智能汽车的上限或下限速度,而软件算法的优化使速度不断接近上限或下限速度。只有在精细的机械结构中,软件算法才能更好地提高智能汽车的整体性能。

2.1车模的选择

??根据组委会的有关规定,今年的自行车拉力比赛模型可以使用北京科宇通博科技提供的K模型。前部有三个孔位置,我们采用2、4孔位置,使模型的转向能力和平衡达到更好的兼容性。

2.22其他机械结构的调整和安装

2.2.安装电磁传感器

??本次比赛对车身长度没有限制,但如果车身太长,会影响转弯和平衡的性能。因此,电磁传感器不能伸出车身前端太长。经过反复尝试,我们最终确定了35个长度cm碳杆作为电磁杆,传感器没有安装到太高的位置。我们使用了四种电感,两横两竖,最终证明效果更好。

▲ 图2.2.1 安装电磁传感器

2.2.2 安装编码器

??为实现电机闭环控制,提高控制精度,车辆采用方向脉冲编码器,不断调试与电机的齿轮距离,在保证啮合程度的基础上降低电阻。

▲ 图2.2.2 安装编码器

2.2.3 舵机的安装

??舵机是一种转向结构,良好的舵机安装方案非常重要,包括舵机的安装、位置、姿势、长度和倾斜设计。在安装舵机时,通过舵机舵杆参数计算出更高效的参数,提高智能汽车的转向灵敏度和平衡稳定性。舵杆旋转,左右旋转。将旋转运动转换为横摆运动的装置是舵机的舵杆。舵机扭矩通过舵杆传递给前轮,驱动前轮左右摆动,达到稳定灵敏的目的。

▲ 图2.2.3 舵机的安装

2.2.4 前轮的曳距

  “拖曳距”比较难解释。它指的是是前叉转向轴线的延长线与地面的交点跟前轮轴到地面的垂线之间的距离。拖曳距是关系车辆操控特性的一个很重要的参数。如果一个摩托车拖曳距很长,那么这部车的指向性会很好。就是说,能很轻松的保持直线行驶,双手离开车把都不是问题。不会因为路上的小障碍物而轻易改变方向。同时也意味着,驾驶这部车转向的时候要比拖曳距小的摩托车用更大的力气来转动方向把手。

2.2.5 前倾角

  “前倾角”指的是前叉和地面,或者说车架的前支架(减震管)和地面的角度。现在市面的摩托车都是采用三角联板来固定住前叉或者前减震的,所以这里前倾角的计算方式是一样的。通过改动车架,或三角联板其中一项或者两者同时改动都会改变拖曳距,或者说,改变车辆的操控。

2.3 车模重心

  车模在搭建完之后,测量整个车模的质心分布,目的是保证整个重心尽量在车模旋转轴线上,保证车模平衡以及转向的平衡性和对称性。同时还应该尽量降低车模重心高度,防止车身不可控,提高车的极限转弯倾角。对此,我们分析整个车模后,在规则允许范围内,我们适当的增加配重块,同时注意降低电路板和电池的高度,最大限度的降低重心,增加车运行的稳定性。

2.4 车模保护

  车模在调试过程中发现,由于单车的特性,极易摔倒。因此设计了多个结构保护了车体,采用了3D打印技术,保护了电机等重要设备。

▲ 图2.2.4 电机保护

 

第三章 件系统设计及实现


3.1 硬件设计方案

  从最初进行硬件电路设计时,就既定了该电子系统的设计目标:可靠、高效、简洁。在整个系统设计过程中都严格按照此规范执行。

  可靠性是系统设计的第一要求,需要对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。

  简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。

  在对电路进行了详细分析后,需要对电路进行了简化,合理设计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。

3.2 电路设计方案

  智能车的电路系统由三部分组成:以STC16F40K128为核心的,包括电源在内的智能车主控板,电机驱动模块,电磁采集模块。由于杜邦线的不稳定,我们单独开了一个陀螺仪FPC转接板,用以连接到主控上。同时为了防止强电部分和弱电部分互相干扰,我们将部分电源与主控版分离开,且驱动部分与主板的连接做了隔离,电机驱动与舵机控制连接采用FPC 软排线。

  智能车主控板上集成了控制电路,包括以下部件:单片机及其外围电路、电源稳压电路、电机驱动模块接口、舵机接口、编码器接口、电磁采集接口、指示灯、OLED接口,按键等。电机驱动模块采用 MOS管H 桥驱动电路。

3.3 电源稳压电路

  电源分为开关电源和线性电源。线性电源的电压反馈电路工作于线性状态,一般是 将输出电压取样然后与参考电压送入电压比较放大器,以此放大器的输出作为电压调整 管的输入,用以控制调整管使其解电压随输入的变化而变化,从而调整其输出电压;开 关电源是指用于电压调整的晶体管工作于饱和区或截至区,即开关状态,开关电源主要 通过改变调整管开和关的时间,即占空比,从而改变输出电压的大小。

  目前线性电源的技术很成熟,且制作成本较低,可以达到很高的稳定度,输出电压的纹波也很小,而且没有开关电源具有的干扰和噪音。但是,开关电源的效率要比线性电源高。

  全部硬件电路的电源采用动力型18650锂电池。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压,防止干扰,保证稳定性。

  主要包括以下不同的电压。   (1)5V稳压:TPIC74100QPWPRQ1芯片是一款Buck-Boost稳压芯片,由于开关电源有良好的能量转换率,因此采用该芯片作为稳压芯片。

▲ 图3.3.1 5V稳压电路

  (2)3V3稳压:LP2992芯片是一款LDO线性稳压器。因为其高纹波抑制比(70dB),稳定、噪声小。并且其采用SOT23-5封装,兼容很多稳压芯片。符合单片机对电源要求。同时单独给运放稳一路3V3,防止噪声干扰。电路原理图如下。

▲ 图3.3.2

  (3)6V稳压:为舵机提供工作电压,要求通过至少700mA电流,用AS1015作为稳压芯片。原理图如下。

▲ 图3.3.3

  电机驱动电路的电源可以直接使用蓄电池两端电压。模型车在启动过程中往往会产生很大的冲击电流,一方面会对其他电路造成电磁干扰;另一方面由于电池内阻造成电池两端的电压下降,甚至会低于稳压电路所需要的最低电压值,产生单片机复位现象。

  为了克服启动冲击电流的影响,可以在电源中增加容值较大的电解电容,也可以采用缓启动的方式控制电机。在启动时,驱动电路输出电压有一个渐变过程,使得电机启动速度略为降低从而减小启动冲击电流的幅度。

3.4电机驱动模块

  选择MOSFET时主要考虑的因素有:耐压、导通内阻和封装。智能汽车电源是额定电压为8.4V电池组,由于电机工作时可能处于再生发电状态,所以驱动部分的元件耐压值最好取两倍电源电压值以上,即耐压在16V以上。而导通内阻则越小越好。封装越大功率越大,即同样导通电阻下通过电流更大,但封装越大栅极电荷越大,会影响导通速度。常用的MOSFET封装有TO-220TO-252SO-8等,TO-252封装功率较大、而栅极电荷较小。于是我们最终选择了IR公司TO-252封装的LR7843N沟道MOSFETVDSS=55伏、RDS(on)=8.0毫欧、ID=110安。

  电机驱动模块采用4082H桥驱动芯片电路。一片4082控制一个电机,能通过单片机输出的PWM信号来快速控制电机的转速与旋转方向。由于电池电压不稳定我们在电源接口处接了一个大电容来滤波,通过TPIC74100来降压到5.0V然后再通过BS0512升压到12.0V给驱动芯片供电,电路图如下:

▲ 图3.4

3.5电磁采集模块

  对于单车来说,电感就是智能车的眼睛。所以对于其稳定性有一定的要求。所以硬件在设计时将电磁采集电路设计成一个单独的线路板,以便更换与布局。电磁采集通过OPA2350进行放大,通过电路对信号进行检波滤波处理。原理图如下。

▲ 图3.5

3.6 其他模块电路

  主板上还包括各种模块的接口电路,如蓝牙模块,由于只是预留的接口电路,故此处不予赘述。

3.7 小结

  对于硬件电路部分,一定要用料扎实,稳定第一,抗干扰性能一定要高。单片机电压一定要稳定,防止电机启动的时候拉低电压导致复位。解决这个问题最实用的办法就是加上储能器件,加上适当大小的电容是必要的。

  硬件电路是智能车的基础,只有打好基础才能继续软件方面的工作,保证系统的正常运行。

 

第四章 件控制算法


  满足智能车启动的硬件和基本电路完成后,一个智能车的基本模型就基本做 完了,但要平衡车飞驰,这些仅仅只是第一步。我们还要为其编写相应的程序来控制平衡与转向。因此,拥有一套高效、省时的程序是必不可少的,其平衡算法以及路径规划算法也是我们提高成绩的基础。我们对于车体的平衡选取了对陀螺仪进行卡尔曼数据滤波融合算法,同时加以最为经典的 PID 控制算法,简单实用,能够满足我们的平衡需求。对于电磁,我们采用差比和算法,简单有效。对于电机控制,我们采用增量式PID控制算法,达到了理想的效果。

4.1电磁传感器数据处理

  电感和电容构成谐振电路,在外界电磁信号的作用下发生谐振,输出信号幅值增强,该信号经过运放构成的同向比例电路放大后,输出一个脉动的正电压,该电压经过单片机连续进行AD转换,进行均值滤波之后,作为当前某一个传感器的最终数值。   获取传感器数据程序如下。

/******************电感值采集处理****************/
{ 
        
adc1=(float)adc_mean_filter(ELECTROMAGNETISM_left_left,ADC_10BIT,10)/1024*100;    
adc2=(float)adc_mean_filter(ELECTROMAGNETISM_right_right,ADC_10BIT,10)/1024*100;
adc1=(float)adc_mean_filter(ELECTROMAGNETISM_left_right,ADC_10BIT,10)/1024*100;    
adc2=(float)adc_mean_filter(ELECTROMAGNETISM_right_left,ADC_10BIT,10)/1024*100;
}

  提取出各传感器的值后,该值作为当前各电感的有效数据,通过差比和计算产生期望的角度,再经过平衡环PID控制运算,便完成了一次车模的控制。

4.2 PID算法介绍

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

4.3增量式PID车速控制

  对于速度控制,我们采用了增量式 PID 控制算法,对坡道有良好的适应能力

/******************速度环****************/
int SBB_Get_MotorPI (int Encoder,int Target)
{ 
         	
	Motor_Bias =Target - Encoder;						// 计算偏差
	Pwm += Motor_kp * (Motor_Bias - Motor_Last_Bias)+Motor_ki*Motor_Bias;   	// 增量式PI控制器	+ Motor_Ki * Motor_Bias
	if(Pwm > Motor_Pwm_Buandary) Pwm = Motor_Pwm_Buandary;
	else if(Pwm < -Motor_Pwm_Buandary)Pwm = -Motor_Pwm_Buandary;
	Motor_Last_Bias = Motor_Bias;	              // 保存上一次偏差 
	return Pwm;                         				// 增量输出
}

4.4陀螺仪滤波与数据融合

  陀螺仪对于平衡车而言是至关重要的,我们采用了卡尔曼算法对陀螺仪数据进行滤波与数据融合,得到了较为真实的数据,为后续调试增加了极大的便利。  

统开发与调试工具

第五章 统开发与调试工具

5.1 开发工具

5.1.1 Keil

  Keil DK251是一个完整的软件开发环境,支持基于251的微控制器。在软件开发过程中,通常需要经过以下几个步骤:

•新建:创建新项目,源文件; •编辑:按照一定的规则编辑源代码,注释; •编译:将源代码编译成机器码,同时还会检查语法错误和进行编译优化; •链接:将编译后的独立的模块链接成一个二进制可执行文件; •调试:对软件进行测试并发现错误;

  在软件开发中,每个过程都会用到不同的工具。如果每个工具都单独存在,这样就会给开发人员带来很多不便。所以Keil Software 公司为开发人员提供了非常方便的集成开发环境。开发人员可以在同一个平台上完成工作。   Keil操作界面如图5.1所示:

5.2调试工具

5.2.1 STC-ISP

  通过STC-ISP保存串口发送的数据。

5.2.2 蓝牙无线调试

  在调试过程中经常需要发送实时数据,以观察车模的运行状态或寄存器值,我们采用蓝牙模块, 有效传输 10 米,满足调试需求。

 


  我们很荣幸有机会能参加十六届智能车竞赛。由于疫情,给东北赛区选手的信心造成了不小的打击。不过,我们一直努力着,想尽办法解决问题、越过难关,才达到了今天的成绩,在次我想对同是东北赛区的车友们表示祝贺!

  在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械、电路以及最重要的控制算法的创新思想。在机械结构方面,我们分析了整车质量分布,调整重心位置,优化机械结构。在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动等模块分别设计,在查找资料的基础上各准备了几套方案;然后我们分别实验,最后以报告中所提到的形式决定了我们最终的电路图。

  今年单车拉力属于新组别,涉及到了数字信号处理、自动控制原理、机械结构原理、导航与制导等内容,属于交叉学科,同时也很符合自动化学科发展要求。在一些新方面,我们只能从零开始。经过学习交流与实践探索,不断的调试,最终到达了期望。

  我们的顺利完赛不仅是团队努力的结果,还离不开各方面的鼓励与支持。我们要感谢学长、老师、实验室同学,他们寻找场地,提供仪器,并提供了线上、线下的技术支持。我们也要感谢一同调车的战友,感谢日日夜夜的陪伴,相互激励、指点迷津。

  在大学期间,我们很庆幸能够参加这样盛大的比赛。这让我们的大学生活不再迷茫、不再堕落、不再无为,让我们的大学生活十分充实有趣。幸运的是,通过比赛我们收获颇丰,不仅仅是一些奖项,更多的是这些宝贵的经历,会让我们终身难忘!

■ 参考文献

[1] 卓晴,黄开胜,邵贝贝.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.3. [2] 谭浩强 C 语言程序设计[M],北京:清华大学出版社. 2005 年 7 月第三版. [3] 童诗白,华成英.模拟电子技术基础[M].北京. 高等教育出版社.2000. [4] 邵贝贝.单片机嵌入式应用的在线开发方法 [M].北京.清华大学出版 社.2004. [5] 刘金琨.先进 PID 控制 MATLAB 仿真(第 3 版) [M].北京.电子工业出社.2011. [6] 陶永华 新型 PID 控制及其应用,机械工业出版社,2002. [7] 仇慎谦, PID 调节规律和过程控制,江苏科学技术出版社,1987.12. [8] 王晓明. 电动机的单片机控制 [M] . 北京: 北京航空航天大学出版社. 2002. [9] 胡寿松. 自动控制原理.第5版[M]. 科学出版社, 2007.

■ 附录

附录A电路设计原理图

图A-1主控板原理图

图A-2电机驱动原理图

图A-3电磁运放采集板原理图

附录B程序源代码

{ 
        
		icm20602_handle();
/******************************自由跑*****************************/ 
		if(Free_Test_Flag)
		{ 
        
		car_banlance();
		}
/******************************循迹跑*****************************/	
		if(Car_Test_Flag)
		{ 
        	
		adc_handle();	
		Zhongzhi = Ex_Zhongzhi - turn_angle;
		car_banlance();
		}
/******************************电磁检测*****************************/	
		if(Adc_Test_Flag)
		{ 
            
			flag_motor++;
			if(flag_motor == 400)flag_motor=0;
  adc1 = (float)adc_mean_filter(ELECTROMAGNETISM_left_left,ADC_10BIT,10)/1024*100;
	adc3 = (float)adc_mean_filter(ELECTROMAGNETISM_middle_left,ADC_10BIT,10)/1024*100;
	adc4 = (float)adc_mean_filter(ELECTROMAGNETISM_middle_right,ADC_10BIT,10)/1024*100;	
  adc2 = (float)adc_mean_filter(ELECTROMAGNETISM_right_right,ADC_10BIT,10)/1024*100;
			if(flag_motor>200 )ex_motor_Velocity = motor_Velocity;
			else
				ex_motor_Velocity = motor_Velocity + 50;
			
					Encoder	= filterLowPass(5,encoder_get(),Encoder);
					PWMMotor += ZF0D_PID_Controller(&Motor_PID , ex_motor_Velocity , Encoder);			
		}
		
		
		if(Fuzzy_test_Flag)
		{ 
        
						
			ex_adc = ZF0D_PID_Controller(&Cascade_Feedback_PID,Angle - Ex_Zhongzhi);
			adc_handle_A();
			Car_Banlance_A();
		}
}


  • 图1.1 智能车系统结构图
  • 图1.2 车模布局
  • 图2.2.1 电磁传感器的安装
  • 图2.2.2 编码器的安装
  • 图2.2.3 舵机的安装
  • 图2.2.4 电机保护
  • 图3.3.1 5V稳压电路
  • 图3.3.2
  • 图3.3.3
  • 图3.4
  • 图3.5

标签: c1234横摆率传感器电感的前端会不会升压功率电感自动组装机电容式接近开关ki0209影响fpc连接器性能的四因素dk1203电源ic集成电路

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

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