拉格朗日力学(Lagrange Machenics)
一切都基于拉格朗日量(Lagrangian)和广义坐标(Configuration Coordinates)。我以比 Wikipedia 更容易理解的方式说明拉格朗日力学的基本思想。
广义坐标
广义坐标是在完整约束下,完整描述系统状态的任意一组独立的量组成的坐标。
- 什么叫完整约束下,完整描述?

例如上图所示的双摆,如果不考虑任何约束,系统的自由度等于6(因为有两个小球,一个小球的自由度是3),需要6个独立的量描述整个系统。如果将这个双摆约束在一个平面,那么有两条约束了,一是小球1在平面内,二是小球2在平面内,自由度为4。但目前的约束还不完整,因为没有考虑双摆中必然出现的约束——连接小球的绳长固定。如果考虑了这一点,就新增了两条约束,分别来自图中的 L 1 L_1 L1 和 L 2 L_2 L2,自由度减 2,等于2,这时约束才完整。根据广义坐标的定义,用 ( θ 1 , θ 2 ) (\theta_1, \theta_2) (θ1,θ2) 作为广义坐标,描述双摆系统,因为这两个量相互独立,在完整约束下用最少的元素描述了整个双摆系统。 - 什么叫任意一组?
例如描述物体的位置,可以用笛卡尔坐标 ( x , y , z ) (x,y,z) (x,y,z) 或极坐标 ( ρ , θ ) (\rho,\theta) (ρ,θ),取里面任意一种表示方法即可。
刚才给出的例子中,
θ
\theta
θ 的量纲并不是长度,由此可见,广义坐标的元素的量纲不一定都是长度,但在拉格朗日力学的分析过程中,可以当成长度来理解,广义就广义在这里。例如角速度、角动量、力矩、转动惯量等概念(假设你学过大学物理),就是将角度当作位移来看待,因此角速度对应速度,角动量对应动量,力矩对应力,转动惯量对应质量。将
n
n
n维广义坐标记为
(
q
1
,
q
2
,
.
.
.
,
q
n
)
(q_1,q_2,...,q_n)
(q1,q2,...,qn),则定义广义速度:
q
s
˙
=
d
q
s
d
t
\dot{q_s}=\cfrac{d q_s}{d t}
qs˙=dtdqs
其中
s
s
s 是下标,表示广义坐标的第
s
s
s 个元素。因为广义坐标的元素相互独立,所以是
d
d
d 而不是
∂
\partial
∂。同理,广义加速度 :
q
s
¨
=
d
2
q
s
d
t
2
\ddot{q_s}=\cfrac{d^2 q_s}{d t^2}
qs¨=dt2d2qs
拉格朗日量
定义拉格朗日量,有时也称拉格朗日函数(不是在等式约束下求函数极值的那个拉格朗日函数,两者同名,但描述的对象完全不同):
L
=
T
−
V
L=T-V
L=T−V
其中
T
T
T 是系统总动能(kinetic energy),
V
V
V 是总势能(potential energy )。引入了拉格朗日量后,可以继续定义广义动量 :
p
s
=
∂
L
∂
q
s
˙
p_s= \cfrac{\partial L}{\partial \dot{q_s}}
ps=∂qs˙∂L
因为动量
p
=
m
v
=
d
d
v
(
1
2
m
v
2
)
=
d
E
k
d
v
p =mv =\cfrac{d}{dv}\left(\cfrac{1}{2}mv^2\right)=\cfrac{dE_k}{dv}
p=mv=dvd(21mv2)=dvdEk
势能与速度无关:
d
E
p
d
v
=
0
\cfrac{dE_p}{dv}=0
dvdEp=0
所以:
p
s
=
∂
E
k
∂
q
s
˙
=
∂
E
k
∂
q
s
˙
−
∂
E
p
∂
q
s
˙
=
∂
L
∂
q
s
˙
p_s =\cfrac{\partial E_k}{\partial \dot{q_s}} = \cfrac{\partial E_k}{\partial \dot{q_s}} - \cfrac{\partial E_p}{\partial \dot{q_s}} = \cfrac{\partial L}{\partial \dot{q_s}}
ps=∂qs˙∂Ek=∂qs˙∂Ek−∂qs˙∂Ep=∂qs˙∂L
定义广义力:
F
s
=
∂
L
∂
q
s
=
d
p
s
d
t
=
d
d
t
(
∂
L
∂
q
s
˙
)
\begin{aligned} F_s &= \cfrac{\partial L}{\partial q_s} \\ &= \cfrac{d p_s}{dt} = \cfrac{d}{dt}\left(\cfrac{\partial L}{\partial \dot{q_s}}\right) \end{aligned}
Fs=∂qs∂L=dtdps=dtd(∂qs˙∂L)
因为
F
=
−
d
E
p
d
l
F=-\cfrac{dE_p}{dl}
F=−dldEp,
d
E
k
d
l
=
0
\cfrac{dE_k}{dl}=0
dldEk=0,
F
=
m
a
=
d
(
m
v
)
d
t
=
d
p
d
t
F=ma=\cfrac{d(mv)}{dt}=\cfrac{dp}{dt}
F=ma=dtd(mv)=dtdp,所以
F
s
=
−
∂
E
p
∂
q
s
=
∂
E
k
∂
q
s
−
∂
E
p
∂
q
s
=
∂
L
∂
q
s
=
d
p
s
d
t
\begin{aligned} F_s & = -\cfrac{\partial E_p}{\partial q_s} = \cfrac{\partial E_k}{\partial q_s} -\cfrac{\partial E_p}{\partial q_s} = \cfrac{\partial L}{\partial q_s} \\ & = \cfrac{d p_s}{dt} \end{aligned}
Fs=−∂qs∂Ep=∂qs∂Ek−∂qs∂Ep=∂qs∂L=dtdps
欧拉-拉格朗日方程
从广义力的定义式得出
d
d
t
(
∂
L
∂
q
s
˙
)
=
∂
L
∂
q
s
\cfrac{d}{dt}\left(\cfrac{\partial L}{\partial \dot{q_s}}\right) = \cfrac{\partial L}{\partial q_s}
dtd(∂qs˙∂L)=∂qs∂L
这就是欧拉-拉格朗日方程(Euler–Lagrange equations),两边都等于广义力。对 n n n 维广义坐标的每个元素都列出这样的方程,就组成了包含 n n n 个未知数( q s q_s qs)和 n n n 个方程的方程组,可以求解,得到每时每刻系统的状态!这就是拉格朗日力学的基本思想。
示例:单摆

假设你学过高中物理。假设这个小球的运动只限制在一个平面内,则系统的自由度仅为1,用
θ
\theta
θ 这一个量作为广义坐标。系统动能等于小球动能
T
=
1
2
m
v
2
=
1
2
m
(
l
ω
)
2
=
1
2
m
(
l
θ
˙
)
2
=
1
2
m
l
2
θ
˙
2
T= \cfrac{1}{2}mv^2 = \cfrac{1}{2}m\left(l\omega\right)^2 = \cfrac{1}{2}m\left(l\dot{\theta}\right)^2 = \cfrac{1}{2}ml^2\dot{\theta}^2
T=21mv2=21m(lω)2=21m(lθ˙)2=21ml2θ˙2
系统势能等于小球重力势能(取图中天花板所在平面为零重力势能面):
V
=
−
m
g
l
cos
θ
V = -mgl\cos\theta
V=−mglcosθ
则拉格朗日量
L
=
T
−
V
=
1
2
m
l
2
θ
˙
2
+
m
g
l
cos
θ
L= T-V = \cfrac{1}{2}ml^2\dot{\theta}^2 + mgl\cos\theta
L=T−V=21ml2θ˙2+mglcosθ
根据欧拉-拉格朗日方程
d
d
t
(
d
L
d
θ
˙
)
=
d
L
d
θ
m
l
2
θ
¨
=
−
m
g
l
sin
θ
l
θ
¨
+
g
sin
θ
=
0
\begin{aligned} \cfrac{d}{dt}\left(\cfrac{dL}{d\dot{\theta}}\right) &= \cfrac{dL}{d\theta} \\ ml^2\ddot{\theta} &= -mgl\sin\theta \\ l\ddot{\theta}+g\sin\theta &= 0 \\ \end{aligned}
dtd(dθ˙dL)ml2θ¨lθ¨+gsinθ=dθdL=−mglsinθ=0
l θ ¨ + g sin θ = 0 l\ddot{\theta}+g\sin\theta=0 lθ¨+gsinθ=0 并不容易解出,但如果 θ \theta θ 很小,认为 sin θ ≈ θ \sin\theta \approx \theta sinθ≈θ,则有 l θ ¨ + g θ = 0 l\ddot{\theta}+g\theta = 0 lθ¨+gθ=0,通过 Laplace 变换即可解出, θ \theta θ 是一个关于时间 t t t 正弦函数,小球做简谐运动。
总结
拉格朗日量
L
=
T
−
V
L=T-V
L=T−V
欧拉-拉格朗日方程,两边都表示广义力:
d
d
t
(
∂
L
∂
q
s
˙
)
=
∂
L
∂
q
s
\cfrac{d}{dt}\left(\cfrac{\partial L}{\partial \dot{q_s}}\right) = \cfrac{\partial L}{\partial q_s}
dtd(∂qs˙∂L)=∂qs∂L
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)