
2.1 ADAMS软件建模机理
ADAMS软件采用世界上广泛流行的多刚体系统动力学理论中的拉格朗日方程方法,建立系统动力学方程。选取系统内每个刚体质心在惯性参考系中的三个直角坐标和确定刚体方位的三个欧拉角作为笛卡尔广义坐标,用带乘子的拉格朗日方程处理具有多余坐标的完整约束系统或非完整约束系统,导出以笛卡尔广义坐标为变量的运动学方程。以笛卡尔坐标和欧拉角参数描述物体的空间位形,用吉尔刚性积分解决稀疏矩阵的求解问题,核心是ADAMS/View与ADAMS/Solver,它们提供了多种功能成熟的解算器,可对所建模型进行运动学、静力学、动力学分析。
2.1.1 初始条件分析
在多体系统中,将物体之间的运动学约束定义为铰;物体之间的相互作用定义为力元(内力),力元是对系统中弹簧、阻尼器、制动器的抽象,理想的力元可抽象为统一形式的移动弹簧、阻尼器、制动器,或扭转弹簧、阻尼器、制动器;多体系统外的物体对系统中物体的作用定义为外力(偶)。在进行动力学分析之前,初始条件分析通过求解相应的位置、速度、加速度的目标函数最小值得到。
1. 广义坐标
动力学方程的求解速度很大程度上取决于广义坐标的选择。为了解析描述方位,必须规定一组转动广义坐标表示方向余弦矩阵。ADAMS软件中采用的方法是,用刚体i的质心笛卡尔坐标和反映刚体方位的欧拉角作为广义坐标,即,每个刚体用六个广义坐标描述。由于采用了不独立的广义坐标,系统动力学方程组数量庞大,但却是高度稀疏耦合的微分代数方程,适于用稀疏矩阵的方法高效求解。
2. 初始位置
定义相应的位置目标函数L0为:

式中,n为系统总的广义坐标数;m为系统约束方程数;ϕj,分别是约束方程及对应的拉氏乘子;q0i为用户设定准确的或近似的初始坐标值或程序设定的缺省坐标值;Wi为对应q0i的加权系数。
由L0取最小值,则,
,得:

对应函数形式为:

牛顿-拉弗逊迭代公式为:

式中,Δqk,p=qk,p+1-qk,p,,下标p表示第p次迭代。
3. 初始速度
定义相应的速度目标函数L1为:

式中,为用户设定的准确的或近似的初始速度值或程序设定的缺省值;
为对应
的加权系数;
为对应速度约束方程的拉氏算子;
为速度约束方程。
由L1取最小值,则,
,得:

系数矩阵只与位置有关,且非零项已经分解,可直接求解,
。
4. 初始加速度
初始加速度、初始拉氏乘子可直接由系统动力学方程和系统约束方程的两阶导数确定,写成分量形式:


矩阵形式为:

式中的非零项已分解,可求和λj。
2.1.2 运动学分析
运动学分析主要研究零自由度系统的位置、速度、加速度和约束反力,因此只需求解系统约束方程:

由约束方程的牛顿-拉弗逊(Newton-Raphson)迭代方法确定任一时刻tn的位置,求得:

式中,Δqj=qj+1-qj,j表示第j次迭代。
tn时刻速度、加速度的确定,可由约束方程求一阶、二阶时间导数得到:

tn时刻约束反力的确定,可由带乘子拉格朗日方程得到:

2.1.3 动力学分析
1. 动力学方程的建立
ADAMS程序采用拉格朗日乘子法建立系统动力学方程:

式中,ϕ(q,t)=0为完整约束方程;为非完整约束方程;T为系统能量,
,M为质量列阵;v为广义速度列阵;I为转动惯量列阵;w为广义角速度列阵;q为广义坐标列阵;Q为广义力列阵;p为对应于完整约束的拉氏乘子列阵;μ为对应于非完整约束的拉氏乘子列阵。
对于有n个自由度的力学系统,确定n个广义速率后,即可计算出系统内各质点及各刚体相应的偏速度及偏角速度,以及相应的n个广义主动力及广义惯性力。令每个广义速率所对应的广义主动力与广义惯性力之和为零,所得到的n个标量方程即称为系统的动力学方程,也称凯恩方程:

其矩阵形式为:F+F*=0。
其中:F、F*为N阶列阵,定义为:F=[F(1)…F(N)]TF*=[F*(1)…F*(N)]T,
令:,则系统运动方程可化成动力学方程为:

式中,q为广义坐标列阵;,v广义速度列阵;λ为约束反力及作用力列阵;F为系统动力学微分方程及用户定义的微分方程;Φ为描述完整约束的代数方程列阵;G为描述非完整约束的代数方程列阵。
2. 动力学方程求解
应用ADAMS软件建立的多体模型,其动力学方程一般为隐式、非线性的微分-代数混合方程,对此采用吉尔预测校正算法求解较好,求解后可得到系统中所有部件的边界条件,即力、速度、加速度。进行动力学分析时,ADAMS采用两种算法,分为刚性积分器和非刚性积分器两种。
1)三种功能强大的变阶、变步长积分求解程序
刚性积分器:GSTIFF(Gear)积分器、WSTIFF(Wielenga stiff)积分器、DSTIFF(DASSAL)积分器和SI2-GSTIFF(Stabilized Index-2)积分器。此四种积分器都使用BDF(Back-Difference-Formulae)算法,前三种积分器采用牛顿-拉弗逊迭代方法来求解稀疏耦合的非线性运动学方程,适用于模拟刚性系统(特征值变化范围大的系统)。
2)提供ADAMS积分求解程序
非刚性的ABAM(Adams-Bashforth-Adams-Moulton)积分器,采用坐标分离算法来求解独立坐标的微分方程,这种方法适于非刚性的系统,模拟特征值经历突变系统或高频系统。
3. 微分—代数方程的求解算法
根据当前时刻的系统状态矢量值,用Taylor级数预估下一个时刻的状态矢量值:

式中,时间步长h=tn+1-tn。
这种预估算法得到的新时刻系统状态矢量值通常不准确,即式(2.17)右边项不等于零,可由吉尔(Gear)K+1阶积分求解程序(或其他向后差分积分程序)来校正。

式中,yn+1为y(t)在t=tn+1时刻的近似值;β0,αi为吉尔积分程序的系数值。
重写式(2.18),得:

将式(2.16)在t=tn+1时刻展开得:

将公式(2.20)在t=tn+1时刻展开,得:

ADAMS使用修正的牛顿-拉弗逊迭代方法求解上面的非线性方程,其迭代校正公式为:

j表示第j次迭代。

由公式(2.19)知:

由公式(2.21)知:

将公式(2.24)、(2.25)代入公式(2.22)得:

公式(2.26)左边的系数矩阵称为系统的雅可比矩阵。
式中,为系统刚度阵(力相对广义坐标的雅可比矩阵);
为系统阻尼阵(力相对广义速度的雅可比矩阵);
为系统质量阵(力相对广义加速度的雅可比矩阵)。
4. 控制数值发散方法
在ADAMS中对模型求解计算时,有时会发生数值发散的问题,以致仿真计算终止。只有解决了数值发散的问题,才能使仿真进行下去。针对上面讨论的数值发散的原因,采用相应的技巧加以解决。
1)消除不连续的函数。在建模中尽量不使用IF突变函数,而采用STEP、STEP5和IMPACT等函数代替。
2)检查模型的自由度是否正确,是否存在近似为零的动力学参数。
3)选择正确的系统阻尼值。
4)对积分程序和积分控制参数进行合理的选择。三种积分程序的数值计算稳定性关系为:BDF > DSTIFF > GSTIFF;三种积分程序的数值计算效率关系为:GSTIFF > DSTIFF > BDF。
这三种积分程序适用于模拟刚性系统(特征值变化范围大的系统),而ABAM积分程序适用于模拟经历突变或频率高的系统。使用中应针对所研究的机械系统选用适合的积分程序和控制参数,如最大迭代次数、是否重新分解雅可比矩阵、积分误差等,它们通常会有助于求解的收敛性,但积分误差精度过低会影响求解的正确性。
2.1.4 ADAMS软件建模步骤
ADAMS软件的整个仿真计算过程可以分成以下7个步骤:①数据的输入;②数据的检查;③机构的装配及过约束的消除;④运算方程的自动形成;⑤积分迭代运算过程;⑥运算过程中的错误检查;⑦信息输出与结果输出。
ADAMS软件本身具有较完善的前处理和后处理模块。同时也有广泛的CAD/CAM系统接口,如ARIES、CADAM、Schlumberger等CAD/CAM系统。因此,ADAMS软件既可在字符终端上独立运行,又可在图形终端上利用软件的功能作为辅助手段运行,结果可在绘图机上直接输出。对于汽车前悬架及转向机构,由于输出变量为标准变量(位移、速度、加速度、力等),此时仅用ADAMS的核心计算模块,前、后处理均采用Schlumberger提供的图形软件BRAVO3中MECHANISM的图形处理功能运行计算较为便利。此外,用户还可使用CDL、AGL、IAGL(CPROC)语言开发一些前、后处理专用软件,构成完整的前悬架—转向机构的分析软件。