对于山东威海-无线充电组技术报告中的疑问及其回复

举报
tsinghuazhuoqing 发表于 2022/08/30 00:30:24 2022/08/30
【摘要】 ...

技术报告中的疑问
目 录
Contents
电机驱动电源
LED灯板控制
山魂八队回复疑问
网络标号回应
硬件放过充电路设计
软件设计回应
车模运行控制
程序控制设计

 

01 术报告中的疑问


  山东威海无线充电组技术报告中: 第十七届智能车竞赛技术报告-无线充电组-山东大学(威海) 中存在以下两点技术疑问。

1.1 电机驱动电源

  在电机驱动电源中,显示 功率器件 BTN7971 的 VS的电源来自于 BAT。那么这个 BAT 的连接是来自于车模上的 锂电池? 还是无线接受模块整流后的电源呢?

▲ 图1.1.1 电机驱动模块电路

▲ 图1.1.1 电机驱动模块电路

▲ 图1.1.2 BTN7971 功能模块

▲ 图1.1.2 BTN7971 功能模块

1.2 LED灯板控制

  按照技术报告中的LED灯板控制程序,最后一行 gpio_set(LE,0) 这说明 板上最后一排三个 LED应该始终无法点亮,那么灯板如何能够显示超过 12V 的电压呢?

▲ 图1.2.1 灯板控制程序

▲ 图1.2.1 灯板控制程序

  根据 竞赛裁判员手册关于无线充电组检查标准 ,要求对于无线充电组进行充电测试,当法拉电容电压处在 12.5V - 13.5V 之间的时候, 点亮 13 个 LED。

 

02 魂八队回复疑问


2.1 网络标号回应

2.1.1 BAT 网络标号

  功率器件BTN7971VS电源网络标号为BAT,该BAT表示无线接收模块整流后的电源,是电容的输出接口,PCB三维视图特写如下,P6为所示BAT接口。

▲ 图3.1.1 驱动模块PCB三维视图BAT特写

▲ 图3.1.1 驱动模块PCB三维视图BAT特写

  此P6 与下图箭头所指接收模块整流后电源直接相连(即整流输出电源直接与驱动中BAT-GND相连)

▲ 图3.1.2 无线接收模块整流输出端口

▲ 图3.1.2 无线接收模块整流输出端口

  将车模拆卸后实际接线如下所示,并在多次车模检查中被裁判检查和认可,连线方法如图白线所示,各端口名称已在图中标注。

▲ 图3.1.3 车模BAT实现连接图

▲ 图3.1.3 车模BAT实现连接图

▲ 图3.1.4 电容供电示意图

▲ 图3.1.4 电容供电示意图

  超级电容组与充电接收端整流输出接口相连,并与驱动板BAT即P6接口相连,用电容储存的电能为驱动BTN提供能量。并在相应连线中引出放电接口可与放电电阻相连。方便比赛和平时测试训练中对于电能的释放和测量。并且在多次检查和正式比赛过程中被裁判检查并认可。

2.1.2 VCC-BAT网络标号

  除驱动部分外,其余为电池供电,网络标号为VCC-BAT。供电原理图如下图所示即VCC-BAT为电池输入。

▲ 图3.1.5 电池供电(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 硬件通过比较控制继电器实现防止过充部分电路

▲ 图3.2.1 硬件通过比较控制继电器实现防止过充部分电路

  根据LMV321电路的性质特点可以通过调节R5和R4的阻值来限定继电器高触发电平和低触发电平并作出如下计算:

▲ 图3.2.2 继电器触发计算公式,参照逐飞设计方案

▲ 图3.2.2 继电器触发计算公式,参照逐飞设计方案

  继电器工作实际情况如下测试视频可见:

▲ 图2.2.3  继电器模块应用展示

▲ 图2.2.3 继电器模块应用展示

动图视频配音:现在展示继电器模块的作用,即当(充点电容上电压)超过某一电压时电压不再充入,其放过充装置。现在打开发射端电压,电压上升,在12.4V左右的时候停止充电,并缓慢下降。即使发射端处在打开状态它也不冲入电压。

  并在充电接收板中Coil N和Coil P与接收线圈直接相连通过继电器实现防止过充的作用。PCB与实际接线如下图:

▲ 图2.2.4 线圈焊接位置

▲ 图2.2.4 线圈焊接位置

▲ 图2.2.5 线圈焊接实物图

▲ 图2.2.5 线圈焊接实物图

  图 9 线圈焊接位置

  图 10 线圈放置实物图

  综上所述为了防止因为误差或者停桩等问题,首先通过硬件对可冲入电压的最高值进行锁定限压,目的是防止在行驶过程中出现违规现象。后再由软件通过采集并通过线性处理对灯板上的12个灯进行点亮。

2.3 软件设计回应

2.3.1 灯板控制程序设计

  灯板采用的是LED矩阵灯,我们采用的亮灯方式是,灯的个数代表电量的多少,灯板上的灯越多,代表电量越多。灯的点亮方式为同时点亮多个灯,那么要做到这一点,就一定需要扫描程序。为此,我们采用中断扫描的方式,对于扫描设置中断周期,使得该中断既不浪费资源,又不会让灯闪烁过于频繁,采用行扫描的方式。工作流程主要是,首先根据实际电量数值,然后在每一次中断中依次激活某一行的某几个灯,来回循环,当循环频率达到一定程度时,在人眼的视觉中,灯即为常亮,这是矩阵灯软件扫描的基本原理,我们的程序如下:

【与前面:LED灯板控制】程序相同

 

2.4 车模运行控制程序控制设计

2.4.1 车库充电程序设计

  首先对于ADC口的数据进行采集并缩放到一定的比例,程序如下:

▲ 图2.4.1 ADC 采集程序

▲ 图2.4.1 ADC 采集程序

  这个是直接采用了逐飞的库函数对于ADC口的数据进行采集然后进行比例缩放。

  再对于该数据进行偏置和限幅处理(综合来说也就是对于ADC信号进行线性处理,转化为电压值),该数值不超过12,这样处理后,经验测得实际电压与这个电压在允许精度内相吻合。

▲ 图2.4.2 偏置以及限幅处理

▲ 图2.4.2 偏置以及限幅处理

  再将这个“voltage_light”变量,也就是电压移交给灯板显示程序,该程序已经在技术报告中展示,通过行选中和列选中的方式点亮灯板对应的灯。

2.4.2 关于充电

  在初始电桩处和中间停车补电一次的电桩处,采用经验定时的方法进行充电,并不是通过检测是否达到某一电压值来判断是否起车的,达到充电时间就起车。这个时间的计算如下:

▲ 图2.4.3 1ms中断程序

▲ 图2.4.3 1ms中断程序

  这个是我规定的1ms的中断

▲ 图2.4.4 系统时间程序

▲ 图2.4.4 系统时间程序

  启动单片机后,每进入一次中断对于“Time_Sys_ms”进行+1,当这个变量等于100时,时间就大约过去了0.1秒,也就是“Time_Sys”进行+1。这个是整个车辆运行过程中的时间基准。

2.4.3 中间桩充电程序设计

  对于初始电桩,设置一个时间,如果系统时间小于这个时间,那么令PWM控制信号为0,大于这个时间后,开启所有的运动,以此来实现初始电桩停车充电:

▲ 图2.4.5 小于初始电桩启动时间,车辆PWM信号关闭

▲ 图2.4.5 小于初始电桩启动时间,车辆PWM信号关闭

  对于中途补电的电桩,我们直接根据经验得到应该在哪一个电桩补电合适,选择了三叉处的那个电桩。对于这个电桩的停车充电,主要流程的介绍在下面介绍。

  首先,通过赛道元素和是否邻近电桩来判断要不要进入停车流程:

▲ 图2.4.6 停车充电流程函数

▲ 图2.4.6 停车充电流程函数

  上图是一个充电控制函数,是放在中断中反复执行的:

▲ 图2.4.7 发车后一段时间屏蔽停车充电流程函数

▲ 图2.4.7 发车后一段时间屏蔽停车充电流程函数

  由于一开始我们肯定要经过一次三叉,而我们又不会在这一次停,所以出库一段时间内,直接不让该函数执行。

▲ 图2.4.8 中途停桩总体工作流程图

▲ 图2.4.8 中途停桩总体工作流程图

  设置了中途停桩的整体工作流程为检测电桩、停车充电、慢启动以及充电结束。

  设置了一个“charge_state”的变量作为充电状态的衡量变量,如果不为0的话视为进入充电流程,这样在中断反复运行“Charge_Control()”这个函数的时候,不会执行上一个或下一个状态的动作。

▲ 图2.4.9 识别不要进入正题充电流程图

▲ 图2.4.9 识别不要进入正题充电流程图

  “if”中三个判断条件分别是是否接近电桩,充电状态是否为0,以及是否识别到对应元素,进入状态1后,在“contact_stack_time”中记录当前系统时间,同时将“charge_state”,也就是充电状态进入下一个状态。对于是否接近电桩,可以参考150khz检测板ADC采集数值表现的这张图

▲ 图2.4.10 150kHz 检测板ADC数值样图

▲ 图2.4.10 150kHz 检测板ADC数值样图

  经过实际测验,ADC采集到的数值随着离充电桩线圈中心距离变化如图所示,会随着与电桩中心的接近逐渐上升,在有一个极小的范围内,其采集的数值会出现陡降。对于这种情况,无法单纯地从某一个电压数值来判断什么时候该停车,而需要一个数据的历史变化。

▲ 图2.4.11 状态1的工作

▲ 图2.4.11 状态1的工作

  当“charge_state”为1的时候,不断根据150khz检测板ADC采集数值判断是否达到应该停车对应的ADC检测数值,如果达到了那么进入状态2,并且记录当前系统时间 (“meet_charge_time”)。

▲ 图2.4.12 状态2的工作

▲ 图2.4.12 状态2的工作

  进入状态2之后,将一个“ready_to_charge”的变量置位有效,该变量有效后,会进行停车动作,停车动作的程序如下:

▲ 图2.4.13 停车PI控制程序

▲ 图2.4.13 停车PI控制程序

  “Speed_Base”是期望的目标速度,这里我们仅仅解释停车,也就是目标速度为0的情况,它的PI参数是不同于行驶过程中的PI参数的,这样方便调节。

  然后,计算当前系统时间和进入状态2时候的时间差,如果它大于某个经验数值就进入下一个状态(状态3),也就是“启车”状态,并记录当前时间“leave_stack_time

▲ 图2.4.14 状态3的工作

▲ 图2.4.14 状态3的工作

  这里将“slow_down”记为有效位,这里的“slow_down”是交给控制系统的,因为如果直接进行常规赛道的速度控制,那么这里肯定会抬头很长的距离,这是会罚时的,所以交给控制系统后,控制系统会减小速度,一旦这种控制超过某个时间,也就是图中的“slow_down_after_charge”之后将此变量置0,这样就完成了所有充电步骤。

  所以在实际编写中由于硬件通过继电器对电容里的电压已经有了明确且肯定的限制不会超过12.4V,无论在什么情况下有了放过充装置不会出现超过12.5V这一临界线情况。所以我们选择仅对12个灯进行点亮控制即可。


■ 相关文献链接:

● 相关图表链接:

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/126575012

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。