电机PID控制过程的问题
1. 结构体指针和结构体作为函数参数
在测试电机速度PID调节的过程中,发现如果把结构体作为参数,函数内的操作,不会改变原结构体。
测试时,又出现跟踪不了运行代码的情况:
用结构体的话,即使占空比还未达到满,pid的输出也不再变了
总之把结构体参数改为结构体指针就行了:
我还加了积分限幅和pwm输出限幅,若是有一段时间始终存在一个方向的误差,并且pwm输出最大也无法减小(电压不够),
则积分会不断累加,造成负载降低或是供电上升时,此时pid不能迅速降低输出的pwm,原因是积分项积累的太大了,
限制在pwm满值/积分系数就行了。
2. 减小了控制周期,发现我的pid效果更差,重新从P调,
1.发现在增加I时,即使之前没超调,也有可能出现超调,解决办法是同时把P和I减小到超调量小于10%,优先减少I,
切记,在两者的效果达到比较好的时候再加微分;
2. 积分本意是解决静差,但由于系统在一定范围内会自稳,此时积分会一直上升,直到输出能驱动系统为止,
但实际系统有惯性,加入微分可以在系统刚动时,立刻撤回一点力。
理解还很肤浅,需要多学理论知识。
调了几个小时,下次这样差不多就行了,还是要建立理论基础,不然都是试凑,无聊。
3. 串口接收助手异常的情况
把波特率从115200降为9600
4. TIM无法控制CH1通道
不初始化串口: