《1 前言》

1 前言

随着汽车电子和智能机器人的快速发展,智能车已成为智能控制领域研究的热点。智能小车是具有自主引导功能的轮式移动机器人,它是集路径感知、路径决策与规划、行为控制与执行等多功能于一体的综合系统[1] 。自主寻迹小车可以看成缩小版的智能车,对智能车的研究设计很大程度上促进了电子机械、运动控制、微处理器、传感器技术等相关学科的快速发展,其研究结果可以在多领域加以推广和利用[2] 。本文所研究设计的智能小车由微处理器控制模块、电机驱动模块、舵机转向控制模块、路径寻迹模块、电源供电模块、测速反馈控制模块等部分组成。测控系统是小车设计中的关键技术之一,本文简述智能小车设计的总体思路和架构,主要讨论智能小车测控系统软硬件的设计和研究。

《2 智能自主寻迹小车系统组成》

2 智能自主寻迹小车系统组成

智能自主寻迹小车系统由硬件部分和软件部分组成。硬件部分由微处理器控制模块、测控模块、电源供电模块等组成,系统软件的设计需要根据所采用的硬件器件决定,系统采用飞思卡尔 M9S12XS128芯片作为微处理器模块的核心,采用红外光电传感器采集路径信息,微处理器根据路径信息和小车当前状态采用脉冲宽度调制(PWM)方式对驱动电机和舵机进行控制以完成路径寻迹。智能自主寻迹小车的整体架构如图1所示。

《图1》

图1 智能自主寻迹小车的整体架构图

Fig.1 The overall architecture diagram of intelligent autonomous tracing cars

《2.1 微处理器控制模块》

2.1 微处理器控制模块

本智能小车采用的是飞思卡尔公司16位处理器 M9S12XS128 作为主控制系统的核心,其拥有 128 kB Flash、8 kB RAM 和 2 kB EEPROM;片内资源也很丰富,内部集成有 16 路 A/D 转换器,精度最高可设置为10位;并且拥有8路8位的PWM,支持两两级联,形成4路16位的通道,各通道独立运行,特别适合控制多电机系统,处理器性能完全满足系统功能的要求[3]

《2.2 电源供电模块》

2.2 电源供电模块

电源供电模块负责给系统不同的模块提供所需的稳定电压,此部分设计的好坏直接影响智能小车的正常运转。在硬件设计中,除了考虑器件的电压范围和电流容量等基本参数,还要在电压转换效率、功耗大小、输出稳定性等方面加以优化。本智能小车采用 7.2 V 蓄电池供电,由于不同模块所需的电流容量和工作电压不同,所以需经供电模块进行转换。系统中微处理器模块和路径寻迹模块需要5 V的电源,电机驱动模块需要7.2 V的电源,舵机转向控制模块需要6 V的电源。

根据各模块电压所需,电源供电模块采用降压稳压电路对 7.2 V 蓄电池分别进行转换:采用 LM2940将7.2 V电压转换成5 V电压供微处理器模块和路径寻迹模块使用;利用LM2941将7.2 V电压降压为6 V电压供舵机转向控制模块使用。为了改善舵机的响应时间可以适当调整LM2941,提高电压输出[4] 。智能小车供电模块电压分配图如图2所示。

《图2》

图2 智能小车供电模块电压分配图

Fig.2 Voltage distribution diagram of the intelligent car power supply module

《2.3 测控模块》

2.3 测控模块

测控模块是智能小车自主寻迹的功能模块,它主要由电机驱动模块、舵机转向控制模块、路径寻迹模块、测速反馈控制模块等部分组成。其中,路径寻迹模块采用红外光电传感器方案,即路径识别电路由一系列发光二极管和接收二极管组成。由于白色跑道和黑色路径对二极管所发射红外线的反射程度不同,只要合理安排红外光电传感器,利用传感器接收信息的差别,就可以判断出小车相对于黑色路径的偏移位置,进而控制舵机转向达到小车寻迹行驶。

《3 测控系统的硬件设计》

3 测控系统的硬件设计

在智能小车寻迹运行过程中,测控系统实时检测路径信息和小车行驶状态,经微处理器数据处理后用于调整小车行驶路线和控制小车运行速度。在测控系统中,路径寻迹模块负责探测白色跑道上的黑色路径;测速反馈模块用于测量小车的行驶速度,以防止小车行驶过快发生偏移和侧翻;电机驱动模块用来控制直流电机的转动方向与转动速度,以满足智能小车寻迹运行中加速、减速、刹车等功能;舵机转向控制模块负责小车行驶方向的控制,其控制转角的精度直接影响智能小车能否准确寻迹行驶。

《3.1 路径寻迹模块硬件设计》

3.1 路径寻迹模块硬件设计

路径寻迹模块采用TCRT5000红外光电传感器作为探测器件,红外光电传感器 TCRT5000是光电二极管发射,三极管接收并输出的装置。本模块由 14只TCRT5000红外光电传感器及外围电路组成,这 14 只 TCRT5000 红外光电传感器安装在智能小车的前端,以“一”字形排列,每只TCRT5000红外光电传感器的输出经过比较放大后输入M9S12XS128 单片 机 PTH0~PTH7 和 PORT A0~PORT A5 上。 M9S12XS128计算区分路径后产生PWM信号控制舵机转向。

光电传感器的排列模式和位置影响小车舵机转角的控制,系统采用的车模长为26.4 cm,光电传感器探测板长为 20.6 cm,探测板距小车车头约 9.8 cm。为了便于对光电传感器位置计算,这里将 14只传感器加以编号,从左至右依次编号为:-7、-6、 -5、-4、-3、-2、-1、1、2、3、4、5、6、7,并设小车中线轴线与光电传感器探测板垂直平分线的交点为原点,光电传感器位置计算图如图3所示。

《图3》

图3 光电传感器位置计算图

Fig.3 The position calculation charts of photoelectric sensor

由图3可知,检测到的最大偏角为

每个光电传感器离小车中心轴线的距离为

由式(2)可以计算出光电传感器坐标值的具体数值,如表1所示。

《表1》

表1 光电传感器坐标数值表

Table 1 The coordinate value table of photoelectric sensor

《3.2 测速反馈模块硬件设计》

3.2 测速反馈模块硬件设计

在小车车轮没有打滑的情况下,小车的车速正比于小车驱动电机的转速,本模块通过车速检测,对小车的转速进行闭环反馈控制。车速的检测方法有很多,本模块方案使用 CS3020 霍尔传感器加磁钢的方法测量小车车速。在小车的后轮上等距间隔安装6个小磁钢,则电机每转动一圈CS3020传感器就产生 6 个脉冲,M9S12XS128 单片机对输入引脚的脉冲进行累加计时,然后根据已知的定时时间和车轮周长计算当前小车的车速,判断测量小车的实际速度与期望速度的大小,按照它们间的偏差进行比例-积分-微分(PID)运算,进而得出相应的 PWM 占空比,从而以此控制电机得到所需的小车车速[5]

《3.3 电机驱动模块硬件设计》

3.3 电机驱动模块硬件设计

本系统采用RS-380SH型直流电机作为小车的动力装置,为了避免直通短路且保证各开关动作的协同性和同步性,模块采用桥式驱动器MC33886对电机进行驱动。直流电机的转动状态取决于加在电枢上的电压,两端电压的极性决定电机的转向,电压的大小影响电机的转速。通过PWM方式模拟电压极性变化,以达到控制电机正反转的目的,利用 MC33886控制H桥通断进而控制小车前进的速度[6]

驱动电路对两块MC33886并联使用,并将单片机的PWM1和PWM2、PWM4和PWM5两路8位寄存器合成16位寄存器使用,这样可以提高模糊控制的精度。

《3.4 舵机转向控制模块硬件设计》

3.4 舵机转向控制模块硬件设计

舵机转向控制模块采用 FUTABA-S3010 型舵机完成转向控制功能。控制舵机的脉冲信号由 M9S12XS128 单片 机的 PWM0 和 PWM1 级联 提供。改变占空比常数就可以改变输出脉冲的宽度。脉冲信号的宽度决定舵机输出舵盘的角度。

经多次转向实验,在输入信号为 50 Hz,即 PWM的周期为20 ms时,舵机的转角与输入脉宽呈线性关系。高电平为 1 500 μs 时,舵机的转角为 0°;高电平为 1 900 μs 时,舵机转角为右向 45°;高电平为 1 100 μs 时,舵机转向为左向 45°。舵机转角与输入脉宽的关系图如图4所示。

《图4》

图4 舵机转角与输入脉宽的关系图

Fig.4 Steering angle and input pulse diagram

注:+表示向右转向;-表示向左转向

《4 测控系统的软件设计》

4 测控系统的软件设计

智能小车硬件的设计是智能小车整个架构的基础,而针对底层硬件的软件设计则是小车控制系统的关键所在。软件的设计离不开算法的应用,控制算法在整个测控系统的软件编写中处于核心的地位,控制算法的好坏决定了智能小车运行的稳定性和精确性。

由于传统的PID控制算法需要在被控对象上建立精确的数学模型,难度较大且模型的抗干扰能力较差。而模糊控制是一种基于实践经验的非线性控制算法,所以在测控系统中采用模糊PID控制算法驱动电机转速。

PID控制算法输出的系统控制信号是PID控制器对误差信号进行比例P、积分 I、微分 D 计算之后所得的输出值,而比例P控制是以当前时刻的偏差信号进行放大或衰减后作为控制信号的输出,其输出增量和输入增量呈对应比例关系,其比例系数 kP 越大,控制作用越强,调节反应速度越快,而舵机转向实时性要求高,考虑到小车车体较大,运行较快,为保持小车转向的快速性,对误差信号进行比例P 调节。小车的方向偏差 θ 和位置偏差d体现了小车当前位置与黑色路径的关系,为了得到精确的转角,分别对方向偏差 θ 和位置偏差进行比例调节以得到相应的转角。所以采用双P控制算法对舵机转向进行控制。

《4.1 舵机转向的双P控制算法》

4.1 舵机转向的双P控制算法

在小车寻迹过程中,舵机的转角与红外光电传感器布局和检测到黑色路径光电管的位置有关。双 P 控制算法首先要确定舵机控制的输入值和输出值。

表1列出了光电传感器的具体坐标,在小车行驶过程中,当某个光电传感器检测到黑色路径时,得到黑色路径与小车中线轴线的距离 d(见图 3), d 的正值表示检测到黑色路径传感器相对于小车中线轴线的右边,其绝对值大小表示小车距离黑色路径的位置偏差,以此类推。由位置偏差d可以得到方向偏差 θ

θ 的绝对值大小表示小车前方路径与当前位置的方向偏离关系,其绝对值越大表示舵机转角越大。 θ 的正值代表小车将向右转,负值代表小车将向左转。小车的方向偏差 θ 和位置偏差体现了小车当前位置与黑色路径的关系,故将两个参数作为小车舵机转向控制算法的输入量。

设 ∂ 为当前舵机控制的转角值,对舵机的双 P 控制需要满足

式(5)中,kθ kd 分别为方向偏差 θ 和位置偏差 d 的比例调节系数。根据PID控制规律,经实验可以确定两个比例系数的值,经检测发现,舵机转角 |∂| = 36°时已达到扭转极限。并且当电池电压不稳或路面状况发生变化时,对舵机转角的灵敏度有所影响,因此,在系统中对不同光电传感器 A/D 采样时调整其权值。基于双P控制算法的舵机PWM控制流程图如图5所示。

《图5》

图5 基于双P控制算法的舵机PWM控制流程图

Fig.5 Servo PWM control flowchart based on double P control algorithm

《4.2 模糊PID控制算法》

4.2 模糊PID控制算法

4.2.1 车速模糊控制策略

模糊控制是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机控制技术,适合于那些数学模型不确定、复杂非线性型系统[7]

小车的电机驱动模块利用模糊PID控制算法实现小车车速的控制,本模块所建立的双输入单输出的模糊控制器如图6所示。

《图6》

图6 车速模糊控制器

Fig.6 Speed fuzzy control

模糊控制器的输入量为舵机转角 ∂ 和舵机转角的变化值 ∂-acc ,输出值为控制小车的 PWM 占空比pwmdr;∂∗ 和 ∂∗-acc 为输入量的语言变量,占空比 PWMDR 为模糊控制器的输出语言变量;D/F 将清晰量转化为模糊量;AR 将输入的模糊量 A∗ 利用近似推理得到模糊输出量 PWMDR;F/D 将模糊输出量 PWMDR 转化为清晰量。以下介绍各部分的设计。

4.2.1.1 输入输出模糊量确定

1)输入变量 ∂ 模糊化。输入变量 ∂ 理论范围为-45°~+45°,将输入变量量化为 7 级,则模糊论域为 [∂1 ,∂2,∂3,∂4,∂5,∂6,∂7] ,将它赋值得到 [-3,-2,-1,0,1,2,3],对应的模糊变量语言为[NB, NM,NS,Z,PS,PM,PB],从而得到 ∂ 的量化因子 k 值为 3/45=1/15,本模块选用三角函数为隶属度函数。

2)输入变量 ∂-acc 模糊化。根据实际情况将舵机转角变化值定义为-15°~+15°,同样量化为7级,则对应的模糊论域为 [∂-acc1 ,∂-acc2,⋯,∂-acc7] ,对应的 7个模糊语言变量为[NB,NM,NS,Z,PS,PM,PB],由此得到 ∂-acc 的量化因子 =3/15=1/5。

3)定义模糊变量 PWM 占空比系数 kpwmdr。经反复实验定义模糊变量 PWM 占空比系数 kpwmdr 的物理论域为[30,70],将其量化为 5 个等级,模糊论域设置为[0,1,2,3,4],对应的模糊语言变量为[S1,S2,S3,S4,S5],pwmdr 的比例因子 kpwmdr= 4/(70-30)=1/10。

4.2.1.2 设定模糊控制规则

根据小车实际运行规律和操作经验,这里设置车速的模糊控制规则为:a. 直道上快速行驶;b. 弯道时适当减速;c. 舵机转角角度越大,小车行驶速度越慢;d. 弯道上速度过慢适当提速,由此建立如表2所示的车速模糊控制规则表。

《表2 》

表2 车速模糊控制规则表

Table 2 The rules table of speed fuzzy control

4.2.1.3 车速模糊推理计算

根据表2的车速模糊控制规则表,采用Mamdani 模糊推理法,可得占空比PWMDR的模糊控制关系

利用 ∂ 和 ∂-acc 模糊论域,计算可得 PWMDR 的模糊控制量

4.2.1.4 模糊量的清晰化

采用重心法对进行精确化计算得到小车控制的精确值Ckl (PWMDR ),从而得到输出控制值pwmdr

由此得到以 ∂ 和 ∂-acc 为精确输入,以pwmdr 为精确输出的小车速度控制表如表3所示。在小车实际行驶时,只需查找表3即可方便快速地实现小车速度的控制。

《表3 》

表3 PWM占空比pwmdr 的模糊控制表

Table 3 Fuzzy control table of the PWM duty cycle pwmdr

4.2.2 车速PID调整策略

在模糊控制的基础上,对小车的速度进行位置式PID调整,以保证小车在各种路面情况和供电变化下能够平稳快速运行。比例微分控制器为

式(9)中, un 为当前电机值; KPKD 分别为比例系数和微分系数; en 为系统期望车速与光电传感器所测车速之差; en-1 为系统期望车速与上次所测车速之差。 KPKD 通过实验方式凑试得到,期望车速可通过查找模糊控制表得到,当前车速由测速模块测得。模糊PID车速控制流程如图7所示。

《图7》

图7 模糊PID车速控制流程

Fig.7 Fuzzy PID speed control processes

《5 系统测试》

5 系统测试

为了验证智能小车测控系统的有效性,将智能小车放在蛇形跑道上进行调试。调试过程中主要对舵机转向和小车车速进行检测。图8为小车检测实验图。

《图8》

图8 小车检测实验图

Fig.8 Car testing chart

由图8可知,小车虽不是严格按照路径寻迹而行,但在稍偏路径后能及时转角保证小车准确寻迹,说明小车舵机转角控制算法的准确稳定,当小车行驶在弯道时,小车车速平缓,寻迹转弯及时有效。从而证明了小车测控系统的健壮可靠。

《6 结语》

6 结语

本文简述了智能小车设计的总体思路和架构,主要研究了智能小车测控系统软硬件设计,并给出了部分模块的硬件布局和软件流程。采用模糊PID 控制策略对直流电机的转速进行控制,利用双P控制算法控制智能车舵机转向。实验结果证明,该智能小车架构完善,测控系统健壮有效。