运动控制机械臂的分散控制(Decentralized Control)

Posted vrijheid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运动控制机械臂的分散控制(Decentralized Control)相关的知识,希望对你有一定的参考价值。

本篇博文以二连杆模型为例,具体参见->【机器人算法】机器人动力学、运动学和基于动力学模型的仿真与控制

分散控制属于关节空间的多关节控制。

分散控制有以下假设:

  • 惯量不太大,可以用等效惯量代替;
  • C矩阵(科氏力和离心力)可以被忽略。
  • 当杆件比较轻的时候重力可以忽略,但是当杆件重量较重时需要前馈补偿掉。

当机器人满足以上条件的时候就可以通过分散控制得到不错的控制效果。

分散控制的控制框图如图:

这张图取自《机器人学建模规划与控制》

因此对每个关节进行动力学分析(这里使用PD控制),得出其传递函数为:

其中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参数的结果。

虽说从表现上看控制精度得到了很大的提升,但实际上仍存在超调等问题,不符合机器人高精度的特性。

如果要考虑到非线性项的影响那么就可以参考->【运动控制】机械臂的集中控制(Centralized Control)

以上是关于运动控制机械臂的分散控制(Decentralized Control)的主要内容,如果未能解决你的问题,请参考以下文章

机器人原理与实践六轴机械臂正逆解控制

机械臂的运动规划

为啥装备体的机械爪点连接点可以移动而点那个杆它不能移动

stm32控制机械臂抓取的代码

Arduino机械臂的板子是店家改过的我初学者看不懂求助大佬

matlab simulink 六自由度机械臂模糊控制pid