浅谈牛顿-欧拉方程及其推导

前文

最近阅读课题论文时看到采用牛顿-欧拉方程来建立动力学方程,尝试系统学习一下这一知识,发现网上资源推导说明不清晰不利于新手入门理解,此文用于记录推导过程以加深理解。
若文中出现错误或误导内容,欢迎指正!



为何物(背景)

描述刚体的力学变化和运动过程有很多种方法,例如基于能量的拉格朗日公式、牛顿力学法以及现在讨论的牛顿-欧拉方程。不同的方法以不同的基本定理和角度来描述刚体运动过程(能量守恒,动量守恒等)。牛顿-欧拉方程则是从刚体的转动和平动两个运动类型来描述力学与运动之间的关系。
刚体的平动描述的是描述对象的运动轨迹,刚体的转动描述的是描述对象自身的转动过程。在实际生活中,刚体的运动往往是平动和转动的复合过程。并且,刚体运动的描述是基于参考系下的,此处要引入惯性坐标系和非惯性坐标系的概念。

惯性坐标系即绝对坐标系,常说的地球坐标系就是典型的惯性坐标系。
非惯性坐标系就是基于运动描述对象建立的坐标系。
举个栗子(故意不小心打错的)
一辆火车上,你坐在座位上静止不动,在火车的坐标系上,你的运动速度就是为0。但是从地面坐标系来看,你跟着火车以一个非常快的速度运动着。因此基于不同的参考系,你的运动描述是不同的。
这里要埋个伏笔,由于非惯性系的与惯性系之间关于运动描述的差别,在进行力学分析时,引入了惯性力的概念。后续在进行推导时会提到这一概念
再举一个栗子(肥肠自信.jpg)
根据牛顿第一定理,如果物体上没有受力,它将一直保持当前的运动状态,这种运动状态也称作惯性。
假设游乐园的旋转木马匀速的旋转着。在旋转木马的坐标系中,它相对地面坐标系进行旋转运动。当你坐到木马上之后,在旋转木马的坐标系中,你就是静止不动的,但是在地面坐标系中,你就是在转圈。
你的转圈运动不是惯性运动,你的运动速度一直被改变,存在一个看不见的力持续的改变你的运动状态。这个就是因为非惯性坐标系的缘故产生的一个改变运动状态的力,称作惯性力。

从何来(公式推导)

线运动推导

根据一个图来讲解,惯性坐标系及非惯性坐标系的描述。
在这里插入图片描述
此图摘自https://blog.csdn.net/huangjunsheng123/article/details/110249073,侵删!
对于旋转过程的描述,通常采用的是旋转矩阵的形式来描述,关于坐标系旋转变换的知识,可以参考我之前写过的这篇博客 坐标系旋转变换
图纸 U U U为惯性坐标系, B B B为非惯性坐标系, A A A为空间中一点, r ⃗ A \vec{r}_{A} r A表示该点在惯性坐标系下的位置矢量, r ⃗ A ∣ B \vec{r}_{A|B } r AB表示非惯性坐标系下该点的位置矢量。 r ⃗ B \vec{r}_{B} r B为非惯性坐标系在惯性坐标系中的位置矢量。
从简单的矢量运算开始
r A ⃗ = r B ⃗ + r A ∣ B ⃗ \vec{r_{A}}=\vec{r_{B}} + \vec{r_{A|B}} rA =rB +rAB
这里就涉及到一个问题, r ⃗ A ∣ B \vec{r}_{A|B } r AB是基于 B B B坐标系的向量,它的向量值不是基于惯性坐标系的,因此做矢量相加时,需要将这个向量变换到惯性坐标系中,才可以做相加。这里把 r ⃗ A ∣ B \vec{r}_{A|B } r AB平移到惯性坐标系原点,设旋转矩阵为 C B U C^{U}_{B} CBU表示从非惯性坐标系变换到惯性坐标系。
则对上面的公式进行修正
r A ⃗ = r B ⃗ + C B U ⋅ r A ∣ B ⃗ \vec{r_{A}}=\vec{r_{B}} + C^{U}_{B}\cdot \vec{r_{A|B}} rA =rB +CBUrAB
这里的修正很重要,我看到很多帖子上都是按照未修正的公式进行推导的,看的我一脸懵。我觉得这些细节是需要明确指出,否则无法快速理解后续的推导。
——
这里要做一个强调,后面的推导是统一在惯性坐标系下进行的。
——
对两边求导,得到
d r A ⃗ d t = d r B ⃗ d t + d C B U ⋅ r A ∣ B ⃗ d t \frac{d\vec{r_{A}}}{dt}=\frac{d\vec{r_{B}}}{dt} + \frac{dC^{U}_{B}\cdot \vec{r_{A|B}}}{dt} dtdrA =dtdrB +dtdCBUrAB

这里要补充一个内容点——旋转矩阵同样是关于时间的函数,因此对时间求导时需要对其一并计算。

  • 对于旋转矩阵的求导公式,可以参考这个博客 https://blog.csdn.net/weixin_38632538/article/details/106085426
  • 对向量求导存在以下公理
    d r ⃗ d t = ω ⃗ × r ⃗ \frac{d\vec{r}}{dt}=\vec{\omega} \times \vec{r} dtdr =ω ×r
    这个公式很好理解,即坐标系只进行旋转运动时,向量的大小不会改变,只会改变其角度,改变的趋势与坐标系的旋转角速度有关。
  • 假设向量 r ⃗ \vec{r} r 在非惯性坐标系内,随着非惯性坐标系做旋转运动,其中 ω U ⃗ \vec{\omega_{U}} ωU 表示该向量在惯性坐标系下的角速度, ω B ⃗ \vec{\omega_{B}} ωB 表示该向量在非惯性坐标系下的角速度。设旋转矩阵是惯性坐标系下任意三个线性无关列向量组合成的矩阵,则有
    d C B U d t = d [ b 1 U ⃗ b 2 U ⃗ b 3 U ⃗ ] d t = [ ω U ⃗ × b 1 U ⃗ ω U ⃗ × b 2 U ⃗ ω U ⃗ × b 3 U ⃗ ] \frac{dC^{U}_{B}}{dt}= \frac{d\begin{bmatrix} \vec{b^{U}_{1}} & \vec{b^{U}_{2}} &\vec{b^{U}_{3}} \end{bmatrix}}{dt} = \begin{bmatrix} \vec{\omega_{U}} \times \vec{b^{U}_{1}} & \vec{\omega_{U}} \times \vec{b^{U}_{2}} & \vec{\omega_{U}} \times \vec{b^{U}_{3}} \end{bmatrix} dtdCBU=dtd[b1U b2U b3U ]=[ωU ×b1U ωU ×b2U ωU ×b3U ]
    又根据坐标系旋转变换规律
    ω U ⃗ = C B U ⋅ ω B ⃗ \vec{\omega_{U}} = C_{B}^{U} \cdot \vec{\omega_{B}} ωU =CBUωB
    并且满足矩阵计算满足以下规律
    b 1 U ⃗ = C B U ⋅ [ 1 0 0 ] = C B U ⋅ e 1 ⃗ b 2 U ⃗ = C B U ⋅ [ 0 1 0 ] = C B U ⋅ e 2 ⃗ b 3 U ⃗ = C B U ⋅ [ 0 0 1 ] = C B U ⋅ e 3 ⃗ \vec{b^{U}_{1}}= C_{B}^{U} \cdot \begin{bmatrix} 1\\0\\0\end{bmatrix}=C_{B}^{U} \cdot \vec{e_{1}}\\ \vec{b^{U}_{2}}= C_{B}^{U} \cdot \begin{bmatrix} 0\\1\\0\end{bmatrix}=C_{B}^{U} \cdot \vec{e_{2}}\\ \vec{b^{U}_{3}}= C_{B}^{U} \cdot \begin{bmatrix} 0\\0\\1\end{bmatrix}=C_{B}^{U} \cdot \vec{e_{3}} b1U =CBU 100 =CBUe1 b2U =CBU 010 =CBUe2 b3U =CBU 001 =CBUe3
    联立上述三个式子可以得到
    d C B U d t = [ ( C B U ⋅ ω B ⃗ ) × ( C B U ⋅ e 1 ⃗ ) ( C B U ⋅ ω B ⃗ ) × ( C B U ⋅ e 2 ⃗ ) ( C B U ⋅ ω B ⃗ ) × ( C B U ⋅ e 3 ⃗ ) ] ⇒ d C B U d t = C B U [ ω B ⃗ × e 1 ⃗ ω B ⃗ × e 2 ⃗ ω B ⃗ × e 3 ⃗ ] \frac{dC^{U}_{B}}{dt}=\begin{bmatrix} (C_{B}^{U} \cdot \vec{\omega_{B}}) \times (C_{B}^{U} \cdot \vec{e_{1}}) & (C_{B}^{U} \cdot\vec{\omega_{B}}) \times (C_{B}^{U} \cdot \vec{e_{2}}) & (C_{B}^{U} \cdot \vec{\omega_{B}}) \times (C_{B}^{U} \cdot \vec{e_{3}}) \end{bmatrix}\\ \Rightarrow \frac{dC^{U}_{B}}{dt}=C_{B}^{U} \begin{bmatrix} \vec{\omega_{B}} \times\vec{e_{1}} & \vec{\omega_{B}} \times \vec{e_{2}} &\vec{\omega_{B}} \times \vec{e_{3}} \end{bmatrix} dtdCBU=[(CBUωB )×(CBUe1 )(CBUωB )×(CBUe2 )(CBUωB )×(CBUe3 )]dtdCBU=CBU[ωB ×e1 ωB ×e2 ωB ×e3 ]
  • 这里就是涉及到一个如何将叉乘变化为点乘的知识点——反对称矩阵
    设任意三维列向量 A ⃗ B ⃗ \vec{A} \vec{B} A B ,则满足以下关系
    A ⃗ × B ⃗ = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = S ( A ⃗ ) ⋅ B ⃗ \vec{A} \times \vec{B} = \begin{bmatrix} a_2b_3-a_3b_2 &a_3b_1-a_1b_3 & a_1b_2-a_2b_1\end{bmatrix}=S(\vec{A}) \cdot \vec{B} A ×B =[a2b3a3b2a3b1a1b3a1b2a2b1]=S(A )B
    其中 S ( A ⃗ ) S(\vec{A}) S(A )为反对称矩阵,其表达式为
    S ( A ⃗ ) = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] S(\vec{A}) = \begin{bmatrix} 0 & -a_3& a_2 \\ a3& 0 & -a_1 \\ -a_2 & a_1 & 0\end{bmatrix} S(A )= 0a3a2a30a1a2a10
    将上式重新代入求导公式可得
    d C B U d t = C B U [ S ( ω B ⃗ ) ⋅ e 1 ⃗ S ( ω B ⃗ ) ⋅ e 2 ⃗ S ( ω B ⃗ ) ⋅ e 3 ⃗ ] ⇒ d C B U d t = C B U S ( ω B ⃗ ) ⋅ I = C B U S ( ω B ⃗ ) \frac{dC^{U}_{B}}{dt}=C_{B}^{U} \begin{bmatrix} S(\vec{\omega_{B}}) \cdot\vec{e_{1}} & S(\vec{\omega_{B}}) \cdot\vec{e_{2}} &S(\vec{\omega_{B}}) \cdot\vec{e_{3}} \end{bmatrix}\\ \Rightarrow \frac{dC^{U}_{B}}{dt}=C_{B}^{U} S(\vec{\omega_B})\cdot I=C_{B}^{U} S(\vec{\omega_B}) dtdCBU=CBU[S(ωB )e1 S(ωB )e2 S(ωB )e3 ]dtdCBU=CBUS(ωB )I=CBUS(ωB )

按照上面的公式结论来继续求导。
d r A ⃗ d t = d r B ⃗ d t + d C B U ⋅ r A ∣ B ⃗ d t = v B ⃗ + C B U ⋅ v A ∣ B ⃗ + d C B U d t r A ∣ B ⃗ v A ⃗ = v B ⃗ + C B U ⋅ v A ∣ B ⃗ + C B U S ( ω B ⃗ ) r A ∣ B ⃗ v A ⃗ = v B ⃗ + C B U ⋅ ( v A ∣ B ⃗ + S ( ω B ⃗ ) r A ∣ B ⃗ ) ⇒ v A ⃗ = v B ⃗ + C B U ⋅ ( v A ∣ B ⃗ + ω B ⃗ × r A ∣ B ⃗ ) \frac{d\vec{r_{A}}}{dt}=\frac{d\vec{r_{B}}}{dt} + \frac{dC^{U}_{B}\cdot \vec{r_{A|B}}}{dt}=\vec{v_B}+C^U_B \cdot \vec{v_{A|B}}+ \frac{dC^{U}_{B}}{dt} \vec{r_{A|B}}\\ \vec{v_A}=\vec{v_B}+C^U_B \cdot \vec{v_{A|B}}+C^U_B S(\vec{\omega_B})\vec{r_{A|B}}\\ \vec{v_A}=\vec{v_B}+C^U_B \cdot (\vec{v_{A|B}}+S(\vec{\omega_B})\vec{r_{A|B}})\\ \Rightarrow\vec{v_A}=\vec{v_B}+C^U_B \cdot (\vec{v_{A|B}}+\vec{\omega_B} \times \vec{r_{A|B}}) dtdrA =dtdrB +dtdCBUrAB =vB +CBUvAB +dtdCBUrAB vA =vB +CBUvAB +CBUS(ωB )rAB vA =vB +CBU(vAB +S(ωB )rAB )vA =vB +CBU(vAB +ωB ×rAB )

注意这里括号内的向量 ( v A ∣ B ⃗ + ω B ⃗ × r A ∣ B ⃗ ) (\vec{v_{A|B}}+\vec{\omega_B} \times \vec{r_{A|B}}) (vAB +ωB ×rAB ),是基于非惯性坐标系的,经过旋转矩阵变换后才变换到惯性坐标系的。
这里是一个伏笔,后面会考!

接下来就是通过速度求导得到加速度方程,也就可以得到线运动的动力学方程。
如果前面看懂了的话,后面这一步就是高数里简单的复合函数求导题目,有手就行。
d v A ⃗ d t = d v B ⃗ d t + d C B U d t ( v A ∣ B ⃗ + ω B ⃗ × r A ∣ B ⃗ ) + C B U   d ( v A ∣ B ⃗ + ω B ⃗ × r A ∣ B ⃗ ) d t ⇒ a A ⃗ = a B ⃗ + C B U ( ω B ⃗ × ( v A ∣ B ⃗ + ω B ⃗ × r A ∣ B ⃗ ) ) + C B U ( a A ∣ B ⃗ + ω B ′ ⃗ × r A ∣ B ⃗ + ω B ⃗ × v A ∣ B ⃗ ) ⇒ a A ⃗ = a B ⃗ + C B U ( ω B ⃗ × v A ∣ B ⃗ ) + C B U ( ω B ⃗ × ω B ⃗ × r A ∣ B ⃗ ) + C B U a A ∣ B ⃗ + C B U ( ω B ′ ⃗ × r A ∣ B ⃗ ) + C B U ( ω B ⃗ × v A ∣ B ⃗ ) ⇒ a A ⃗ = a B ⃗ + C B U ⋅ 2 ( ω B ⃗ × v A ∣ B ⃗ ) + C B U ( ω B ⃗ × ω B ⃗ × r A ∣ B ⃗ ) + C B U a A ∣ B ⃗ + C B U ( ω B ′ ⃗ × r A ∣ B ⃗ ) \frac{d\vec{v_A}}{dt}=\frac{d\vec{v_B}}{dt}+\frac{dC^U_B}{dt}(\vec{v_{A|B}}+\vec{\omega_B} \times \vec{r_{A|B}})+C^U_B\ \frac{d(\vec{v_{A|B}}+\vec{\omega_B} \times \vec{r_{A|B}})}{dt}\\ \Rightarrow\vec{a_A}=\vec{a_B}+ C^U_B(\vec{\omega_B} \times (\vec{v_{A|B}}+\vec{\omega_B} \times \vec{r_{A|B}})) +C^U_B (\vec{a_{A|B}} + \vec{\omega_B'}\times\vec{r_{A|B}} + \vec{\omega_B}\times \vec{v_{A|B}})\\ \Rightarrow \vec{a_A}=\vec{a_B}+ C^U_B(\vec{\omega_B} \times \vec{v_{A|B}}) +C^U_B(\vec{\omega_B} \times \vec{\omega_B} \times \vec{r_{A|B}}) +C^U_B \vec{a_{A|B}} + C^U_B (\vec{\omega_B'}\times\vec{r_{A|B}}) + C^U_B (\vec{\omega_B}\times \vec{v_{A|B}})\\ \Rightarrow \vec{a_A}=\vec{a_B}+ C^U_B\cdot2(\vec{\omega_B} \times \vec{v_{A|B}}) +C^U_B(\vec{\omega_B} \times \vec{\omega_B} \times \vec{r_{A|B}}) +C^U_B \vec{a_{A|B}} + C^U_B (\vec{\omega_B'}\times\vec{r_{A|B}}) dtdvA =dtdvB +dtdCBU(vAB +ωB ×rAB )+CBU dtd(vAB +ωB ×rAB )aA =aB +CBU(ωB ×(vAB +ωB ×rAB ))+CBU(aAB +ωB ×rAB +ωB ×vAB )aA =aB +CBU(ωB ×vAB )+CBU(ωB ×ωB ×rAB )+CBUaAB +CBU(ωB ×rAB )+CBU(ωB ×vAB )aA =aB +CBU2(ωB ×vAB )+CBU(ωB ×ωB ×rAB )+CBUaAB +CBU(ωB ×rAB )

到这里就已经推导完成,下面简单讨论上面各项的物理意义
a B ⃗ \vec{a_{B}} aB 是非惯性坐标系的加速度;
2 ( ω B ⃗ × v A ∣ B ⃗ ) 2(\vec{\omega_B} \times \vec{v_{A|B}}) 2(ωB ×vAB ) 是由于非惯性系旋转产生的惯性力,称作科氏力 (Coriolis Force)
ω B ⃗ × ω B ⃗ × r A ∣ B ⃗ \vec{\omega_B} \times \vec{\omega_B} \times \vec{r_{A|B}} ωB ×ωB ×rAB 法向加速度,可以把向量看成可以拉伸的弹力绳,在非惯性系旋转过程中,这跟绳子会被甩出去变长,使其变长的力。
a A ∣ B ⃗ \vec{a_{A|B}} aAB 是矢量 A A A在非惯性坐标系下的加速度,再经过坐标变换到惯性坐标系下。
ω B ′ ⃗ × r A ∣ B ⃗ \vec{\omega_B'}\times\vec{r_{A|B}} ωB ×rAB 是由于非惯性的变速旋转运动,导致矢量的切向方向运动变化的力。

角运动推导

角运动的过程与线运动本质上相同。直接给公式
ω A ⃗ = ω B ⃗ + C B U ⋅ ω A ∣ B ⃗ \vec{\omega_A}=\vec{\omega_B} + C^U_B \cdot \vec{\omega_{A|B}} ωA =ωB +CBUωAB
两边求导得到
α A ⃗ = d ω A ⃗ d t = α B ⃗ + C B U ( ω B ⃗ × ω A ∣ B ⃗ ) + C B U ⋅ α A ∣ B ⃗ \vec{\alpha_{A}} = \frac{d\vec{\omega_A}}{dt}=\vec{\alpha_{B}}+C^U_B (\vec{\omega_B} \times \vec{\omega_{A|B}} ) + C^U_B \cdot \vec{\alpha_{A|B}} αA =dtdωA =αB +CBU(ωB ×ωAB )+CBUαAB

总结

总体来说,整个推导过程相对简单,但是在我学习过程中查阅的资料里并没有对旋转变换过程进行描述,导致我自己推导过程遇到许多阻碍,希望这篇文章可以帮助到入门学习的同学。
若文中出现错误或者描述有误的地方,欢迎指正!

质点弹道是指质点在空气中运动的轨迹,其受到空气阻力和重力的影响。根据运动学和动力学的基本原理,可以建立质点在空气中的运动方程,以描述其运动轨迹。假设质点的初始位置为 $(x_0,y_0,z_0)$,初始速度为 $(v_{x0},v_{y0},v_{z0})$,则质点在空气中的运动方程可以表示为: $$ \begin{aligned} x(t) &= x_0 + v_{x0}t \\ y(t) &= y_0 + v_{y0}t \\ z(t) &= z_0 + v_{z0}t - \frac{1}{2}gt^2 \\ \end{aligned} $$ 其中 $g$ 是重力加速度,$t$ 是时间。这个模型假设空气阻力对质点运动的影响可以忽略。在实际情况中,空气阻力是不可忽略的,因此需要考虑空气阻力对质点的影响。 考虑空气阻力对质点运动的影响,可以将动力学方程欧拉动力学方程应用于质点的运动。动力学方程描述了质点运动时所受的力以及加速度之间的关系,欧拉动力学方程则描述了质点的运动状态以及其变化过程。根据动力学方程欧拉动力学方程,可以得到质点在空气中的运动方程: $$ \begin{aligned} \frac{dx}{dt} &= v_x \\ \frac{dy}{dt} &= v_y \\ \frac{dv_x}{dt} &= -\frac{1}{2} \rho C_d A v_x^2 \frac{1}{m} \\ \frac{dv_y}{dt} &= -\frac{1}{2} \rho C_d A v_y^2 \frac{1}{m} \\ \frac{dz}{dt} &= v_z \\ \frac{dv_z}{dt} &= -g - \frac{1}{2} \rho C_d A v_z^2 \frac{1}{m} \\ \end{aligned} $$ 其中,$\rho$ 是空气密度,$C_d$ 是阻力系数,$A$ 是物体的参考面积,$m$ 是物体的质量。这个模型中,假设空气阻力的大小与速度的平方成正比,与速度的方向相反。 通过求解上述运动方程,可以得到质点在空气中的运动轨迹。需要注意的是,这个模型中假设空气阻力对质点运动的影响是恒定的,而实际情况中空气阻力也受到其他因素的影响,因此模型的精度可能会受到一定的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

争取35岁退休

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值