ADAMS函数使用精华

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

样条差值函数
Akima Fitting Method(AKISPL)
定义:由曲线或者曲面返回曲线的导数或者曲线的拟合值。

通过Akima样条曲线拟合方法,使用一系列离散点来拟合曲线。

格式:AKISPL(第一独立变量,第二独立变量,样条函数名,求导阶数)
自变量:第一独立变量(必须)--代表样条中第一独立变量的实数变量。

第二独立变量(必须)-- 代表样条中第二独立变量的实数变量。

样条函数名字(必须)—已存在的数据样条实体的名字,定义了用作拟合的一系列离散点。

求导阶树(可选)—在求离散点时用作求导的阶树。

其合法值为:
*0—返回曲线坐标值。

*1—返回一阶导数值。

*2—返回二阶导数值。

注意:当拟合曲面时,不必指明Derivative Order(求导阶数)。

例子:某样条曲线,spline_1,其定义的离散点如下表所示。

使用Akima样条拟合方法将这些离散点生成拟合函数。

既然样条曲线定义的是曲线而不是曲面, 因此, 将Second Independent Variable(第二独立变量)设置为零。

在下列例子中,给出了独立变量的值和数据,AKISPL返回拟合值:
f = AKISPL(DX(marker_1, marker_2, marker_2), 0, spline_1)
由以上拟合点生成的样条曲线如下图所示:
CURVE
定义:CURVE 函数定义了一条B 样条曲线或者以CURVE 声明创建的用户自定义曲线。

格式: CURVE (alpha, iord, comp, id)
自变量:alpha —确定独立变量α的值的实变量,其中CURVE 函数计算曲线。

如果曲线是以CURVE 计算的B 样条曲
线, α的取值范围为11-≤≤α。

如果曲线是通过CURSUB 计算得出,alpha 的去值范围为MAXPAR MINPAR ≤≤α。

Iord —定义CURVE 函数中求导阶树的整数值。

其合法值为 *0—返回曲线坐标。

*1—返回一阶偏导。

*2—返回二阶偏导。

Comp —定义CURVE 函数中分量的整数变量。

其合法值为: *1—返回x 坐标值或者其导数值。

*2—返回y 坐标值或者其导数值。

*3—返回z 坐标值或者其导数值。

自变量iord 和icomp 组合在一起可以让你获得下面九个值的任何一个:
Id —定义CURVE 中标志符的整数变量。

例子:
VFORCE/1, I=101, JFLOAT=201, RM=99,
, FX=CURVE(。

4*TIME - 1, 0, 1, 8)\
, FY=CURVE(。

4*TIME - 1, 0, 2, 8)\
, FZ=CURVE(。

4*TIME - 1, 0, 3, 8)
该例子对Marker101合Marker102之间采用VFORCE。

其中alpha的变化范围为-1。

0到1。

0之间。

4*TIME-1计算仿真中alpha的瞬时值。

-------------------------------------------------------------------------- ------------------------------------------- freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11
鲜花(0) 鸡蛋(0)


[原创]ADAMS函数使用精华
加3分
ADAMS的函数种类比较多:
1、Displacement Functions
2、Velocity Functions
3、 Acceleration Functions
4、 Contact Functions
5、 Spline Functions
6、 Force in Object Functions
7、Resultant Force Functions
8、 Math Functions
9、 Data Element Access
10、User-Written Subroutine Invocation
11、Constants & Variables
虽然在ADAMS的帮助文档有些说明,
但实际使用时初学者可能往往遇到困难,
现根据自己已往的经验对一些常用的函数作一介绍,
并相应给出了实例,充实论坛,也方便后学的同志。

freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11

3

一、几个常用函数的说明
1、 STEP函数
格式:STEP (x, x0, h0, x1, h1)
参数说明:
x ―自变量,可以是时间或时间的任一函数
x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计
变量;
x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计
变量
h0 ― STEP函数的初始值,可以是常数、设计变量或其它函数表达

h1 ― STEP函数的最终值,可以是常数、设计变量或其它函数表达

此主题相关图片如下:
2004-10-15 16:31:11
科研网址科学·技术·工程·科研·学术·教育·科
技·新知

4
等级:荣誉站友
文章:
248
积分:10
现金:257
魅力:0
注册:
2004-2-11
2、 IF
函数
格式:IF(
表达式1: 表达式2, 表达式3, 表达式4)
参数说明:
表达式1-ADAMS的评估表达式;
表达式2-如果的Expression1值小于0,IF函数返回的Expression2值;
表达式3-
如果表达式1的值等于
0,IF
函数返回表达式3的值;
表达式
4-如果表达式
1的值大于0
,IF函数返回表达式
4的值;
例如:函数IF(time-2.5:0,0.5,1)
结果:0.0 if time < 2.5
0.5 if time = 2.5
1.0 if time >
2.5
2004-10-15 16:32:03
科研搜索科学·技术·工程·科研·学术·教育·科
技·新知
freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11

5

3、AKISPL函数
格式:AKISPL (First Independent Variable, Second Independent Var
iable,Spline Name, Derivative Order)
参数说明:
First Independent Variable ——spline中的第一个自变量
此主题相关图片如下:2004-10-15 16:36:01
freexx
第6楼
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:
2004-2-11
二、实例说明
1、分段函数的表示

ADMA中如何输入力或位移、速度、加速度等的分段曲线,这一直是一
个值得注意的问题。

下面用一个小例子进行简单说明:(这个例子实际上就是常见的加速-匀
速-减速问题)
1) 要输入的速度函数为:
10*t (0<t<0.1)
V= 1 (0.1<t<0.4)
-10*t+5 (0.4<t<0.5)
2) 在ADMAS中的表示:
velo(time)=if(time-0.1:step(time,0,0,0.1,1),1,step(time,0.4,1,
0.5,0))
3) 得到的速度曲线如下图:
此主题相关图片如下:
2004-10-15 16:38:49
科研网址科学·技术·工程·科研·学术·教育·科
技·新知
freexx

7

等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:
2004-2-11
4) 例子的CMD文件见step_if_use.cmd:
点击浏览该文件
2004-10-15 16:41:47
科研搜索科学·技术·
工程·科研·学术·
教育·

技·新知
freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11

8

2、方形波函数的输入
1) 有时需要输入下方波形式的力或力矩,如果单纯地采用STEP函
数迭加是不能实现的。

2) 在ADAMS中输入的函数形式为:
step(sin(2*pi*time),-0.01,-1,0.01,1)
注意点:
⑴当方波的频率改变时,可以通过改变下式中的FREQ得以实现
sin(2*pi*FREQ*time)
⑵改变方波的上下限的方法:
step(sin(2*pi*time),-0.01,LOWER,0.01,UPPER)
⑶例如:
step(sin(2*pi*3.0*time),-0.01,0,0.01,7) 中的频率为3HZ,上下限分
别为0,7
此主题相关图片如下:
2004-10-15 16:44:54
freexx
等级:荣誉站友 文章:248 积分:10 现金:257 魅力:0 注册:2004-2-11

9楼
3、 AKISPL 函数的应用
有时做路径规划或输入力或力矩时,需要用到AKISPL 函数,关于这部分的内容,我不详细讨论了,可参考我前面发的帖子。

/bbs/dispbbs.asp?boardID=4&ID=1601&page=1 数据单元SPLINE 实际上可根据多种渠道创建,如经验数据、实验数据等都可以。

我这里应一些朋友的要求,发上来一个CMD 文件及建立SPLINE 的数据,供朋友们参考。

CMD 文件见lujing_1.cmd:
点击浏览该文件
2004-10-15 16:50:43 科研网址 科学·技术·工程·科研·学术·教育·科技·新知
freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11
第10楼
建立SPLINE时所用的数据:
Time Dis_X
0 0
0.263157895 264.6382854
0.526315789 529.0483902
0.789473684 751.4278083
1.052631579 781.2404309
1.315789474 619.0122219
1.578947368 55
2.1253792
1.842105263 718.4079735
2.105263158 98
3.8161748
2.368421053 1248.462634
2.631578947 151
3.142799
2.894736842 1777.653155
3.157894737 203
4.291889
3.421052632 2156.967539
3.684210526 2085.106599
3.947368421 2025.181599
4.210526316 2146.663913
4.473684211 237
5.226147
4.736842105 2634.081904
5 2900
Time Dis_Z
0 0
0.263157895 -7.67E-04
0.526315789 0.613674188
0.789473684 102.2423923
1.052631579 35
2.6958661
1.315789474 558.5047146
1.578947368 807.3775974
1.842105263 100
2.119048
2.105263158 1000.01823
2.368421053 1000.009096
2.631578947 1000.267792
2.894736842 999.4879245
3.157894737 962.0426698
3.421052632 736.5248822
3.684210526 48
4.6759224
3.947368421 26
4.2985997
4.210526316 38.2516224
4.473684211 4.175972774
4.736842105 -1.187352978
5 0
小人物小小
头衔:多体软件版主
等级:系主任
文章:467
积分:3
现金:488
魅力:
注册:
2004-6-15
第12

我也来一个分段函数
y=-x^2-20 X<-1
x+10 -1<=x<=15
x^2-15 x>15
解答:
y=if(x+1:-x^2-20,x+10,if(x-15:x+10,x+10,x^2+15))
----------------------------------------------
something gained,something lost
something lost,something gained
2004-10-15 19:14:27 科研搜索科学·技术·工程·科研·学术·教育·科技·新知
小人物小小
头衔:多体软件版主
等级:系主任
文章:467
积分:3
第13楼
也就是:
x+1<0,即x<-1,y=-x^2-20
现金:
488
魅力:
注册:
2004-6-15
x+1=0,即x=-1,y=x+10
x+1>0,即x>-1 y=if(x-15:x+10,x+10,x^2+15)
x+1>0 且
x-15<0,即-1<x<15,y=x+10
x+1>0 且x-15=0,即
x=15,y=x+10
x+1>0 且x-15>0,
即x>15,y=x^2-15
----------------------------------------------
something gained,something lost
something lost,something gained
2004-10-15 19:24:31
科研网址科学·
技术·工程·科研·学术·
教育·科
技·新知
kaseriris
等级:本科生
文章:38
积分:0
现金:43
魅力:0
注册:2004-3-5
第17楼
freexx太伟大了
我也发一个关于测量接触力的是一位高手交给我的
CONTACT( Contact_Name , On_Body , Component , Axes )
contact_name 接触力的名字
on_body 作用体与反作用体,0为I物体,就是作用体,1为J物体就
是反作用体!
Component 是接触的分量。

1代表力总的大小,2代表X方向的分力,
3代表Y方向上的,4代表Z方向上的。

5代表力矩总的大小,6代表X
方向的力矩(右手螺旋),7代表Y方向的,8代表Z方向的!
Axes 是一个marker,就是代表你在哪个坐标系下测量。

默认为0,也
就是在大地坐标系下测量
2004-10-16 17:58:34
andyxin
等级:本科生
文章:51
积分:3
现金:55
魅力:0
注册:2004-3-12
第18

收益了,伟大!
2004-10-17 14:46:24
科研搜索科学·技术·工程·科研·学术·教育·科
技·新知
freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11

19

两天没上,大家已讨论得热火朝天了,
俗话说“众人抬火火焰高”,非常感谢小小斑主和
小燕子的积极参与及奉献精神。

2004-10-18 9:08:00
科研搜索科学·技术·工程·科研·学术·教育·科
技·新知
freexx
等级:荣誉站友
文章:248
积分:10
现金:257
魅力:0
注册:2004-2-11
第20楼
以下是引用kaseriris在2004-10-16 17:58:34的发言:
freexx太伟大了
我也发一个关于测量接触力的是一位高手交给我的
CONTACT( Contact_Name , On_Body , Component , Axes )
contact_name 接触力的名字
on_body 作用体与反作用体,0为I物体,就是作用体,1为J物体就是反作用体!
Component 是接触的分量。

1代表力总的大小,2代表X方向的分力,3代表Y方
向上的,4代表Z方向上的。

5代表力矩总的大小,6代表X方向的力矩(右手螺旋),
7代表Y方向的,8代表Z方向的!
Axes 是一个marker,就是代表你在哪个坐标系下测量。

默认为0,也就是在大地
坐标系下测量
燕子的这个函数发得很好,是建立接触力后的测量与引用,
还有一个建立接触力时经常使用的函数IMPACT函数,
我简单地说明一下,目的是引起大家的注意,在用的时候能很快想起。

freexx
等级:荣誉站友
文章:248
积分:10

2
1

在定义接触力时Normal Force有两个选项:
1、Restitution(Define a restitution-based conta
ct);
现金:257
魅力:0
注册:2004-2-11 2、Impact(Define an impact contact)
第二个选项就是利用IMPACT函数,它能方便地表达那种间歇碰撞力
(即达到某一位移值才激发的碰撞力)。

它的参数意义及力学基础:
One-sided Impact (IMPACT)
1、理解:用只抗压缩的非线性的弹簧阻尼方法近似计算出单边碰撞力。

2、格式:IMPACT (Displacement Variable, Velocity V ariable, Trigger for Displacement Variable, Stiff ness Coefficient, Stiffness Force Exponent, Dampi ng Coefficient, Damping Ramp-up Distance)
3、参数说明:
Displacement Variable
实时位移变量值,通过DX、DY、DZ、DM等函数实时测量。

Velocity Variable
实时速度变量值,通过VX、VY、VZ、VM等函数实时测量。

Trigger for Displacement Variable
激发碰撞力的位移测量值。

Stiffness Coefficient or K
刚度系统。

Stiffness Force Exponent
非线性弹簧力指数。

Damping Coefficient or C
阻尼系数。

Damping Ramp-up Distance
当碰撞力被激发阻尼逐渐增大的位移值。

4
、Impact 函数的力学基理:
IMPACT 函数值由自变量值决定其有无:
IMPACT = Off if s > so On if s <=so
IMPACT 函数的数学计算公式为:
MAX {0, K(so - s)**e - Cv *STEP (s, so- d, 1, so ,0)} 参数说明:
s ——位移变量 v ——速度变量
so ——碰撞力的激发位移值
K ——刚度系数
C ——阻尼系数
D ——阻尼逐渐增大的位移值
2004-10-18 9:4
8:50
科研网址 科学·
技术·工程·科
研·学术·教育·科技·新知
kaseriris
等级:本科生
文章:38 积分:0 现金:43 魅力:0
第22楼
哈哈,谢谢freexx 的表扬
BISTOP 函数:它的格式是BISTOP( x, dx, x1, x2, k, e, cmax, d)这里它由八个参数定义。

它与函数IMPACT 类似。

注册:2004-3-5
可以这么说:BISTOP 是双侧碰撞函数,而IMPACT 是单侧碰撞函数。

BISTOP 的触发是由两个边界条件确定的,即x1和x2,当x 值大于或等于x1且小于或等于x2时,函数值为0,当x 值大于x2或小于x1时,它的值是不同的。

当x 小于x1时,返回值是:k(x1-x)^e-cmax*dx*step(x,x1-d,1,x1,0),当x 大于x2时,返回值是:k(x-x2)^e-cmax*dx*step(x,x2,1,x2+d,0)。

各种参数表示意义可以从IMPACT 里推出来,它只是多了一个x2。

----------------------------------------------
/UploadFile/2004-8/2004810222554989.gif
2004-10-19 15:04:33 科研网址 科学·技术·工程·科研·学术·教育·科技·新知。

相关文档
最新文档