ADAMS函数简介

ADAMS函数简介
ADAMS函数简介

ADAMS/View函数及ADAMS/Solver函数的类型及建立

ADAMS/View函数包括设计函数与运行函数两种类型,函数的建立对应有表达式模式和运行模式两种。表达式模式下在设计过程中对设计函数求值,而运行模式下会在仿真过程中对运行函数进行计算更新。ADAMS/Solver函数支持ADAMS/View运行模式下的函数,在仿真过程中采用ADAMS/Solver解算时对这些函数进行计算更新。

建立表达式模式下的函数

在进行建立表达式、产生和修改需要计算的测量及建立设计函数等操作时,会采用表达式模式。

在建立表达式时,首先在接受表达式的文本框处右击,然后选择“Parameterize”再选择“Expression Euilder”,进入建立设计函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

在产生和修改需要计算的测量时,首先在“Build”菜单中选择“Measure”,然后指向“Computed”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改需要计算的测量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

在建立设计函数时,首先在“Build”菜单中选择“Function”,然后选择“New”或“Modified”确定是新建还是修改,进入产生和修改设计函数对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

建立运行模式下的函数

在进行建立运行函数、产生和修改函数型的测量等操作时,会采用运行模式。

在建立运行函数时,首先在接受表达式的文本框处右击,然后选择“Function Euilder”,进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

在产生和修改函数型的测量时,首先在“Build”菜单中选择“Measure”,然后指向“Function”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改函数型的度量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

ADAMS/View设计函数

ADAMS/View设计函数在设计过程中模型定义时有效,而不需到仿真过程中仿真分析时再进行计算更新。设计函数可用来将模型参数化以便进行优化和灵敏度分析。

设计函数包括系统提供的函数和用户自定义函数,这里仅对系统提供的函数做扼要介绍。

数学函数

数学函数适用于对标量和矩阵进行数学计算,如果输入变量为标量其返回值就是标

量,如果输入变量为矩阵其返回值就是矩阵。ADAMS/View中系统提供的数学函数大致分类介绍如下。

(1)基本数学函数

ABS(x) 数字表达式x的绝对值

DIM(x1,x2) x1>x2时x1与x2之间的差值,x1

EXP(x) 数字表达式x的指数值

LOG(x) 数字表达式x的自然对数值

LOG10(x) 数字表达式x的以10为底的对数值

MAG(x,y,z) 向量[x,y,z]求模

MOD(x1,x2) 数字表达式x1对另一个数字表达式x2取余数

RAND(x) 返回0到1之间的随机数

SIGN(x1,x2) 符号函数,当x2>0时返回ABS(x),当x2<0时返回-ABS(x)

SQRT(x) 数字表达式x的平方根值

(2)三角函数

SIN(x) 数字表达式x的正弦值

SINH(x) 数字表达式x的双曲正弦值

COS(x) 数字表达式x的余弦值

COSH(x) 数字表达式x的双曲余弦值

TAN(x) 数字表达式x的正切值

TANH(x) 数字表达式x的双曲正切值

ASIN(x) 数字表达式x的反正弦值

ACOS(x) 数字表达式x的反余弦值

ATAN(x) 数字表达式x的反正切值

ATAN2(x1,x2) 两个数字表达式x1,x2的四象限反正切值

(3)取整函数

INT(x) 数字表达式x取整

AINT(x) 数字表达式x向绝对值小的方向取整

ANINT(x) 数字表达式x向绝对值大的方向取整

CEIL(x) 数字表达式x向正无穷的方向取整

FLOOR(x) 数字表达式x向负无穷的方向取整

NINT(x) 最接近数字表达式x的整数值

RTOI(x) 返回数字表达式x的整数部分

位置/方向函数

位置/方向函数用于根据不同输入变量计算有关位置或方向的参数。ADAMS/View中系统提供的位置/方向函数分类介绍如下。

(1)位置函数

LOC_ALONG_LINE 返回两点连线上与第一点距离为指定值的点

LOC_CYLINDRICAL 将圆柱坐标系下坐标值转化为笛卡儿坐标系下坐标值

LOC_FRAME_MIRROR 返回指定点关于指定坐标系下平面的对称点

LOC_GLOBAL 返回参考坐标系下的点在全局坐标系下的坐标值

LOC_INLINE 将一个参考坐标系下的坐标值转化为另一参考坐标系下的坐标值并归一化

LOC_LOC 将一个参考坐标系下的坐标值转化为另一参考坐标系下的坐标值

LOC_LOCAL 返回全局坐标系下的点在参考坐标系下的坐标值

LOC_MIRROR 返回指定点关于指定坐标系下平面的对称点

LOC_ON_AXIS 沿轴线方向平移

LOC_ON_LINE 返回两点连线上与第一点距离为指定值的点

LOC_PERPENDICULAR 返回平面法线上距离指定点单位长度的点

LOC_PLANE_MIRROR 返回特定点关于指定平面的对称点

LOC_RELATIVE_TO 返回特定点在指定坐标系下的坐标值

LOC_SPHERICAL 将球面坐标转化为笛卡儿坐标

LOC_X_AXIS 坐标系x轴在全局坐标中的单位矢量

LOC_Y_AXIS 坐标系y轴在全局坐标中的单位矢量

LOC_Z_AXIS 坐标系z轴在全局坐标中的单位矢量

(2)方向函数

ORI_ALIGN_AXIS 将坐标系按指定方式旋转至与指定方向对齐所需旋转的角度ORI_ALONG_AXIS_EUL将坐标系按指定方式旋转至与全局坐标系一个轴方向对齐所需旋转的角度

ORI_ALL_AXES 将坐标系旋转至由平面上的点定义的特定方向(第一轴与指定平面上两点连线平行,第二轴与指定平面平行)时所需旋转的角度

ORI_ALONG_AXIS 将坐标系旋转至其一轴线沿指定轴线方向时所需旋转的角度ORI_FRAME_MIRROR 返回坐标系旋转镜像到指定坐标系下所需旋转的角度

ORI_GLOBAL 返回参考坐标系在全局坐标系下的角度值

ORI_IN_PLANE 将坐标系旋转至特定方向(与指定两点连线平行、与指定平面平行时所需旋转的角度

ORI_LOCAL 返回全局坐标系在参考坐标系下的角度值

ORI_MIRROR 返回坐标系旋转镜像到指定坐标系下所需旋转的角度

ORI_ONE_AXIS 将坐标系旋转至其一轴线沿两点连线方向时所需旋转的角度

ORI_ORI 将一个参考坐标系转化为另一参考坐标系所需旋转的角度

ORI_PLANE_MIRROR返回坐标系旋转生成关于某平面的镜像所需旋转的角度

ORI_RELATIVE_TO 返回全局坐标系下角度值相对指定坐标系的旋转角度

建模函数

运动学建模函数返回marker点或构件之间位移的度量。这些函数有些与运行函数重

名,但只是计算设计函数在前后关系中的瞬时值,只在模型定义时起作用,而不在仿真分析的时间步中起作用。

(1)距离函数

DM 返回两点之间的距离

DX 返回在指定参考坐标系中两点间的X坐标值之差

DY 返回在指定参考坐标系中两点间的Y坐标值之差

DZ 返回在指定参考坐标系中两点间的Z坐标值之差

(2)角度函数

AX 返回在指定参考坐标系中两点间关于X轴的角度差

AY 返回在指定参考坐标系中两点间关于Y轴的角度差

AZ 返回在指定参考坐标系中两点间关于Z轴的角度差

(3)按313顺序的旋转角度

PSI 按照313旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度

THETA 按照313旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度

PHI 按照313旋转系列,返回指定坐标系相对于参考坐标系的第三旋转角度

(4)按照321顺序的旋转角度

YAW 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度

PITCH 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度的相反数ROLL 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第三旋转角度

矩阵/数组函数

矩阵/数组函数可很方便地完成针对矩阵/数组的操作。

(1)矩阵/数组的基本操作函数

ALIGN 将数组转换到从特定值开始

ALLM 返回矩阵元素的逻辑值

ANGLES 将方向余弦矩阵转换为指定旋转顺序下的角度矩阵

ANYM 返回矩阵元素的逻辑和

APPEND 将一个矩阵中的行添加到另一矩阵

CENTER 返回数列最大、最小值的中间值

CLIP 返回矩阵的一个子阵

COLS 返回矩阵列数

COMPRESS 压缩数组、删除其中的空值元素(零,空字符及空格)

CONVERT ANGLES将313旋转顺序转化为用户自定义的旋转顺序

CROSS 返回两矩阵的向量积

DET 返回方阵M的行列式值

DIFF 返回给定数据组的逼近值

DIFFERENTIATE 曲线微分

DMAT 返回对角线方阵

DOT 返回两矩阵的内积

ELEMENT 判断元素是否属于指定数组

EXCLUDE 删除数组中某元素

FIRST 返回数组的第一个元素

FIRST_N 返回数组的前N个元素

INCLUDE 向数组中添加元素

INTEGR 返回数据积分的逼近值

INTERATE 拟合样条曲线后再积分

INVERSE 方阵求逆

LAST 返回矩阵最后一个元素

LAST_N 返回矩阵最后N个元素

MAX 返回矩阵元素的最大值

MAXI 返回矩阵元素最大值的位置索引

MEAN 返回矩阵元素的平均值

MIN 返回矩阵元素的最小值

MINI 返回矩阵元素最小值的位置索引

NORM2 返回矩阵元素平方和的平方根NORMALIZE 矩阵归一化处理

RECTANGULAR 返回矩阵所有元素的值

RESAMPLE 按照指定内插算法对曲线重新采样RESHAPE 按指定行数列数提取矩阵元素生成新矩阵RMS 计算矩阵元素的均方根值

ROWS 返回矩阵行数

SERIES 按指定初值、增量和数组长度生成数组SERIES2 按指定初值、终值和增量数生成数组SHAPE 返回矩阵行数、列数

SIM_TIME 返回仿真时间

SORT 依据一定顺序对数组元素排序

SORT_BY 依据一定的排列位置索引对数组元素排序SORT_INDEX 依据一定顺序的数组元素排列位置索引SSQ 返回矩阵元素平方和

STACK 合并相同列数的矩阵成一个新矩阵STEP 生成阶跃曲线

SUM 矩阵元素求和

TILDE 数组的TILDE函数

TMA T 符合指定方向顺序的变换矩阵TRANSPOSE 求矩阵转置

UNIQUE 删除矩阵中的重复元素

V AL 返回数组中与指定值最接近的元素

V ALAT 返回数组中与另一数组指定位置对应处的元素

V ALI 返回数组中与指定数值最接近元素的位置索引

(2)样条插值

AKIMA_SOLINE 使用Akima迭代插值法生成内插样条曲线

CSPLINE 生成3次内插样条曲线

CUBIC_SPLINE 生成3阶内插多项式曲线

DETREND 返回最小二乘拟合曲线与输入数据的差值

HERMITE_SPLINE 使用荷尔米特插值法生成内插样条曲线

LINEAR_SPLINE 线性插值生成内插样条曲线

NOTAKNOT_SPLINE生成3次光顺连续插值样条曲线

SPLINE 生成插值样条曲线

(3)频域分析

FFTMAG 返回快速傅立叶变换后的幅值

FFTPHASE 返回快速傅立叶变换后的相位

FILTER 返回按指定格式滤波处理后的数据

FREQUENCY 返回快速傅立叶变换频率数

HAMMING 采用HAMMING窗处理数据

HANNING 采用HANNING窗处理数据

WELCH 采用WELCH窗处理数据

PSD 计算功率谱密度

字符串函数

字符串函数允许对字符串进行操作。

STA TUS_PRINT 将文本字符串返回到状态栏

STR_CASE 将字符串按指定方式进行大小写变换

STR_CHR 返回ASCII码为指定值的字符

STR_COMPARE 返回两字符在字母表上的位置差

STR_DA TE 按一定格式输出当前时间和日期

STR_DELETE 从字符串中一定位置开始删除指定个数的字符

STR_FIND 返回字符串在另一字符串中的位置索引

STR_FIND_COUNT 返回字符串在另一字符串中出现的次数

STR_FIND_N 返回字符串在另一字符串中重复出现指定次数时的位置索引STR_INSERT 将字符串插入到另一字符串的指定位置

STR_IS_SPACE 判断字符串是否为空

STR_LENGTH 返回字符串长度

STR_MA TCH 判断字符串中所有字符是否均可以在另一字符串中找到STR_PRINT 将字符串写入aview.log文件

STR_REMOVE_WHITESPACE 删除字符串中所有的头尾空格

STR_SPLIT 从字符串中出现指定字符处切断字符串

STR_SPRINTF 按C语言规则定义的格式得到字符串

STR_SUBSTR 在字符串中从指定位置开始截取指定长度的子字符串

STR_TIMESTAMP 以缺省格式输出当前时间及日期

STR_XLATE 将字符串中所有子串用指定子串代替

数据库函数

数据库函数可方便用户访问数据库。

DB_CHANGED 标记数据库元素是否被修改

DN_CHILDREN 查询对象中符合指定类型的子对象

DB_COUNT 查询对象中给定域数值的个数

DB_DEFAULT 查询指定类型的缺省对象

DB_DELETE_DEPENDENTS 返回与指定对象具有相关性的对象数组

DB_DEPENDENTS 返回与指定对象具有相关性且属于指定类型的所有对象

DB_EXIT 判断指定字符串表示的对象是否存在

DB_FIELD_FILTER 将对象按指定方式过滤

DB_FIELD_TYPE 返回在指定对象域中数据类型的字符串

DB_FILTER_NAME 名称满足指定过滤参数的对象字符串

DB_FILTER_TYPE 数据类型满足指定过滤参数的对象字符串

DB_IMMEDIATE_CHILDREN 返回属于指定对象子层的所有对象数组

DB_OBJECT_COUNT 返回名称与指定值相同的对象的个数

DB_OF_CLASS 判断对象是否属于指定类别

GUI函数组

GUI函数组可用来进行图形用户界面的操作。

ALERT 返回自定义标题的警告对话框

FILE_ALERT 返回自定义文件名的警告对话框

SELECT_FIELD 返回按指定对象类型确定的域

SELECT_FILE 返回符合指定格式选项的文件名

SELECT_MULTI_TEXT 返回多个选定字符串

SELECT_OBJECT 返回一个按指定路径、名称和类型确定的对象SELECT_OBJECTS 返回所有按指定路径、名称和类型确定的对象SELECT_TEXT 返回单个选定字符串

SELECT_TYPE 返回指定类型对象的列表

TABLE _COLUMN_SELECTED_CELLS 返回选定的某单元在表格给定列中所在行的位置

TABLE_GET_CELLS 返回在表格指定行列范围内满足指定条件的内容TABLE_GET_DIMENSION 返回指定表格的行数或列数

系统函数组

系统函数组提供针对系统的操作。

CHDIR 判断是否成功转换到指定目录

EXECUTE_VIEW_COMMAND 判断是否成功执行ADAMS/View

FILE_EXISTS 判断是否存在指定文件

FILE_TEMP_NAME 返回一个临时文件名

GETCWD 返回当前工作路径

GETENV 返回表示环境变量值的字符串

MKDIR 判断是否成功创建自定义路径

PUTENV 判断是否成功设置环境变量

REMOVE_FILE 判断是否成功删除指定文件

RENAME_FILE 判断是否成功更改文件名

SYS_INFO 返回系统信息

UNIQUE_FILE_NAME 返回文件名

ADAMS/View运行函数及ADAMS/Solver函数

ADAMS/View运行函数能够表明定义系统行为的仿真状态间的数学关系。在ADAMS/ View中将这些运行函数与其他不同元素一同创建各种系统变量,这些函数大多数都以施加力和产生运动为目的。之后在仿真中进行解算时,ADAMS/ Solver会用到这些变量函数并进行计算更新,在仿真过程中这些系统状态会发生改变,如随时间的改变而改变、随零件的移动而改变、施加的力以不同方式改变等。

位移函数

(1)线位移函数

DX 返回位移矢量在坐标系X轴方向的分量

DY 返回位移矢量在坐标系Y轴方向的分量

DZ 返回位移矢量在坐标系Z轴方向的分量

DM 返回位移距离

(2)角位移函数

AX 返回一指定标架绕另一标架X轴旋转的角度

AY 返回一指定标架绕另一标架Y轴旋转的角度

AZ 返回一指定标架绕另一标架Z轴旋转的角度

(3)按313顺序的角位移

PSI 按照313旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度

THETA 按照313旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度

PHI 按照313旋转系列,返回指定坐标系相对于参考坐标系的第三旋转角度

(4)按照321顺序的角位移

YAW 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度PITCH 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度的相反数

ROLL 按照321旋转顺序,返回指定坐标系相对于参考坐标系的第三旋转角度速度函数

(1)线速度函数

VX 返回两标架相对于指定坐标系的速度矢量差在X轴的分量

VY 返回两标架相对于指定坐标系的速度矢量差在Y轴的分量

VZ 返回两标架相对于指定坐标系的速度矢量差在Z轴的分量

VM 返回两标架相对于指定坐标系的速度矢量差的幅值

VR 返回两标架的径向相对速度

(2)角速度函数

WX 返回两标架的角速度矢量差在X轴的分量

WX 返回两标架的角速度矢量差在Y轴的分量

WX 返回两标架的角速度矢量差在Z轴的分量

WM 返回两标架的角速度矢量差的幅值

加速度函数

(1)线加速度函数

ACCX 返回两标架相对于指定坐标系的加速度矢量差在X轴的分量

ACCY 返回两标架相对于指定坐标系的加速度矢量差在Y轴的分量

ACCZ 返回两标架相对于指定坐标系的加速度矢量差在Z轴的分量

ACCM 返回两标架相对于指定坐标系的加速度矢量差的幅值

(2)角加速度函数

WDTX 返回两标架的角加速度矢量差在轴的分量

WDTY 返回两标架的角加速度矢量差在Y轴的分量

WDTZ 返回两标架的角加速度矢量差在Z轴的分量

WDTM 返回两标架的角加速度矢量差的幅值

接触函数

IMPACT 生成单侧碰撞力

BISTOP 生成双侧碰撞力

样条差值函数

CUBSPL 标准三次样条函数插值

CURVE B样条拟合或用户定义拟合

AKISPL 根据Akima拟合方式得到的插值

约束力函数

JOINT 返回运动副上的连接力或力矩

MOTION 返回由于运动约束而产生的力或力矩

PTCV 返回点线接触运动副上的力或力矩

CVCV 返回线线接触运动副上的力或力矩

JPRIM 返回基本约束引起的力或力矩

SFORCE 返回单个作用力施加在一个或一对构件上引起的力或力矩

VFORCE 返回3个方向组合力施加在一个或一对构件上引起的力或力矩

VTORQ 返回3个方向组合力矩施加在一个或一对构件上而引起的力或力矩GFORCE 返回6个方向组合力(力矩)施加在一个或一对构件上而引起的力或力矩NFORCE 返回一个由多点作用力施加在一个或一对构件上而引起的力或力矩BEAM 返回由梁连接施加在一个或一对构件上的力或力矩

BUSH 返回由衬套连接施加在一个或一对构件上而引起的力或力矩

FIELD 返回一个由场力施加在一个或一对构件上而引起的力或力矩

SPDP 返回一个由弹簧阻尼力施加在一个或一对构件上而引起的力或力矩

合力函数

FX 返回两标架间作用的合力在X轴上的分量

FY 返回两标架间作用的合力在Y轴上的分量

FZ 返回两标架间作用的合力在Z轴上的分量

FM 返回两标架间作用的合力

TX 返回两标架间作用的合力矩在X轴上的分量

TY 返回两标架间作用的合力矩在Y轴上的分量

TZ 返回两标架间作用的合力矩在Z轴上的分量

TM 返回两标架间作用的合力矩

数学函数

CHEBY 计算切比雪夫多项式

FORCOS 计算傅立叶余弦级数

FORSIN 计算傅立叶正弦级数

HA VSIN 定义半正矢阶跃函数

INVPSD 依据功率谱密度生成时域信号

MAX 计算最大值

MIN 计算最小值

POL Y 计算标准多项式

SHF 计算简谐函数

STEP 3次多项式逼近阶跃函数

STEP5 5次多项式逼近阶跃函数

SWEEP 返回按指定格式生成的变频正弦函数

还有其他一些常用数学计算的数学函数与ADAMS/View设计函数中的数学函数相同。数据单元

V ARV AL 返回状态变量的当前值

ARYV AL 返回数组中指定元素的值

DIF 返回微分方程所定义变量的积分值

DIF1 返回微分方程所定义变量的值

PINV AL 返回输入信号中指定元素的运行值

POUV AL 返回输出信号中指定元素的运行值

函数应用实例

ADAMS/View函数和ADAMS/Solver函数功能强大、使用灵活,是应用ADAMS进行工程分析时的强大工具。下面结合一个多体动力学模型振动分析的例子,具体介绍ADAMS/View函数和ADAMS/Solver函数的使用方法。这里仍采用上一章介绍的振动分析模型,模型描述参见7.6.1节,模型结构如图7-9所示,该模型可以视为汽车振动系统的一个简化模型,可用于研究汽车的平顺性。

定义不同形式的驱动约束

应用函数可以定义不同形式的驱动约束。在上述模型中,所定义的驱动约束激励相当于路面不平度激励。根据实际路面不平度激励的形式,可以有多种不同的形式。采用ADAMS/View函数和ADAMS/Solver函数可以对驱动约束进行定义、解算等。

(1)驱动约束中函数的建立

建立好的动力学模型中已经含有驱动约束,但驱动约束的数值可能不是我们所需要的,如缺省的驱动约束一般定义为一个常数与时间的乘积。因此,需要将驱动约束建立成特定的运行函数形式,以便更为真实地反映实际的激励情况。

首先在ADAMS/View的屏幕上右击驱动约束,会出现关于右击鼠标区域附近许多对象的浮动菜单,包括附近的其他构件、标架、约束及力等。这时需从中选择需要进行修改的驱动约束,然后在这个驱动约束名字后面的浮动菜单中选择“Modify”,进入驱动约束修改对话框。在对话框中有一项“Function(time)”是描述该驱动约束的函数,其后面的文本框就是输入运行函数表达式的地方。在接受表达式的文本框处右击,出现下拉式菜单后在其中选择“Function Builder”;或者在接受表达式的文本框后面单击“…”按钮,都可以进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

上面建立驱动约束的过程中,需要在对话框中输入表达式来定义驱动约束的具体形式,这个表达式需要用一个函数来定义。采用不同的函数可以定义不同的驱动约束形式(2)阶跃函数、脉冲函数等形式的驱动约束

阶跃函数是一般数学计算中常用的函数,也是振动分析中的一类典型输入,因为具有特定的频率响应特性而广为采用。阶跃函数的形式为:STEP (x, Begin At, Initial Function Value, End At, Final Function Value)。

其中x为自变量,当x小于Begin At值时,因变量的值为初始值Initial Function Value;当x大于End At值时,因变量的值为终止值Final Function Value;当x在初始值和终止值之间时,因变量依据一定规律光滑过渡,避免出现数值过渡突变、微分值不连续。

在前述实例中,所用的阶跃函数形式为:STEP (time, 0.1, 0.0, 0.2, 1.0)*5.0。则通过计算生成阶跃函数,阶跃函数直接作用在构件5上,造成构件5的垂直方向位移为阶跃函数的形式,如图8-1所示。

图8-1 实例所用的阶跃函数

脉冲函数也是一般数学计算中常用的函数,是振动分析中的一类典型输入,因为具有特定的频率响应特性而广为采用。脉冲函数可由阶跃函数构造而成,以保证其良好的连续性、光顺性。

在前述实例中,所用的脉冲函数定义为:STEP (time, 0.1, 0.0, 0.2, 1.0)*STEP (time, 0.2, 1.0, 0.3, 0.0)*5.0。则通过计算生成脉冲函数,脉冲函数直接作用在构件5上,造成构件5的垂直方向位移为脉冲函数的形式,如图8-2所示。

图8-2 实例所用的脉冲函数

采用类似的方法,还可以生成sin等三角函数形式的驱动约束。

(3)样条函数形式的驱动约束

在实际应用中有时需要采用来自实际测试的数据作为输入,这时需要将这些输入数据定义为样条函数,然后定义样条函数形式的驱动约束。

首先需要将测试数据输入到ADSMS/View中,在ADSMS/View的“File”菜单中选择“Import…”,然后在出现的“File Import”对话框中将“File Type”选为Test Data(*.*)。这时对话框随之而变为相应的测试数据输入形式,在“File Type”下面复选框上选中“Create Spline”,然后在“File to Read”文本框中键入(或用单击右键后从“Brouse…”菜单中选择)所需读入的数据文件的文件名,该文件中数据为两列,分别为时间值和测试数据值。注意还要在“Independent Colume Index”文本框中键入数字“1”,表示所输入的数据第一列就是自

变量(时间)。最后按下“OK”按钮,则测试数据就已经以样条的形式输入到ADSMS/View 中了。

观察由输入测试数据生成的样条,可以从ADSMS/View的“Build”菜单中选择“Data Element”再选“Spline”-“Modify”,然后从弹出的“Data Navigator”对话框中选择新产生的样条的名称(如果前面没有输入过样条,这里就是缺省的样条名称和编号“SPLINE_1”),就可进入“Modify Spline …”对话框。在该对话框中可以检查和修改用来生成样条的输入测试数据点的数值,还可以将测试数据点和样条绘成曲线进行观察。

然后需要将驱动约束定义为由输入测试数据生成的样条,在驱动约束定义中采用样条函数。样条函数有几种不同形式,其中较常用的AKISPL样条形式为:

AKISPL (First Independent Variable, Second Independent Variable, Spline Name, Derivative Order)

其中前两个参数为自变量,一般以时间为第一个自变量、第二个自变量设为0。Spline Name是所需调用的样条的名字,Derivative Order是样条的阶数,选择0时返回样条曲线坐标值。

在前述实例中,所用的样条函数定义为:AKISPL(time , 0 , SPLINE_1, 0)。通过计算生成样条函数,样条函数直接作用在构件5上,造成构件5的垂直方向位移为符合测试数据的形式,如图8-3所示。

图8-3 实例所用的样条函数

定义和调用系统状态变量

应用函数可以定义和调用系统状态变量。在设计过程中,有时需要将系统中某个元素在仿真过程中的数值引入定义另一个元素,这时需要将元素的可变数值定义为系统的一个状态变量;而在定义另一个元素时采用状态变量函数来调用前面定义的状态变量。这个状态变量函数及所定义的元素会在仿真计算过程中随时计算更新,以保证满足仿真计算的功能需求。

在前述实例中,在一般汽车结构中为降低驾驶室(构件2)振动幅度,可以采用在悬架上加装主动控制机构的方法,就是在车架(构件3)和车桥(构件4)之间增加一个主动力发生装置。而这个主动力的大小是和车架(构件3)和车桥(构件4)之间的相对位移、速度和加速度有关的。为此,可以将前面的相对位移、速度和加速度定义成系统的状态变量,而通过变量函数将主动力定义为状态变量的函数,由此实现悬架的主动控制。

(1)系统状态变量的定义

定义系统状态变量,首先需要在“Build”菜单中选中“System Element”,然后选“State Variable”-“New”,这时会弹出参数系统状态变量对话框,在对话框中“Difinition”文本框后选择“Run-time expression”。这种形式的对话框中有一项“F(ti me,…)”是描述该状态变量的函数,其后面的文本框就是输入运行函数表达式的地方。在接受表达式的文本框处右击,出现下拉式菜单后在其中选择“Function Builder”;或者在接受表达式的文本框后面单击“…”按钮,都可以进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

上面建立系统状态变量的过程中,需要在对话框中输入表达式来定义状态变量的具体形式,这个表达式需要用一个函数来定义。具体采用何种函数视状态变量的功能而定,如前述实例中为完成主动控制,需要将车架(构件3)和车桥(构件4)之间的相对位移、速度和加速度定义成系统的状态变量。

定义相对位移、速度和加速度的函数参见8.3.1、8.3.2、8.3.3部分。如需定义两个标架间在y方向的相对位移,所用的相对位移函数定义为:

DY( To_Marker , From_Marker , Along_Marker )

其中From_Marker和To_Marker是两个标架的名称,而Along_Marker则是说明函数沿哪个参考坐标系的y轴方向测量相对位移。

在前述实例中,如需定义构件3质心和构件4质心之间的相对位移,所用的相对位移函数定义为:DY( PART_3.cm, PART_4.cm, PART_4.cm)。其他函数采用相似的方法定义(2)系统状态变量的调用与主动控制力的定义

定义了系统状态变量后,需采用特定的变量函数进行调用。变量函数的具体形式为:VARVAL (id)

其中id为所调用的系统状态变量的编号。在前述实例中,将系统状态变量V ARIABLE_1,V ARIABLE_2定义为构件3质心和构件4质心之间的相对位移、速度、加速度,则在调用这三个状态变量时采用V ARV AL (1) 、V ARV AL (2) 、VARV AL (3)的形式。

要在构件3和构件4之间作用一个主动控制力,可以采用图标、命令行和命令导航器三种不同的形式。采用这三种形式生成一个SFORCE后,可以右击这个SFORCE弹出“Modify Force”对话框,然后在对话框上对这个力进行修改。在对话框中“Define Using” 文本框后选择“Function”,指定采用函数的形式定义这个力的大小。这种形式的对话框中有一项“Function”是描述该力的大小的函数,其后面的文本框就是输入运行函数表达式的地方。在接受表达式的文本框处右击,出现下拉式菜单后在其中选择“Function Builder”;或者在接受表达式的文本框后面单击“…”按钮,都可以进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

在前述实例中,如需定义主动控制力为构件3和构件4之间的相对位移、速度的函数,在这里调用系统状态变量的形式为:V ARV AL(1)*(-10.0)+V ARV AL(2)*(-0.0) +V ARV AL(2)*(- 0.1)。

采用了这样的主动力控制后,构件2的加速度如图8.4-4中虚线所示,原始的加速度如图8.4-4中实线所示。由图上可知加入主动控制力后构件加速度降低、系统振动特性得

到显著改善。

图8-4 不采用主动力控制与采用主动力控制时构件加速度的比较(3)系统状态变量的其他应用

系统状态变量用途较广泛。当采用ADAMS/Control模块时,需要将输入、输出变量定义为状态变量,然后将输入、输出变量发送到MATLAB/Simulink中进行控制策略的分析与研究。

度量或请求的定义和调用

应用函数还可以定义和调用系统中的度量。在仿真过程结束后,一般是采用ADAMS/ PostProcessor观察基本对象的动画或曲线图,包括各构件的位移速度、加速度及各种力元等。但有时这样的简单结果尚不足以反映系统的特性,这时需要采用各种函数自定义一些更为复杂的度量或请求,以便更直观地反映系统的特性。

在前述实例中,除关心各构件的绝对位移、速度、加速度外,有时还关心两个构件间的相对位移、速度、加速度,这时就需要采用函数构造用户自定义的度量或请求。

(1)函数型度量的定义

需要定义函数型度量时,首先在“Build”菜单中选择“Measure”,然后指向“Function”说明所选中的是函数型度量,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改函数型度量的对话框。在该对话框中就可以输入所需的函数表达式,从而定义函数型度量的具体形式。采用函数表达式定义度量的具体形式,最后单击“OK”完成操作。

(2)函数型请求的定义

需要定义函数型请求时,首先在“Build”菜单中选择“Measure”,然后指向“Request”,再选择“New”或“Modified”确定是新建还是修改,进入产生请求的对话框。在该对话框中需选择请求的形式,如果选择“Define Using Function Expression”,则所选择的形式就是函数型请求。通常这样的请求中可以定义8个分量(一般定义6个分量),每个分量用函数表达式的方式表达。

在上述对话框中,8个分量后面的文本框就是输入运行函数表达式的地方,可以输入所需的函数表达式,从而定义函数型请求的具体形式。在接受表达式的文本框处右击,出现下拉式菜单后在其中选择“Function Builder”;或者在接受表达式的文本框后面单击“…”按钮,都可以进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”

ADAMS常见问题

ADAMS 使用常见问题 1、ADAMS中的单位的问题 开始的时候需要为模型设置单位。在所有的预置单位系统中,时间单位就是秒,角度就是度。可设置: MMKS--设置长度为毫米,质量为千克,力为牛顿。 MKS—设置长度为米,质量为千克,力为牛顿。 CGS—设置长度为厘米,质量为克,力为达因。 IPS—设置长度为英寸,质量为斯勒格(slug),力为磅。 2、如何永久改变ADAMS的启动路径? 在ADAMS启动后,每次更改路径很费时,我们习惯将自己的文件存在某一文件夹下;事实上,在Adams的快捷方式上右击鼠标,选属性,再在起始位置上输入您想要得路径就可以了。 3、关于ADAMS的坐标系的问题。 当第一次启动ADAMs/View时,在窗口的左下角显示了一个三视坐标轴。该坐标轴为模型数据库的全局坐标系。缺省情况下,ADAMS/View用笛卡儿坐标系作为全局坐标系。ADAMS/View将全局坐标系固定在地面上。 当创建零件时,ADAMS/View给每个零件分配一个坐标系,也就就是局部坐标系。零件的局部坐标系随着零件一起移动。局部坐标系可以方便地定义物体的位置,ADAMS/View也可返回如零件的位置——零件局部坐标系相对于全局坐标系的位移的仿真结果。局部坐标系使得对物体上的几何体与点的描述比较方便。物体坐标系不太容易理解。您可以自己建一个part,通过移动它的位置来体会。 4、关于物体的位置与方向的修改 可以有两种途径修改物体的位置与方向,一种就是修改物体的局部坐标系的位置,也就就是通过MODIFY物体的position属性;令一种方法就就是修改物体在局部坐标系中的位置,可以通过修改控制物体的关键点来实现。我感觉这两种方法的结果就是不同的,但就是对于仿真过程来说,物体的位置就就是质心的位置,所以对于仿真就是一样的。 5、关于ADAMS中方向的描述。 对于初学的人来说,方向的描述不太容易理解。之前我们都就是用方向余弦之类的量来描述方向的。在ADAMS中,为了求解方程就是计算的方便,使用欧拉角来描述方向。就就是用绕坐标轴转过的角度来定义。旋转的旋转轴可以自己定义,默认使用313,也就就是先绕z轴,再绕x轴,再绕z轴。 6、Marker点与Pointer点区别 Marker:具有方向性, 大部分情況都就是伴随物件自动产生的,而 Point不具有方向性, 都就是用户自己建立的;Marker点可以用来定义构件的几何形状与方向,定义约束与运动的方向等,而Point点常用来作为参数化的参考点,若构件与参考点相连,当修改参考点的位置时,其所关联的物体也会一起移动或改变。

ADAMS教程:手把手教你为motion添加STEP函数(附:STEP函数全解析)

ADAMS教程:手把手教你为motion添加STEP函数(附:STEP函数全 解析) 搜人鱼不如授之以渔 手把手教你为motion添加STEP函数 1 如何找到电机 单击屏幕右下角的i按钮 双击展开模型名(如:robot_new) 找到电机motion 双击其中一个 单击Modify 再点击Function(time)右面的按钮 就打开了电机控制函数的编辑器 从左下角的函数编辑栏中双击你要的函数,就可以添加到上方的编辑栏中, 但是,切记,两个STEP函数中间要添加符号+ 2 接下来,解释STEP函数

STEP是递加递减函数(确切的说不应该这么解释,递加递减方便理解,姑且这么解释吧) STEP(time, 1, 0d, 3, 10d) 其上五个变量中,第一个(time)是横坐标定义;第二个(1)是时间起点(就是说,你要他什么时候开始递加递减;现在定义为1秒);第四个(3)是时间终点(你要他什么时候结束递加递减);第三个(0d)为递加递减数值的起点(切记,其值必须为0d,所以,不必修改);第五个(10d)为相对于0点的递加递减数值,这个是你可以自行修改的; 举个例子 STEP(time,1,0d,2,20d)+STEP(time,6,0d,12,-40) 意义:一秒到2秒:从0递增至20; 2秒到6秒:保持电机输出数值为20不变; 6秒到12秒:由20递减40,结果为-20。 所以,有两个特性必须记住:1,除非输入新的STEP,否则,上一个S TEP的渐变结果将在接下来的时间里,一直保持。 2,每个STEP只能从0开始渐变,所以,每一次的STEP都是相对于上一次操作结果的累加计算。 仔细研习以上例子,这次,由你来添加,想实现可变化动作的话,自己定义吧 随文附word彩版(有图有真相,哈哈哈)

ADAMS中的函数_New

ADAMS中的函数_New

ADAMS中的函数

ADAMS/View中系统提供的数 学函数大致分类介绍如下。(1)基本数学函数 ABS(x) 数字表达式x的绝对值 DIM(x1,x2) x1>x2时x1与x2之间的差值,x1<x2时返回0 EXP(x) 数字表达式x的指数值 LOG(x) 数字表达式x的自然对数值LOG10(x) 数字表达式x的以10为底的对数值 MAG(x,y,z) 向量[x,y,z]求模 MOD(x1,x2) 数字表达式x1对另一个数字表达式x2取余数 RAND(x) 返回0到1之间的随机数SIGN(x1,x2) 符号函数,当x2>0时返回ABS(x),当x2<0时返回-ABS(x) SQRT(x) 数字表达式x的平方根值(2)三角函数 SIN(x) 数字表达式x的正弦值SINH(x) 数字表达式x的双曲正弦值COS(x) 数字表达式x的余弦值COSH(x) 数字表达式x的双曲余弦值TAN(x) 数字表达式x的正切值TANH(x) 数字表达式x的双曲正切值ASIN(x) 数字表达式x的反正弦值ACOS(x) 数字表达式x的反余弦值

ATAN(x) 数字表达式x的反正切值ATAN2(x1,x2) 两个数字表达式x1,x2的四象限反正切值 (3)取整函数 INT(x) 数字表达式x取整 AINT(x) 数字表达式x向绝对值小的方向取整 ANINT(x) 数字表达式x向绝对值大的方向取整 CEIL(x) 数字表达式x向正无穷的方向取整 FLOOR(x) 数字表达式x向负无穷的方向取整 NINT(x) 最接近数字表达式x的整数值RTOI(x) 返回数字表达式x的整数部分 位置/方向函数位置/方向函数用于根据不同输入变量计算有关位置或方向的参数。ADAMS/View中系统提供的位置/方向函数分类介绍如下。(1)位置函数 LOC_ALONG_LINE 返回两点连线上与第一点距离为指定值的点 LOC_CYLINDRICAL 将圆柱坐标系下坐标值转化为笛卡儿坐标系下坐标值LOC_FRAME_MIRROR 返回指定点关于指定坐标系下平面的对称点 LOC_GLOBAL 返回参考坐标系下的点在全局坐标系下的坐标值

ADAMS中的函数

ADAMS/View中系统提供的数学函数大致分类介绍如下。 (1)基本数学函数 ABS(x) 数字表达式x的绝对值 DIM(x1,x2) x1>x2时x1与x2之间的差值,x1<x2时返回0 EXP(x) 数字表达式x的指数值 LOG(x) 数字表达式x的自然对数值 LOG10(x) 数字表达式x的以10为底的对数值 MAG(x,y,z) 向量[x,y,z]求模 MOD(x1,x2) 数字表达式x1对另一个数字表达式x2取余数 RAND(x) 返回0到1之间的随机数 SIGN(x1,x2) 符号函数,当x2>0时返回ABS(x),当x2<0时返回-ABS(x) SQRT(x) 数字表达式x的平方根值 (2)三角函数 SIN(x) 数字表达式x的正弦值 SINH(x) 数字表达式x的双曲正弦值 COS(x) 数字表达式x的余弦值 COSH(x) 数字表达式x的双曲余弦值 TAN(x) 数字表达式x的正切值 TANH(x) 数字表达式x的双曲正切值 ASIN(x) 数字表达式x的反正弦值 ACOS(x) 数字表达式x的反余弦值 ATAN(x) 数字表达式x的反正切值 ATAN2(x1,x2) 两个数字表达式x1,x2的四象限反正切值

(3)取整函数 INT(x) 数字表达式x取整 AINT(x) 数字表达式x向绝对值小的方向取整 ANINT(x) 数字表达式x向绝对值大的方向取整 CEIL(x) 数字表达式x向正无穷的方向取整 FLOOR(x) 数字表达式x向负无穷的方向取整 NINT(x) 最接近数字表达式x的整数值 RTOI(x) 返回数字表达式x的整数部分 位置/方向函数位置/方向函数用于根据不同输入变量计算有关位置或方向的参数。ADAMS/View中系统提供的位置/方向函数分类介绍如下。 (1)位置函数 LOC_ALONG_LINE 返回两点连线上与第一点距离为指定值的点 LOC_CYLINDRICAL 将圆柱坐标系下坐标值转化为笛卡儿坐标系下坐标值 LOC_FRAME_MIRROR 返回指定点关于指定坐标系下平面的对称点 LOC_GLOBAL 返回参考坐标系下的点在全局坐标系下的坐标值 LOC_INLINE 将一个参考坐标系下的坐标值转化为另一参考坐标系下的坐标值并归一化 LOC_LOC 将一个参考坐标系下的坐标值转化为另一参考坐标系下的坐标值

adams常用函数

1.step可能是最常用的: step(time,0,0,1,50)+ step(time,4,0,6,-100)+ step(tme,9,0,10,50) 函数原形STEP(A,x1,h1,x2,h2) 解释:由数组A的x值,生成区间(x1,h1)至(x2,h2)之间的阶梯曲线,返回y值的数据。 举个常用的例子。 比如STEP(time,1,0,2,100) time在adams中是个递增的变量,相当于一个数组。那么step的返回值就是随着time变化的值。 这个例子将表示在time从(1,2)的过程中,返回值将从0,100。看看例子,两个小球,一个使用step 函数设置了位移,另外一个是参考。当然,这个变化过程,adams使用了缓和的图形,从其位移图中可以看出来。step既然是个返回值,就可以使用加减法了。如上例,如果设置下面的小球的位移如下:STEP(time,1,0,2,100)+step(time,2,0,3,400)+step(time,3,0,4,-200) 2.以前用过碰撞函数,有单向和双向函数的区分,其中系统的球面等碰撞为其特例! IMPACT (Displacement Variable, Velocity Variable, Trigger for Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping Ramp-up Distance) BISTOP (Displacement Variable, Velocity Variable, Low Trigger for Displacement Variable, High Trigger for Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping Ramp-up Distance) 3.if函数 这个函数最好不要使用,他的使用会带来突变,会使运算的时候不收敛。不过应急的时候还是可以一用。 if(time-1:1,0,if(time-2:0,-1,-1)) IF(Expression1: Expression2, Expression3, Expression4) adams要计算Expression1的值: 如果他的值小于0,则执行Expression2语句,如果Expression1的值等于0,则执行Expression3语句,如果Expression1的值大于0,则执行Expression4语句 我得if语句的意思是:如果时间小于1的时候,加速度为1,如果时间为1,加速度为0,如果时间大于1小于2,则加速度为0,如果时间大于、等于2则,加速度为-1 4. 我得一个想法 就是利用sign函数构造 比较常用的是给机构加上一个与运动方向相反的作用力等等可以先测量施加力对象的运动速度,然后利用速度的变化,插入measure到sign函数里面就可以获得与运动方向相反的作用力

ADAMS-STEP函数

在定义接触力时Normal Force有两个选项: 1、Restitution(Define a restitution-based contact); 2、Impact(Define an impact contact) 第二个选项就是利用IMPACT函数,它能方便地表达那种间歇碰撞力 (即达到某一位移值才激发的碰撞力)。 它的参数意义及力学基础: One-sided Impact (IMPACT) 1、理解:用只抗压缩的非线性的弹簧阻尼方法近似计算出单边碰撞力。 2、格式:IMPACT (Displacement Variable, Velocity Variable, Trigger for Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent, Damping 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——阻尼逐渐增大的位移值

adams STEP函数

STEP函数 adams,做一个驱动,先在1秒内加速至30d/s,再匀速保持2秒,最后在3秒内减速制0d/s,用step写 格式: STEP (x, x0, h0, x1, h1) 参数说明: x―自变量,可以是时间或时间的任一函数 x0―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;x1―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量 h0―STEP函数的初始值,可以是常数、设计变量或其它函数表达式 h1―STEP函数的最终值,可以是常数、设计变量或其它函数表达式 每一个叠加“+”是在前一个表达式的基础上叠加而不是一味的增加比如第二部是保持匀速所以在第一步加好的基础上增量应该是零 正确的表达式: step(time,0,0,1,30)+step(time,1,0,3,0)+step(time,3,0,6,-30) adams帮助文档中解释如下: DefinitionReturns an array of y values, on a step curve, correspondingto the x values. FormatSTEP (A, xo, ho,x1,h1) ArgumentsA An array of x values. xo

Value of x at which the step starts ramping from ho to h 1. ho Value of h when x is less than or equal to xo. x1 Value of x at which the step function reaches h 1. h1 Value of h when x is greater than or equal to h 1. ExampleThe following example steps smoothly from 0.0 to 1.0 over theinterval( 2.0, 8.0). It has tails from 0 to 2 and from 8 to 10. STEP(SERIES(0, 0.1, 100), 2.0, 0.0, 8.0, 1.0)

ADAMS函数简介

ADAMS/View函数及ADAMS/Solver函数的类型及建立 ADAMS/View函数包括设计函数Design-Time Functions与运行函数Run-Time Functions两种类型,函数的建立对应有表达式模式和运行模式两种。表达式模式下在设计过程中对设计函数求值,而运行模式下会在仿真过程中对运行函数进行计算更新。ADAMS/Solver函数支持ADAMS/View运行模式下的函数,在仿真过程中采用ADAMS/Solver解算时对这些函数进行计算更新。 建立表达式模式下的函数 在进行建立表达式、产生和修改需要计算的测量及建立设计函数等操作时,会采用表达式模式。 在建立表达式时,首先在接受表达式的文本框处右击,然后选择“Parameterize”再选择“Expression Euilder”,进入建立设计函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 在产生和修改需要计算的测量时,首先在“Build”菜单中选择“Measure”,然后指向“Computed”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改需要计算的测量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 在建立设计函数时,首先在“Build”菜单中选择“Function”,然后选择“New”或“Modified”确定是新建还是修改,进入产生和修改设计函数对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 建立运行模式下的函数 在进行建立运行函数、产生和修改函数型的测量等操作时,会采用运行模式。 在建立运行函数时,首先在接受表达式的文本框处右击,然后选择“Function Euilder”,进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 在产生和修改函数型的测量时,首先在“Build”菜单中选择“Measure”,然后指向“Function”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改函数型的度量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 ADAMS/View设计函数 ADAMS/View设计函数在设计过程中模型定义时有效,而不需到仿真过程 中仿真分析时再进行计算更新。设计函数可用来将模型参数化以便进行优化和灵敏度分析。除了优化和设计研究,Adams/View只会在设计阶段对设计函数进行计算评估,而不是在仿真分析过程中。Adams/View evaluates design-time functions only during the design process, and not during a simulation, except for optimization and design studies.

ADAMS部分常用函数的说明

ADAMS常用函数的说明 一、几个常用函数的说明 1、 STEP函数 格式:STEP (x, x0, h0, x1, h1) 参数说明: x ―自变量,可以是时间或时间的任一函数 x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量; x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量; h0 ― STEP函数的初始值,可以是常数、设计变量或其它函数表达式; h1 ― STEP函数的最终值,可以是常数、设计变量或其它函数表达式。 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 3、AKISPL函数 格式:AKISPL (First Independent Variable, Second Independent Variable,Spline Name, Derivati ve Order) 参数说明: First Independent Variable ——spline中的第一个自变量 Second Independent Variable(可选) ——spline中的第二自变量 Spline Name ——数据单元spline的名称 Derivative Order(可选) ——插值点的微分阶数,一般用0就可以了 例如: function = AKISPL(DX(marker_1, marker_2), 0, spline_1) spline_1用下表中的离散数据定义:

adams常见函数总结

ADAMS常用函数总结 在使用adams的过程中,由于函数比较多,大概有11种之多,如1、Displacement Fu nction 2、Velocity Functions 3、Acceleration Functions 4、Contact Functions 5、Spline Functions 6、Force in Object Functions 7、Resultant Force Functi ons 8、Math Functions 9、Data Element Access 10、User-Written Subroutine Invocation 11、Constants & Variables。 在adams中也有帮助文档,但是对于初学者来说还是有一定的难度的,基于这种情况我总结了一下几种常用的函数,希望能够起到抛砖引玉的作用! 1、STEP函数 格式:STEP (x, x0, h0, x1, h1) 参数说明: x―自变量,可以是时间或时间的任一函数 x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量; x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量 h0 ―STEP函数的初始值,可以是常数、设计变量或其它函数表达式 h1 ―STEP函数的最终值,可以是常数、设计变量或其它函数表达式 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 3、AKISPL函数 格式:AKISPL (First Independent Variable, Second Independent Variable,Spline Name, Derivative Order) 参数说明: First Independent Variable——spline中的第一个自变量 Second Independent Variable (可选) ——spline中的第二自变量Spline Name——数据单元spline的名称 Derivative Order (可选) ——插值点的微分阶数,一般用0就可以function = AKISPL(DX(marker_1, marker_2, marker_2), 0, spline_1) spline_1用下表中的离散数据定义 自变量x 函数值y -4.0 -3.6 -3.0 -2.5 -2.0 -1.2

ADAMS基础知识讲解

新手上路:ADAMS 基础知识讲解(图文并茂) 经过不知道多少个日夜,终于出来一个雏形了,由于时间问题,内容还不全,以后将不断完善,请大家多多支持! 内容大纲如下: 软件介绍 学习书籍 3.软件安装问题 4.常见基础问题 一般问题 有关齿轮副 有关凸轮副 蜗轮蜗杆模拟 有关行星齿轮传动 5.常用函数 函数总体介绍 样条函数:akispl,cubspl 函数 函数 与bistop函数 和sforce函数 ,acf的应用 与CAD数据转换 其他CAD软件 相关 和ADAMS联合仿真篇

一、软件介绍篇 ADAMS是Automatic Dynamics Analysis of Mechanical System缩写,为原MDI公司开发的著名虚拟样机软件。1973年Mr. Michael E. Korybalski取得密西根大学爱娜堡分校(University of Michigan,Ann Arbor)机械工程硕士学历后,受雇于福特汽车担任产品工程师,四年后(1977)与其它等人于美国密执安州爱娜堡镇创立MDI公司(Mechanical Dynamics Inc.)。密西根大学对ADAMS发展具有密不可分的关系,在ADAMS未成熟前,MDI与密西根大学研究学者开发出2D机构分析软件DRAMS,直到1980年第一套3D机构运动分析系统商品化软件,称为ADAMS。2002年3月18日公司并购MDI公司,自此ADAMS并入MSC 产品线名称为(本文仍简称ADAMS)。 ADMAS软件由若干模块组成,分为核心模块、功能扩展模块、专业模块、接口模块、工具箱5类,其中核心模块为ADAMS / View——用户界面模块、ADAMS / Solver——求解器和ADAMS/Postprocessor——专用后处理模块。 ADAMS / View是以用户为中心的交互式图形环境,采用PARASOLID作为实体建模的内核,给用户提供了丰富的零件几何图形库,并且支持布尔运算。同时模块还提供了完整的约束库和力/力矩库,建模工作快速。函数编辑器支持FORTRAN/77、FORTRAN/90中所有函数及ADAMS独有的240余种各类函数。使用ADAMS / View能方便的编辑模型数据,并将模型参数化;用户能方便地进行灵敏度分析和优化设计。ADAMS / View有自己的高级编程语言,具有强大的二次开发功能,用户可实现操作界面的定制。 ADMAS/Solver是ADAMS产品系列中处于心脏地位的仿真“发动机”,能自动形成机械系统模型地动力学方程,提供静力学、运动学和动力学的解算结果。ADMAS/Solver有各种建模和求解选项,可有效解决各种工程应用问题,可对由刚体和柔性体组成的柔性机械系统进行各种仿真分析。用户除输出软件定义的位移、速度、加速度和约束反力外,还可输出自己定义的数据。ADMAS/Solver具有强大的碰撞求解功能,具有强大的二次开发功能,可按用户需求定制求解器,极大满足用户的不同需要。 ADAMS/Postprocessor模块主要用来输出高性能的动画和各种数据曲线,使用户可以方便而快捷地观察、研究ADAMS的仿真结果。该模块既可以在ADAMS / View环境中运行,也可脱离ADAMS / View环境独立运行。 ADAMS是世界上应用广泛且最具有权威性的机械系统动力学仿真分析软件,其全球市场占有率一直保持在50%以上。工程师、设计人员利用ADAMS软件能够建立和测试虚拟样机,实现在计算机上仿真分析复杂机械系统的运动学和动力学性能。 利用ADAMS软件,用户可以快速、方便地创建完全参数化的机械系统几何模型。既可以是在ADMAS软件中直接建造的几何模型,也可以是从其它CAD软件中传过来的造型逼真的几何模型。然后,在几何模型上施加力、力矩和运动激励。最后执行一组与实际状况十分接近的运动仿真测试,所得的测试结果就是机械系统工作过程的实际运动情况。过去需要几星期、甚至几个月才能完成的建造和测试物理样机的工作,现在利用ADAMS软件仅需几个小时就可以完成,并能在物理样机建造前,就可以知道各种设计方案的样机是如何工作的。

adams中函数用法

Adams常用函数 step可能是最常用的: step(time,0,0,1,50)+ step(time,4,0,6,-100)+ step(tme,9,0,10,50) 函数原形STEP(A,x1,h1,x2,h2) 解释:由数组A的x值,生成区间(x1,h1)至(x2,h2)之间的阶梯曲线,返回y值的数据。 举个常用的例子。 比如STEP(time,1,0,2,100) time在adams中是个递增的变量,相当于一个数组。那么step的返回值就是随着time变化的值。 这个例子将表示在time从(1,2)的过程中,返回值将从0,100。看看例子,两个小球,一个使用step 函数设置了位移,另外一个是参考。当然,这个变化过程,adams使用了缓和的图形,从其位移图中可以看出来。step既然是个返回值,就可以使用加减法了。如上例,如果设置下面的小球的位移如下:STEP(time,1,0,2,100)+step(time,2,0,3,400)+step(time,3,0,4,-200) 1.以前用过碰撞函数,有单向和双向函数的区分,其中系统的球面等碰撞为其特例! IMPACT (Displacement Variable, Veloci t y Variable, Trigger for Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping Ramp-up Distance) BISTOP (Displacement Variable, Velocity Variable, Low Trigger for Displacement Variable, High Trigger for Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping Ramp-up Distance) 2.if函数 这个函数最好不要使用,他的使用会带来突变,会使运算的时候不收敛。不过应急的时候还是可以一用。 if(time-1:1,0,if(time-2:0,-1,-1)) IF(Expression1: Expression2, Expression3, Expression4) adams要计算Expression1的值: 如果他的值小于0,则执行Expression2语句,如果Expression1的值等于0,则执行Expression3语句,如果Expression1的值大于0,则执行Expression4语句 我得if语句的意思是:如果时间小于1的时候,加速度为1,如果时间为1,加速度为0,如果时间大于1小于2,则加速度为0,如果时间大于、等于2则,加速度为-1 4. 我得一个想法 就是利用sign函数构造 比较常用的是给机构加上一个与运动方向相反的作用力等等可以先测量施加力对象的运动速度,然后利用速度的变化,插入measure到sign函数里面就可以获得与运动方向相反的作用力

ADAMS常用函数

在使用adams的过程中,由于函数比较多,大概有11种之多,如1、Displacement Function 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中也有帮助文档,但是对于初学者来说还是有一定的难度的,基于这种情况我总结了一下几种常用的函数,希望能够起到抛砖引玉的作用! 1、STEP函数 格式:STEP (x, x0, h0, x1, h1) 参数说明: x―自变量,可以是时间或时间的任一函数 x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量; x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量 h0 ―STEP函数的初始值,可以是常数、设计变量或其它函数表达式 h1 ―STEP函数的最终值,可以是常数、设计变量或其它函数表达式 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 3、AKISPL函数 格式:AKISPL (First Independent Variable, Second Independent Variable,Spline Name, Derivative Order) 参数说明: First Independent Variable——spline中的第一个自变量 Second Independent Variable (可选) ——spline中的第二自变量 Spline Name——数据单元spline的名称 Derivative Order (可选) ——插值点的微分阶数,一般用0就可以 function = AKISPL(DX(marker_1, marker_2, marker_2), 0, spline_1) spline_1用下表中的离散数据定义 自变量x 函数值y -4.0 -3.6 -3.0 -2.5 -2.0 -1.2 -1.0 -0.4 0.0 0.0 1 0.4

ADAMS-View函数及ADAMS-Solver函数的类型及建立

ADAMS/View 函数及ADAMS/Solver 函数的类型及建立 ADAMS/View 函数包括设计函数与运行函数两种类型,函数的建立对应有表达式模式和运行模式两种。表达式模式下在设计过程中对设计函数求值,而运行模式下会在仿真过程中对运行函数进行计算更新。ADAMS/Solver 函数支持ADAMS/View运行模式下的函数,在仿真过程中采用ADAMS/Solver 解算时对这些函数进行计算更新。 1.1 建立表达式模式下的函数 在进行建立表达式、产生和修改需要计算的度量及建立设计函数等操作时,会采用表达式模式。在建立表达式时,首先在接受表达式的文本框处右击,然后选择“Parameterize”再选择“Expression Euilder”,进入建立设计函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。在产生和修改需要计算的度量时,首先在“Build”菜单中选择“Measure”,然后指向“Computed”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改需要计算的度量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 在建立设计函数时,首先在“Build”菜单中选择“Function”,然后选择“New” 或“Modified”确定是新建还是修改,进入产生和修改设计函数对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 1.2 建立运行模式下的函数 在进行建立运行函数、产生和修改函数型的度量等操作时,会采用运行模式。在建立运行函数时,首先在接受表达式的文本框处右击,然后选择“Function Euilder”,进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。在产生和修改函数型的度量时,首先在“Build”菜单中选择“Measure”,然后指向“Function”,再选择“New”或“Modified”确定是新建还是修改,进入产生和修改函数型的度量对话框。在该对话框中输入表达式,然后单击“OK”完成操作。 2 ADAMS/View 设计函数

adams函数

adams 函数 ADAMS/View 运行函数及ADAMS/Solver 函数 2008-04-18 04:54 3 ADAMS/View 运行函数及ADAMS/Solver 函数 ADAMS/View 运行函数能够表明定义系统行为的仿真状态间的数学关系。在ADAMS/ View 中将这些运行函数与其他不同元素一同创建各种系统变量,这些函数大多数都以施加 力和产生运动为目的。之后在仿真中进行解算时,ADAMS/ Solver 会用到这些变量函数并 进行计算更新,在仿真过程中这些系统状态会发生改变,如随时间的改变而改变、随零件 的移动而改变、施加的力以不同方式改变等。 3.1 位移函数 (1)线位移函数 DX 返回位移矢量在坐标系X 轴方向的分量 DY 返回位移矢量在坐标系Y 轴方向的分量 DZ 返回位移矢量在坐标系Z 轴方向的分量 DM 返回位移距离 (2)角位移函数 AX 返回一指定标架绕另一标架X 轴旋转的角度 AY 返回一指定标架绕另一标架Y 轴旋转的角度 AZ 返回一指定标架绕另一标架Z 轴旋转的角度 (3)按313 顺序的角位移 PSI 按照313 旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度 THETA 按照313 旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度 PHI 按照313 旋转系列,返回指定坐标系相对于参考坐标系的第三旋转角度 (4)按照321 顺序的角位移 YAW 按照321 旋转顺序,返回指定坐标系相对于参考坐标系的第一旋转角度 PITCH 按照321 旋转顺序,返回指定坐标系相对于参考坐标系的第二旋转角度的相 反数 ROLL 按照321 旋转顺序,返回指定坐标系相对于参考坐标系的第三旋转角度 3.2 速度函数 (1)线速度函数 VX 返回两标架相对于指定坐标系的速度矢量差在X 轴的分量 VY 返回两标架相对于指定坐标系的速度矢量差在Y 轴的分量 VZ 返回两标架相对于指定坐标系的速度矢量差在Z 轴的分量 VM 返回两标架相对于指定坐标系的速度矢量差的幅值 VR 返回两标架的径向相对速度 (2)角速度函数 WX 返回两标架的角速度矢量差在X 轴的分量

adams初级设置教程

1、ADAMS中的单位的问题 开始的时候需要为模型设置单位。在所有的预置单位系统中,时间单位是秒,角度是度。可设置: MMKS--设置长度为千米,质量为千克,力为牛顿。 MKS—设置长度为米,质量为千克,力为牛顿。 CGS—设置长度为厘米,质量为克,力为达因。 IPS—设置长度为英寸,质量为斯勒格(slug),力为磅。 2、如何永久改变ADAMS的启动路径? 在ADAMS启动后,每次更改路径很费时,我们习惯将自己的文件存在某一文件夹下;事实上,在Adams的快捷方式上右击鼠标,选属性,再在起始位置上输入你想要得路径就可以了。 3、关于ADAMS的坐标系的问题。 当第一次启动ADAMs/View时,在窗口的左下角显示了一个三视坐标轴。该坐标轴为模型数据库的全局坐标系。缺省情况下,ADAMS/View用笛卡儿坐标系作为全局坐标系。ADAMS/View将全局坐标系固定在地面上。 当创建零件时,ADAMS/View给每个零件分配一个坐标系,也就是局部坐标系。零件的局部坐标系随着零件一起移动。局部坐标系可以方便地定义物体的位 置,ADAMS/View也可返回如零件的位置——零件局部坐标系相对于全局坐标系 的位移的仿真结果。局部坐标系使得对物体上的几何体和点的描述比较方便。物体坐标系不太容易理解。你可以自己建一个part,通过移动它的位置来体会。 4、关于物体的位置和方向的修改 可以有两种途径修改物体的位置和方向,一种是修改物体的局部坐标系的位置,也就是通过MODIFY物体的position属性;令一种方法就是修改物体在局部坐标系中的位置,可以通过修改控制物体的关键点来实现。我感觉这两种方法的结果是不同的,但是对于仿真过程来说,物体的位置就是质心的位置,所以对于仿真是一样的。

ADAMS函数使用精华

样条差值函数 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 中标志符的整数变量。

相关文档
最新文档