1 机器人动力学
多体系统动力学形成了多种建模和分析的方法, 早期的动力学研究主要包括 Newton-Euler 矢量力学方法和基于 Lagrange 方程的分析力学方法。 这种方法对于解决自由度较少的简单刚体系统, 其方程数目比较少, 计算量也比较小, 比较容易, 但是, 对于复杂的刚体系统, 随着自由度的增加, 方程数目 会急剧增加, 计算量增大。 随着时代的发展, 计算机技术得到了突飞猛进的进步, 虽然可以利用计算机编程求解出动力学方程组, 但是, 对于求解下一时刻的关节角速度需要合适的数值积分方法, 而且需要编写程序, 虽然这种方法可以求解出方程的解, 但是, 由于这种编程方法不具有通用性, 针对每个具体问题, 都需要编程求解, 效率比较低, 因此, 如果能在动力学建模的同时就考虑其计算问题, 并且在建模过程中考虑其建模和求解的通用性, 就能较好的解决此问题。
其中, 比较著名的方法有 Kane 方法、 变分方法、 Roberson-Wittenburg 方法、 和旋量方法等多体动力学研究方法。
Newton-Euler 方法是最开始使用的动力学建模分析方法, 由于牛顿方程描述了平移刚体所受的外力、 质量和质心加速度之间的关系, 而欧拉方程描述了旋转刚体所受外力 矩、 角 加 速度、 角 速度和 惯性张量之间 的 关系, 因 此可以 使用Newton-Euler 方程描述刚体的力、 惯量和加速度之间的关系, 建立刚体的动力学方程, 此方法分析了系统中每个刚体的受力情况, 因此物理意义明确, 表达了系统完整的受力关系, 对于刚体数目较少时, 计算量较小, 但是刚体数目 的增多, 方程数目会增加, 导致计算量较大, 从而使得计算效率变低。
拉格朗日方程是另一种经典的动力学建模方法, Newton-Euler 方程可以被认为是一种解决动力学问题的力平衡方法, 而拉格朗日方程则是采用另外一种思路,它以系统的能量为基础建立其动力学模型, 在建模过程中不同于 Newton-Euler 方法, 它可以避免内部刚体之间出现的作用力, 简化了建模过程, 但是其物理意义不明确, 而且对于复杂系统, 拉格朗日函数的微分运算将变得十分繁琐。
罗伯森与维登伯格 提出的 Roberson-Wittenburg / R W 方法是一种分析多体系统动力学的普遍方法, 也是第一个多体系统通用分析方法。 / R W 方法采用关联矩阵和通路矩阵完成对机器人的描述, 动力学建模原理采用 Newton-Euler方法,且根据 D’Alembert 原理建立具有完整约束铰链的动力学方程, 并且提出了增广体的概念, 用其解释了方程系数矩阵的物理意义
1965 年, 为了解决复杂刚体系统的动力学建模问题, 凯恩(Kane)方法被提出来, 与其拉格朗日方法采用广义坐标来描述运动学量不同, 其采用广义速率来描述, 对于动力学方程的建立, 采用 D’Alembert 原理, 此方法同时具有分析力学和矢量力学的优点, 并且既可以用于非完成系统, 也可以用于完整系统。
动力学建模原理 | 特点 |
---|---|
牛顿欧拉 | 完整约束系统: D’Alembert原理消除约束力;非完整约束系统:Jourdain原理消去约束力 |
拉格朗日 | 多体系统运动方程和约束方程;刚性微分-代数方程 |
维登伯格方法 | 多体系统拓扑结构矩阵描述; |
凯恩方程 | 兼有分析力学与矢量力学的优点 |
高斯最小约束原理 | 变分原理分析多体系统可能存在的运动;泛函极值原理求解出系统的运动规律 |
2 递推多体系统动力学
对于上述提到的各种多体动力学方法, 其建模原理各不相同, 计算效率也因此差异很大, 但是由于各种方法所建立的模型物理意义是一样的, 因此其计算结果也相同。 在实际应用中, 由于上述方法计算量较大, 且重复计算较多, 为了提高其计算效率, 许多学者将递推方法应用于动力学方程的求解, 下面主要介绍递推多体动力学研究现状。
随着机械系统越来越复杂以及控制系统对实时性要求的提高, 需要动力学计算具有较高的效率, 以满足复杂系统的实时性要求, 正是在这种前提下, 递推动力学得到了发展, 基于递推算法的动力学计算量为O(N)
对 于 机 械 臂 逆 动 力 学 算 法, 研 究 比 较 早 的 (O N )算 法 是Newton-Euler 算法。 文献对于运动学和动力学量的描述是在体坐标系中完成的, 通过这种方法来求解方程组其效率更高。
Luh,Walker 与Paul 提出一种计算量相对较少计算效率很高的 Newton-Euler 算法,他们提出的这种方法也是基于递推方法求出的, 由于其计算效率较高, 所以, 目前逆向动力学算法一般使用这种方法, 而且该算法是机械臂逆向动力学算法中在单处理器上运行速度最快的。
目前, 计算效率比较高的正向动力学算法有: 组合体惯量法( Composite Rigid Algor Body ithm , 简称 CRBA ), 空间算子代数方法、 铰接体惯量方法( Articulated Algor Body ithm , 简称 ABA ) 和李群李代数方法。 其中, CRBA 具有(ON^3) 的计
算量, 而其他三种方法具有(O N) 的计算量。
对于正向动力学方法, 考虑到递推的牛顿—欧拉算法( RNEA) 具有很高的计算效率, 因此, 可以考虑通过逆向动力学算法来求解正向动力学问题, M.Walke等提出的 CRBA 算法就是基于上述思想提出的, 主要是通过计算机器人末端的组合体惯量来求解, 组合体惯量矩阵的每一列是通过将逆向牛顿—欧拉算法中的加速度和角速度取为零或单位矢量, 从而通过逆向牛顿—欧拉算法求解求解正向动力学问题。 由于在计算过程中随着自由度的增加方程组的数目不断增加, 导致当机械臂自由度较多时, 其计算量很大, 该算法的计算量是 (ON^3)。
Roy Featherstone 提出了铰接体惯量算法 (Articulated Body Algorithm, 简称为 ABA), 当 N>9时, 铰接体算法的计算效率比组合体惯量法的效率高。进一步提高了算法的效率, 此种情况下,
Guillermo Rodriguez 与 Abhinandan Jain 将多刚体系统的正向动力学与滤波理论进行比较, 从中发现了它们之间关系, 实现了空间算子代数 (Spatial Operato Algebra, 简称 SOA)算法, 其计算量为 (ON) 。 Jain 采用空间算子代数给出了机械臂动力学的统一公式。
根据实际的物理意义可知, 虽然其动力学建模的方法各不相同, 但是其计算结果是等价的,其主要差别主要体现在计算量、 计算效率和通用性上, 因此在实际选择动力学方法时, 应该根据具体情况和要求选择相应的动力学算法, 比如对于实时的动力学仿真软件, 计算效率就是评价该软件的主要指标, 此时应该选择计算效率较高的动力学算法, 而对于离线仿真软件, 其主要评价指标为通用性, 此时应该采用通用性较好的动力学算法。
对于上文中提到的不同多体系统动力学分析和建模方法, 在物理意义上是完全等价的, 但是由于建模方法不同, 各种方法的计算效率相差较大, 考虑各种算法的计算量, 对于逆向动力学算法, 比较成熟且使用较多的是 Luh,Walker Paul 与 在文献 中提出来的递推 Newton-Euler 算法, 其具有 O(N)的计算量, 对于正向动力学算法, 目前具有 O(N)计算量的递推方法主要有三种 , 包括 SOA 算法、 ABA算法和李群李代数方法。
3 机器人动力学建模方法分类
4 多体系统动力学质量属性
多体系统动力学主要涉及到质心位置,系统连杆矢量长度,质量和转动惯量。惯量张量具体表示如下所示:
关键词:
机器人动力学;多刚体动力学;多体系统,多体动力学;机械臂动力学;动力学建模原理;动态系统;正向动力学;逆向动力学;混合动力学;递推多体动力学;计算效率
参考文献:
空间七自由度冗余机械臂动力学建模与控制研究