Experiment Design Principles 251230

🧪 火箭控制实验设计标准 - 基于 Rosetta 破坏性测试原则

🎯 实验设计的核心原则

罗塞塔方法的破坏性测试

学习路径:
  理论模型 → 单变量测试 → 多变量测试 → 边界测试 → 真实场景
     ↓           ↓            ↓            ↓           ↓
   建立认知    验证单因素    理解耦合     找到极限    工程实践

📊 3个实验的设计标准

实验1:PID 调参实验

设计标准

  • 单一变量原则:每次只改变一个参数(Kp/Ki/Kd)
  • 对比原则:不同参数值的性能对比
  • 可观测性:清晰的性能指标(超调、调节时间、稳态误差)

为什么选择这个实验?

标准说明符合情况
最小认知负荷只需理解 PID 三个参数✅ 每个参数独立测试
快速反馈代码改动 < 5 行,运行 < 1 秒✅ 即时可视化
对比明确不同参数曲线在同一图✅ 直接观察差异

成功标准

✅ 能看到超调量随 Kp 增大而增大
✅ 能看到稳态误差随 Ki 增大而减小
✅ 能看到震荡随 Kd 增大而抑制
✅ 能理解"没有完美参数,只有权衡"

验证认知的方式

假设:Kp 越大,响应越快
实验:绘制 Kp=[1000, 5000, 10000] 的曲线
观测:Kp=10000 时,超调 30%,震荡 5 次
结论:假设错误,Kp 过大会导致不稳定
修正认知:Kp 需要平衡速度和稳定性

实验2:传感器噪声实验

设计标准

  • 对比原则:有无滤波的并排对比
  • 定量标准:用误差数值说话(±5m vs ±50m)
  • 递进性:从理想情况(无噪声)→ 真实情况(有噪声)

为什么选择这个实验?

标准说明符合情况
展示问题严重性对比图清晰显示漂移✅ 无滤波误差累积到 ±50m
理论联系实际卡尔曼滤波 = 课上学过✅ 从公式到代码
工程价值真实 IMU 必须滤波✅ SpaceX/Falcon 9 都用 EKF

成功标准

✅ 无滤波:位置误差 ±50m(10 秒内累积)
✅ 有滤波:位置误差 ±5m(收敛并保持)
✅ 能理解"积分导致漂移"
✅ 能理解"滤波 = 预测 + 校正"

破坏性测试

测试 1:无噪声(理想)
  结果:直接积分完美

测试 2:有噪声,无滤波(破坏)
  结果:误差快速累积,5 秒后发散

测试 3:有噪声,有滤波(工程)
  结果:误差收敛,稳定在 ±5m

认知:噪声不可避免,必须滤波

实验3:SpaceX 着陆复现

设计标准

  • 真实性:使用真实参数(Falcon 9 规格)
  • 分阶段:高/中/低空三个阶段
  • 工程约束:推力限制、燃料限制、几何约束

为什么选择这个实验?

标准说明符合情况
真实世界问题SpaceX 实际解决的✅ 复用真实参数
多目标优化高度 + 速度 + 姿态 + 燃料✅ 需要权衡
验证理解程度能否综合运用前两个实验✅ PID + 滤波 + 轨迹

成功标准

✅ 能够着陆(高度 > 0m)
✅ 软着陆(速度 < 2 m/s)
✅ 姿态垂直(角度 < 5°)
✅ 燃料足够(总推进剂 > 消耗)

边界测试

测试 1:初始高度 50km(正常)
  结果:成功着陆

测试 2:初始高度 30km(降低)
  结果:着陆失败(速度过快)
  原因:减速时间不够

测试 3:初始高度 70km(升高)
  结果:着陆成功但燃料耗尽
  原因:悬停时间过长

认知:存在最小/最大高度边界

🧪 实验设计的"破坏性测试"层级

层级1:单变量破坏(实验1)
  目标:理解单个因素的影响
  方法:控制变量法
  示例:只改 Kp,其他不变
  判断:能解释"为什么 Kp=10000 震荡"

层级2:多变量破坏(实验2)
  目标:理解多个因素耦合
  方法:并排对比(有无滤波)
  示例:噪声 + 滤波器
  判断:能解释"为什么无滤波漂移"

层级3:真实场景破坏(实验3)
  目标:理解工程约束
  方法:真实参数 + 边界测试
  示例:不同初始高度
  判断:能解释"为什么 30km 着陆失败"

📏 实验成功与否的判断标准

认知标准(最重要)

层级1:能解释现象(Why)
  ✅ "Kp 太大导致超调,因为系统惯性"
  ❌ "Kp=10000 不好"(只描述现象)

层级2:能预测结果(Prediction)
  ✅ "如果 Ki=0,会有稳态误差"
  ❌ "试试看"

层级3:能优化设计(Optimization)
  ✅ "为了减少超调,应该降低 Kp,增加 Kd"
  ❌ "随机调参"

定量标准

实验定量指标合格优秀
实验1 PID超调量< 30%< 10%
调节时间< 10s< 5s
稳态误差< 5%< 1%
实验2 滤波位置误差< 20m< 5m
收敛时间< 5s< 2s
实验3 着陆着陆精度±10m±2m
软着陆速度< 5 m/s< 2 m/s
燃料剩余> 0%> 10%

🔄 实验之间的递进关系

实验1(PID)→ 建立控制基础认知
      ↓
      理解:反馈控制 = 误差 → 控制力
      ↓
实验2(滤波)→ 加入真实世界约束
      ↓
      理解:传感器有噪声,必须估计
      ↓
实验3(SpaceX)→ 综合应用到工程
      ↓
      理解:多目标优化 + 约束处理

递进标准

维度实验1实验2实验3
复杂度单变量(PID 参数)多变量(状态估计)多目标(轨迹+控制)
真实度理想模型加噪声真实参数
认知负荷低(只懂控制)中(控制+估计)高(GNC 全流程)
工程价值理论学习理解必要性实际应用

💡 为什么不是其他实验?

没有选择的实验及其原因

可能实验为什么没选
6-DOF 完整仿真认知负荷过高,新手无法调试
硬件在环(HIL)需要硬件,门槛太高
混沌控制理论太深,与工程脱节
多体动力学涉及柔性体,过于复杂

选择这3个实验的理由

理由说明
最小可运行Python 代码 < 200 行
最大启发每个实验解决一个核心问题
循序渐进从控制 → 估计 → 综合
可验证有明确的成功/失败标准

🎓 如何判断自己是否"学会"

层级1:能解释(Understand)

提问:"为什么 Kp 太大会震荡?"
回答:"因为系统有惯性,过大控制力导致超调,超调后反向控制又导致反向超调"
→ ✅ 理解了惯性 + 反馈的关系

层级2:能预测(Predict)

提问:"如果 Ki=0,会怎样?"
回答:"会有稳态误差,因为积分项用于消除累积误差"
→ ✅ 理解了 I 项的作用

层级3:能设计(Design)

提问:"设计一个着陆控制,要求超调 < 5%"
回答:"Kp=3000, Ki=10, Kd=800,通过仿真验证满足要求"
→ ✅ 能根据需求设计参数

🚀 总结:实验设计的"三个一"标准

“三个一"原则

  1. 一个核心问题:每个实验只解决一个核心问题

    • 实验1:PID 参数如何影响性能
    • 实验2:噪声如何影响状态估计
    • 实验3:真实约束如何影响设计
  2. 一个明确对比:每个实验都有清晰的对照组

    • 实验1:不同 Kp 值对比
    • 实验2:有/无滤波对比
    • 实验3:不同初始高度对比
  3. 一个可验证预测:每个实验都能做出预测并验证

    • 实验1:“Kp 太大会超调” → 验证
    • 实验2:“无滤波会漂移” → 验证
    • 实验3:“高度太低会失败” → 验证

📚 参考标准

这些实验设计参考了:

  1. 控制理论教学标准(MIT 6.302 Feedback Systems)

    • 从一阶系统开始
    • 逐步增加复杂度
  2. 机器人学实验设计(CS223A Stanford)

    • 理论 + 仿真 + 实践
    • 有明确的性能指标
  3. SpaceX 公开数据

    • Falcon 9 用户手册
    • 着陆视频数据分析

记住:实验设计的核心是可验证的认知升级

旧认知 → 实验 → 新认知
  ↓       ↓        ↓
"PID 神奇"  测试Kp  "Kp 过大震荡"
  ↓       ↓        ↓
"调参靠感觉" 仿真  "调参有章法"

现在你理解了这3个实验的设计标准吗?