前言

有时候我们都不会把PID三个控制都用上,可能之后用其中的P、PI或PD控制。P控制就不用说了,什么时候都能用,只是性能的问题。本文将基于平衡小车分析什么时候使用PI和PD控制器。


这是一篇无华且枯燥的纯文字文章,请细品。

一、PD控制器的性能

PD控制就是比例+微分控制,在系统稳定后能快速预测未来的变化并做出响应。
特点是快速性和稳定性。
微分相当于一个阻力,能有效抑制系统本身产生的震荡。缺点是有静差和放大噪声,当偏差很小时P和D基本不起作用所以会有静差。噪声与系统自身调节产生的震荡是不同的,噪声一般是高频的干扰。噪声会在输出端影响系统然后反馈到输入端,由于微分控制是有一个系数的,当系数乘上噪声后,可以想象到噪声是被放大了。噪声的放大效果取决于微分系数,如果系统的微分系数很大那就要注意噪声的干扰了。

二、什么时候用PD控制

对于需要快速响应的系统可以使用PD控制,但是要注意噪声的干扰。
平衡小车的直立控制就需要用到PD控制。当角度接近机械零度时,P控制器就不工作了,控制器认为完成了任务,然而控制器忽略了一种对下一个时刻的预测,即角度在机械零度时电机还存在角速度,简单来说就是小车还有惯性。这时候就需要加入D控制器,预测下一时刻的偏差。
既然本小节讲的是什么时候用PD控制,反过来想就是这个PID控制器中为什么不用积分。这里必须知道的一点是当比例系数很大的时候系统几乎没有静差。平衡小车直立控制需要快速性,相比之下P是很大的,积分的作用是消除静差,而静差对于直立控制的影响很小自然就不需要积分了。实际上平衡小车不一定要完全处于机械中值,稍微偏一点点也没有关系,只要稳定就行了。所以对于准确性要求不高的系统可以不加入积分控制。

三、PI控制器的性能

PI控制就是比例+积分控制,兼顾快速性并且在系统稳定后能消除静差。特点是快速性和准确性。
对一个自动控制系统,为了消除稳态误差,在控制器中必须引入积分项,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。缺点是不适用于惯性较大的系统,在某些情况下积分需要做特殊处理,可以参考PID积分项优化与C语言实现这篇文章。

四、什么时候用PI控制

PI控制可以说是最常用的组合。微分放大噪声是很难受的,微分的作用是提前响应,现在更多是采用加前馈的方式,同样可以提前响应但不会放大噪声。
先说一下平衡小车为什么要速度控制,小车的机械中值存在误差,如果只有直立控制,小车可能会一直前进或者后退以维持这个有误差的机械中值,网上有人说是小车平移速度没有限制,这样就可能超过PWM的幅值,导致电机无法加速了。我觉得这并不是加入速度控制的主要原因,对于这种说法有两种方式解决1.对PWM进行限幅 2.倾角大时直接关闭电机。小车不能长时间静止平衡主要是重心不稳,导致小车只能通过单方向运动维持平衡。加入速度环就是修正小车的角度,小车一直往前面开时,速度环让小车以更快速度行驶使小车后仰,这时直立控制让小车后退以维持平衡。
对于速度控制当然是越精确越好,平衡小车当然希望速度一直为0。速度控制的速度偏差是由直立控制电机运动引起的,即速度噪声很大,所以不加入微分控制。
对于准确性要求高,系统噪声大时可以采用PI控制。


结语

那么以上就是本篇文章的所有内容了。
本文如果有什么不对的或者需要改进的地方欢迎指出。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐