跳转到内容

倒立摆平衡小车 PID 调试提示词范例

请直接帮我定位并改进当前两轮平衡小车倒立摆控制中的 PID 参数与控制逻辑,并完成可复现的安全验证。
你可以检查和修改固件、构建、烧录,并通过 RTT、UART 或实际调试会话采集日志。所有参数结论必须由真实的试验窗口与特征数据支撑;不要只给经验参数,不要伪造传感器或运动数据,也不要在同一批试验中同时改变 Kp、Ki、Kd。
1. 安全边界
这是具有运动风险的倒立摆系统。首次验证内环时,先让车轮悬空或将车体固定在安全测试架上;进入地面测试前,确认周边无人、车辆可被人工扶住,并保留独立的急停/电机使能控制。
控制器必须在下列任一条件满足时立即退出闭环并关闭电机输出:俯仰角绝对值超过 25 度、IMU 数据无效、编码器异常、控制周期超时、看门狗/故障标志触发。以工程已有的阈值和保护逻辑为准;若需要调整保护阈值,先说明风险与依据,不要为了完成测试而放宽安全边界。
2. 控制画像
控制对象:两轮平衡小车,车体围绕轮轴构成倒立摆。
内环:姿态 PID。设定值为 target_pitch_deg,测量值为 pitch_deg,输出为 motor_command。
外环:速度 PID。设定值为 target_speed_mps,测量值为 measured_speed_mps,输出为 target_pitch_deg。
传感器:IMU 陀螺仪/加速度计融合得到姿态,左右编码器得到车轮速度;实际变量名、单位和控制频率以工程代码为准。
当前现象:小车从扶正释放后会来回摆动,部分运行中出现电机输出饱和、缓慢漂移或轻微外力扰动后无法及时恢复平衡。
3. 定位与可观测性
- 找到 IMU 初始化与姿态融合、编码器采样、定时器中断、内外环 PID、限幅、积分冻结/清零、电机 PWM、电机方向和故障保护相关代码;
- 先核对姿态轴定义、正负号、角度/角速度单位、编码器方向、左右轮符号、控制周期、滤波延迟和内外环执行顺序。确认内环输出方向正确后,才进入参数调节;
- 以低侵入方式记录单调时间基、试验编号、模式/使能状态、pitch_deg、pitch_rate_dps、target_pitch_deg、target_speed_mps、measured_speed_mps、左右轮速度、内外环 error、P/I/D 项、积分冻结状态、限幅前后输出、PWM/电流命令及故障标志;
- 优先使用 RTT 采集高频姿态窗口;现场已有串口链路时可用 UART。日志不得改变控制周期,若带宽不足则降低非关键字段频率并保留试验标识与关键状态;
- 为启动、扶正释放、固定幅度扰动、速度阶跃、饱和进入和保护退出设置可识别的事件标记,保证连续日志可按试验编号切分。
4. 分阶段 PID 工作流
先调姿态内环,后调速度外环;姿态内环没有稳定前,不得用外环参数掩盖问题。
- 阶段 A,静态与测试架检查:在电机禁用和车轮悬空状态下核对 pitch_deg 零点、姿态方向、编码器符号、采样周期和电机正反转映射;
- 阶段 B,姿态内环粗扫:在安全测试架或受控的低能量条件下,设计覆盖合理范围的 Kp、Ki、Kd 组合。每个组合使用一致的扶正释放或小角度扰动窗口、等待时间和试验标识;先完整跑完一批保守的粗扫,记录振荡、恢复和饱和边界;
- 阶段 C,单参数验证:根据整批结果提出一条可证伪的单参数假设,例如“在当前 Ki、Kd 固定时,增大 Kp 是否缩短恢复时间但提高振荡幅值”。后续一批固定两个参数,只改变一个参数,验证后再决定下一条假设;
- 阶段 D,速度外环:只有姿态内环已稳定时,才以低速、短距离速度阶跃调节外环。外环输出 target_pitch_deg 必须受限,且每次试验开始前重新确认内环稳定、车轮方向正确和急停可用;
- 使用自动化计划连续执行每一批参数与触发动作;整批计划的超时设置为预期总时长的至少 3 倍。参数较多时,使用脚本从参数表生成计划文件,不要手写大量试验步骤;
- 每批结束后按试验标识切分日志,计算并横向比较恢复时间、最大俯仰角、俯仰角 RMS、振荡幅值/周期、速度超调、稳态误差、控制输出峰值和饱和占比;
- 若出现姿态越界、连续饱和、传感器失效或保护退出,立即停止该批,保留现场与日志,并先分析根因。不要继续扩大参数范围。
5. 交付与验收
输出每一批的参数表、窗口日志、特征对比与被验证或证伪的假设。推荐参数应同时满足以下默认目标;若项目已有明确指标,以项目指标为准:
- 受控小角度扰动后,车体在 1.5 秒内恢复到 pitch_deg 的 +/-1 度范围;
- 原地平衡 60 秒内无持续振荡,内环输出不持续饱和;
- 低速阶跃下速度稳态误差小于 0.03m/s,且不破坏姿态稳定;
- 所有保护条件可正常触发,测试中没有人为放宽安全限制。
最终说明:控制结构与实际变量映射、已排除的问题、推荐参数、修改文件、构建/烧录结果、最具代表性的日志证据,以及下一轮最值得验证的单参数假设。