目录
引言
牛顿欧拉法和拉格朗日法是分析动力学系统的两种主要方法,本节着重构建拉格朗日方程与机械系统动力学方程的推导关系,而构建这个关系的工具就是变分。
拉格朗日法
相较于牛顿欧拉法,拉格朗日法注重“状态”而非“过程”,它从能量角度提供了动力学分析的途径。
定义:拉格朗日函数 L=T−V
其中,L 是拉格朗日量,定义为系统的总动能 T 减去总势能 V。
最小作用量原理
什么是最小作用量原理呢?
试想快要迟到了,你可以选择很多条路,但你总会选择一条“最省力”或“最快捷”的路。
类似地,物理系统的真实运动路径也是所有可能路径中“最经济”的那一条。
那么如何衡量“最经济”呢?
拉格朗日量 L=T−V 的含义
刚刚提到拉格朗日量 L=T−V是将动能和势能相减,得到“净能量差”。这个差值反映了系统在某一时刻的状态。将其在时间上累计起来,就可以衡量这条路径的“经济性”。
即 定义作用量S为拉格朗日量L在一段时间内的积分:
S越小,说明这条路“更经济”。
问题来了,以上都仍是在能量范畴内研究的,我们的目的是推导力(或力矩)与广义坐标、广义速度以及广义加速度之间的关系,也就是说从“状态”推“过程”。那么如何构建能量与力学体系之间的关系呢?
我们知道,一维空间中对路程求微分可以得到速度加速度等力学参数;而在这里,作用量S也是对路程的一个描述参量,
那么,在这里是否可以对S做相同操作得到我们想要的力学关系呢?
显然是可以的,在泛函领域,变分就相当于“微分”这个操作!
变分 与 微分
泛函 与 变分
泛函是什么?引用 @钟子悦 博主的观点“泛函就是函数的函数”,即自变量为函数,因变量为变量的关系。
因为L是关于动能和势能的函数,动能势能都可以用x(θ),v(ω),t表示,在这里统一使用代表坐标、速度和时间。
求变分
刚刚我们提到“泛函求变分可以类比为函数对函数求微分”,我们考虑对S求变分,
求S变分就是求拉格朗日量的变分 δL。
拉格朗日量 L 是相关函数,因此其变分可以写为:
又
又
当取得最短路径时,
如果路径 有无穷小的变化
,作用量的变化
应该满足:
这意味着当前路径 已经使作用量 S 达到极值,不能再增加一点了。
此时,括号内的表达式必须为零,
于是乎,我们得到了
欧拉-拉格朗日方程
是 L 对广义坐标的偏导数。
是 L 对广义坐标的偏导数。
是广义坐标的变分。
是广义速度的变分。
回顾一下我们怎么做的:
- 表达路径估计量 S 和拉格朗日量 L 的关系。
- 通过变分法引入路径的小变化 。
- 化简。
- 应用最小作用量原理,使 δS=0,得到欧拉-拉格朗日方程。
由此,我们得到描述系统随时间演化的广义坐标 q (可以理解为位置)。这已经很接近我们的目标了,但是,对于动力学分析,还差一个很重要的变量——力。
接下来,我们探寻如何将力加入这个方程:
从能量守恒理解欧拉-拉格朗日方程一般式
(提供理解思路,不一定对)
拉格朗日方程是从能量角度考虑的,试想在高中,我们遇到的能量守恒定律:
机械能变化量 = 合外力做功
即 ΔE = W外
两边同时对位移求导很合理吧!
F = ΔE/dq
等等!右边这个形式好像有点眼熟?
就是他啦!!!
那么我们是不是就可以在等式一侧引入非保守力的影响:
没错,这就是欧拉-拉格朗日方程的一般式。其中是广义非保守力。
你可能对此的正确性有所疑惑,
事实上,
- 能量守恒定律:描述了机械能变化与外力做功的关系。
- 拉格朗日方程:则通过引入拉格朗日量 L=T−VL=T−V,将能量守恒的思想扩展到了更一般的动力学问题中。
是有理可循的。
【我自己想的~( ̄▽ ̄)~*,以老师讲的为准哈~】
现在,我们已经得到想要的运动学方程,但是为什么在机器人力学分析却还需要进一步推导机械系统的动力学方程呢?
实际上,别看这个式子短,但他是带了角标i的。这意味着对于一个多自由度机械臂而言,我们需计算求一堆导数,这些步骤涉及大量链式法则和矩阵运算,符号表达式会迅速膨胀,输入输出也会极其冗长。
此外,非标准化的计算会“重复造轮子”,一个式子往往会被计算多次。
而标准动力学方程直接分离了惯性力、科里奥利力和重力项,便于模块化计算,这些轮子就不必“回炉重造”了,而且像星马之前学的ROS内置了标准方程接口来接受方程分项数据的。
机械系统的标准动力学方程
动能 T:
类比高中的动能公式
对于机械系统,动能通常为广义速度 的二次型:
其中 为对称正定质量矩阵,依赖于广义坐标 θ。
势能 V:
由重力势能构成:
例如,
是高度函数。
接下来就用他们将原方程替换掉:
Ⅰ
Ⅱ
Ⅲ
Ⅳ
对于Ⅰ第一项内部 ,结合 L=T-V
动能对 求导:
势能 V 不含 因此:
求外层导数:
其中 是 M(θ) 对时间的导数,由链式法则:
对于Ⅰ第二项:
动能对 θ 求导:
势能对 θ 求导:
因此,
上述结果带入Ⅰ式:
整理得:
其中第二项是科里奥利-离心力项,他确保动力学方程满足能量守恒。在实际控制中,若未补偿科里奥利-离心力项,控制器需额外克服这些惯性力,导致力矩不足或超调。
比较长,我们定义科里奥利-离心力矩阵满足:
简化后:
其中:
M(θ) 为惯性矩阵;
为科里奥利-离心力项;
G(θ) 为重力项;
τ 为广义力(如电机力矩);
在实际工程中,标准动力学方程通过模块化分解、计算优化和物理意义明确性,显著提升了建模、控制和实现的效率,这是之后机器人课程展开的运动学分析基础。
小结
Ⅰ 推导过程:
①拉格朗日方程L = T - V,类比对位移求导得到速度、时间等运动参数,求变分。
②应用最小作用量原理,使 δS=0,得到欧拉-拉格朗日方程。
③类比能量守恒理解欧拉-拉格朗日一般式。
④为了方便模块化和计算简便,带入L=T-V,以及动能势能表达式化简。
Ⅱ 泛函就是函数的函数,即自变量为函数,因变量为变量的关系。
Ⅲ 变分类似于微分,是函数对函数求导。
写在后面:
很开心你能耐着性子读到这里,很荣幸能将我的三脚猫知识分享给大家,之后的学习也祝你好运。
星马也是小白,因此更懂小白的心思,大佬认为一眼明白的代码和思路可能在我们眼中就是鸿沟。这篇文章也还有很多不足之处,或是纰漏,希望你发现了及时在评论区提醒我呀~
(人工智能学院就是每周四五天满课的啦,因此更新基本随缘~)
参考资料是开头的视频。
星马是刚入门的大菜比,有错望指正,有项目可以带带我。
别丢收藏夹吃灰啦好嘛~