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

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入