5.2 PID调节补充试验和分析
在上一个试验中,在采集运动传感器数据并通过串口上传时发现,程序编译运行正常,但是很快平衡小车失稳的情况。经过反复测试发现,在void TIM1_UP_TIM16_IRQHandler(void) 的终端例程中使用printf语句时,但传送1组数据时没有问题,小车可以保持平衡,在传送2组数据时,小车就不容易保持平衡,在稳定中小车不能保持静止,始终左右摇摆,超过3个数据,无法保持平衡。
经分析程序正确,那么是在时序上发生问题了,在串口通讯完成后,小车的姿态继续变化,使采样值经过计算后的补偿量不能保持稳定,如传送2组数据时,就不断摆动。这个可以用2种方法解决:或者提高采样频率,使采样的数据变化更小,或者调整PID控制的系数,使调节能力更强。因为C语言程序不能直接判断采样printf到底占用了多少机器周期,因为和波特率也有关联,所以不容易更进一步分析。不过可以反映出在自动控制时,对于器件选择时机器周期和主频也是一个不可以忽视的问题。