关于PID的一点理解以及为什么PID会将一个误差量转化为另一个量

关于PID的一点理解以及为什么PID会将一个误差量转化为另一个量

个人在询问很多老师、朋友们得到的一点浅见,网络上也有很多人提问,在电机控制领域为什么转速误差经过PID模块变成了idref,或者电流误差经过PID模块变成ud、uq。

相信很多小伙伴都有这个疑问,我也一样,在处理锁相环时也遇到了这个问题,归根结底是对PID的理解不够透彻。

可能大家都知道,在实际应用过程中,一般不使用微分D,这是因为微分通常会引入高频噪声,譬如有一个误差0.001sin(1000t+φ),虽然幅值很小,但频率非常高,经过微分后会变为cos(1000t+φ),此时高频的影响就显现出来了。

我们这里不讨论D,只论PI。在这样的一个控制系统中,被控对象或执行机构为plant,以电机控制为例,有这样一个框图:

我们需要控制电机的转速为给定转速,设计了一个转速环,那么转速环的误差经过PI控制器是什么呢,是问号?,这个输出量我们设置为x,那么plant的传递函数就是。这里的x是什么我们不关心,甚至可以说,我想让他是什么它就是什么。

可以想,当和相同时,PI的比例项无输出,积分项输出不再变化,PI的输出经过plant后刚好可以产生这样的一个。

再举一个例子可能更直观一点,各位可以参考一下袁雷的《现代永磁同步电机控制原理及MATLAB仿真》的5.1.3部分,直接看图5-3。

我一直很疑惑,为什么角度误差经过PI或者这里叫LPF(低通滤波器)之后就变成了角速度,其实这里的积分项1/s才是引出角速度的原因,我们跑一个仿真:

可以看到,有没有这个多的积分项,输出都是可以跟踪上输入的。积分项引出了一个角速度而已。

但是需要注意的是,没有积分项的第一个(上)仿真和第二个(下)仿真在传递函数的阶数上是不同的,系统的稳定性等等都会有一定的影响吧,日后再研究。

又有了一个新的处理方式:

或者不断地去叠加积分器,但实际上会造成系统的阶数增加,更难稳定。

如何去设计实际的控制系统仍旧是一个大命题呀,谢谢和我一起讨论的小伙伴们,一点浅见,希望对各位有所帮助。

相关数据