电赛无线充电小车工程复现:磁耦合谐振与STM32底层调优
简介本资源为2020年全国大学生电子设计竞赛E题无线充电器设计的完整实战资料包面向备赛电赛的本科生及电子类竞赛初学者聚焦高频功率电路设计、磁耦合谐振建模与嵌入式系统控制等核心难点。压缩包共含百余个经实测可直接运行的工程文件以Keil MDK项目源码、Altium Designer原理图与PCB工程、测试数据Excel记录及技术说明文档为主涵盖硬件设计、驱动开发、效率优化与调试日志等全流程内容总大小200.77MB结构清晰便于分模块研习。已有328人下载学习适合希望从真实赛题出发系统掌握无线充电系统软硬协同开发方法、理解典型电赛评分要点与工程落地细节的学习者。1. 这不是一份普通压缩包2020电赛E题“无线充电电动小车”资料的工程价值与复现门槛2020年全国大学生电子设计竞赛E题——“无线充电电动小车”表面看是套控制电源通信的综合系统实则暗藏三重硬核挑战非接触式能量传输效率的实时闭环调控、多线圈切换下的动态耦合匹配、以及在毫米级位置扰动下维持稳定供电的鲁棒性设计。所谓“本人资料.zip”绝非简单电路图或代码打包它通常包含实测磁场分布数据、PCB叠层参数、谐振频率扫频原始CSV、MCU底层PWM死区补偿表甚至示波器捕获的Q值衰减曲线截图——这些才是让小车在充电区边缘不掉电、在金属托盘上不发热的关键证据链。适合两类人一是正备赛电赛/智能车赛的本科生需从真实故障现象反推设计逻辑二是高校嵌入式课程教师可直接拆解为“磁耦合谐振建模→AD采样抗干扰→PID参数整定→SPI多从机同步”四段实验模块。如果你打开压缩包只看到main.c和sch.pdf那说明你缺的不是解压工具而是理解“为什么这个电阻必须是1%精度、为什么这个电容要选NP0材质”的工程语境。2. 从压缩包结构还原硬件设计约束解析典型目录与关键文件的技术含义2.1 压缩包内常见目录层级及其工程指向2020电赛E题本人资料.zip解压后通常呈现以下结构每个路径名都对应特定设计决策/hardware/pcb/存放.brdPCB布线和.drl钻孔文件重点观察发射线圈铺铜宽度是否≥0.3mm影响Q值、接收端地平面是否分割为数字/模拟/功率三区防止高频噪声串扰ADC采样/firmware/src/含charge_ctrl.c主控逻辑和rfid_read.c位置识别注意#define CHARGE_FREQ_KHZ 135——此值需与LC谐振回路实测固有频率偏差±2kHz否则效率骤降/test_data/coil_position_2cm.csv记录不同偏移量下电压输出波动这是验证位置鲁棒性的唯一依据/doc/E题评分细则_修订版.pdf明确要求“充电区外小车续航≥3分钟”意味着待机功耗必须≤8mASTM32L0系列典型值。提示若压缩包中缺失/test_data/目录该资料大概率未经过实车验证仅停留在仿真阶段——此时需自行搭建磁场扫描平台用Hall传感器逐点测绘Bz分量。2.2 关键配置文件参数解读与修改原则以firmware/src/config.h为例其核心参数直接决定系统能否通过评审参数名典型值修改逻辑验证方法CHARGE_CURRENT_MA350若实测接收端整流后电压12V需下调至300并检查MOSFET温升用万用表测TP1点对地电压POS_DETECTION_THRESHOLD42对应RFID标签读取强度阈值金属托盘会降低信号30%需实测调整示波器抓RFID_INT引脚脉宽PWM_DEAD_TIME_NS120STM32F103默认值但IR2104驱动芯片要求≥150ns否则桥臂直通用逻辑分析仪测HO/LO相位差// charge_ctrl.c 中关键片段带注释 void start_charge(void) { // 此处必须先检测接收端反馈的负载电流而非直接使能发射 uint16_t load_current adc_read(ADC_CH_LOAD); // ADC_CH_LOAD接分流电阻 if (load_current MIN_LOAD_CURRENT) { // MIN_LOAD_CURRENT50mA error_handler(ERR_NO_RECEIVER); // 防止空载高压击穿发射线圈 return; } pwm_enable(PWM_CHANNEL_TX); // 仅当负载存在时启动PWM }这段代码体现E题隐含规则安全优先于效率。若跳过负载检测直接满占空比输出轻则烧毁IRF3205重则触发评审组“危险操作”一票否决。2.3 PCB文件中的隐藏设计线索打开/hardware/pcb/tx_coil.brd发射线圈PCB重点检查三处线圈中心孔径标准为Φ15mm用于安装定位柱——若实际加工成Φ12mm小车底盘定位销将无法插入导致耦合距离偏差1.5mm效率下降40%顶层铺铜网格尺寸必须为0.5mm×0.5mm方格非实心铺铜否则涡流损耗使线圈温升超限过孔数量每匝线圈至少2个过孔连接内外层少于2个会导致高频电流趋肤效应加剧Q值从120跌至75。验证方法用PCB设计软件测量tx_coil.brd中任意一匝线宽若实测为0.28mm标称0.3mm说明制板厂蚀刻公差超标需在config.h中将CHARGE_FREQ_KHZ下调至133kHz重新扫频。3. 在本地环境复现核心功能基于STM32F103的最小可运行系统搭建3.1 硬件物料清单与替代方案选择E题要求使用指定型号MCUSTM32F103C8T6但实际调试中常遇元件缺货以下是经实测可行的替代组合原设计器件替代方案替代理由注意事项IR2104半桥驱动IRS2003驱动能力更强2A vs 1.2A支持更高频率需修改pwm_init()中死区时间至180nsMBR20100CT肖特基整流SB5100成本低30%但反向恢复时间长20ns接收端滤波电容需从100μF增至220μFTMS3715RFID读卡芯片RC522协议兼容但需重写rfid_init()初始化序列必须禁用RC522的内部稳压器改由外部3.3V供电注意所有替代器件必须通过热成像验证——用红外热像仪拍摄工作5分钟后的发射线圈PCB温度峰值不得超过65℃国标GB/T 17626.2-2019要求。3.2 Keil MDK工程配置关键步骤在Keil v5.37中导入firmware/项目后必须完成以下三项配置Flash算法加载右键Target → “Options for Target” → “Utilities” → “Settings” → “Add Flash Programming Algorithm”选择STM32F10x_LowDensity非HighDensity因C8T6为32KB Flash若忽略此步程序下载后MCU无法启动表现为SWD接口识别失败ADC校准启用// 在main()开头添加 ADC_DeInit(ADC1); // 必须先复位 ADC_InitTypeDef ADC_InitStructure; ADC_StructInit(ADC_InitStructure); ADC_InitStructure.ADC_ContinuousConvMode ENABLE; // 连续采样模式 ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None; ADC_Init(ADC1, ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); // 重置校准寄存器 while(ADC_GetResetCalibrationStatus(ADC1)); // 等待复位完成 ADC_StartCalibration(ADC1); // 启动校准 while(!ADC_GetCalibrationStatus(ADC1)); // 等待校准结束SysTick中断优先级设置// E题要求位置检测响应延迟≤5ms故SysTick必须高于其他外设 NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel SysTick_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 0; // 最高抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; NVIC_Init(NVIC_InitStructure);3.3 无线充电效率测试的标准化流程仅靠“小车能跑”不足以证明系统合格必须执行三级效率验证测试层级工具合格标准失败处理空载效率功率分析仪如PA3000输入功率≤1.2WAC220V输入检查发射线圈Q值更换NP0电容带载效率直流电子负载IT851112V/300mA输出时整机效率≥68%调整CHARGE_CURRENT_MA参数动态效率高速摄像机位置编码器小车以5cm/s匀速穿越充电区时输出电压波动±0.5V优化PID控制器微分项系数执行带载效率测试时务必使用四线制接法将电子负载的SENSE/-端子直接夹在接收端滤波电容两端避免导线压降引入误差。若测得效率仅52%大概率是接收端整流桥二极管选用了1N4007反向恢复时间1.5μs必须更换为SS3435ns。4. 排查高频失效场景从示波器波形反推设计缺陷4.1 典型异常波形与根因分析表当小车在充电区边缘频繁重启示波器捕获到以下波形时对应不同层级的设计问题波形特征触发条件根本原因解决方案PWM波形顶部削顶发射端满占空比时电源纹波1.2Vpp导致IR2104欠压保护在VCC引脚并联100μF钽电容100nF陶瓷电容接收端整流后电压周期性跌落小车移动中RFID定位信号丢失主控误判退出充电模式检查POS_DETECTION_THRESHOLD是否低于实测值MOSFET栅极驱动波形上升沿缓慢高频工作时驱动电阻过大10Ω导致开关损耗剧增将Rg从22Ω改为4.7Ω并加装TVS二极管4.1.1 栅极驱动波形诊断实例用示波器探头接地夹接MOSFET源极信号钩接栅极设置时基100ns/div正常波形上升沿≤20ns下降沿≤15ns无振铃异常波形上升沿达80ns且伴随高频振荡50MHz——说明PCB走线电感过大需缩短驱动电阻到MOSFET栅极的距离并在驱动电阻旁并联10pF电容抑制振荡。# 使用逻辑分析仪验证SPI通信时序接收端与MCU间 # 命令saleae -c spi -f 1000000 -d /dev/ttyUSB0 --csv output.csv # 关键参数 # -f 1000000强制SPI时钟为1MHzE题要求≤2MHz # --csv导出CSV供MATLAB分析相位误差 # 若导出数据中MISO边沿抖动50ns需检查SPI引脚是否靠近PWM走线电磁干扰源4.2 温度敏感性失效的快速定位法E题设备需在35℃环境连续运行2小时若出现“运行30分钟后充电中断”按以下顺序排查测量发射线圈温升用热电偶贴附线圈中心若70℃说明Q值设计不足需增加线圈匝数每增加1匝Q值提升约3.2检查MCU内部温度传感器调用ADC_GetConversionValue(ADC1)读取内部温度通道若显示85℃证明散热设计缺陷必须在MCU背面加装0.5mm厚铜箔散热片验证电解电容ESR用LCR表测/hardware/pcb/中标注为C12100μF/25V的电容若ESR0.15Ω更换为松下FR系列ESR0.022Ω。提示所有温度相关测试必须在恒温箱中进行环境温度设定为35±0.5℃湿度40%RH——这是电赛现场评审的真实条件。5. 提升评审得分的关键技巧让硬件设计“可解释、可复现、可验证”5.1 在原理图中嵌入设计依据标注评审专家最关注“为什么这样选”而非“用了什么器件”。在/hardware/sch/的原理图中对关键器件添加文本标注在IR2104旁注明“驱动能力1.2A25℃满足IRF3205栅极电荷Qg71nC需求t_onQg/I_drive59ns100ns”在接收端滤波电容旁标注“100μF/25VESR≤0.05Ω确保135kHz纹波电压ΔV≤0.3V计算依据ΔVI_load/(2πfC)”在RFID天线匹配网络处写“L11.2μH/C122pF谐振频率f1/(2π√LC)13.56MHz符合ISO15693标准”。此类标注不占用额外空间却能让评审组3秒内确认设计合规性。5.2 测试数据的可视化呈现规范将/test_data/中的CSV数据转化为专业图表必须满足X轴为位置坐标单位mmY轴为输出电压单位V曲线需标注±0.5V公差带在图表右下角添加二维码链接至GitHub仓库中对应数据生成脚本PythonMatplotlib每张图标题注明测试条件“环境温度25℃输入电压12.0V负载电流300mA”。# data_plot.py 示例生成符合评审要求的图表 import pandas as pd import matplotlib.pyplot as plt df pd.read_csv(coil_position_2cm.csv) plt.figure(figsize(10,6)) plt.plot(df[position], df[vout], b-, linewidth2, labelMeasured Vout) plt.fill_between(df[position], df[vout]-0.5, df[vout]0.5, alpha0.2, colorblue, label±0.5V Tolerance) plt.xlabel(Position (mm), fontsize12) plt.ylabel(Output Voltage (V), fontsize12) plt.title(Output Voltage vs Position 25°C, 12.0V Input, fontsize14) plt.grid(True, linestyle--, alpha0.7) plt.legend() plt.savefig(vout_vs_position.png, dpi300, bbox_inchestight)5.3 代码注释的工程化表达避免// 初始化GPIO这类无效注释改为// 配置PA0为ADC1_IN0采样时间239.5周期对应135kHz PWM周期内完成1次完整采样 // 依据ADC转换时间采样时间12.5周期总时间≤7.4μsPWM周期7.4μs135kHz GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN; GPIO_Init(GPIOA, GPIO_InitStructure);这种注释直接关联E题技术指标评审组可据此判断开发者是否真正理解系统时序约束。本文还有配套的精品资源点击获取
上一篇/下一篇内容由系统自动关联
返回资讯列表 →