推文:机器人控制系列教程之关节空间运动控制器搭建(1)中,主要讲解了在关节空间中,基于计算力矩的控制系统设计和搭建,我们直接使用了Simulink中的Joint Space Motion Model模块来进行控制系统的搭建和调试,下面我们将详细讲解一下另外两种控制器。
PD控制器
在基于PD控制器来控制机器人时,与计算力矩控制系统相类似,但是其输入变成了 q r e f 、 q ˙ r e f q_{ref}、\dot q_{ref} qref、q˙ref,具体定义如下:
- 输入: q r e f 、 q ˙ r e f q_{ref}、\dot q_{ref} qref、q˙ref分别为期望的关节配置、速度;还可使用ExteralForce函数自定义外力和扭矩,单位为N和N·m。
- 输出: q 、 q ˙ 、 q ¨ q、\dot q、\ddot q q、q˙、q¨分别为关节配置、速度、加速度,但Simulink的模块中只返回加速度,可使用积分单元模块来求解其他变量。
与计算扭矩控制一样,该系统使用了标准刚体机器人动力学,但使用PD控制器定义广义力输入Q:
其中
-
G
(
q
)
G(q)
G(q):为所有关节保持其位置所需的力矩和力,这是由于在给定的重力下作用在机器人上的重力和力。使用
gravityTorque
函数计算重力力矩。详细的讲解可见:
控制器输入参数有:
- K P K_{P} KP - 比例增益,指定为 N * N 矩阵,其中 N 为机器人关节数
- K D K_{D} KD - 微分增益,指定为 N * N 矩阵
独立关节运动系统
在对该系统进行独立关节运动建模时,不是将闭环系统建模为标准刚体机器人动力学加控制输入,而是将每个关节建模为二阶系统,该系统已具有所需的误差行为:
- 输入: q r e f 、 q ˙ r e f q_{ref}、\dot q_{ref} qref、q˙ref分别为期望的关节配置、速度;无自定义外力和扭矩输入。
- 输出: q 、 q ˙ 、 q ¨ q、\dot q、\ddot q q、q˙、q¨分别为关节配置、速度、加速度,但Simulink的模块中只返回加速度,可使用积分单元模块来求解其他变量。
下图所示为第 i 个关节建立了以下闭环二阶行为模型:
或可表示为:
因此,整个系统的模型为
- [ ω n 2 ] d i a g {[\omega _n^2]_{diag}} [ωn2]diag:N * N对角线,ω为自然频率,单位Hz。
- [ 2 ζ ω n 2 ] d i a g {[2\zeta \omega _n^2]_{diag}} [2ζωn2]diag:N * N对角线矩阵,ζ为阻尼比,在jointSpaceMotionModel模块的DampingRatio属性中指定。
独立关节运动模型代表了理想化行为下的闭环系统。在没有外力的情况下,假设反馈没有延迟(如连续积分),使用计算扭矩控制的运动模型会产生等效输出。
这两种控制器的切换可在Joint Space Motion Model
模块的Motion Type
中选择对应的控制系统,如下图所示: