【运动控制】经典控制理论——PID控制


PID控制可以说是所有懂得控制的工程师所必须要了解的了,本篇博文将以单自由度为对象进行PID控制,并进行分析。
这里我们所控制的对象为,一个电机通过减速比带动一个连杆,电机的建模部分见-> 【运动控制】直流电机的建模与位置控制和力控制
这里折算后的关节模型为:
P ( s ) = b s ( s + a ) P(s) = \frac{b}{s(s+a)} P(s)=s(s+a)b

P控制

控制框图如下:

其中上面的部分表示杆的重量所带来的干扰(只考虑了重力)
在不考虑干扰的情况下,这个系统可以等价为一个二阶系统,因此我们可以通过调节Kp来实现临界阻尼,过阻尼,临界阻尼和欠阻尼如图

我们用终值定理来分析稳态误差,可知Kp控制器在不考虑干扰的情况下,能够追随指令值,如下图只要时间足够久,目标就可以实现。

干扰对系统的影响可以根据干扰的传递函数来进行分析,这里使用simulink
考虑干扰的情况

可以看出实际上偏差很大,也就是说“杆子太重了,把电机压下去了”。
下面分析Kp的影响,通过传递函数我们知道,Kp越大,干扰的影响将会越小。此外Kp增大将会提高系统的固有频率,阻尼系数相同,固有频率越大系统反应越快。如下图:

但是Kp不能无穷大,因为Kp的增大会带来阻尼系数的变小,这样会导致系统不稳定。

所以可以得出结论:P控制,P越大响应速度越快(wn变大),但是系统的稳定性会变差(欠阻尼)。

PD控制

由于P控制会产生超调,因此我们可以增加一个阻尼项,来调节暂态的反应。
PD控制器控制目标对象的框图如下所示:

当Kv=0时:

当Kv!=0时:

可以看出原本欠阻尼的系统,恢复了稳定性。
由P控制章节可知Kp的选择尽量的大,但是Kp过大会导致执行机构饱和,这里我们看一下PD模块之后输出的示波器,

可以看出,PD模块产生了很大的输出,这会导致执行机构饱和,从而限制了性能。
实际上实际工程中一般使用的是P-D控制(先行微分控制)
,控制框图如下所示:

控制表现如下:

PD输出如下:

可以看出超调消失了,系统变得更加稳定。
Kv的引入实际上增加了系统的阻尼,因此可以进一步的调大Kp,缩减上升时间,减少干扰的影响,而又不会降低系统的稳定性。
我们将P-D控制系统调节至临界阻尼:

可以看出通过P-D控制,和P控制相比:

  • 减小了超调
  • 减小了上升时间(50s->1s)
  • 减小了稳态误差,实际上仍然有稳态误差,见下图:

PI-D控制

为了减少稳态误差,于是引入了PI-D控制(在P-D控制的基础上),控制框图如下:

I的引入能够很好的消除干扰造成的稳态误差(理论上I越大,干扰造成的稳态误差越小),但是积分项同时为传递函数引入了0点这就造成了超调,并且导致收敛时间变长,导致积分饱和等问题,而且系统的传递函数将变成一个三阶系统比较复杂,因此在机器人控制中一般不使用积分项来进行控制。
这里给出相同条件下的PI-D控制的控制效果:

系统输入如下:

I-PD控制

为了消除PI-D控制带来的超调的影响,这里引入了I-PD控制,控制框图如下

控制效果如下:

驱动输入如下:

可以看出,系统输入趋于温和,超调现象也得到了减轻。

TODO

  • 目前参数的调节还是定性分析之后会增加频域分析
  • 零点为什么会引起超调
  • 定量分析积分项不适用于机器人系统

Guess you like

Origin blog.csdn.net/weixin_44229927/article/details/121345373