电磁直立寻迹智能车的系统设计与软件开发①
2018-02-05于玉亭王恩亮
于玉亭, 王恩亮
(安徽新华学院电子通信工程学院,安徽 合肥 230008)
0 引 言
在人工智能与传统汽车电子技术的交织下,促使了无人驾驶汽车的产生。无人驾驶汽车技术的实现主要依靠车内以计算机系统为主的智能驾驶仪来实现无人驾驶。无人驾驶车辆作为展示计算机科学、模式识别和人工智能技术水平、引领车辆工业未来发展的重要平台,己成为世界发达国家研究的热点[1]。国内外无人驾驶技术都在蓬勃发展,我国的国防科技大学的红旗HQ3无人车、百度无人驾驶汽车、长安汽车无人驾驶汽车和美国的谷歌、特斯拉无人驾驶汽车等都是其中的典型代表。
电磁直立寻迹智能车是按照恩智浦智能车组委会所发布的细则进行构思设计的。本设计的主要内容电磁直立智能车硬件、软件系统的设计两个部分。
1 智能车的总体设计方案
根据智能车所采用的赛道特点,确定了系统总框架。主要包含两大部分:智能车的硬件设计与软件控制算法,其中硬件设计包括机械结构设计和硬件电路设计两部分。机械结构设计相对简单,文中不再详细描述。硬件电路设计分为主控板和驱动板两部分,其中主控板由MCU、姿态角传感器、编码器三部分电路构成,驱动板由电机驱动、电磁传感器处理电路两部分构成。软件控制主要是基于智能车直立平衡的基础,再利用电磁传感器进行路径识别,控制车身运动,重要参数通过人机交互软件在OLED上显示出来,并可使用按键对部分参数进行修改。
2 系统硬件设计
系统的的硬件设计的三大部分都扮演着不可或缺的角色,如果把主控板当作人类大脑的话,驱动板就是整个系统的心脏,为全系统提供血液,机械结构就是四肢,决定了智能车行动的灵活性。智能车硬件总框图如图1所示。
图1 智能车硬件总框图
2.1 主控板电路设计
主控板由K60最小系统电路、姿态角传感器电路、编码器电路等模块组成。
2.1.1 K60最小系统电路
K60最小系统稳定工作所需要的外围电路,要保证K60单片机的正常工作、实现电源滤波、芯片内部不同模块之间电源与地的相互隔离、防止各模块运行起来相互干扰,为程序的调试带来致命性的问题。
2.1.2 姿态角传感器电路
智能车系统所用到的姿态角传感器为陀螺仪与加速度计的组合,为数字传感器芯片,都通过IIC与K60进行通信,电路图分别如图2、图3所示。陀螺仪选用芯片L3G4200DTR,加速度计选用MMA7455L。IIC通信线路结构简单,数据传输速率高达400KHz,程序操作简单,并且节省K60的IO口。
图2 陀螺仪模块
图3 加速度计模块
2.1.3 编码器电路
智能车为了实时监测速度,将整个系统闭环操作,设计使用了高精度512线编码器,编码器的接口有电源与地、AB相输出、机械零位,如图4所示。
2.2 驱动板电路设计
驱动板电路主要由MOS管电机驱动模块,电磁采集、处理模块,电源供电模块组成。电机驱动为智能车提供动力,电磁信号为智能车指引方向,电源提供了整个系统的运行的动力。
2.2.1 MOS管电机驱动模块
智能车车模选用为E车模,此款车模电机型号为RS-380,电机功率是比较大的,而且直立车是需要轮子前后运动,以维持车子自身的平衡,不至于倒置一方。NMOS所搭建的H桥并配合升压芯片MT3608、NMOS管H桥的专用芯片IR2104S完美的解决了这些问题,电路如图5所示。
图4 编码器电路
图5 NMOS电机驱动电路
2.2.2 电磁采集、处理模块
智能车对赛道的识别是依赖于赛道上的稳定磁场,通过对磁场强弱的采集以判别赛道路径。根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度和方向可以反过来获得距离导线的空间位置,这正是进行电磁导航的目的[2]。对于磁场的检测,是利用10mH的工字形电感加6.8nF矫正电筒并联而成。
最简单而又实用的检测方式就是双水平检测,即在智能车前方水平放置两个等距的电磁传感器,由于电感是水平放置,所测得的量为磁场的水平分量,根据安培定则可以评估出赛道空间之中磁场方向的分布情况[3]。
假设智能车前进方向为Z轴正方向,在车模前方安装两个水平的电磁传感器。由于磁场分布是以Z轴为中心的同心圆,磁场同心圆在空间中的曲率是不同的,电磁传感器又只能测得水平上的电磁分量,所以只要观察电磁传感器采集信号的强弱即可。
当赛道上的电磁线工作时,电磁传感器采集到信息是一个20KHz、峰峰值为60mV-1.1V左右的正弦波形。相对于K60ADC模数转换采集的信号,电磁传感器得到的信号强度是比较小而且信号电压为交流,所以ADC通道是难以对其直接进行检测的。因此,系统设计了同相运算放大器模块,如图6所示,作为信号的预处理。
图6 运算放大器电路
2.2.3 电源模块
电源是电路中的动力源泉,纯净的电源,能够为电路提供稳定的动力。对于整个电路,电源是分开供电的,既可以减少稳压芯片的负载,又可以减少各芯片的相互干扰。
智能车系统的是由一块7.2V的镍镉电池提供电力,一般芯片的工作电压都在3.3V,电机驱动NMOS的栅极开启电压设在12V,对电源进行升压,得到所需的电压。
主控K60采用LDOAMS1117-5.0V、TPS7333供电,陀螺仪与加速度计传感器采用SP6205供电,编码器采用AMS1117-3.3V供电。对于电磁信号的运算放大器,在电源做充足滤波,同时在地上,利用0Ω电阻模数隔离,防止模数两边电路的相互串扰。
3 系统软件设计
智能车的软件运行机制是在MCU主程序与中断之中。软件系统框图如图7主程序主要包含了按键读取与菜单显示,用以修改、显示参数。中断主要是对各传感器数据处理,PID运算以及输出PWM控制电机。所示两大运行机制的稳定工作,才能保证车子站的更稳、跑的更快。
3.1 传感器数据处理
系统主要运用到姿态角传感器与电磁传感器。两大传感器的数据分析以及结果处理影响着整个系统的稳定性。
(1) 姿态角传感器
姿态角度是通过卡尔曼融合将陀螺仪数据与加速度计数据融合解算而来。陀螺仪数据换算成三轴角速度,加速度计数据换算成三轴加速度。最后,将角速度与加速度计利用卡尔曼融合换算成最真实的姿态角。由于智能车机械结构的特性,车子只能前后方向跌倒,因此只需要一路卡尔曼姿态角融合即可。
(2) 电磁传感器
系统对磁场的采集选用了两个水平放置在智能车前方的电磁传感器,采集到的信号通过滤波得到两个线性的数据。考虑到左右两个电磁传感器的差异,而且考虑到,不同赛道中磁场也是略微不同的,为了让智能车对赛道的要求降低,软件系统在设计时对此数据的处理需要运用到归一化算法。
图7 智能车软件系统流程图
3.2 PID控制
直立车系统运用到了三大PID系统:直立串级PID系统、速度环PID系统与方向环PID系统。三大系统在设计上是并联共存的,都有自己独立的系统输入,PID系统的输出值均会统一到电机PWM输出数据的中。
图8 智能车实物图
图9 陀螺仪实时角速度
假设智能小车当前有前倾的趋势,如果给小车一个瞬间的前进的速度,车轮会猛然前进,但由于惯性作用,智能车车身会整体往后仰,如果车身控制够精准,当车身往后运动到竖直状态立马让车轮停止转动,此时车子就能够保持直立状态,当然,由于自身摩擦力与重力直立状态不会维持太久的时间,车子就会带有随机往前后方向跌倒的趋势,然后再相应的给车轮一个速度,这样周而复始,就能够让智能车一直保持直立状态,而不会跌倒。
上面是对智能车直立系统运行时的概述,要做到这么精准的控制,就是让三大PID系统协调工作,对传感器数据需要做出细致的处理。
PID控制是经典的自动控制算法之一。它的特性就是稳、准、快。稳讲的是PID系统的稳定性,当系统受到外部干扰后,能够迅速返回到最初状态的特性。准讲的是准确性,当系统处于稳定状态是,其误差能够稳定在一定的范围之内。快讲的是快速性,当系统与期望值之间存在有误差时,系统能够在最短的时间内做出响应,到达并维持在期望值。
(1)直立串级PID与方向环PID
直立串级PID系统与方向环PID系统均采用了位置式PID,位置式PID原理的离散公式:
(1)
(2)
(3)
式中:u(k)为PID系统的输出;e(t)为PID系统的输入;Kp为PID系统的比例放大系数;Ki为PID系统的积分放大系数;Kd为PID系统的微分放大系数;Ti为PID系统的积分时间;Td为PID系统的微分时间;T为PID系统的执行周期。
智能车的直立环PID系统是串级PID,就是把两个PID系统串联相用。第一级PID的被控制量是智能车的角度,第二级PID的被控制量是智能车的角速度。串级PID更符合智能直立车的等效模型,PID系统的输入是由卡尔曼融合所得出的智能车当前角度与智能车姿态角期望值的误差,而PID系统输出调节的是智能车运动的角速度,这样的一套系统更符合对直立车的控制。
图10 加速度计实时数据
图11 角速度实时数据
(2) 速度环PID
对于速度环PID,使用了增量式PID,增量式PID与位置式PID类似,但对某些变量的控制会更加的圆润稳定。位置式PID的输出量是被执行系统的实际位置,增量式PID的输出量不是被执行系统的实际位置,而是被执行系统实际位置的增量。
智能车系统的速度环使用增量式PID,有利于智能车在速度环上的稳定性。智能车对于速度数据的获取是利用K60自身携带的外设硬件正交解码,它能够将智能车正反转的速度做出完美的诠释。
4 系统调试
设计的智能车实物如图8所示,本系统调试过程中利用MCU的串口5给上位机发送姿态角传感器数据,所选用调试的上位机为匿名科创地面站。匿名科创地面站可以一次性实时发送9个数据,对此非常便于对陀螺仪、加速度计原始数据的跟踪观察,而且能够将卡尔曼融合后的实时角度发送到上位机中实时显示。对于系统只需要观察的数据有X、Y轴加速度计,X、Y角速度。调试的实时角速度计、加速度计数据分别如图9、10所示,角速度如图11所示。
经过测试该智能车可以实现平台上平衡、转弯、旋转、平稳的行驶等测试。
5 结 论
所设计的两轮自平衡智能车控制系统硬件工作稳定;运用互补滤波和卡尔曼滤波方式检测姿态检测传感器信号、以控制智能车直立平衡的方法切实有效;通过归一化处理将路径检测传感器获得的路径信息与直立平衡控制信号进行融合、在直立平衡基础上实现智能车方向控制的方法稳定可靠。
[1] 赵盼.城市环境下无人驾驶车辆运动控制方法的研究[D].合肥:中国科技大学,2012.
[2] 卓晴.电磁组竞赛车模路径检测设计参考方案[EB],竞赛秘书处,2010.
[3] 潘启军,马伟明,赵治华,等.磁场测量方法的发展及应用[J].电工技术学报2005,3:7-13.
[4] 梅真,赵熙临.基于增量式PID智能车调速系统的设计[J].《湖北工业大学学报》,2015,30(2):72-76.
[5] 余莎丽,刘小龙,周健民.基于模糊PID与算法控制智能小车速度[J].《自动化与仪器仪表》,2016(2):76-77.
[6] 冷雪锋.基于PID的STM32智能小车机器人的设计[J].《自动化技术与应用》,2016?,35(11).
[7] 张磊.智能小车控制系统的设计[D].吉林:吉林大学 ,2016.
[8] 李传娣.单片机原理、应用及Proteus仿真[M].北京:清华大学出版社,2017.