ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

2026 年电赛(TI 杯)H 题:摆杆机械结构、MaxiCamPro 测量、步进编码器与三层 PID

2026 年电赛(TI 杯)H 题:摆杆机械结构、MaxiCamPro 测量、步进编码器与三层 PID 个人主页wengqidaifeng✨永远在路上永远向前走个人专栏数据结构C语言嵌入式小白启动重要OJ算法题详解蓝桥杯备战C从菜鸟到强手python启航AI大模型Agent拥抱未来赋能自己文章目录博客系列总目录与阅读路线推荐阅读顺序全系列知识地图总览仓库资料边界开源说明第六篇摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PID1. 滚球系统为什么是欠驱动控制2. 机械结构是闭环的一部分3. 步进驱动不能等同于位置闭环4. MaxiCamPro 负责测量而不是下命令5. 三层串级 PID6. 调参顺序7. 到达判定和任务状态机8. 车体姿态前馈9. 与往年摆杆、云台和球板题的比较10. 本篇结论11. 简化动力学与控制参数的物理意义博客系列总目录与阅读路线本系列记录 MSPM0G3507 双主控小车从赛题分析、硬件搭建、底层驱动、循迹调试到摆杆滚球控制和最终测评复盘的完整过程。文章中的路径均为仓库相对路径代码、测试脚本和模块封装可以直接从公开仓库取得。推荐阅读顺序赛题拆解、总体方案与往年控制类小车赛题比较硬件选型、接线与上电验证软件架构、SysConfig 与模块化设计编码器速度环、差速运动学、MPU6050 航向环与直线稳定8 路灰度循迹、直线/半圆分段与 S1/S2/S3 状态机摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PIDMaxiCamPro、双主控通信、VOFA 遥测与可复现实验方法完整测评流程、失败案例复盘、比赛策略与开源交付全系列知识地图H题车载平衡滚球赛题与指标赛道圈时启停判据滚球目标点硬件系统MSPM0G3507TB6612与编码器灰度与MPU6050MaxiCamPro与步进电机软件控制速度环航向环灰度状态机三层滚球PID工程方法接线验证VOFA遥测回归测试测评复盘总览这道题不是单独写一个循迹 PID而是把机械结构、电源、传感器、实时调度、速度闭环、航向辅助、视觉通信、双主控安全和赛道状态机组合成一个可测量、可恢复、可验收的系统。调试时坚持“每次只改变一个因素”并用串口遥测、主机回归测试和实车视频记录证据。仓库资料边界小车运动主控工程公开仓库根目录smartcar_keil_diag/通用模块封装公开仓库中的ModulePackage/摆杆/滚球控制参考工程BalanceController/硬件与接线说明Hardware/主机测试与回归脚本Tests/主控、蓝牙、VOFA 和双主控协议说明仓库根目录下相应的*.md文件主控采用 LCKFB 天猛星 MSPM0G3507车体约为 30 cm × 24 cm车轮直径约 65 mm。实际使用的主要器件包括 JGB37-520 直流减速电机、TB6612 驱动器、MPU6050、8 路灰度传感器、MaxiCamPro 和无编码器步进电机。涉及具体电气参数、安装尺寸和控制增益时应以实测记录和仓库中的配置为准不要直接照搬示例数值。开源说明完整工程、博客、测试脚本和模块封装均发布在 GitHubhttps://github.com/wengqidaifeng/smartcar_keil_diag建议按 01→08 的顺序阅读需要查代码时从User/、Source/、ModulePackage/和Tests/进入。文章中的结论区分为“源码已实现”“主机测试已验证”和“必须在实车/机构上复测”三类便于后来者复现实验并继续改进。第六篇摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PID1. 滚球系统为什么是欠驱动控制球槽只有一个可控倾角钢球却有位置和速度两个状态。控制器不能直接给钢球施加力只能改变槽的倾角让重力沿槽方向产生分量。因此球位置对球杆角度的响应具有惯性和积分特性倾角持续为正球会不断加速等球到目标点才把槽放平通常已经来不及球会依靠惯性越过目标。这类系统与普通舵机位置控制不同也与倒立摆不同。它不要求把不稳定杆直立但同样需要利用速度趋势提前制动。若只用target-position直接输出倾角P 小时响应慢P 大时反复越界。加入球速度环使控制器在接近目标且球仍高速运动时提前反倾可以显著减小超调。2. 机械结构是闭环的一部分球槽约 25 cm中心标记 O两侧至少覆盖 ±5 cm。转轴支撑高度约 6 cm必须保证最大倾角时槽底最低点仍满足题目高度要求并考虑槽体挠度、钢球直径和车体振动。若半槽长 125 mm、允许端点下降约 10 mm几何倾角上限约为asin(10/125)≈4.6°实际还要留安全余量。一个自由度必须由一个明确转轴约束。普通家具合页存在轴向窜动、回差和安装不同轴问题两只合页若不共线会卡滞步进电机发出脉冲但球杆角度不动最终表现为“PID 输出很大、球却反应慢”。推荐使用步进云台自带轴承或刚性转轴作为主转动副合页只作辅助承重摇臂和连杆两端使用可转动连接避免过约束。步进电机、联轴器、摇臂和支架应尽量同轴紧固后做位置标记便于发现松动。重件放在车体低层摆杆转轴靠近车体几何中心避免重心偏移导致驱动轮负载变化。相机固定在车体刚性支架上不能随球杆一起运动视野覆盖整个槽且连杆不遮挡球。3. 步进驱动不能等同于位置闭环D36A 接收 ST、DIR、EN 等控制信号ST 上升沿产生一步细分和电流由拨码设置。发送了多少脉冲只代表命令位置不代表电机实际到位加速度过大、机构卡滞、电流不足或碰到限位都会失步。因此开环步数最多用于软限位和诊断不能作为正式球杆角度反馈。当前正式方案考虑带 MT6816 编码器的步进电机。AB 相可提供每圈多计数反馈PWM 提供单圈绝对角Z 相提供每圈基准。AB 用于快速角度和角速度更新PWM/Z 用于上电校准和一致性检查。编码器 VCC 与输出逻辑必须确认是 3.3 V线序 GND/Z/PWM/B/A/VCC 不得凭颜色猜。球杆角度与电机轴角度通常不是固定比例因为摇臂—连杆机构的几何关系非线性。可以在安全范围内每隔约 1°记录一次编码器计数和实测球杆角度建立分段线性表。控制器根据编码器计数插值得到真实角度而不是简单乘一个常数。若最终使用无编码器步进电机至少需要机械回零、限位开关、低加速度和周期性重新找零但性能与故障可观测性会下降。4. MaxiCamPro 负责测量而不是下命令相机输出钢球位置、球杆中心和目标相关信息。典型BALL帧结构为BALL,count,x,y,z,diam,...数量后每个球包含横向、纵向、距离和直径字段。另一种正式脚本可输出球中心CX/CY、槽中心OX/OY和相对偏差。无论采用哪种格式视觉端都应该发送测量不能直接发送“步进向上/向下”命令。由主控计算方向的原因有三点。第一主控知道当前目标、限位和球杆角度第二视觉帧存在延迟过期方向命令可能已经反向第三主控可以在丢帧时执行安全降级。视觉只负责“球在哪里”控制器负责“下一步怎样动作”。像素不能直接当毫米。相机安装完成后在 O、50 mm、-50 mm 处分别采样多个帧建立像素到毫米的比例或分段映射。若槽在图像中不是竖直方向不能只用CY-OY应先求槽轴单位向量再将球心与 O 点的二维差投影到轴上。镜头畸变明显时需要更多标定点或透视校正。多球检测时要有目标选择规则例如选择最接近槽中心、直径合理且连续轨迹最近的球。字段数量必须满足24×count超长帧、非法数字、全零帧和数据年龄超限都应判为无效。视觉年龄超过约 150 ms 时停止新增步进请求持续约 500 ms 则锁存故障并失能具体门限要结合实测帧率调整。5. 三层串级 PID正式控制链为球位置误差进入位置环输出目标球速度目标球速度与视觉差分得到的实际球速度比较进入速度环输出目标球杆角度目标角度与编码器实际角度比较进入角度环输出目标脉冲频率或等效力矩命令。位置环关注最终误差带宽最低。可写为v_ball_ref PID_pos(x_ref - x)输出需要限幅避免距离目标较远时要求过高球速。接近目标时可使用目标速度曲线或误差死区。积分只用于克服轻微槽倾斜或摩擦不宜过大。球速度由相邻视觉帧差分v_ball (x_k - x_{k-1}) / Δt视觉噪声会被差分放大因此需要时间戳、低通或滑动拟合。速度环计算目标倾角theta_ref PID_vel(v_ball_ref - v_ball) theta_ff目标倾角限制在机械安全范围例如初期 ±24°。接近目标而球仍高速前进时速度误差会使theta_ref反向实现提前制动。角度内环根据编码器反馈输出目标脉冲频率step_rate PID_angle(theta_ref - theta)脉冲频率还要经过最大频率、加速度、方向建立时间和软限位。角度环带宽最高应先独立调好如果角度跟不上外层再聪明也无效。三层都要有抗饱和角度已经到限位时速度环和位置环不能继续积分。6. 调参顺序第一阶段不放球只调角度环。给出 -1°、0°、1° 等小阶跃观察实际角度、超调、稳定时间和编码器方向。先低脉冲频率、低加速度确认无失步、无卡滞和限位有效再增加速度。角度环不稳定时禁止进入下一阶段。第二阶段放球但固定目标在中心只调球速度环。可人工给球一个小扰动观察控制器是否产生反向倾角并减速。位置环暂时弱化或关闭避免两个外环互相掩盖。球速估算噪声过大时先处理视觉滤波不要用更大 D 硬压。第三阶段调位置环从小位移开始例如 ±1 cm再逐步扩大到 ±5 cm。先调 P 使球能到目标再加入速度环制动最后用很小积分消除偏置。每次记录到达时间、首次越界、最大超调、稳定时间和最终误差。5 s 任务应从离开 O 开始连续计时贯穿 5 cm 和 -5 cm 两段不能每段重新计时。7. 到达判定和任务状态机任务状态可设为 IDLE、HOMING、WAIT_CENTER、MOVE_POSITIVE、SETTLE_POSITIVE、MOVE_NEGATIVE、SETTLE_NEGATIVE、DONE、FAULT。进入每个状态时重置必要的 PID 历史和计时器。到达 5 cm 不只要求|e|≤1 cm还要求|v_ball|小于阈值并持续约 200300 ms否则球只是穿过误差带。从 5 cm 折返时不应瞬间给最大反向角。位置环会产生反向目标速度速度环根据当前正速度给出更强制动再逐渐加速向 -5 cm。机械角度、球速和视觉年龄全程受到安全监控。总超时、回零超时、限位、编码器反向、命令有脉冲但编码器不动都进入 FAULT。8. 车体姿态前馈小车加速和转弯会改变球的等效重力方向。摆杆主控可以接收小车 MPU6050 的车体倾角或角速度加入目标倾角前馈theta_ref PID_vel(...) Kf_car · car_angle前馈符号必须通过实验确认例如小车右转时球向哪侧滚球槽正角定义又是哪一侧抬高。前馈只补偿可预测扰动不替代球位置闭环。Kf 过大会在 IMU 噪声或路面颠簸时主动激励球应从零逐步增加并分别记录有/无前馈的误差峰值。双主控通信传输姿态时要带时间戳或序号。过期姿态不能无限使用通信断开时前馈回零滚球闭环仍根据视觉工作或安全停机。小车的急停事件最好提前通知摆杆主控使其把槽回到安全角并准备承受惯性而不是急停后才被视觉误差被动拉回。9. 与往年摆杆、云台和球板题的比较往年云台题的目标通常是角度或光点执行器位置与被控量关系相对直接本题钢球有惯性球杆角度只是加速度输入。传统位置环直接控制舵机角度的方法在低速演示中可能可用但很难同时满足快速与低超调。增加球速度环是本题相对普通云台控制的重要区别。与二维球板题相比本题只有一个自由度建模更简单但车体本身在运动扰动更强。与倒立摆相比球杆系统不要求维持不稳定平衡点但视觉延迟通常更大摩擦和球槽几何更难精确建模。因此工程上采用串级 PID、限幅、标定和前馈比一开始追求复杂模型控制更容易在比赛时间内落地。10. 本篇结论滚球控制能否成功首先取决于机械转轴、回差、限位和编码器反馈其次是视觉标定与延迟最后才是 PID 数值。三层控制把“到位置”“控制球速”“跟踪球杆角度”分开使每层可独立验证。MaxiCamPro 提供测量步进编码器提供执行反馈状态机提供时序和安全车体 IMU 提供前馈。只有这些环节都有证据静止 ±5 cm 和运动中稳定才具备可重复性。11. 简化动力学与控制参数的物理意义在小倾角下沿槽方向的重力分量近似为g·theta球的加速度还受滚动惯量和摩擦影响可粗略写成x_ddot K·theta - c·x_dot。这说明倾角主要控制加速度而不是位置速度环的存在具有明确物理意义。K 与钢球半径、转动惯量、槽形和摩擦有关不必精确建模也能通过小倾角阶跃实验估计响应方向和数量级。位置环输出上限决定最大目标球速速度环输出上限决定最大安全倾角角度环输出上限决定最大脉冲频率。三层限幅应从内到外一致如果机械只允许 ±4°速度环必须在此范围内若角度内环在某步频以上必然失步外环不能持续要求更快。抗饱和应把“下层已饱和”的信息反馈给上层冻结积分。摩擦会造成中心附近死区。可用很小积分或静摩擦补偿但补偿必须随球速和方向谨慎启用否则会造成抖动。球槽若有固定倾斜可以在标定后加入零位偏置若偏置随机构位置变化则说明几何或装配问题应优先修机械。用控制器长期对抗结构松动参数会随时间漂移。对于更高阶方案可以尝试状态反馈、LQR 或模型预测控制但前提是球位置、球速度和球杆角度可可靠估计。比赛时间有限时三层 PID 的优势是每层含义直观、可分步调试、易于加入限位和故障。高级算法不能绕过视觉延迟、回差和失步这些真实边界。
返回列表