对于山东威海-无线充电组技术报告中的疑问及其回复
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于山东威海-无线充电组技术报告中的疑问及其回复相关的知识,希望对你有一定的参考价值。
01 技术报告中的疑问
在山东威海无线充电组技术报告中: 第十七届智能车竞赛技术报告-无线充电组-山东大学(威海) 中存在以下两点技术疑问。
1.1 电机驱动电源
在电机驱动电源中,显示 功率器件 BTN7971 的 VS的电源来自于 BAT。那么这个 BAT 的连接是来自于车模上的 锂电池? 还是无线接受模块整流后的电源呢?
▲ 图1.1.1 电机驱动模块电路
▲ 图1.1.2 BTN7971 功能模块
1.2 LED灯板控制
按照技术报告中的LED灯板控制程序,最后一行 gpio_set(LE,0) 这说明 板上最后一排三个 LED应该始终无法点亮,那么灯板如何能够显示超过 12V 的电压呢?
▲ 图1.2.1 灯板控制程序
根据 竞赛裁判员手册关于无线充电组检查标准 ,要求对于无线充电组进行充电测试,当法拉电容电压处在 12.5V - 13.5V 之间的时候, 点亮 13 个 LED。
02 山魂八队回复疑问
2.1 网络标号回应
2.1.1 BAT 网络标号
功率器件BTN7971
的VS
电源网络标号为BAT
,该BAT
表示无线接收模块整流后的电源,是电容的输出接口,PCB
三维视图特写如下,P6
为所示BAT
接口。
▲ 图3.1.1 驱动模块PCB三维视图BAT特写
此P6 与下图箭头所指接收模块整流后电源直接相连(即整流输出电源直接与驱动中BAT-GND相连)
▲ 图3.1.2 无线接收模块整流输出端口
将车模拆卸后实际接线如下所示,并在多次车模检查中被裁判检查和认可,连线方法如图白线所示,各端口名称已在图中标注。
▲ 图3.1.3 车模BAT实现连接图
▲ 图3.1.4 电容供电示意图
超级电容组与充电接收端整流输出接口相连,并与驱动板BAT即P6接口相连,用电容储存的电能为驱动BTN提供能量。并在相应连线中引出放电接口可与放电电阻相连。方便比赛和平时测试训练中对于电能的释放和测量。并且在多次检查和正式比赛过程中被裁判检查并认可。
2.1.2 VCC-BAT网络标号
除驱动部分外,其余为电池供电,网络标号为VCC-BAT
。供电原理图如下图所示即VCC-BAT
为电池输入。
▲ 图3.1.5 电池供电(VCC-BAT)展示
2.2 硬件放过充电路设计
根据 第十七届全国大学生智能车竞赛裁判员手册 要求 :
比赛的时候,参赛车模先完成放电测试。然后参赛队伍手持车模。在比赛计时开始之后,将车模防止在赛道上进行充电。在此过程中,可以移动车模使其充电功率达到最大。要求车模在充电电压显示LED中第13个LED点亮之前自动出发。并在整个比赛过程中,车载LED显示板上的LED点亮个数都需要小于13个。
为了防止在行使途中出现超过12.5V
现象造成比赛成绩无效,也已经在检查车模时被裁判检查并认证,我们选择硬件通过如下电路利用继电器起到防止过充的作用将电压直接限制在12.5V
以下(即灯板亮灯个数最多不会超过12
个,无论在什么情况下不会过充,保持小于等于12
个灯),确保不会造成比赛时因为停桩过充造成的违规现象和采集误差等问题造成的比赛违规现象。同时要求在亮第12
个灯时电压处于11.5V-12.5V
之间,通过充电接收板中如下电路进行实现:
▲ 图3.2.1 硬件通过比较控制继电器实现防止过充部分电路
根据LMV321电路的性质特点可以通过调节R5和R4的阻值来限定继电器高触发电平和低触发电平并作出如下计算:
▲ 图3.2.2 继电器触发计算公式,参照逐飞设计方案
继电器工作实际情况如下测试视频可见:
▲ 图2.2.3 继电器模块应用展示
动图视频配音:现在展示继电器模块的作用,即当(充点电容上电压)超过某一电压时电压不再充入,其放过充装置。现在打开发射端电压,电压上升,在12.4V左右的时候停止充电,并缓慢下降。即使发射端处在打开状态它也不冲入电压。
并在充电接收板中Coil N和Coil P与接收线圈直接相连通过继电器实现防止过充的作用。PCB与实际接线如下图:
▲ 图2.2.4 线圈焊接位置
▲ 图2.2.5 线圈焊接实物图
图 9 线圈焊接位置
图 10 线圈放置实物图
综上所述为了防止因为误差或者停桩等问题,首先通过硬件对可冲入电压的最高值进行锁定限压,目的是防止在行驶过程中出现违规现象。后再由软件通过采集并通过线性处理对灯板上的12个灯进行点亮。
2.3 软件设计回应
2.3.1 灯板控制程序设计
灯板采用的是LED
矩阵灯,我们采用的亮灯方式是,灯的个数代表电量的多少,灯板上的灯越多,代表电量越多。灯的点亮方式为同时点亮多个灯,那么要做到这一点,就一定需要扫描程序。为此,我们采用中断扫描的方式,对于扫描设置中断周期,使得该中断既不浪费资源,又不会让灯闪烁过于频繁,采用行扫描的方式。工作流程主要是,首先根据实际电量数值,然后在每一次中断中依次激活某一行的某几个灯,来回循环,当循环频率达到一定程度时,在人眼的视觉中,灯即为常亮,这是矩阵灯软件扫描的基本原理,我们的程序如下:
2.4 车模运行控制程序控制设计
2.4.1 车库充电程序设计
首先对于ADC
口的数据进行采集并缩放到一定的比例,程序如下:
▲ 图2.4.1 ADC 采集程序
这个是直接采用了逐飞的库函数对于ADC
口的数据进行采集然后进行比例缩放。
再对于该数据进行偏置和限幅处理(综合来说也就是对于ADC
信号进行线性处理,转化为电压值),该数值不超过12
,这样处理后,经验测得实际电压与这个电压在允许精度内相吻合。
▲ 图2.4.2 偏置以及限幅处理
再将这个“voltage_light
”变量,也就是电压移交给灯板显示程序,该程序已经在技术报告中展示,通过行选中和列选中的方式点亮灯板对应的灯。
2.4.2 关于充电
在初始电桩处和中间停车补电一次的电桩处,采用经验定时的方法进行充电,并不是通过检测是否达到某一电压值来判断是否起车的,达到充电时间就起车。这个时间的计算如下:
▲ 图2.4.3 1ms中断程序
这个是我规定的1ms的中断
▲ 图2.4.4 系统时间程序
启动单片机后,每进入一次中断对于“Time_Sys_ms
”进行+1
,当这个变量等于100
时,时间就大约过去了0.1
秒,也就是“Time_Sys
”进行+1
。这个是整个车辆运行过程中的时间基准。
2.4.3 中间桩充电程序设计
对于初始电桩,设置一个时间,如果系统时间小于这个时间,那么令PWM控制信号为0,大于这个时间后,开启所有的运动,以此来实现初始电桩停车充电:
▲ 图2.4.5 小于初始电桩启动时间,车辆PWM信号关闭
对于中途补电的电桩,我们直接根据经验得到应该在哪一个电桩补电合适,选择了三叉处的那个电桩。对于这个电桩的停车充电,主要流程的介绍在下面介绍。
首先,通过赛道元素和是否邻近电桩来判断要不要进入停车流程:
▲ 图2.4.6 停车充电流程函数
上图是一个充电控制函数,是放在中断中反复执行的:
▲ 图2.4.7 发车后一段时间屏蔽停车充电流程函数
由于一开始我们肯定要经过一次三叉,而我们又不会在这一次停,所以出库一段时间内,直接不让该函数执行。
▲ 图2.4.8 中途停桩总体工作流程图
设置了中途停桩的整体工作流程为检测电桩、停车充电、慢启动以及充电结束。
设置了一个“charge_state
”的变量作为充电状态的衡量变量,如果不为0
的话视为进入充电流程,这样在中断反复运行“Charge_Control()
”这个函数的时候,不会执行上一个或下一个状态的动作。
▲ 图2.4.9 识别不要进入正题充电流程图
“if
”中三个判断条件分别是是否接近电桩,充电状态是否为0
,以及是否识别到对应元素,进入状态1
后,在“contact_stack_time
”中记录当前系统时间,同时将“charge_state
”,也就是充电状态进入下一个状态。对于是否接近电桩,可以参考150khz
检测板ADC
采集数值表现的这张图
▲ 图2.4.10 150kHz 检测板ADC数值样图
经过实际测验,ADC采集到的数值随着离充电桩线圈中心距离变化如图所示,会随着与电桩中心的接近逐渐上升,在有一个极小的范围内,其采集的数值会出现陡降。对于这种情况,无法单纯地从某一个电压数值来判断什么时候该停车,而需要一个数据的历史变化。
▲ 图2.4.11 状态1的工作
当“charge_state
”为1
的时候,不断根据150khz
检测板ADC
采集数值判断是否达到应该停车对应的ADC
检测数值,如果达到了那么进入状态2
,并且记录当前系统时间 (“meet_charge_time
”)。
▲ 图2.4.12 状态2的工作
进入状态2
之后,将一个“ready_to_charge
”的变量置位有效,该变量有效后,会进行停车动作,停车动作的程序如下:
▲ 图2.4.13 停车PI控制程序
“Speed_Base
”是期望的目标速度,这里我们仅仅解释停车,也就是目标速度为0
的情况,它的PI
参数是不同于行驶过程中的PI
参数的,这样方便调节。
然后,计算当前系统时间和进入状态2
时候的时间差,如果它大于某个经验数值就进入下一个状态(状态3
),也就是“启车”状态,并记录当前时间“leave_stack_time
”
▲ 图2.4.14 状态3的工作
这里将“slow_down
”记为有效位,这里的“slow_down
”是交给控制系统的,因为如果直接进行常规赛道的速度控制,那么这里肯定会抬头很长的距离,这是会罚时的,所以交给控制系统后,控制系统会减小速度,一旦这种控制超过某个时间,也就是图中的“slow_down_after_charge
”之后将此变量置0
,这样就完成了所有充电步骤。
所以在实际编写中由于硬件通过继电器对电容里的电压已经有了明确且肯定的限制不会超过12.4V
,无论在什么情况下有了放过充装置不会出现超过12.5V
这一临界线情况。所以我们选择仅对12
个灯进行点亮控制即可。
■ 相关文献链接:
● 相关图表链接:
- 图1.1.1 电机驱动模块电路
- 图1.1.2 BTN7971 功能模块
- 图1.2.1 灯板控制程序
- 图3.1.1 驱动模块PCB三维视图BAT特写
- 图3.1.2 无线接收模块整流输出端口
- 图3.1.3 车模BAT实现连接图
- 图3.1.4 电容供电示意图
- 图3.1.5 电池供电(VCC-BAT)展示
- 图3.2.1 硬件通过比较控制继电器实现防止过充部分电路
- 图3.2.2 继电器触发计算公式,参照逐飞设计方案
- 图2.2.3 继电器模块应用展示
- 图2.2.4 线圈焊接位置
- 图2.2.5 线圈焊接实物图
- 图2.4.1 ADC 采集程序
- 图2.4.2 偏置以及限幅处理
- 图2.4.3 1ms中断程序
- 图2.4.4 系统时间程序
- 图2.4.5 小于初始电桩启动时间,车辆PWM信号关闭
- 图2.4.6 停车充电流程函数
- 图2.4.7 发车后一段时间屏蔽停车充电流程函数
- 图2.4.8 中途停桩总体工作流程图
- 图2.4.9 识别不要进入正题充电流程图
- 图2.4.10 150kHz 检测板ADC数值样图
- 图2.4.11 状态1的工作
- 图2.4.12 状态2的工作
- 图2.4.13 停车PI控制程序
- 图2.4.14 状态3的工作
以上是关于对于山东威海-无线充电组技术报告中的疑问及其回复的主要内容,如果未能解决你的问题,请参考以下文章