非惯性系下导数问题(机器人学)

编程入门 行业动态 更新时间:2024-10-27 10:26:40

非惯性系下导数问题(<a href=https://www.elefans.com/category/jswz/34/1690971.html style=机器人学)"/>

非惯性系下导数问题(机器人学)

非惯性系下导数问题

   我们知道,在惯性系下,速度 v v v为位移 r r r的导数,加速度 a a a为速度 v v v。那么在非惯性系下是否也成立呢?当然,非惯性系下可没有这么简单,接下来我们就来一步一步推导一下。

推导

   假设有一个惯性系0, O − X Y Z {O-XYZ} O−XYZ和一个非惯性系1, O 1 − X 1 Y 1 Z 1 {O_1-X_1Y_1Z_1} O1​−X1​Y1​Z1​。假设坐标系1相对于坐标系0的旋转矩阵为 R ( θ ) R(\theta) R(θ)(简单起见,仅考虑绕着z轴转动),假设点P的绝对位移 r r r(相对于惯性系)在惯性系0下的表示为 r 0 0 r^0_0 r00​,在非惯性系1下的表示为 r 0 1 r^1_0 r01​,显然我们有:

r 0 0 = R ( θ ) r 0 1 (1) r^0_0 =R(\theta) r^1_0 \tag{1} r00​=R(θ)r01​(1)

   对式1两边求导,可以得到

v 0 0 = r ˙ 0 0 = R ˙ ( θ ) r 0 1 + R ( θ ) r ˙ 0 1 (2) v^0_0 = \dot r^0_0 =\dot R(\theta) r^1_0 + R(\theta) \dot r^1_0 \tag{2} v00​=r˙00​=R˙(θ)r01​+R(θ)r˙01​(2)

   v 0 0 v^0_0 v00​表示P相对于惯性系的速度在惯性系下的表示,由旋转矩阵可得:

v 0 0 = R ( θ ) v 0 1 (3) v^0_0 =R(\theta) v^1_0 \tag{3} v00​=R(θ)v01​(3)

   v 0 1 v^1_0 v01​表示P相对于惯性系的速度在非惯性系下的表示,带入式2可得到:

R ( θ ) v 0 1 = R ˙ ( θ ) r 0 1 + R ( θ ) r ˙ 0 1 (4) R(\theta) v^1_0 =\dot R(\theta) r^1_0 + R(\theta) \dot r^1_0 \tag{4} R(θ)v01​=R˙(θ)r01​+R(θ)r˙01​(4)

   两边同乘 R ( θ ) − 1 = R ( θ ) R(\theta)^{-1}=R(\theta) R(θ)−1=R(θ):

v 0 1 = R ( θ ) − 1 R ˙ ( θ ) r 0 1 + r ˙ 0 1 (5) v^1_0 = R(\theta)^{-1}\dot R(\theta) r^1_0 + \dot r^1_0 \tag{5} v01​=R(θ)−1R˙(θ)r01​+r˙01​(5)

   根据旋转矩阵和反对称矩阵:

R ˙ = d R d t = S ( ω 0 ( t ) ) R (6) \dot{R}=\frac{dR}{dt}=S(\omega^0(t))R\tag{6} R˙=dtdR​=S(ω0(t))R(6)

R S ( a ) R T = S ( R a ) (7) RS(a)R^T=S(Ra)\tag{7} RS(a)RT=S(Ra)(7)

R ( θ ) − 1 = R ( θ ) T (8) R(\theta)^{-1}=R(\theta)^{T} \tag{8} R(θ)−1=R(θ)T(8)

   公式5可以进一步得到:

v 0 1 = R ( θ ) − 1 S ( ω 0 ( t ) ) R r 0 1 + r ˙ 0 1 = S ( R ( θ ) − 1 ω 0 ( t ) ) r 0 1 + r ˙ 0 1 = S ( ω 1 ( t ) ) r 0 1 + r ˙ 0 1 = r ˙ 0 1 + ω 1 ( t ) × r 0 1 (9) v^1_0 = R(\theta)^{-1}S(\omega^0(t))Rr^1_0 + \dot r^1_0 =S(R(\theta)^{-1}\omega^0(t))r^1_0 + \dot r^1_0 \\ = S(\omega^1(t))r^1_0 + \dot r^1_0 = \dot r^1_0 + \omega^1(t)\ \times \ r^1_0 \tag{9} v01​=R(θ)−1S(ω0(t))Rr01​+r˙01​=S(R(θ)−1ω0(t))r01​+r˙01​=S(ω1(t))r01​+r˙01​=r˙01​+ω1(t) × r01​(9)

   这就得到了我们所要的公式:
v 0 1 = r ˙ 0 1 + ω 1 ( t ) × r 0 1 (10) v^1_0 = \dot r^1_0 + \omega^1(t)\ \times \ r^1_0 \tag{10} v01​=r˙01​+ω1(t) × r01​(10)

   具体解释一下该公式的含义:绝对速度(相对于惯性系)在非惯性系的表示并不会直接等于绝对位置(相对于惯性系)在非惯性系的表示的导数,还需要加上 ω 1 ( t ) × r 0 1 \omega^1(t)\ \times \ r^1_0 ω1(t) × r01​,其中 ω 1 ( t ) \omega^1(t) ω1(t)表示坐标系1相对于坐标系0的旋转角速度在非惯性系下的表示, × \times ×表示叉乘。
   对于加速度的推导(对于任意矢量),都有这个规律~

更多推荐

非惯性系下导数问题(机器人学)

本文发布于:2024-03-10 01:41:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726688.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机器人学   导数   惯性

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!