系统自由度为0则为运动学分析,不为0则为动力学分析,这种说法是不正确的。应该是,运动学分析适用于自由度为0的系统,动力学分析适用于自由度大于等于1的系统。 1要搞清楚这两种说法的区别,就要从多体动力学的理论说起,对于自由度为0的系统,m个广义坐标对应m个约束方程Φ(q,t)=0,系统处于静平衡状态,各个运动学参数都确定,系统的主动力(矩),惯性力(矩),约束力(矩)可以通过达朗贝尔原理(静平衡方程)求得,而不需要通过动力学方程Mqdd+ΦtTλ=Q求得(λ为拉格朗日乘子,是mx1列向量),这就是运动学求解的基础。对于自由度大于等于1的系统,n个广义坐标(n-m即为系统的自由度,取为f)对应m个约束方程Φ(q,t)=0(其中f个独立广义坐标),为求解必须加上动力学方程Mqdd+ΦtTλ=Q(对应n个动力学方程),这就是动力学求解的基础,比运动学求解复杂得多。 2 对于动力学分析软件,运动学分析通常是解一组一阶微分方程(即速度级别的约束方程),动力学分析通常是解一组二阶微分方程(即加速度级别的约束方程和动力学方程,或maggi方程RTMRZdd=RTQ-RTMSC),所以在应用软件中,动力学分析是包含运动学分析的,是运动学分析的延深(比如质量矩阵,雅可比矩阵一阶导,拉格朗日乘子等的引入)。因此,任何动力学分析得到的运动学参数和相同情况下运动学分析得到的是一致的。 3 综上所述,对于自由度为0的系统,采用运动学分析即可,得到的不仅仅有运动学参数,同时也有力,力矩等动力学参数(使用达朗贝尔原理)。采用动力学分析一般也行,只是杀鸡用牛刀了,但由于此时自由度为0,一些动力学的算法可能就不适合,比如广义坐标分块法就行不通了(无独立坐标可以分块),采用其他算法,比如向后差分法(BDF),如果此时非最优算法,得到的结果可能就会有差别,如果所有动力学算法都不适合则无解或者错误解。ADAMS把自由度为0的系统默认为运动学分析,如果采用动力学分析就会提示报警,但并不是说不能。 4 其实,判断是运动学分析还是动力学分析不是看自由度为0与否,而是看软件究竟用的是哪种算法。比如自由度为0的系统采用动力学算法,那么即为动力学分析,所以说系统自由度为0则为运动学分析这种说法是不准确的,而应该说运动学分析适用于自由度为0的系统。运动学分析主要是求解系统的运动学参数,但是一些动力学参数同样也可以求解,只是求解方法和动力学分析不一样。运动学分析不考虑外力和质量,主要是相对于动力学分析使用的动力学方程Mqdd+ΦtTλ=Q而言,并不是真正不考虑,在利用达朗贝尔原理求解动力学参数时是需要用到的。外力和质量的改变并不影响运动学分析的运动学参数,但是肯定会影响运动学分析的动力学参数。 |