- PID控制基本原理:
PID控制器通过三个环节来修正系统误差:
- 比例§环节:与当前误差成正比,提供快速响应
- 积分(I)环节:累积历史误差,消除稳态误差
- 微分(D)环节:预测误差变化趋势,抑制超调
- 地面站调整的主要参数:
- kP(比例增益):影响系统响应速度
- 值过小:响应迟钝
- 值过大:产生振荡
- kI(积分增益):影响消除稳态误差的能力
- 值过小:难以消除稳态误差
- 值过大:导致积分饱和和超调
- kD(微分增益):影响系统阻尼
- 值过小:抑制振荡能力弱
- 值过大:对噪声敏感
- imax(积分限幅):限制积分项的最大值,防止积分饱和
- 参数调整的实际影响:
- 增大kP:提高响应速度但可能引起振荡
- 增大kI:加快消除稳态误差但可能引起超调
- 增大kD:增强系统稳定性但降低响应速度
- 调整imax:防止积分项过大导致控制量饱和
- 调参注意事项:
- 先调P,使系统有基本响应
- 再调D,抑制振荡
- 最后调I,消除稳态误差
- 每次只调整一个参数
- 小幅度逐步调整
- 注意观察飞行日志数据
- 实际应用:
在ArduPilot代码中,PID控制器通过get_pid()函数实现,地面站通过修改PID类的_kp,_ki,_kd等成员变量来调整参数。这些参数会被持久化存储,并在每次控制循环中影响控制输出。