Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >柔性机械臂:动力学建模原理

柔性机械臂:动力学建模原理

原创
作者头像
ZC_Robot机器人技术
修改于 2020-10-03 12:07:47
修改于 2020-10-03 12:07:47
4.4K0
举报
加拿大机械臂完成太空任务
加拿大机械臂完成太空任务
加拿大机械臂辅助太空行走
加拿大机械臂辅助太空行走

加拿大机械臂由于其实大负载,长臂杆,其是典型的柔性机械臂代表。

刚性机械臂建模方法已经可以有效地求解出机械臂各部分之间的耦合情况,但是对于柔性机械臂的动力学建模其侧重点在于基于刚性机械臂建模方法的基础上如何有效的处理机械臂关节柔性以及臂杆柔性的问题。由于机械臂的截面相对于其长度而言很小,可以将柔性杆作为Euler-Bernouli梁,柔性机械臂可以视为一个具有无限自由度的连续系统。相对于刚性机械臂杆件之间的耦合,柔性机械臂还需要考虑关节的柔性以及臂杆弹性变形的耦合。因而,柔性机械臂的运动方程具有高度非线性。

在对柔性系统进行建模的过程中,需要解决坐标系的选择、柔性体的离散化、动力学建模方法以及方程求解等问题

1 柔性体的描述

柔性体的描述是柔性机械臂建模与控制的基础。根据选择参照系的不同,一般可分为相对坐标法以及绝对坐标法。由于绝对坐标法虽然可以获得形式简单的动力学方程,但是却大大增加了广义坐标的数目,进而需要引入相应的约束方程。目前的应用已经较少。而相对坐标法则是在柔性体上建立一动参照系,将柔性体的真实运动分解为牵连运动和相对于动坐标系运动的迭加。有利于小变形构件的离散化和线性化。应用较多。

2 柔性体的离散化

柔性机械臂是由柔性关节构成的集中参数系统和柔性杆件构成的分布参数系统所组成的混合系统,其动力学特性由偏微分方程描述。为求解该偏微分方程,需要采用离散方法将偏微分方程离散成常微分方程。

对于变形场的离散化主要有:

  • 有限元法(FEM)
  • 假设模态法(AMM)
  • 集中质量法(LPM)
  • 转移矩阵法(TMM)

有限元法是将有限自由度的连续体理想化为只有有限自由度的单元集合体,使问题简化为适于数值解法的结构型问题。该方法将连续系统划分为一定数目的柔性单元,对单元位移分布建立某种假设,并据此导出单元的动力学方程,通过单元组集最终获得柔性机器人系统的动力学方程,有限元法可模拟任意复杂形状的柔性构件,并可调用ANSYS等进行分析。

有限段法也是将无限自由度的连续体离散,只不过是离散成有限刚度梁段,将系统的柔性等效至梁段结点,即将柔性系统描述为多个刚体,以含有弹簧以及阻尼器的结点互连。当划分无穷时,有限段趋于微分梁段,其弹性线长度相当于弧微分,而不是有限元法中对于坐标的微分。有限段法容易计入几何非线性的影响,比较适合于含细长构件的柔性机器人系统,理论推导程式化,便于数值计算。

集中质量法将柔性体的分布质量按一定的规则聚缩于若干离散结点,其间用不计质量的弹性元件连接,并将柔性体的分布载荷等效至上述结点。该方法调理清晰,适于构件形状比较复杂的柔性机械系统。但是,与有限元法相比,在同等自由度下,该算法的精度较低。

假设模态法以Rayleigh-Ritz法为基础,采用模态截断技术将柔性体的高阶模态截断,之后利用Lagrange方程、Hamilton原理等建模方法得到离散化的动力学方程。模态函数的选取通常有两种方法,即约束模态法与非约束模态法。前者采用瞬时结构假定,忽略刚体惯性力以及科氏族力的影响,根据梁的自由振动方程确定模态函数。后者以柔性机器人的振动方程为基础,直接由几何、物理边界条件推导出系统的频率方程以及相应的模态函数。假设模态法建立的动力学方程规模较小,便于提高计算效率,在仿真与实时控制方面具有一定的优势,但是在描述复杂结构的振动模态时常会遇到较大的困难。假设模态法将柔性杆的变形表示为一系列模态函数的组合,具有方程规模较小、便于实时控制的特点,但是假设模态法需要考虑系统的特征值,只能处理形状简单、约束条件易求的系统。

3 动力学建模方法

柔性机械臂的动力学建模原理与刚体动力学类似,同样分为:

  • 矢量力学
  • 分析力学

建立柔性机械臂动力学方程主要利用Newton-Euler和Lagrange方程这两个最具代表性的方程,另外比较常用的还有Kane方法等。为了建立动力学模型和控制的方便,柔性关节一般简化为弹簧。当连杆存在柔性时,常采用假设模态法、有限元法、有限段法等方法描述相应臂杆的柔性变形,然后再根据需要进行截断。柔性臂杆的变形常常简化为Euler-Bernulli梁来处理,即考虑到机械臂连杆的长度总比其截面尺寸大得多,运行过程中所产生的轴向变形和剪切变形相对于挠曲变形而言非常小,柔性臂杆只考虑挠曲变形,忽略轴向变形和剪切变形。因而从动力学角度看,每根柔性连杆都可视为一段梁。

4 柔性体的描述

对于具有高度非线性和强耦合的空间柔性机械臂的偏微分-积分方程组的数值算法可以采用牛顿-拉斐逊、直接积分法和精细积分等数值积分算法。


刚柔耦合动力学,多体系统,动力学建模

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c++ 时间类型详解(time_t和tm)
原文:http://blog.csdn.net/love_gaohz/article/details/6637625
用户7886150
2021/02/17
3.3K0
三句话理解时区与时间戳
时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字,叫时间戳。时间戳 指的就是Unix时间戳(Unix timestamp)。它也被称为Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
chengcheng222e
2021/11/04
4.1K0
使用时间戳生成唯一主键
时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。
李郑
2019/12/04
4.5K0
C#时间戳基本使用案例分享
由于TimeZone类已经过时,官方推荐使用TimeZoneInfo来做时间的转换。
用户7718188
2022/11/06
4.5K0
扩展学习之时间戳趣谈
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp),是从1970年1月1日(UTC/GMT的午夜)开始到现在所经过的秒数(格林威治时间1970年01月01日00时00分00秒、北京时间1970年01月01日08时00分00秒),不考虑闰秒。
chimchim
2023/10/17
8730
扩展学习之时间戳趣谈
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区、跨地域跨时区时间转换场景,甚至当还有GMT时间、UTC时间等一堆概念堆上来的时候,总是心理发虚,招架不住。
YourBatman
2021/01/19
3.5K0
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
Linux时间戳转换_时间戳转换软件
在大多数 UNIX 系统中,当前时间存储为自特定时刻以来经过的时间以简化,将时间保持为长整数。所有 UNIX 系统普遍接受的时刻是 1970 年 1 月 1 日凌晨 12:00:00。 这称为 UNIX 时间戳,并被所有现代 UNIX/Linux 系统识别。
全栈程序员站长
2022/11/09
16.5K0
Linux时间戳转换_时间戳转换软件
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区、跨地域跨时区时间转换场景,甚至当还有GMT时间、UTC时间等一堆概念堆上来的时候,总是心理发虚,招架不住。
YourBatman
2022/03/08
3.6K0
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
Date 对象(上)
Date对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)。
RiemannHypothesis
2022/10/28
6010
PHP 实现时间戳转化为几分钟前、几小时前等格式
一.PHP最近遇到了后台接口需要给前端传递时间新格式,由于是报警和显示作用,所以就以社交软件上长显示的格式为准,整理了下时间格式。二.封装的时间转换函数,大体都是按照业务来的,小伙伴们可以在优化function get_last_time($time) 三.如果需要几周前、几月前啥的可以自己调一下比较的时间即可。这段代码放到线上后, 出现了奇怪的BUG, 明明是当天注册的用户, 却出现了有次日登录的情况. 排查代码没有发现问题, 于是暂时搁置去忙其它事情. 然后在第6天时, 竟然又出现了有七日登陆的数据.
php007
2019/08/05
1.9K0
iPhone碰上1970年变砖是什么梗?又该如何拯救?
继上个月的十二行代码分分钟让浏览器崩溃iPhone重启事件之后,近日又有网友爆出:如果把64位的iOS设备(iPhone、iPad、iPod touch)系统时间修改为1970年1月1日,设备重启后将
FB客服
2018/02/07
1.6K0
iPhone碰上1970年变砖是什么梗?又该如何拯救?
PHP时间戳
我们可以通过 date() 函数提供的丰富格式化来显示需要的时间日期,如下面的例子:
我不是费圆
2020/09/21
6K0
区块链Block创建时间
该文介绍了如何获取区块链中的区块创建时间,包括使用Unix时间戳和Java语言进行转换和获取。同时介绍了在ETH和BTC网络中的区块创建时间存储单位和获取方法。
程序新视界
2017/12/29
2.9K0
Python | 时间戳转换
爬数据的时候,有没有遇见过爬下来的数据日期显示为一大串数字?像上图中的beginbidtime变量,这是时间戳。时间戳是啥?是指格林威治时间自 1970 年 1 月 1 日(00:00:00 GMT)(一般把这个时点称为 unix 纪元或 POSIX 时间)至当前时间的总秒数。时间戳的好处是能够唯一地表示某一刻的时间,但这显然不利于肉眼观察和分析数据,所以下面我们将时间戳转化为常见的时间格式。
PyStaData
2020/09/14
3.8K0
Python | 时间戳转换
对时间戳的理解
时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字,叫时间戳。在计算机中,「时间戳」一般是指 Unix 时间戳,即自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
张紫娃
2023/07/23
4620
对时间戳的理解
常用模块~PHP时间戳与日期.
自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .
汤清丽
2019/11/03
3.7K0
常用模块~PHP时间戳与日期.
时间戳,mysql 秒数,毫秒数与时间之间的相互转换
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 常见有10位(单位:秒)和13位(单位:毫秒)。
oktokeep
2024/10/09
3330
【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
1970年01月01日00时00分00秒的来历:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。
呆呆敲代码的小Y
2023/07/24
4.5K0
【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
python3 time模块解释
time() 模块继承自 Object 类,datetime() 模块继承自 Object 下面的 Date() 模块。
py3study
2020/01/10
4600
由浅入深,走进中级工程师都未必知道的 JavaScript 时间处理冷知识
在过去,世界各地都各自订定当地时间,例如我国古代将一昼夜分为十二时辰,每一时辰相当于现代的两个小时。但随着交通和通信的发达,各地交流日益频繁,不同的地方时间给人们造成了许多困扰。于是在1884年的国际经度会议上制定了全球性的标准时,确定以英国伦敦格林威治区这个地方为零度经线的起点(本初子午线),并以地球由西向东每24小时自转一周360°,规定经度每隔15°,时差1小时,而每15°的经线则称为该时区的中央经线。全球被划分为24个时区,其中包含23个整时区及180°经线左右两侧的2个半时区。东经的时间比西经要早,也就是如果格林威治时间是中午12时,则中央经线15°E的时区为下午1时,中央经线30°E时区的时间为下午2时;反之,中央经线15°W的时区时间为上午11时,中央经线30°W时区的时间为上午10时。如果两人同时从格林威治的0°各往东、西方前进,当他们在经线180°时,就会相差24小时,所以经线180°被定为国际换日线,由西向东通过此线时日期要减去一日,反之,若由东向西则增加一日。
wade
2021/07/08
2.2K0
由浅入深,走进中级工程师都未必知道的 JavaScript 时间处理冷知识
相关推荐
c++ 时间类型详解(time_t和tm)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档