ADAMS高级应用文档格式.docx
- 文档编号:6669198
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:36
- 大小:1,006.93KB
ADAMS高级应用文档格式.docx
《ADAMS高级应用文档格式.docx》由会员分享,可在线阅读,更多相关《ADAMS高级应用文档格式.docx(36页珍藏版)》请在冰点文库上搜索。
1.2.2导入ADAMS的两种方式
介绍一下如何把UG模型导入ADAMS,这里有几种方法:
第一种,在UG里导出PARASOLID格式,(因为ADAMS核心即是PARASOLID)EXPORT-PARASOLID,选V12~17版,注意存的时候存成*.XMT_TXT.在ADAMS中导入即可了。
第二种,
(1)在UG-MOTION里,file-export-adams,对话框中,输入文件名,GEOMETORYFORMATE选PAROSOLIDE,OK,输出目录里就有两个文件,一个是*.ANL,一个是*.XMT_TXT,把ANL那个文件改名成*.ADM;
(2)然后在ADAMS里把两个文件分两次导入就行了,注意放到同一个MODEL里
1.2.3UG导入adams后的坐标系问题
1.3参数设置
1.3.1力或力矩的加载
添加运动副后,一般还存在几个自由度。
这个时候,剩余自由可以通过添加驱动约束来进行。
如果添加的是运动Motion,则就是运动学分析,如果添加的是力或者是力矩就是动力学分析。
1.3.2力矩加载
电机力矩加载位置
应加载到质心处?
对于刚性体来说,加到什么位置并没有太多区别;
而对于柔性体来说,有一定的区别,需要认真考虑;
1.4确定ADAMS的输入和输出
1.4.1新建状态变量并设置
状态变量(StateVariable)可以理解为是一个Buffer(缓冲器),它用来向MATLAB传送、接受信息。
当为对象量如:
力矩(Torque)、力(Force)等,可以先新建一个状态变量VARIABLE_X,然后将其赋值给对象量Torque=VARVAL(VARIABLE_X)。
一般通过Adams的函数进行赋值,如VARVAL、VZ等。
(20.0d*time,一般motion所默认值)。
如果,状态变量为模型中没有的量,则需要在新建的时候,同时创建。
如下图所示。
利用FunctionBuilder进行任意的编辑,即可得到所需状态变量。
MOTIONMACHINE.MOTION_XAxishasbeendeclaredtodependontheVARVALfunction.MotionsshouldonlybefunctionsofTIME.
如何删除状态变量
1.4.2设置输入输出变量
在ADAMS/Control中定义输出、输入变量Plantinput、PlantOutput,并将以上状态变量赋值给输入、输出变量,从而通过ADAMS/Control模块同其他控制程序相连接。
建立它们后,就可以在Control/PlantExport中找到它们。
1.4.3导出模块
设置完成后,ADAMS/Control将输入、输出信息保存到.m文件中,同时产生一个ADAMS/View命令文件(.cmd)和一个ADAMS/Solve命令文件(.adm),供联合仿真分析使用。
1.5静力学、运动学的验证
1.5.1运动学分析
一般在模型构建完成之后,即几何模型以及运动副添加之后,应在每个自由度处添加一个Motion,从而进行运动学的验证。
1.5.2静力学的验证
静力学分析能保证一个机构可以承受一定的稳定载荷。
将所有的力矩设置为零,从而进行静力学的验证。
1.6模态分析Vibration
固定自由度
首先,将所有的自由度进行固定。
主要是电机的自由度的固定。
模态的阶数
对于刚体而言,有多少个自由度,就有多少阶模态。
问题
固定与合并的区别
固定后模态分析的时候,还是会振动。
受迫振动
清除所有与Vibration有关的内容
参见帮助文件:
MacroforRemovingVibrationObjects
1.7MATLAB调用
将以上生成的.m文件拖入到MatlAB中,就会显示:
%%%INFO:
ADAMSplantactuatorsnames:
1VARIABLE_TorqueIn
ADAMSplantsensorsnames:
1VARIABLE_PositionOut
但不建议采用以上方法。
采用修改路径来打开:
1.7.1创建模块图
然后,在MATLAB命令空间中输入:
adams_sys,则可以将以上的ADAMS模块导入,并显示。
S-Function:
代表非线性Adams模型;
Adams_sub:
包含了S-Function,而且产生了几个有用的MATLAB变量,如下图所示;
(当模型为线性的,则State-Space将替代S-Function)
State-Space:
代表了一个线性化的Adams模型;
Adams_sub模块的结构图
我们根据需求从三个中选取Adams_sub模块,组建方框图。
(即:
新建一个空白文件,将Adams_sub模块拖入,然后添加其他控制模块即可)
如果出现不能保存仿真文件时,可以采用新建或者另存的方式。
因为adams_sys与系统名有冲突。
1.7.2仿真参数设置
仿真前,要设置仿真参数、仿真时间、仿真分析模式、动画显示模式等。
在ADAMS_SUB框中双击红色的MechanicalDynamic模块,即弹出MechanicalDynamics模块参数设置对话框
1)在仿真分析模式(Simulationmode)栏,选择discrete参数。
仿真分析模式定义了ADAMS程序求解机械系统方程的方式,以及控制程序求解控制方程的方式。
2)在动画显示(Animationmode)栏,选择interactive参数。
动画显示决定了ADAMS/VIEW中动态显示跟踪仿真结果的方式。
3)在初始化方式(Initializationmode)栏,选择automatic。
另外再设置仿真时间等
仿真方法参数
离散方式分别定义ADAMS程序的机械系统求解方程,以及控制程序的控制系统求解方程。
而连续方式定义控制程序中的机械系统求解方程和控制系统求解方程。
对于大多数联合仿真分析,离散方式通常是比较有效的联合仿真方式。
同连续方式相比,离散方式分析速度快,并且能够适应于非常复杂的样机模型。
但如果控制系统的分析结果会对ADAMS的机械系统产生很多的耦合影响的时候,应该采用连续方式进行联合仿真。
例如,当样机必须采用非常小的步长进行联合仿真时,采用连续方式可能更合适。
为了能够维持正常的机械系统动力学仿真分析,在离散分析方式下,对机械系统的采样频率应该5倍于机械系统有影响的最高频率。
如步长不能达到机械系统最高设计频率的5倍,应该改用连续方式进行联合仿真分析。
可以利用ADAMS/Linear模块确定机械系统最高设计频率。
1.7.3仿真分析
这些设置完之后就可以点击start,开始进行机电系统联合仿真分析。
程序将显示一个新的ADAMS/View窗口,显示仿真分析结果。
同时,还显示一个窗口,用以显示联合仿真分析过程中的各种数据。
如下图所示:
利用ADAMS/Controls程序的交互式对话功能,可以调用后处理模块ADAMS/PostProcessor,可以更仔细的观察和监控ADAMS/View中的样机图形,在这个模块中还可以绘制出仿真分析结果曲线,以便能够全面地了解当前的仿真结果
1.8常见问题
仿真参数的设置
步长过大可能导致以下问题。
可采用增大step,减小endtime。
Thecorrectorhasnotconvergedafter6attempts.No.ofiterations=10.
网上查询:
有人认为是计算中雅可比矩阵出现奇异,无法迭代!
解决方法考虑为:
更换积分方法;
变换积分步长;
设置出错误差;
也可能是模型中存在问题,在五联动机床的实例中,曾出现缺少一个铰接副,导致以上问题。
勤保存
每步进行保存。
第2章柔性连接的添加
2.1Bushing——轴套力[1]
可以用于固定、移动结合部的连接。
其中移动结合部的连接可以通过将某一个方向的刚度设为0即可。
2.2Contact——接触[1]
第3章仿真控制及数据的采集
3.1Adams仿真控制设置——精度问题
在装配、静态分析、运动分析、动力学分析中,均使用到插值方法求解方程,在插值求解的过程中,需要制定允许的误差。
误差过大会导致仿真分析失败或出现错误的仿真结果。
但另一方面,过高的精度会导致仿真分析的时间和成本大大增加。
Adams/view设置了默认的插值误差,如下所示:
表仿真求解精度设置
分析类型
默认精度
说明
动力学分析
(Dynamic)
10-3
控制位移误差,进一步的设置可以使用用户设置功能
运动分析
(Kinematics)
10-4
控制位移误差
静力分析
(Equilibrium)
控制位移误差,平衡力等其他参数的设置可以使用用户设置功能
装配分析
(Assemble)
10-10
装配操作过程的位置误差
上表中的默认精度对应的就是SolverSetting中的Error中的误差精度,如下图所示:
3.1.1仿真控制设置的主要方式,有如下两个方面:
注:
点击上图中的Simulationsetting也可以进入下图。
3.1.2仿真求解设置
SolverSettings–Dynamic
动力学分析的控制参数设置
(1)Integrator积分方法
在动力学分析中,需要使用数值分析法进行求解微分方程和代数方程。
ADAMS/Solver提供了四种积分方法。
3种为刚性:
Gear法(GSTIFF)、改进Gear法(WSTIFF)和DASSL法(DSTIFF),1种为柔性积分法ABAM法。
刚性数字积分法使用隐含的向后差分方法求解微分和代数方程,而柔性数字积分法先采用坐标分隔方法从微分和代数方程获得普通微分方程,然后用显式求解微分方程。
(2)积分步长控制
HMin表示为满足精度可以采用的最小步长,默认为最大步长的10-6倍;
Hmax允许积分过程中采用的最大步长,默认为指定的输出步
Hinit开始分析的第一步积分步长。
默认问哦最大步长的0.05倍;
(3)积分阶数IntegratorOrder——Kmax
选择积分使用的最大多项式阶数;
积分器控制积分的阶数和步长大小进而控制了每一步的当时的积分误差在制定的精度误差范围之内。
(4)迭代次数Iteratornumber——Maxit
设置最大的迭代次数,如果迭代运算达到设置的最大迭代次数仍没有达到精度,则程序停止分析。
一般,maxit的值不要大于10。
因为迭代次数增加会增加误差。
3.1.3仿真求解的建议
优先采用默认设置,不要随便改动;
动力学仿真失败后,求解参数调整的先后次序是:
位移精度、迭代次数、JacobianEvaluation;
对一个新建的样机进行动力学分析时,一般要进行两次分析。
首先使用默认的迭代精度,然后提高一个数量级的迭代精度,如果结果有较大差别,则应该将迭代精度提高一个数量级后再次进行分析。
直至两次结果基本相同。
3.2仿真
仿真类型:
Default、动力学分析(Dynamic)、运动学分析(Kinematic)、静态分析(Static)。
Endtime
Steps代表设置的总的步数;
StepsSize代表生成数据之间的时间长度;
3.3数据采集及实时显示
PartMeasure数据采集
在Part处右键,Measure即可。
而且可以在仿真时实时显示
XXMeasure数据采集
Bulid/Measure/……
3.4模态分析Vibration
首先,将自由的自由度进行固定。
而像弹簧、阻尼之类的限制的自由度可以保留或者说必须保留,因为完全限制自由度后,就不能进行模态分析。
因为是刚体,如果没有自由度就不可能振动;
因为只有是柔性体或者是某个自由度是弹簧、阻尼之类限制时,才可以有模态。
第4章参数化建模与优化设计
4.1函数
4.1.1函数种类
ADAMS的函数种类比较多:
1、DisplacementFunctions
2、VelocityFunctions
3、AccelerationFunctions
4、ContactFunctions
5、SplineFunctions
6、ForceinObjectFunctions
7、ResultantForceFunctions
8、MathFunctions
9、DataElementAccess
10、User-WrittenSubroutineInvocation
11、Constants&
Variables
4.1.2常用
Constants&
Variables函数
Time
PI
STEP函数
格式:
STEP(x,x0,h0,x1,h1)
参数说明:
x ―自变量,可以是时间或时间的任一函数
x0―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;
x1―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量
h0―STEP函数的初始值,可以是常数、设计变量或其它函数表达式
h1―STEP函数的最终值,可以是常数、设计变量或其它函数表达式
STEP(time,5,0,10,20)
图中曲线为Step函数、折线为If函数
实例说明
1、分段函数的表示
在ADMA中如何输入力或位移、速度、加速度等的分段曲线,这一直是一个值得注意的问题。
下面用一个小例子进行简单说明:
(这个例子实际上就是常见的加速-匀速-减速问题)
1)要输入的速度函数为:
10*t
(0<
t<
0.1)
V=
1
(0.1<
0.4)
-10*t+5
(0.4<
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))
2、方形波函数的输入
1)
有时需要输入下方波形式的力或力矩,如果单纯地采用STEP函数迭加是不能实现的
在ADAMS中输入的函数形式为:
step(sin(2*pi*time),-0.01,-1,0.01,1)
注意点:
(1)当方波的频率改变时,可以通过改变下式中的FREQ得以实现
sin(2*pi*FREQ*time)
(2)改变方波的上下限的方法:
step(sin(2*pi*time),-0.01,LOWER,0.01,UPPER)
(3)例如:
step(sin(2*pi*3.0*time),-0.01,0,0.01,7)中的频率为3HZ,上下限分别为0,7
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.0iftime<
2.5
0.5iftime=2.5
1.0iftime>
由于IF函数会形成突变,一般要避免使用。
IMPACT函数
Impact函数的力学基理:
IMPACT函数值由自变量值决定其有无:
IMPACT=Off ifs>
so
On
ifs<
=so
IMPACT函数的数学计算公式为:
MAX{0,K(so-s)**e-Cv*STEP(s,so-d,1,so,0)}
s——位移变量
v——速度变量
so——碰撞力的激发位移值
K——刚度系数
C——阻尼系数
D ——阻尼逐渐增大的位移值
实质:
用只抗压缩的非线性的弹簧阻尼方法近似计算出单边碰撞力。
IMPACT(DisplacementVariable,VelocityVariable,TriggerforDisplacementVariable,StiffnessCoefficient,StiffnessForceExponent,DampingCoefficient,DampingRamp-upDistance)
DisplacementVariable
实时位移变量值,通过DX、DY、DZ、DM等函数实时测量。
VelocityVariable
实时速度变量值,通过VX、VY、VZ、VM等函数实时测量。
TriggerforDisplacementVariable
激发碰撞力的位移测量值。
StiffnessCoefficientorK
刚度系统。
StiffnessForceExponent
非线性弹簧力指数。
DampingCoefficientorC
阻尼系数。
DampingRamp-upDistance
当碰撞力被激发阻尼逐渐增大的位移值。
AKISPL函数
AKISPL(FirstIndependentVariable,SecondIndependentVariable,SplineName,DerivativeOrder)
FirstIndependentVariable
—— spline中的第一个自变量
SecondIndependentVariable(可选)—— spline中的第二自变量
SplineName
—— 数据单元spline的名称
DerivativeOrder(可选)—— 插值点的微分阶数,一般用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
2
1.2
3
2.5
4
3.6
AKISPL函数的应用
有时做路径规划或输入力或力矩时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADAMS 高级 应用
![提示](https://static.bingdoc.com/images/bang_tan.gif)