adams View函数及Solver函数

adams View函数及Solver函数

第8章ADAMS/View函数及ADAMS/Solver函数

本章主要介绍ADAMS/View提供的各类函数,以及ADAMS/Solver支持的各类函数,并通过实例介绍一些重要函数的具体用法。通过本章的学习可以深入了解和具体掌握函数的基本使用方法,利用这些函数能够定义更为复杂的结构、更为灵活地应用ADAMS软件进行精确高效的建模与仿真。

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

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

8.1.1 建立表达式模式下的函数

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

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

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

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

8.1.2 建立运行模式下的函数

在进行建立运行函数、产生和修改函数型的度量等操作时,会采用运行模式。 在建立运行函数时,首先在接受表达式的文本框处右击,然后选择“Function Euilder”,进入建立运行函数表达式对话框。在该对话框中输入表达式,然后单击“oK”完成操作。

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

机械系统动力学分析及ADAMS应用

8.2 ADAMS/View设计函数

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

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

8.2.1 数学函数

数学函数适用于对标量和矩阵进行数学计算,如果输入变量为标量其返回值就是标量,如果输入变量为矩阵其返回值就是矩阵。ADAMS/View中系统提供的数学函数大致分类介绍如下。

(1)基本数学函数

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

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

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向绝对值大的方向取整

第8章 ADAMS/View函数及ADAMS/Solver函数

cEIL(x) FLooR(x) nInT(x) RToI(x) 数字表达式x向正无穷的方向取整 数字表达式x向负无穷的方向取整 最接近数字表达式x的整数值 返回数字表达式x的整数部分

8.2.2 位置/方向函数

位置/方向函数用于根据不同输入变量计算有关位置或方向的参数。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

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

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

旋转的角度

oRI_ALL_AXES 将坐标系旋转至由平面上的点定义的特定方向(第一轴与指定

平面上两点连线平行,第二轴与指定平面平行)时所需旋转的角度

oRI_ALonG_AXIS 将坐标系旋转至其一轴线沿指定轴线方向时所需旋转的角度 oRI_FRAME_MIRRoR 返回坐标系旋转镜像到指定坐标系下所需旋转的角度 oRI_GLoBAL 返回参考坐标系在全局坐标系下的角度值 oRI_In_PLAnE 将坐标系旋转至特定方向(与指定两点连线平行、与指定平面

Loc_SPHERIcAL Loc_X_AXIS Loc_Y_AXIS Loc_Z_AXIS (2)方向函数 oRI_ALIGn_AXIS

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

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

机械系统动力学分析及ADAMS应用

平行时所需旋转的角度

oRI_LocAL 返回全局坐标系在参考坐标系下的角度值 oRI_MIRRoR 返回坐标系旋转镜像到指定坐标系下所需旋转的角度

oRI_onE_AXIS 将坐标系旋转至其一轴线沿两点连线方向时所需旋转的角度 oRI_oRI 将一个参考坐标系转化为另一参考坐标系所需旋转的角度 oRI_PLAnE_MIRRoR 返回坐标系旋转生成关于某平面的镜像所需旋转的角度 oRI_RELATIVE_To 返回全局坐标系下角度值相对指定坐标系的旋转角度

8.2.3 建模函数

运动学建模函数返回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旋转顺序,返回指定坐标系相对于参考坐标系的第三旋转角度

8.2.4 矩阵/数组函数

矩阵/数组函数可很方便地完成针对矩阵/数组的操作。 (1)矩阵/数组的基本操作函数 ALIGn 将数组转换到从特定值开始 ALLM 返回矩阵元素的逻辑值

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

第8章 ADAMS/View函数及ADAMS/Solver函数

AnYM APPEnD cEnTER cLIP coLS coMPRESS conVERT AnGLES 返回矩阵元素的逻辑和

将一个矩阵中的行添加到另一矩阵 返回数列最大、最小值的中间值 返回矩阵的一个子阵 返回矩阵列数

压缩数组、删除其中的空值元素(零,空字符及空格) 将313旋转顺序转化为用户自定义的旋转顺序 cRoSS DET DIFF DIFFEREnTIATE DMAT DoT ELEMEnT EXcLUDE FIRST FIRST_n IncLUDE InTEGR InTERATE InVERSE LAST LAST_n MAX MAXI MEAn MIn MInI noRM2 noRMALIZE REcTAnGULAR RESAMPLE RESHAPE RMS RoWS SERIES SERIES2 SHAPE

返回两矩阵的向量积 返回方阵M的行列式值 返回给定数据组的逼近值 曲线微分

返回对角线方阵 返回两矩阵的内积

判断元素是否属于指定数组 删除数组中某元素 返回数组的第一个元素 返回数组的前n个元素 向数组中添加元素 返回数据积分的逼近值 拟合样条曲线后再积分 方阵求逆

返回矩阵最后一个元素 返回矩阵最后n个元素 返回矩阵元素的最大值

返回矩阵元素最大值的位置索引 返回矩阵元素的平均值 返回矩阵元素的最小值

返回矩阵元素最小值的位置索引 返回矩阵元素平方和的平方根 矩阵归一化处理

返回矩阵所有元素的值

按照指定内插算法对曲线重新采样

按指定行数列数提取矩阵元素生成新矩阵 计算矩阵元素的均方根值 返回矩阵行数

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

机械系统动力学分析及ADAMS应用

SIM_TIME 返回仿真时间

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

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

STAcK 合并相同列数的矩阵成一个新矩阵 STEP 生成阶跃曲线 SUM 矩阵元素求和 TILDE 数组的TILDE函数

TMAT 符合指定方向顺序的变换矩阵 TRAnSPoSE 求矩阵转置

UnIQUE 删除矩阵中的重复元素

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

VALAT 返回数组中与另一数组指定位置对应处的元素 VALI 返回数组中与指定数值最接近元素的位置索引 (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 计算功率谱密度

8.2.5 字符串函数

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

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

第8章 ADAMS/View函数及ADAMS/Solver函数

STR_cASE STR_cHR STR_coMPARE STR_DATE STR_DELETE STR_FInD STR_FInD_coUnT STR_FInD_n STR_InSERT STR_IS_SPAcE STR_LEnGTH STR_MATcH STR_PRInT

将字符串按指定方式进行大小写变换 返回AScII码为指定值的字符 返回两字符在字母表上的位置差 按一定格式输出当前时间和日期

从字符串中一定位置开始删除指定个数的字符 返回字符串在另一字符串中的位置索引 返回字符串在另一字符串中出现的次数

返回字符串在另一字符串中重复出现指定次数时的位置索引 将字符串插入到另一字符串的指定位置 判断字符串是否为空 返回字符串长度

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

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

STR_SPLIT 从字符串中出现指定字符处切断字符串 STR_SPRInTF 按c语言规则定义的格式得到字符串

STR_SUBSTR 在字符串中从指定位置开始截取指定长度的子字符串 STR_TIMESTAMP 以缺省格式输出当前时间及日期 STR_XLATE 将字符串中所有子串用指定子串代替

8.2.6 数据库函数

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

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 判断对象是否属于指定类别

机械系统动力学分析及ADAMS应用

8.2.7 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 返回指定表格的行数或列数

8.2.8 系统函数组

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

cHDIR 判断是否成功转换到指定目录 EXEcUTE_VIEW_coMMAnD 判断是否成功执行ADAMS/View FILE_EXISTS 判断是否存在指定文件 FILE_TEMP_nAME 返回一个临时文件名 GETcWD 返回当前工作路径

GETEnV 返回表示环境变量值的字符串 MKDIR 判断是否成功创建自定义路径 PUTEnV 判断是否成功设置环境变量 REMoVE_FILE 判断是否成功删除指定文件 REnAME_FILE 判断是否成功更改文件名 SYS_InFo 返回系统信息 UnIQUE_FILE_nAME 返回文件名

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

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

第8章 ADAMS/View函数及ADAMS/Solver函数

的移动而改变、施加的力以不同方式改变等。

8.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旋转顺序,返回指定坐标系相对于参考坐标系的第三旋转角度

8.3.2 速度函数

(1)线速度函数 VX 返回两标架相对于指定坐标系的速度矢量差在X轴的分量 VY 返回两标架相对于指定坐标系的速度矢量差在Y轴的分量 VZ 返回两标架相对于指定坐标系的速度矢量差在Z轴的分量 VM 返回两标架相对于指定坐标系的速度矢量差的幅值 VR 返回两标架的径向相对速度 (2)角速度函数 WX 返回两标架的角速度矢量差在X轴的分量 WX 返回两标架的角速度矢量差在Y轴的分量 WX 返回两标架的角速度矢量差在Z轴的分量 WM 返回两标架的角速度矢量差的幅值

8.3.3 加速度函数

(1)线加速度函数

机械系统动力学分析及ADAMS应用

AccX 返回两标架相对于指定坐标系的加速度矢量差在X轴的分量 AccY 返回两标架相对于指定坐标系的加速度矢量差在Y轴的分量 AccZ 返回两标架相对于指定坐标系的加速度矢量差在Z轴的分量 AccM 返回两标架相对于指定坐标系的加速度矢量差的幅值 (2)角加速度函数

WDTX 返回两标架的角加速度矢量差在轴的分量 WDTY 返回两标架的角加速度矢量差在Y轴的分量 WDTZ 返回两标架的角加速度矢量差在Z轴的分量 WDTM 返回两标架的角加速度矢量差的幅值

8.3.4 接触函数

IMPAcT BISToP

生成单侧碰撞力 生成双侧碰撞力

8.3.5 样条差值函数

cUBSPL cURVE AKISPL

标准三次样条函数插值 B样条拟合或用户定义拟合 根据Akima拟合方式得到的插值

8.3.6 约束力函数

JoInT MoTIon PTcV cVcV JPRIM SFoRcE VFoRcE VToRQ GFoRcE nFoRcE BEAM BUSH FIELD SPDP

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

返回由于运动约束而产生的力或力矩 返回点线接触运动副上的力或力矩 返回线线接触运动副上的力或力矩 返回基本约束引起的力或力矩

返回单个作用力施加在一个或一对构件上引起的力或力矩 返回3个方向组合力施加在一个或一对构件上引起的力或力矩 返回3个方向组合力矩施加在一个或一对构件上而引起的力或力矩 返回6个方向组合力(力矩)施加在一个或一对构件上而引起的力或力矩

返回一个由多点作用力施加在一个或一对构件上而引起的力或力矩 返回由梁连接施加在一个或一对构件上的力或力矩

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

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

第8章 ADAMS/View函数及ADAMS/Solver函数

8.3.7 合力函数

FX FY FZ FM TX TY TZ TM

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

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

8.3.8 数学函数

cHEBY 计算切比雪夫多项式 FoRcoS 计算傅立叶余弦级数 FoRSIn 计算傅立叶正弦级数 HAVSIn 定义半正矢阶跃函数

InVPSD 依据功率谱密度生成时域信号 MAX 计算最大值 MIn 计算最小值 PoLY 计算标准多项式 SHF 计算简谐函数

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

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

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

8.3.9 数据单元

VARVAL ARYVAL DIF DIF1 PInVAL PoUVAL

返回状态变量的当前值 返回数组中指定元素的值

返回微分方程所定义变量的积分值 返回微分方程所定义变量的值 返回输入信号中指定元素的运行值 返回输出信号中指定元素的运行值

8.4 函数应用实例

ADAMS/View函数和ADAMS/Solver函数功能强大、使用灵活,是应用ADAMS进

机械系统动力学分析及ADAMS应用

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

8.4.1 定义不同形式的驱动约束

应用函数可以定义不同形式的驱动约束。在上述模型中,所定义的驱动约束激励相当于路面不平度激励。根据实际路面不平度激励的形式,可以有多种不同的形式。采用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章 ADAMS/View函数及ADAMS/Solver函数

图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”,表示所输入的数据第一

机械系统动力学分析及ADAMS应用

列就是自变量(时间)。最后按下“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 实例所用的样条函数

8.4.2定义和调用系统状态变量

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

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

第8章 ADAMS/View函数及ADAMS/Solver函数

量,而通过变量函数将主动力定义为状态变量的函数,由此实现悬架的主动控制。

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

定义系统状态变量,首先需要在“Build”菜单中选中“System Element”,然后选“State Variable”-“new”,这时会弹出参数系统状态变量对话框,在对话框中“Difinition”文本框后选择“Run-time expression”。这种形式的对话框中有一项“F(time,…)”是描述该状态变量的函数,其后面的文本框就是输入运行函数表达式的地方。在接受表达式的文本框处右击,出现下拉式菜单后在其中选择“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为所调用的系统状态变量的编号。在前述实例中,将系统状态变量VARIABLE_1,VARIABLE_2定义为构件3质心和构件4质心之间的相对位移、速度、加速度,则在调用这三个状态变量时采用VARVAL (1) 、VARVAL (2) 、VARVAL (3)的形式。

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

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

采用了这样的主动力控制后,构件2的加速度如图8.4-4中虚线所示,原始的加速度如

首页