ADAMS约束以及冗余约束的问题

2023-10-12 10:10
文章标签 问题 约束 冗余 adams

本文主要是介绍ADAMS约束以及冗余约束的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习ADAMS已经有一段时间了,老师说ADAMS中自由度问题是一个很繁琐的问题,的确如此,现在面对自己课题的时候,老是提示出现冗余约束的问题,问了好几个老师,都没有解决,只好靠自己了,清明花了几天时间,看了好几篇文章,自己仔细琢磨了和推敲,对自由度以及冗余约束的问题有了深入了解,自我感觉挺有用的,希望大家给我指点哈。

我以一个长方体为模型,其在空间的自由度为6,构建的模型和参考点如下图1所示,其中定义了在Groud上的参考Marker_1,用于定位和创建运动副,构建长方体的时候自动生成了一个定位点Marker_2,两个Marker的坐标轴均和全局坐标一致,如图2

[转载]ADAMS约束以及冗余约束的问题

图1

[转载]ADAMS约束以及冗余约束的问题

图2

 

希望通过简单运动副来构建长方体沿轴的转动和移动(即圆柱副)、移动、转动

(1)添加垂直轴(简单运动副),来限制长方体的一个自由度,比如我们打算限制长方体绕Marker_1的Z轴的转动,在垂直轴选项中选择2_Bodies 2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2大地上的Marker_1,方向选取Marker_1的X轴和Y轴,那么生成的Marker_3(长方体)和Marker_4(大地)的Z轴应该与Marker_1的X轴和Y轴一致,如图3,此时要保证Marker_3和Marker_4的Z轴垂直,那么长方体绕Marker_1的Z轴的转动将被限制,即长方体只有五个自由度,即绕Marker_1的X、Y轴的转动,和沿Marker_1的X、Y、Z轴的移动

[转载]ADAMS约束以及冗余约束的问题

图3

(2)在步骤(1)的基础上,添加点+线约束,使长方体的自由度再次减少,选择2_Bodies 1_ocation,实体分别选取长方体和大地,位置选取长方体上的Marker_1,方向选择X轴,那么生成的Marker_6长方体)和Marker_7(大地)的Z轴应该与Marker_1的X轴一直,如图4,此时长方体沿Marker_1的Y、Z轴的移动将被限制,加上步骤(1)中垂直约束,长方体只剩下沿Marker_1的X轴的移动,和绕Marker_1的X、Y轴的转动三个自由度。

[转载]ADAMS约束以及冗余约束的问题
图4

(3)在步骤(1)和(2)的基础上再次添加垂直轴(简单运动副)来限制长方体绕Marker_1的Y轴的转动,选择2_Bodies +2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2大地上的Marker_1方向选取Marker_1的X轴和Z轴,那么生成的Marker_8长方体)和Marker_9大地)的Z轴应该与Marker_1的X轴和Z轴一直,如图5,要保证Marker_8和Marker_9的Z轴垂直,那么长方体绕Marker_1的Y轴的转动将被限制,到现在长方体只剩下了两个自由度,即沿Marker_1的X轴的移动和绕Marker_1的X轴的转动两个自由度,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的,[转载]ADAMS约束以及冗余约束的问题

图5

分别按照步骤(1)、(2)、(3)得到长方体自由度如图6-1、6-2、6-3、6-4;定义Motion如图7-1、7-2,位置选择Marker_1,方向选择Z方向,此时运行成功,如果按照图7-3定义绕Y轴转动的话,运行提示仿真错误,如图7-4

[转载]ADAMS约束以及冗余约束的问题
图6-1

[转载]ADAMS约束以及冗余约束的问题
图6-2

[转载]ADAMS约束以及冗余约束的问题
图6-3

[转载]ADAMS约束以及冗余约束的问题
图6-4

[转载]ADAMS约束以及冗余约束的问题 [转载]ADAMS约束以及冗余约束的问题

图7-1 图7-2

[转载]ADAMS约束以及冗余约束的问题

图7-3

[转载]ADAMS约束以及冗余约束的问题

图7-4

(4)在步骤(1)、(2)、(3)的基础上,要使长方体只能绕X轴移动的一个自由度,再添加垂直轴(简单运动副),选择2_Bodies +2_Location,实体分别选取长方体和大地,位置分别选取长方体上的Marker_2和大地上的Marker_1,方向选取Marker_1的Y和Z轴,那么生成的Marker_10(长方体)和Marker_11(Groud)的Z轴与Marker_1的Y轴和Z轴一直,如图8,要保证Marker_10和Marker_11的Z轴垂直,那么长方体绕Marker_1的X轴的转动将被限制,到现在长方体只剩下了一个自由度,即沿Marker_1的X轴的移动,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的

[转载]ADAMS约束以及冗余约束的问题

图8
 

(5)在步骤(1)、(2)、(3)的基础上,要使长方体只能绕X轴转动的一个自由度,再添加点+面(简单运动副),选择2_Bodies +1_Location,实体分别选取长方体和大地,选取大地上的Marker_1,方向选取Marker_1的X轴,那么生成的Marker_10(长方体)和Marker_11(Groud)的Z轴与Marker_1的X轴一致,如图9,那么长方体绕Marker_1的X轴的移动将被限制,现在长方体只剩下了一个自由度,即沿Marker_1的X轴的转动,通过在ADAMS中定义Motion仿真验证可得,自由度的个数和方向是正确的

 

[转载]ADAMS约束以及冗余约束的问题

图9

(6)如果步骤(5)采用添加点+线约束来限制长方体沿Marker_1的X轴移动,使其达到绕Marker_1的X轴转动,选择2_Bodies +1_Location,实体分别选取长方体和大地,选取大地上的Marker_1,方向选取Marker_1的Z轴,,那么长方体沿Marker_1的X、Y轴的移动被限制此时验证模型提示只有一个自由度,但是出现冗余约束情况,

如下

.model_1.JPRIM_2 (Inline Primitive_Joint) Translation Along Xj,,

如图10,也就是说步骤(2)中的点+线约束已经约束过长方体沿Marker_6和Marker_7的X方向的移动,在坐标系Marker_1中就是Y轴方向移动被约束,如果你再用步骤(6)中点+线约束(沿Marker_1的Z轴方向)约束的话,那么长方体沿Marker_1中就是Y轴方向又被约束一次,出现过约束即冗余约束。

[转载]ADAMS约束以及冗余约束的问题

图10
(7) 用简单运动副(点+线、点+曲线、垂直轴等)来构造基本运动副(转动副、移动副等)的基本方法:用简单运动副构建基本运动副的时候,要保证已经约束过的自由度,不再被约束(即自由状态);添加简单运动副时,要在存在的自由度中移除不需要的自由度,同时使已经约束的自由度成自由状态。下面的话表示同时垂直于Z轴与Y轴的X轴的转动自由度不必要,过约束 ,需要移除。

unnecessarily removes this DOF:

Revolution Between Zi&Yj

(8)谢谢大家多多给我找出错误,谢谢

这篇关于ADAMS约束以及冗余约束的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195127

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col