本篇主要讲解一下如何用拉格朗日方程法对3r操作臂建立动力学方程。
- 首先说明一下操作臂的动能表达式,第i个连杆的动能k(i)可以表达为
第一个式子是连杆质心的线速度动能,第二个式子是连杆由于旋转的角速度动能,线速度动能很好求,但是角动能有点难,要仔细,角速度和线速度在这篇文章里已经写了,在此就不在求了,(角速度和线速度要仔细审核,否则。。。)。https://blog.csdn.net/weixin_45106952/article/details/118873549?spm=1001.2014.3001.5501
总动能就是各连杆动能之和:
- 第i个连杆势能表达
其中第二项是一个常数,即该连杆最大势能(第一项最大值)
总势能亦为个各连杆势能之和:
- 拉格朗日函数,即机械系统的动能和势能的差值,在此,操作臂的拉格朗日方程可表示为
操作臂的动力学方程为:
动力学方程也可写成这种形式
注意这这三个方程里面的的theta不是单指角度,它指的是变量,比如说如果是一个拉伸杆,那么它没有转角,只有轴线方向的位移,这时theta指的是位移变量了,后面求导也是对位移这个变量求导。
-
依旧以3r操作臂为例子https://blog.csdn.net/weixin_45106952/article/details/118851868
先计算总动能和总势能,呈下:
先求偏导,这里对theta求偏导,是将theta和theta’看作互不相干的变量
代入动力学方程
这里有个二阶偏导,注意这里是对t进行二阶偏导,方程里面的theta和theta’都要进行对t求导,和上一步求导区分开。
可求得
动力学方程一般形式为
所以可化简为:
-
也可使用matlab机器人工具箱验证分析,建议直接带入数值计算对比,matlab的simplify函数化简的函数和自己求得的不同(需要进行二次化简,很麻烦),matlab代码参考这篇文章,收获颇多。
https://zhuanlan.zhihu.com/p/340718520