要让车模在赛道上运行起来,完成比赛任务,首先要对主控系统及各个模块进行初始化,然后利用传感器获取赛道信息并进行相应的处理,接着将处理后的数据送入车模运动控制系统使电机等相关运动模块运行,最后利用编码器和陀螺仪等传感器获取车模运动姿态,进一步完成闭环控制。图10.29所示为节能车模的软件系统整体架构框图,下面将对主要的软件模块进行详细介绍。
图10.29 软件系统整体架构框图
(1)初始化模块
在车模运行之前需要完成控制系统的配置,各个模块的“激活”,以及基本参数的初始化。如图10.30所示为初始化模块的流程图,其主要包括定时器中断、基本外设和参数的初始化,以下为具体的初始化程序[注:程序是在IAR环境下基于LPLD固件库(LPLD OSKinetis V3版)编写的]。
图10.30 初始化模块程序流程图
(2)赛道信息采集模块
赛道中线铺有电磁线,车模利用一定排布的电感可以获取赛道电磁场信息,然后利用ADC采集模块将模拟量转化为数字量可以获得电磁场相对大小,进而可以获取赛道中线。图10.31为节能车模电感排布图,其中1,2,3号电感为横电感(即方向与车模运动方向垂直);4,5号电感为安装方向与车模运动方向平行的竖电感,其中横电感主要用于车模基础循线,竖电感用于特殊元素的判定与处理,并提供一部分的基础循线中线修正。竖电感用于特殊元素的处理将在后续小节介绍,这里主要介绍一下如何利用横电感获取车模与赛道中线偏差。图10.32为赛道中线提取程序流程图,首先需要将电感获得的模拟量经AD转换为数字量,为减小噪声干扰,采集三次电感值平均后作为初始测量值。
由于各个电感的电阻匹配或者电路影响,获取的电感值绝对大小不同,需要进行归一化处理,即利用当前测量值减去电感最小值再与电感最大测量值做比值。为了方便计算,最后将获取的归一化系数乘以100用于后续计算,程序如下所示。
图10.31 车模电感排布图(www.xing528.com)
图10.32 赛道中线提取程序流程图
然后将获取的归一化电感值用于车模方向与赛道中线的偏差计算,两侧横电感值处理方法为差比和归一化,即将左右电感值的差与和相比得到偏差系数。中间横电感值得处理方法为将其与最大值做差后再与最大值做比值得到中间电感偏差系数。两侧竖电感的处理方式与横电感类似,但由于其对车模基础循线影响不大,贡献度系数设置得较低。最终将各个偏差系数乘以各自贡献度系数,经滑动滤波处理后作为车模偏离中线的偏差值,相关程序如下。
(3)时钟中断模块
图10.33 中断程序流程图
中断模块将中断程序周期性地执行,其程序流程如图10.33所示。该程序每1 ms进入一次中断,在未发车情况下,即无线充电阶段开启超级电容电量检测,为自动发车做准备。发车后每1 ms读取一次陀螺仪数据,每2 ms进行中线偏差计算、转向环控制和电机控制将在10.5.2运动控制策略中进行介绍,其程序如下所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。