基于ARM与遗传算法的智能小车的设计与实现

2015-10-22 00:38何华光梁超殷金伟张虎
现代电子技术 2015年19期
关键词:智能小车

何华光 梁超 殷金伟 张虎

摘 要: 为了提高智能小车的智能化以及抗干扰性能和鲁棒性,介绍一种基于ARM与遗传算法的智能小车的设计。小车应用ST公司的32位单片机STM32F103芯片为控制器,同时外部连接红外传感器,并通过遗传算法整定PID参数,实现更好的循迹行驶。给出了部分硬件电路图和软件流程图、算法的流程图以及相关的源代码。实践证明,采用遗传PID算法的智能小车具有更强的抗干扰性、鲁棒性并且更具智能化。

关键词: ARM/STM32F103; 遗传PID算法; 智能小车; 智能整定

中图分类号: TN929.1?34 文献标识码: A 文章编号: 1004?373X(2015)19?0152?04

Abstract: To improve the intelligence, anti?interference performance and robustness of the intelligent car, the design of intelligent car based on ARM and genetic algorithm is introduced. The STM32F103 chip with 32?bit of ST Microelectronics is adopted as the controller in the car. It is connected with infrared sensor by outer join. PID parameter is adjusted with genetic algorithm to achieve the better tracking driving. The partial hardware circuit diagrams, software flow charts, algorithm flow chart and the related source code are provided in this paper. The practice results prove that the intelligent car using genetic PID algorithm has better anti?interference performance, robustness and intelligence.

Keywords: ARM/STM32F103; genetic PID algorithm; intelligent car; intelligent adjusting

0 引 言

随着科技的不断进步与发展,小车的智能化也在加速进行。本文使用的红外传感器[1] RPR220光电开关性能优良、模块制作简单,完全能够胜任道路检测功能的实现,以及使用ST(意法半导体)公司的32位单片机芯片STM32F103RCT6[2?3],其具有强大的资源和超高处理速度,能够很好地实现遗传算法在整定参数中的运算。

近年来发展了遗传PID算法、模糊PID算法、神经网络PID算法等智能算法。遗传算法[4?5](GA?Genetic Algorithms)是一种新型的、通过模拟生物进化机制的随机搜索和优化方法,具有并行计算、全局收敛、编码操作等特点。遗传算法最大的特点就是:不需要知道如何去解决一个问题,仅仅需要知道,用什么方式对可行解进行编码,使得它能够被遗传算法机制利用[6?7]。通过遗传算法智能整定三个重要参数:比例系数[Kp,]积分系数[Ki]和微分系数[Kd,]使其达到整定最优。

综上所述,设计出一种基于ARM与遗传PID算法的智能小车,采用遗传算法,解决了PID参数整定困难的问题,从而使PID参数在一定条件下,得到智能整定最优。通过对比发现:使用遗传算法的智能小车,具有更强的适应性、抗干扰能力,并且这也是智能化向智能算法发展的方向。

1 设计原理

智能小车以32位的STM32F103RCT6芯片为处理器,外部连接红外传感器(RPR220红外传感器)模块、电机驱动模块、电源模块,系统结构框图如图1所示。

通过从红外传感器采样返回的数据,控制器使用遗传算法对PID中的三个重要参数:比例系数[Kp,]积分系数[Ki]和微分系数[Kd]进行智能整定,然后使用参数较为理想的PID控制算法,得到增量值返回给PWM输出,从而控制左右两个电机的转速和方向,控制小车沿黑线前行,使小车具有更强的环境适应能力、抗干扰能力以及鲁棒性。

1.1 控制器STM32F103

本设计以STM32开发板为控制器,开发板选择的是32位的STM32F103RCT6芯片作为MCU,具有强大的运算能力,在对数据采集以及数据处理上能够达到相当高的精度,拥有的资源有:2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器、12个通道、3个12位ADC、1个12位DAC等。对数据的精确采集,使得微处理器能够准确的掌握路况,对数据处理的强大运算功能使得微处理器能够流畅运行遗传算法。

1.2 红外传感器模块

红外传感器模块,采用4个“紧固”红外传感器,工作在定时器中断强行调整小车位置,采用2个普通红外传感器工作于遗传算法和高精度的小车调整状态。模块采用性价比高的RPR220光电开关,其性能良好、制作模块简单、使用的外接器件少。“紧固”传感器,采用LM393P电压比较器,能在一定程度上对软件减轻负担,正常工作时,从扫描得到的结果直接返回0或1,送回ARM进行下一步工作,电路如图2(a)所示;普通传感器正常工作时,通过对黑白不同环境物理表面具有不同的反射性质的特点,得到不同的信号,得到的信号以电压形式从单排针0处送给控制器ARM,进行下一步工作,电路如图2(b)所示;传感器在制作电路板上的分布如图2(c)所示。endprint

1.3 电源稳压模块

该模块由7805三端稳压IC和极少的外围元件组成,电路极为简单。另外,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。

1.4 电机驱动模块

采样网上现有的双H桥电机驱动模块使用ST公司的L298N芯片作为主驱动芯片,该芯片具有驱动能力强、发热量低、抗干扰能力强的特点。该模块使用大容量滤波电容、续流保护二极管,可以大大提高可靠性,对于本设计是非常有利的。由于本模块是2路的H桥驱动,所以可以同时驱动两个电机,使能ENA,ENB之后,通过分别从IN1,IN2输入PWM信号驱动电机1的转速和方向,从IN3,IN4输入PWM信号驱动电机2的转速和方向,从而实现小车前进、后退还有转弯。

2 系统软件设计

系统程序功能介绍:将系统各个子程序初始化,包括系统时钟初始化、定时器初始化、LCD初始化、A/D采样初始化、PWM初始化、红外传感器初始化等。然后按键扫描是否启动小车,按键1即KEY1按下奇数次,则启动小车;KEY1按下偶数次,则小车停止。启动之后进行程序的下一项即采样。从红外传感器采集回来的信息送到遗产算法中,对PID参数进行智能整定,在整定的同时,系统采用定时器3定时中断执行小车调整程序,将小车“人为紧固在黑线上”,整定完成之后将最优的PID参数送入到PID算法的式子上进行运用。根据小车从红外传感器采样回来的参数进行PID运算输出较为理想的PWM,控制小车循迹行驶,使小车具有更强的鲁棒性,使用LCD在程序中显示最优的PID参数等。程序流程图如图3所示。

2.1 遗传算法程序

本文将16位二进制进行0~65 535数字编码,高6位代表参数[Kp,]中间5位代表参数[Ki,]低5位代表参数[Kd。]将从红外传感器采样得到的参数送入到遗传算法与编码的可行解进行智能遗传,从遗传中最终得到这样一个结果,即所有的个体将会趋向于最优解,再将最优解解码就能得到最优PID参数,程序流程图如图4所示。

2.2 建立种群

系统建立初始PID参数种群遗传基因列表,建立初始种群的方法有很多种,如单片机自己随机产生、通过A/D采样产生等,为了使用方便,在这里直接对建立的种群赋予固定的初始遗传基因,即DNA。

2.3 适应值的评估

(1) 个体适应值评估

个体适应值的评估,是决定种群发展方向的核心问题。本文是寻找符合小车循迹环境的最优PID参数,使用的评估方法如下:小车在初始状态下,首次使用PID参数调整,再将从红外传感器采样得到的数据与设定的目标值(红外传感器在距离黑线中心1 cm的电压值)相比较,求得一个差值。通过求取使用300次PID调整之后得到的300个差值,再求取算术平均值,最后把平均值换算成适应值。考虑到在采样时会出现的问题:一次采样带有较大的偶然性,为了减少偶然性的发生,本文使用在采样时通过采集12次电压,然后求取平均值的方法,将平均值作为当前的电压值。

(2) 评估目的

根据大自然法则,在不同的生态环境下生物的适应度是不一样的,所以对每一代都要进行个体重新评估。如果一个个体非常适宜这个环境,无论对其进行多少次的评估,他的适应值基本保持不变,假如一个个体在这个环境下适合生长但是在另外的环境下不适合发展,那么这个个体就应该被淘汰,这也就是每一代个体都要进行评估的目的。

2.4 参数的调整

一个生态环境就有一组与之对应的遗传PID参数,这反应了大自然的法则也是建立在一定的参数基础上,参数不一样反应的就是不一样的自然环境。调整参数就是将系统的参数与系统将要模拟的环境相对应,重要参数有遗传的代数、突变率、PID调整次数等。

2.5 遗传定律

选择、复制或杂交、变异。选择适应性最强的两个个体作为父代,进行杂交和变异,生出新的后代。其他没有被选择到的后代都是完全的进行遗传即复制。这是模拟了孟德尔的遗传定律进行的经典算法,将适应环境的个体有选择性的遗传给后代,使后代具有更强的环境适应性。遗传算法部分源代码如下所示:

3 系统测试

为了验证遗传算法小车的适应性和鲁棒性,设计了一个简单的椭圆黑线轨迹,调试主要是为了将中断程序与遗传算法更好的结合,并且在智能整定中找到最优的值。小车调试实验图如图5所示,图5(a)为小车运动在合理黑线范围内正常运行遗传算法整定参数实验图;图5(b)为小车在评估不适应PID参数时,产生较大的偏移,系统中断强行调整小车位置的实验图;图5(c)为小车遗传算法运行完毕得到最优PID参数并使用最优参数行驶的实验图;图5(d)为小车遗传算法运行完毕,显示屏上显示相关参数的结果。

实验结果表明,在本次测试实验中,遗传基因最终都趋向于9 128,解码得到的最优PID参数为:[Kp=]1.250,[Ki=]9.062,[Kd=]2.500。从实验效果来看,采用遗传算法整定PID参数的智能小车运行效果比采用传统PID算法的智能小车运行效果更具抗干扰性以及鲁棒性。

4 结 语

本文主要研究了ARM与遗传算法的智能小车的应用,将从红外传感器采样取得的数据送到控制器ARM上,在ARM上运用遗传算法智能整定PID参数。本文中遗传算法解决了PID参数整定困难的问题,也使得PID参数整定具有环境适应性。ARM与遗传算法的智能整定PID参数能够根据环境的变化智能整定自身PID参数,具有广泛的应用前景。

参考文献

[1] 胡媛媛,邓世建,王书婧.基于红外光电传感器的智能寻迹小车设计[J].电子设计工程,2011,19(7):141?143.

[2] YIU J.ARM Cortex?M3权威指南[M].宋岩,译.北京:北京航空航天大学出版社,2009.

[3] 意法半导体(中国)投资有限公司.TM32F10xxx中文参考手册[[EB/OL].[2010?01?10].]http://wenku.it168.com/d_000072001.shtml.

[4] 牛志玲,潘晓萌.基于双种群遗传算法的四旋翼飞行器PID参数整定方法[J].计算机测量与控制,2014,22(4):1230?1232.

[5] 牛理想,扈晓利,王高平.基于遗传算法寻优的PID 控制及Matlab仿真[J].测试测量技术,2008(12):7?9.

[6] 王辉.遗传算法在人工智能领域中的应用[J].电脑知识与技术,2008(27):2040?2042.

[7] 张阳.基于MR的自动频率规划软件的分析与设计[D].北京:北京邮电大学,2011.

[8] 陈懂,刘璟,金世俊.智能小车的多传感器数据融合[J].现代电子技术,2005,28(6):3?5.endprint

猜你喜欢
智能小车
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
智能安全防盗探测小车
一种基于STC89C52单片机的简易智能小车的实现