为了计算这些“disturbance”。我们需要考虑几个因素:
机械臂各个关节角度,即q
机械臂各个关节的速度,即qd(对q求导)
机械臂的各个关节的加速度,即qdd(对qd再次求导)
机械臂的质量和各个连杆的重心点
有了这些因素,我们可以通过数学方法:
u=M(q)qdd + C(q,qd)qd +G(q)
求出所需要的力矩,其中M项代表克服了机械臂的加速度惯量以及不同连杆之间的惯量影响所需力矩、C项代表了克服科里奥
利力和离心力所需力矩、G项代表了克服地球引力力矩。
其中Inverse Dynamics叫做反向动力学,它的作用是输入想要的关节速度(qd)、关节加速度(qdd)、关节角度(q),输出为每个
关节所需要的力矩(u)。当然也有正向动力学(forward dynamics),它的作用和反向动力学相反,输入关节角度(q)、关
节速度(qd)、每个关节的力矩(u),输出为每个关节的加速度(qdd)。
上述的控制逻辑图,是一个“前馈控制”的例子,它的作用是预先计算出所需的力矩,输入给控制器,“反馈”的存在是为了消除
一些误差,例如摩擦力和其他噪音。
总之,我们需要这么一个“动力学”模型,使得我们可以抵消各种不同的“disturbance”的影响 --- 惯量、地球引力、科里奥利力和
离心力等等。另外,实际电机的功率是有限的,通过反向动力学我们也可以准确知道电机需要提供多少力矩,从而为电机选型
提供参考依据。
下图初略表示了end-effector – inverse kinematics – inverse dynamics之间的关系:
Robotics System Toolbox(RST)中的动力学算法
RST 提供了动力学方面的函数和Simulink block。
MATLAB函数:
- 1
- 2
前往页