一种电磁车循迹及赛道元素识别算法

2023-11-22 02:56黄飞璇华志远李全彬
物联网技术 2023年11期
关键词:循迹比值电感

黄飞璇,华志远,李全彬

(1.江苏师范大学 江苏圣理工学院-中俄学院,江苏 徐州 221100;2.江苏师范大学 物理与电子工程学院,江苏 徐州 221100)

0 引 言

在智能车竞赛多车组和电磁组的赛道铺设有中心电磁引导线。引导线为一条铺设在赛道中心线上,直径为0.1~1.0 mm的漆包线,其中通有20 kHz、100 mA 的交变电流。智能车需要通过电磁感应检测出引导线产生的交变磁场,进行循迹和赛道元素识别。由于远离磁场时线圈产生的电动势差会减小,在高速、长前瞻的情况下,智能车往往会冲出赛道。此外,在遇到一些特殊的赛道元素,如环岛、岔路等,经常由于识别速度过慢,导致赛车失控。

对于智能车来说,电磁循迹和元素识别算法将会极大地影响智能车的性能。稳定的循迹和精确的识别相互影响、互相依赖。马岩等人[1]分析了中心引导线图像特点及前瞻影响,采用Bang-Bang & PID综合控制方法对智能车行驶速度进行控制,其分段控制策略有助于消除调速抖动,具有很好的参考价值。孙艺铭等[2]提出一种基于BP神经网络的电磁导航控制算法,可在满足短前瞻条件下进行精准地控制,但需要提前训练精确的网络模型。杨子义等[3]提出的三电磁方案可以准确计算出智能车舵机的偏角,但是由于忽略了智能车行驶过程中赛道元素对电磁传感器的影响,在智能车驶过特殊元素时电磁传感器会出现一定的偏差,使得循迹会不稳定。秦磊等[4]采用归一化与“差比和”策略对舵机实现开环控制,采用传统PID控制对电机进行闭环控制,实现了智能车的电磁循迹。由于只使用了2个电感,定位算法比较简单,传感器容易出现丢线。朱昌平等[5]提出了一种智能车行驶的控制方案,针对智能车行驶过程中常见的三类问题(控制算法的选择、车模机械改装、电磁传感器布局)提出了可行的解决方案,但没有提供一个对于赛道元素的高精度识别方案。张晓峰等[6]提出的双电磁方案使偏差曲线成为了一个单调函数,由于忽略了电磁本身偏差的影响,导致在两电感值初始值不同时,循迹会偏于道路一边。基于此,本文基于双电感循迹与五电感识别,提出了一种简化的KNN算法,结合比值法的改进,使智能车不但能够稳定行驶,在遇到赛道元素时也能准确地识别。

1 KNN算法及其简化改进

1.1 KNN算法

K近邻(K-Nearest Neighbor,KNN)是一种经典的有监督学习方法之一[7]。当对测试样本进行分类时,首先通过扫描训练样本集,找到与该测试样本最相似的个训练样本,根据这个样本的类别,投票确定测试样本的类别,或通过个样本与测试样本的相似程度进行加权投票。如果需要以测试样本对应每个类别的概率的形式输出,可以通过个样本中不同类别的样本数量分布进行估计。该算法分类器设计简单,没有显式的学习过程或训练过程,是懒惰学习(Lazy Learning)。K近邻算法既能够用来解决分类问题,也能够用来解决回归问题。当对数据的分布知之甚少或者没有任何先验知识时,K近邻算法是一个不错的选择[8]。

在智能车中往往先采集样本集作为分类依据,n为电感数量,k为样本数,即:

当采集到电感数据时,则为:

Y={y1,y2,...,yn}

然后对采集的数据进行欧氏几何距离计算:

最后将结果归于距离最小的那个类别中。

1.2 传统KNN算法的局限性

KNN算法是判断当前样本与数据集中k个样本的相似度,如果与k个样本中的大多数属于同一类别,则该样本也属于这个类别。k值的选择、距离度量和分类决策规则是K近邻算法的三个基本要素[9-10]。当三个要素确定后,对于任何一个新的输入实例,它所属的Y值也就确定了。但是在智能车的识别中,需要采集大量的样本数据进行训练,三个要素的计算会消耗单片机大量的算力以及内存。在传统KNN算法运行时,主程序运算速度是20 次/s,占用了近30 KB的内存,考虑到单片机内存的限制,传统的KNN算法并不适用于智能车场景。

1.3 算法简化及改进

为了增强单片机在赛道元素识别上的算力,节省内存,本文对算法进行简化及改进。本文将占用大量内存的样本集改进为限定条件以及单一的样本,然后根据采集数据与样本的距离进行归类,实现识别元素的功能。

首先,采集每个赛道元素的电感特殊点,利用采集的数据构建样本模板:

M={m1,m2,...,mn}

智能车行驶时实时采集到的数据为:

Y={y1,y2,...,yn}

计算模板值M和实时采集数据Y之间的距离为:

S2=(m1-y1)2+(m2-y2)2+...+(mn-yn)2

式中n为电感个数。当距离小于阈值γ时,视为识别到赛道元素。该算法只需要将车子放到想要识别的元素入口处,将采集到的电感值作为模板便可完成该算法的模板设置,实现元素的准确识别。

2 比值法

2.1 比值法的定义

目前智能车常用的循迹算法为差值法:

ΔE=E1-E2

在归一化计算时,偏差值和偏离距离的函数存在极值点,并且在两极值点外距离与偏差值的关系变为负相关,导致在高前瞻过急弯时会冲出赛道。为了解决这个问题,对电动势分别开根号,求差值;然后用该差值除以两者的和,就可以去除极值点,使得距离与电势差在整个取值范围内都呈正相关,去除了错误判断的电磁数据处理算法,就是比值法[3],表达式为:

式中:E1和E2分别为左右电感的感应电动势;Bias为偏差值。

2.2 比值法的不足

比值法要求左右两个电感在中点测量的电动势值必须相等才能得到准确的结果。然而在实际比赛时,由于场地以及电感质量的限制,上述条件很难达到,以至于最后得到的偏差曲线会向某一边发生偏移,这将导致智能车在行驶中向赛道的某一边偏移,极易冲出弯道和漏检赛道元素。图1为实际测量的比值法偏差Bias和距离x之间的数据拟合,可以明显地看出函数存在向x负半轴偏移的状况。

图1 比值法偏差Bias与距离x之间的函数

2.3 比值法的改进

为了解决上述问题,本文对左右两个电感采集到的值进行归一化处理,表达式为:

为了保证精度,将归一化的值放大5 000倍,消除了偏移问题。图2为归一化后比值法偏差Bias与距离x之间的数据拟合,可以发现图2中存在的偏移已经消除。

图2 归一化后比值法偏差Bias与距离x之间的函数

3 实验结果

根据比赛规则,本文设计了一个基于STC32的电磁循迹智能车,并使用图3所示电感排布方案以及图4所示测试场地。在识别元素的入口进行样本采集,构建模板见表1所列。

图3 电感排列

为了测试小车的稳定性和识别率,本文通过调整速度和更换赛道元素,测试小车在不同速度方案下的稳定性,具体数据见表2所列。可以看出,本文中提出的循迹识别方案能够在不同速度、不同元素(环岛、岔道)场景下实现精准的元素识别以及稳定的循迹。

表2 不同速度不同元素方案下的识别结果

4 结 语

本文对智能车现有的循迹与识别算法进行了改进,提出了一种更稳定、更高效的循迹和元素识别算法。实验证明,本文方法不但能准确循迹,还能快速准确地识别出环岛、岔道等特殊赛道元素,使得智能车的行驶速度更快、更平稳。

猜你喜欢
循迹比值电感
基于DFT算法的电力巡检无人机循迹检测系统设计
基于单片机的智能循迹小车的设计
基于NCP1608B的PFC电感设计
比值遥感蚀变信息提取及阈值确定(插图)
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
不同应变率比值计算方法在甲状腺恶性肿瘤诊断中的应用
隔离型开关电感准Z源逆变器
改进型抽头电感准Z源逆变器
基于MSP430G2553的简易数字电感表