本篇博文以二连杆模型为例,具体参见->【机器人算法】机器人动力学、运动学和基于动力学模型的仿真与控制。
分散控制属于关节空间的多关节控制。
分散控制有以下假设:
- 惯量不太大,可以用等效惯量代替;
- C矩阵(科氏力和离心力)可以被忽略。
- 当杆件比较轻的时候重力可以忽略,但是当杆件重量较重时需要前馈补偿掉。
当机器人满足以上条件的时候就可以通过分散控制得到不错的控制效果。
分散控制的控制框图如图:
![](https://i-blog.csdnimg.cn/blog_migrate/b6ac977dd90925af723475b87f9a534a.png)
这张图取自《机器人学建模规划与控制》
因此对每个关节进行动力学分析(这里使用PD控制),得出其传递函数为:
![](https://i-blog.csdnimg.cn/blog_migrate/1cfcaef1269aa29f644e416f8f121f2a.png)
其中B为等效惯量。一般取该关节惯量的最大值,并且可以看出这是一个二阶系统,因此我们可以很简单的通过调整Kp和Kd来控制系统的性能,一般的我们取临界阻尼状态。
因此有:
K
p
=
B
ω
n
2
K
d
=
2
B
ω
n
K_p=B\omega_n^2 \\ K_d=2B\omega_n
Kp=Bωn2Kd=2Bωn
带入仿真(包括重力补偿),结果如下:
和以上博文比较可以看出,控制效果有所提升,但是仍然有超调等现象,这是由于我们
- 没有考虑非线性项的影响;
- 固有频率估计不准确。
同时也与规划轨迹有关,规划轨迹转折过于“生硬”,一定会导致超调。
下面是没有经过调节的PD参数的结果。
![](https://i-blog.csdnimg.cn/blog_migrate/f7017ea1da681ff994ec83177e5f92e9.png)
虽说从表现上看控制精度得到了很大的提升,但实际上仍存在超调等问题,不符合机器人高精度的特性。
如果要考虑到非线性项的影响那么就可以参考->【运动控制】机械臂的集中控制(Centralized Control)