1、5.4舵机控制策略195.5 速度控制策略19一绪论为了提高大学生的动手能力和创新能力,教育部与飞思卡尔公司共同组办飞思卡尔杯全国大学生智能汽车邀请赛”,这个大赛的综合性很强,是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感、电子、电气、计算机和机械等多个学科交叉的科技创意性比赛。通过多年的发展比赛已具有电磁组、光电组和摄像头组三个赛组。通过对以往比赛情况以及今年比赛规则的了解,我们选择了以红外对管为传感器的智能车设计。以下主要介绍了竞速车模的整体框架、硬件设计、红外对管赛道采集模块、光电编码器速度采集模块、执行模块电路设计、电源管理模块以及系统软件设计。在硬件设计方面,结合大赛选用芯
2、片的要求,自行设计实现了系统的电路板,软件系统以Freescale16 位单片MC9S12XS128作为系统控制处理器,采用红外对管获取实时赛道信息,通过红外对管直接提取赛道黑线,采用PD控制算法对舵机转向进行控制。通过光电编码器实时获取小车速度,采用P控制策略形成速度闭环控制。二整车设计方案2.1 整车工作原理智能车的总体工作原理为:以红外对管对赛道光线不同反射提取赛道图像并将对管坐标化进行计算塞到我位置同时输入到S12控制核心;通过光电编码器来检测车速,并采用S12的输入捕捉功能进行脉冲计数计算速度和路程;舵机转向采用PD控制;电机转速控制采用PID控制,通过PWM控制驱动电路,调整电机的
3、功率;而车速的目标值由默认值和运行安全监控综合控制。2.2 整车布局1、 整车低重心设计。通过以往几届比赛的经验我们看到,往往重心低,体积小巧,布局紧凑的赛车更能取得好的成绩。而重心过高的“长颈鹿”往往在高速过弯时出现侧翻。而通过汽车理论与现实中的竞速类比赛我们也可以看到,凡是竞速类的赛车均是低重心设计。于是,我们通过合理布局电路板和各种传感器,尽可能地降低整车重心。在不影响传感器前瞻,或者不过度牺牲传感器性能的情况下,尽量降低红外对管传感器的重量和高度,以提高赛车的侧翻极限。 2、 整车电路集成化,一体化设计。模块化设计和一体化设计是两种互有利弊的设计思路。模块化的好处是系统有良好的扩展性,
4、可升级性,维护性好。但缺点是体积较大,接插件较多,整个系统有很多废重,不利于小型化和轻量化。集成化的设计思路的好处是原件密度高,系统可以小型化一体化,对于布局空间非常局促的智能车来说,小型化的电路设计更为方便布局。但是缺点是系统升级麻烦,需要极高的可靠性的保证。我们在最终采用的方案中,通过综合考虑各方面因素,在确定了系统最终硬件方案不做大的更改的情况下,在确保了系统可靠性的前提下,最终选择了一体化,集成化的硬件设计思路。使车体硬件电路布局紧凑,稳定可靠。 3 、为了让传感器获得更多更远的信息,让传感器向前稍微倾斜一个角度,获得更大的前瞻。4、 轻量化设计。重量的减轻,可以带来加速快,减速及时等
5、一系列有点,所以在达到设计目标的情况下,应尽可能减轻车重。2.3 系统设计结构图2.4 系统软件设计思路系统的软件方面,我们首先要考虑的因素就是要保证赛车的稳定性。 以此目标为核心,我们的软件包括了一下几个子模块:1、系统初始化与硬件接口 2 、图像处理与黑线提取 3 、起始线判别 4 、路径识别 5 、控制算法 三机械系统设计3.1寻迹传感器的布局常见的有以下几种方案 寻迹传感器的布局常见的有以下几种方案 方案一:一字形布局 反射式光电传感器在小车前方一字形简单排布。在一字形中传感器的间隔有均匀布局和非均匀布局两种方式,均匀布局不利于弯道信息的准确采集,通常采取的是非均匀布局。考虑到弧度信息
6、采集的连贯性,非均匀布局的理论依据是等角度分布原则,即先确定一合适的定点,从顶点依次等角度画射线,射线与传感器水平线相交的位置即为传感器的位置。这种方案信息检测相对连贯,准确,使控制程序算法简单,小车运行连贯,稳定。方案二:M形布局 传感器呈M形排布。这种方案的优点在于拓宽了边沿传感器的检测范围,更适合于小车快速行进中的弯道检测,但相对一字形布局来说,M形布局不利 于信息检测的稳定,易于产生振荡,不利于小车行驶的稳定。方案三:活动式传感器布局 前面两种方案都是固定的布局方式,使传感器对赛道有一定的依赖。在这个方案中,传感器的位置是可以在一定范围内灵活排布的。这种方案的布局思路是传感器在安装板上
7、的位置是可调的,先将传感器排布成为矩形点阵,根据不同的赛道情况而灵活地作出调整,就可以设计出不同的布局方式而适应不同的赛道。这样对不同赛道有更强的适应性。但这种方案可调性大,临时调节较难,其次机械设计中体积较大,增加了小车的重量,不利于加减速。在我们的方案选择中,我们采用的是上述第一种方案。3.2前轮倾角的调整根据汽车理论,前轮参数的调整对智能车直线行驶的稳定性、转向的轻便性及轮胎磨损有很大影响。前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个参数来决定。主销内倾是指主销装在前轴略向内倾斜的角度,它的作用是使前轮自动回正。内倾角度越大时前轮自动回正的作用就越强烈,但转向
8、时也越费力,轮胎磨损增大;反之,内倾角度越小时前轮自动回正的作用就越弱。我们没有对此参数进行调整。主销后倾(Caster)是指主销装在前轴,上端略向后倾斜的角度。它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。由此,主销后倾角越大,车速越高,前轮稳定性也愈好。主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。由于智能车比赛赛道逐渐向复杂型,多弯的赛道发展,所以我们更多的要求提升赛车弯道性能,故此处我们保持了赛车原装
9、的前2后2的垫片设计。前轮外倾角(Camber)对赛车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。此处可根据实际情况,调整5左右的外倾角。所谓前束(Toe-out)是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。此处一般调整为0前束。33底盘高度的调整底盘适当降低,
10、在可以过坡道的情况下,尽量降低底盘,从整体上降低车的重心,使车在转弯时可以更加稳定、快速。考虑到车上坡时重心后倾,应将底盘前端低于底盘后端,增加前轮上坡时的抓地力。3.4舵机安装结构的调整舵机是整车延时比较大的一个环节,如何在保证舵机转向的正确性的前提下进一步减小其动作延时,以提高系统的响应速度,是舵机性能优化的目标。增加摄像头的前瞻能力可以在一定程度上弥补舵机的时延。舵机反应速度是弯道处车速提高的主要瓶颈之一。提高智能车的过弯速度可有效地提高平均速度。为加快舵机的响应速度,我们参考了上两届的做法将舵机架高。舵机按立式反装,使舵机轴处于中间位置,即舵机轴与两前轮间连杆长度相等。因左右转向时的力
11、臂相同,故左右转向角度、速度均相同。架高舵机,加长舵机连杆长度,这样舵机转过一个很小的角度,前轮就能转过很大角度,从而加快了响应速度。但舵机转动时受到的阻力矩也变大,会导致转向变慢。这是两个相互矛盾的因素,需在实验中寻找最优解。增加前轮下压力,从而提高了前轮的抓地力,当然这样也加重了舵机负载,不过因为转向连杆连接点和舵机轴心距离适中,所以不会烧毁舵机。35后轮差动机构调整当赛车在正常过弯时 (假设无转向不足亦无转向过度),4个轮子的转速皆不相同,依序为:外侧前轮外侧后轮内侧前轮内侧后轮。此次所使用车模配备的是后轮差速机构。差速器的特性是:阻力越大的一侧,驱动齿轮的转速越低;而阻力越小的一侧,驱
12、动齿轮的转速越高。以后轮差速器为例,在过弯时,因外侧后轮轮胎所遇的阻力较小,轮速便较高;而内侧后轮轮胎所遇的阻力较大,轮速便较低。差速机构的作用是在车模转弯的时候,降低后轮与地面之间的滑动;并且还可以保证在轮胎抱死的情况下不会损害到电机。差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响车模的过弯性能。好的差速机构,在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。36车体重心的调整车体重心位置对赛车加减速性能、转向性能和稳定性都有较大影响。重心调整主要包括重心高度和前后位置的调整。理论上,
13、赛车重心越低稳定性越好。因此除了摄像头装得稍高以外,其他各个部件的安装高度都很低。除此之外,车辆重心前后方向的调整,对赛车行驶性能也有很大的影响。根据车辆运动学理论,车身重心前移,会增加转向,但降低转向的灵敏度(因为大部分重量压在前轮,转向负载增大),同时降低后轮的抓地力,影响加减速性能;重心后移,会减少转向,但增大转向灵敏度,后轮抓地力也会增加,提高加减速性能。因此,确定合适的车体重心,让车模更加适应比赛赛道是很关键的。将摄像头安装在车体靠后位置,这样使得赛车的重心后移,极大地增加了赛车的转向灵活度。3.7光电编码器的安装光电编码器安装主要考虑的问题是与齿轮的咬合,太紧会使电机转动吃力并且会
14、发出很大的噪声,太松有时候会丢齿。因此最好使得安装的编码器松紧程度能够调整最好。四硬件电路设计4.1 最小系统板的设计所谓单片机最小系统,是指在单片机外部增加尽可能少的元件电路,组成一个让单片机可独立工作的系统。MC9S12DG128芯片是全国智能汽车竞赛组委会指定各参赛队使用的Freescale HCS12系列中的一款芯片,本节介绍以MC9S12DG128芯片为核心的最小系统的组成,如图5.9所示。该最小系统主要包括以下几个部分:时钟电路、串口电路、BDM接口、供电电路、复位电路和调试用LED灯。各个部分的功能分别如下:(1)时钟电路为单片机提供一个外接的16 Hz的石英晶振。(2)串口的R
15、S-232驱动电路可实现TTL电平与RS-232之间的转换。(3)BDM接口允许用户通过该接口向单片机下载和调试程序。(4)供电电路主要是给单片机提供+5 V的电源。(5)复位电路是通过一个复位芯片给单片机一个复位信号。(6)调试用LED灯和单片机的PORTB口相连,供程序调试使用。4.2 电源模块的设计智能车系统采用配发的标准车模用 7.2V 2000mAh Ni-Cd 充电电池进行供电,但各个模块所需要的电压不同,因此需要进行电压调节,并且由于电机运行会产生干扰噪声,需要将控制电源和电机驱动电源了分开。4.3电机驱动模块的设计4.5舵机驱动模块智能车采用的舵机是大赛组委会统一规定使用的 F
16、utaba S3010。该舵机标称使用的输入供电电压为4.8-6V,硬件连线上,由单片机输出一路16 位精度的PWM 信号接舵机控制线,即能使舵机在正负45 度范围内转动。4.6图像采集电路五软件系统设计5.1 S12单片机简介根据大赛规则要求,核心控制模块可以采用组委会提供的 HCS12 模块,也可以选用飞思卡尔公司8 位、16 位系列微控制器(单核,例如不允许使用MC9S12X 系列)芯片自制控制电路板。每台模型车的电路板中只允许使用一种型号微控制器。8 位微控制器最多可以使用 2 片,16 位微控制器限制使用 1 片;不得同时使用 8 位和 16 位微控制器。我们最终决定采用飞思卡尔公司
17、的MC9S12XS128芯片作为智能车的主控芯片。MC9S12XS128是以CPU12内核为核心的16位单片机,片内存储器有512KB的Flash、14KB的RAM和4KB的EEPROM。片内包含2路SCI、3路SPI、5路CAN1路I2C等通讯模块,有16路10位ADC模块,8路8位PWM模块和8路16位定时器模块。5.2 系统模块介绍及系统初始化由于比赛水平的不断提高及判断坡道,判断起始线等新的比赛元素的加入,导致智能车系统不论从硬件上还是软件上都逐渐趋向复杂。体现到单片机上,就是系统被使用的模块越来越多,融合性越来越强。我们在最终就使用了MC9S12XS128单片机的PWM模块来驱动电机
18、与舵机,ECT模块来测速和捕捉终端,AD模块来采集加速度传感器信号和进行电压监测。SPI模块与无线监控调试模块通信,SCI模块做有线通信,I2C模块与 图像传感器通信,再加上并行图像数据的数据线,键盘扫描控制线,最终几乎占用了单片机的大多数引脚和常用功能。5.3图像采集我们采取直接黑线提取地方法,我们将每个传感器进行坐标化,当传感器位于黑线上方时,用此传感器的坐标进行小车的位置判断,通过程序计算控制小车舵机,速度等一些参数5.3.4 起始线的判别 由于比赛新增了赛车必须在起始线后三米内停下的规则,这就要求赛车必须具有稳定可靠提取起始线作为停车标志的功能。提取起始线的难点在于随着比赛水平的不断提
19、高,车速越来越快,并且起始线一般在较长的直道上,赛车驶过时的速度一般都比较高甚至非常高,这就进一步增加了起始线提取的难度。同时,赛车通过起始线时的角度余量也是一个需要考虑和解决的问题。所谓的角度余量就是要考虑赛车在以一定角度通过起始线而不是垂直通过起始线时,也应能稳定检测到起始线,而不是出现误检或漏检。这种情况包括车刚从弯道进入直道斜对起始线或者在直道上因未知情况并不是正对起始线的情况。受到光电传感器限制,我们最终选择用拨码开关控制起始线。当车每经过一个十字线或经过起跑线一次,我们就记录一次,最终通过控制记录个数控制小车请停止。5.4 舵机控制策略在舵机控制策略方面,我们最终还是采用了最为经典
20、的PD控制策略,具体的策略是通过前面所述的路径判别算法,判断赛车前进方向上的路况,对赛道类型进行分类,进而选择相应的控制参数与策略。5.5 速度控制策略智能车的速度控制策略我们仍旧是选择了的P控制策略。此种方法简单实用,瞬态响应快而又兼顾了稳态无差调整。在实际比赛种也为许多队伍所采用。在实际智能车速度控制系统中,由于控制周期不可能足够短,并且电机延迟较大,该方式实际效果不佳,为了获得良好的动态性能的同时又兼顾稳态性能,我们采用了改进的控制算法以获得更快地响应速度,而在速度误差较小或者速度接近设定值时,则将控制器切换为PI控制,进行细调,进而获得精确稳定的控制效果。六控制程序#include m
21、c9s12xs128.h#pragma LINK_INFO DERIVATIVE mc9s12xs128b/=public variable=#define ideal_speed 180#define kp 24 #define ki 0 #define kd 0 #define Angel_Center 1380 /舵机中心位置#define lose_limit 300 /丢失黑线后 滑翔时间/-function- void crg_init(void); / 锁相环初始化 void atd_init(void); / AD转换初始化 void pwm_init(void); / PWM
22、信号初始化 void ect_init(void); void sam_position(void); /读adc结果 void car_position(void); /计算car_positn void angle(void); /计算转角 void dirver(void); void delay(void); void DelayNS(int dly); void slow(void); void port(void); void check_start(void); void found_start(void); void begin_delay(void); void pid();
23、 unsigned int absolute(int); word sam_atd_g15; int adc_limit=150; int c=0; unsigned char sd=0,b,y; static unsigned char a; int black_sensor_number; int pre_positn=0; int car_positn; int angle_data; int flag=0; int pulse_count; int pre_error=0; int pre_d_error=0; int NOP; int pk=40; int start_acc=0;
24、int finish_flag=0; int ff=0; int x,z;/=main loop= void main(void) DelayNS(3500); PORTB=0x00; DDRB=0x00; crg_init(); /锁向环初始化 atd_init(); /初始化AD转化 pwm_init(); port(); PWMDTY01=1380; for(;) /port(); /ATD0CTL5=0x10; /while(!ATD0STAT0_SCF); sam_position(); /读采样值 car_position(); check_start(); angle(); sl
25、ow(); dirver(); _FEED_COP(); /=system ini()= /-crg_init- void crg_init(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x05; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=96MHz; _asm(nop); /BUS CLOCK=48M while(!(CRGFLG_LOCK=1); /when pll is
26、 steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system;/-pwm_init-void pwm_init(void) PWME=0x00; PWMPRCLK=0x33; /8分频为6M PWMSCLA=0x03; /1M PWMSCLB=0x02; / PWMSCLB=0x06;0.5M PWMPOL=0xff; PWMCLK=0X2b; PWMCAE=0x00; PWMCTL=0X10; /01级联 PWMDTY01=1365; /PWMDTY3=130; PWMPER01=13000; PWMPER3=250; PWME_
27、PWME1=1; PWME_PWME3=1;/-atd_init-void atd_init(void) ATD0CTL1=0x00; /选择AD 通道为外部触发,8 位精度,采样前不放电 ATD0CTL2=0x40; /标志位自动清零,禁止外部触发, 禁止中断 ATD0CTL3=0xf0; /右对齐无符号,每次转换4 个序列, No FIFO, Freeze 模式下继续转 ATD0CTL4=0x81; /采样时间为4 个AD 时钟周期,PRS=1,ATDClock=6MHz ATD0CTL5=0x30; /特殊通道禁止,连续转换,多通道转换,起始通道为0 转换14个通道 ATD0DIEN=0x00; /禁 /-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1