牛顿-欧拉公式(Newton-Euler equation)根据中间连杆上的力、力矩平衡关系上推断出来的。它的解具有递归的形式,前向递归用于连杆的速度、加速度的传递,后向递归用于力的传递。

参数定义

以下参数均是相对于连杆 i<script type="math/tex" id="MathJax-Element-3149">i</script>

ac,i<script type="math/tex" id="MathJax-Element-3150">a_{c,i}</script>:连杆质心加速度
ae,i<script type="math/tex" id="MathJax-Element-3151">a_{e,i}</script>:连杆末端加速度
ωi<script type="math/tex" id="MathJax-Element-3152">\omega _i</script>:角速度
αi<script type="math/tex" id="MathJax-Element-3153">\alpha _i</script>:角加速度
zi<script type="math/tex" id="MathJax-Element-3154">z_i</script>:基座标系下,z<script type="math/tex" id="MathJax-Element-3155">z</script> 轴坐标
gi<script type="math/tex" id="MathJax-Element-3156">g_i</script>:重力矢量
fi<script type="math/tex" id="MathJax-Element-3157">f_i</script>:受到的力
τi<script type="math/tex" id="MathJax-Element-3158">\tau_i</script>:受到的力矩
Rii+1<script type="math/tex" id="MathJax-Element-3159">R_{i+1}^i</script>:旋转矩阵
mi<script type="math/tex" id="MathJax-Element-3160">m_i</script>:质量
Ii<script type="math/tex" id="MathJax-Element-3161">I_i</script>:惯性张量
ri1,ci<script type="math/tex" id="MathJax-Element-3162">r_{i-1,ci}</script>:坐标系 i1<script type="math/tex" id="MathJax-Element-3163">i-1</script>原点到质心矢量
ri1,i<script type="math/tex" id="MathJax-Element-3164">r_{i-1,i}</script>:坐标系 i1<script type="math/tex" id="MathJax-Element-3165">i-1</script>原点到坐标系 i<script type="math/tex" id="MathJax-Element-3166">i</script>原点矢量
ri,ci<script type="math/tex" id="MathJax-Element-3167">r_{i,ci}</script>:坐标系 i<script type="math/tex" id="MathJax-Element-3168">i</script>原点到质心矢量

建模方法

1.前向迭代
初值条件:ω0=α0=ac,0=ae,0=0<script type="math/tex" id="MathJax-Element-3373">\omega_0 = \alpha _0 =a_{c,0} =a_{e,0} =0</script>

bi=(R0i)Tzi1<script type="math/tex" id="MathJax-Element-3374">b_i=(R_i^0)^Tz_{i-1}</script>

ωi=(Ri1i)Tωi1+biq˙i<script type="math/tex" id="MathJax-Element-3375">\omega _i =(R_i^{i-1})^T \omega _{i-1} + b_i \dot q_i </script>

αi=(Ri1i)Tαi1+biq¨i+ωi×biq˙i<script type="math/tex" id="MathJax-Element-3376">\alpha _i =(R_i^{i-1})^T \alpha _{i-1} + b_i \ddot q_i + \omega _i \times b_i \dot q_i </script>

ae,i=(Ri1i)Tae,i1+ω˙i×ri1,i+ωi×(ωi×ri1,i)<script type="math/tex" id="MathJax-Element-3377">a_{e,i} = (R_i^{i-1})^T a _{e,i-1} + \dot \omega _i \times r_{i-1,i} + \omega _i \times ( \omega _i \times r_{i-1,i} )</script>

ac,i=(Ri1i)Tae,i1+ω˙i×ri1,ci+ωi×(ωi×rc,i)<script type="math/tex" id="MathJax-Element-3378">a_{c,i} = (R_i^{i-1})^T a _{e,i-1} + \dot \omega _i \times r_{i-1,ci} + \omega _i \times ( \omega _i \times r_{c,i} )</script>

2.后向迭代

初值条件:fn+1=τn+1=0<script type="math/tex" id="MathJax-Element-3379">f_{n+1} = \tau_{n+1} = 0</script>

fi=Rii+1fi+1+miac,imigi<script type="math/tex" id="MathJax-Element-3380">f_i = R_{i+1}^i f_{i+1} + m_ia_{c,i} - m_i g_i</script>
τi=Rii+1τi+1fi×ri1,ci+(Rii+1fi+1)×ri,ci+ωi×(Iiωi)<script type="math/tex" id="MathJax-Element-3381">\tau_i = R_{i+1}^i \tau_{i+1} - f_i \times r_{i-1,ci} + ( R_{i+1}^i f_{i+1} ) \times r_{i,ci} + \omega _i \times (I_i \omega _i) </script>

模型

通过迭代,可以得到以下形式的动力学方程:

τi=f(q,ω,ω˙,gi)
<script type="math/tex; mode=display" id="MathJax-Element-3396">\tau_i = f( q, \omega , \dot \omega, g_i)</script>

这就是牛顿-欧拉形式的动力学方程。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐