peter_evi 发表于 2013-1-4 23:29:19

系统自由度为0则为运动学分析,不为0则为动力学分析??

系统自由度为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而言,并不是真正不考虑,在利用达朗贝尔原理求解动力学参数时是需要用到的。外力和质量的改变并不影响运动学分析的运动学参数,但是肯定会影响运动学分析的动力学参数。

xiaoxiaoliu 发表于 2013-1-5 08:31:54

受教了,我现在做的都是多自由度。复杂的模型想建0自由度,但是无冗余约束好像挺难的吧?

peter_evi 发表于 2013-1-8 17:17:01

这是另外一个问题了。一般不是你想建多少的自由度就多少的自由度,而是由系统决定的。系统本来的自由度是n,你按照运动副和驱动建起来的就是n个自由度。当然也可以根据的你要求改变自由度,比如,在某些情况下,可以把施加的角速度改为力矩?*I*?,系统增就加一个自由度。你可以把具体的例子拿出来大家分析一下。

yqy0805 发表于 2013-1-8 18:24:31

受教。在选择算法的时候要注意了。

longfoot 发表于 2014-1-10 10:02:25

这个是好帖子啊,怎么没人顶啊。楼主的理解蛮深的,对初学者很有益。

alsoran 发表于 2014-1-11 22:46:50

本帖最后由 alsoran 于 2014-1-11 22:52 编辑

有个问题. 动力学两类问题,正问题和逆问题,正问题是计算响应(动力学问题),逆问题是计算载荷或者约束反力(运动学问题)或者是系统参数,所以运动学动力学统称为动力学问题。
页: [1]
查看完整版本: 系统自由度为0则为运动学分析,不为0则为动力学分析??