Skip to content

拉格朗日方程在机械臂中的数学建模

Derivations of Lagrange Equation

The Principle of Least Action (最小作用量原理):

某样东西在时间上的积累是最小值,这个东西就叫做作用量.数学形式长这样:

S=t1t2L(q,q˙,t)dt

在上式中,q是广义坐标(Generallized coordinate),一个物体的运动轨迹可以用q(t)表示.

对于其作用量,其值S可以被路径所改变. 一个新的路径可以被记作 q(t)+δq(t) .如果 q(t) 是现实生活中的路径, 那么改变后的路径作用量 S 应该比原来的作用量 S 大. 相应的, 如果再选择其他路径, 则有 S>S

注意到δq(t1)δq(t2)分别是路径在起点和终点的改变量, 则δq(t1)=δq(t2)=0

Formal Derivations

由最小作用量原理可得:

S+δS=S

即:

δS=0

利用全微分,有:

dZ=(xZ)dx+(yZ)dy

d换成δ (换成变分), Z 换成 L :

δL=(xL)δx+(yL)δyL(q(t),q˙(t))

而对于

S=t1t2L(q,q˙,t)dt

因为δS=0, 所以有:

δS=t1t2δL(q,q˙,t)dt=0

即:

δS=t1t2(Lqδq+Lq˙δq˙)dt=0δS=t1t2Lqδqdt+t1t2Lq˙δq˙dt=0

δq˙=δddtq=ddtδqδq 点做代换可得:

δS=t1t2Lqδqdt+t1t2Lq˙ddt(δq)dt=0δS=t1t2Lqδqdt+t1t2Lq˙d(δq)dt=0

注意到第二项可以使用分部积分:

δS=t1t2Lqδqdt+t1t2ddtLq˙δqdt+Lq˙δq|t1t2=0δS=t1t2Lqδqdt+t1t2ddtLq˙δqdt+Lq˙(δq(t1)δq(t2))=0

由于δq(t1)=δq(t2)=0 ,因此上式可化为:

δS=t1t2Lqδqdt+t1t2ddtLq˙δqdt=0δS=t1t2(LqddtLq˙)δqdt=0

由于δq 是任意的,所以括号内等于0, 即可得拉格朗日方程:

LqddtLq˙=0

Dynamic modeling of manipulator

Core principle:

对于 n 自由度完整约束系统,拉格朗日方程为:

LqddtLq˙=Qi(i=1,2,,n)

其中,拉格朗日函数L=TV , T 为动能, V 为势能qi 为广义坐标,Qi 为广义力。该方程将力学问题转化为能量泛函的极值问题,适用于多刚体系统动力学分析。

Dynamic modeling and derivation

  1. 广义坐标与位形描述:

    1. 广义坐标(Generalized Coordinates

      广义坐标是确定系统位形所需的最小独立变量集合,记为

    q=[q1,q2,,qn]t

    ​ 其满足以下特性:

    • 独立性:变量间不受运动学约束,仅受系统间固有约束或无约束关系。
    • 完备性:可以描述系统的全部位形。
    1. 机械臂广义坐标:

      机械臂是多刚体连杆系统,通过关节连接:

      • 每个关节的转动角度天然是独立变量。

      • n个关节对应n个广义坐标 q1,q2,,qn , 构成向量 q=[q1,q2,,qn]T

      • 对比笛卡尔坐标:若用末端笛卡尔坐标(x,y,z,α,β,γ)描述位形,会因连杆长度固定、关节运动束缚(如转动关节只能限制移动)导致变量间存在几何约束(非独立),建模复杂。而关节角直接利用了关节的运动独立性,更适合作为广义坐标。

    2. 位形(Configuration):

      位形是系统在空间中的几何形态,包含有:

      • 各刚体的位置(如质心坐标)。
      • 各刚体的姿态(如连杆方向、旋转角度)。
    3. 对于机械臂,位形由广义坐标系唯一确定: 给定广义坐标 q=[q1,q2,,qn]T , 通过运动学正解可计算出每个连杆的质心位置 ri(q) 和每个连杆的姿态(如旋转矩阵 Ri(q)

      以下给出D-H参数算法给出计算参考:

      在机械臂中,广义坐标系 [q1,q2,,qn] 通常表示关节角 θi , 给出以下D-H参数定义:

      • ai:连杆长度(沿 xi1 轴,从 zi1 到 zi 的距离);
      • αi:连杆扭角(绕 xi1 轴,从 zi1zi 的旋转角);
      • di:关节偏距(沿 zi 轴,从 xi1xi 的距离);
      • θi:关节角(绕 zi 轴,从 xi1xi 的旋转角)。

      随后构建齐次变换矩阵,考虑相邻连杆i1i 的齐次变换矩阵:

      Ti(qi)=Rz(θi)Tz(di)Tx(ai)Rx(αi)

      其中基础变换矩阵为:

      • z 轴旋转 θ
      Rz(θ)=[cosθsinθ00sinθcosθ0000100001]
      • 沿 z 轴平移 d
      Tz(d)=[10000100001d0001]
      • 沿 x 轴平移 a
      Tx(a)=[100a010000100001]
      • x 轴旋转 α
      Tz(d)=[10000cosαsinα00sinαcosα00001]

      代入广义坐标 qi 后,变换矩阵可表示为:

      (Ti(qi)=Rz(qi)Tz(di)Tx(ai)Rx(αi)\)

      从基坐标系到连杆 i 坐标系的全局变换矩阵为:

      T0i(q)=k=1iTk(qk)

      其中:q=[q1,q2,,qn]

      连杆 i 的旋转矩阵 Ri(q) 为全局变换矩阵的上 3×3 子矩阵:

      Ri(q)=[T0i(q)1,1T0i(q)1,2T0i(q)1,3T0i(q)2,1T0i(q)2,2T0i(q)2,3T0i(q)3,1T0i(q)3,2T0i(q)3,3]

      设连杆 i 的质心在其局部坐标系 i 中的位置向量为 ri,local=[ci,0,0]T(假设质心在 xi 轴上,可根据实际几何调整),则质心在基坐标系下的位置为:

      ri(q)=T0i(q)[ri,local1]

      展开计算时,利用齐次变换的平移和旋转特性:

      ri(q)=p0i(q)+Ri(q)ri,local

      其中

      p0i(q)=[T0i(q)1,4,T0i(q)2,4,T0i(q)3,4]T

      为全局变换矩阵的平移向量。

      实例:两连杆旋转机械臂:

      以两连杆旋转机械臂为例(广义坐标 q=[θ1,θ2])),DH 参数表如下:

      连杆 iαiaidiθi
      10l10q1
      20l20q2
      • 连杆1变换矩阵:
      T1(q1)=Rz(q1)Tx(l1)=[cosq1sinq10l1cosq1sinq1cosq10l1sinq100100001]
      • 连杆2变换矩阵:
      T2(q2)=Rz(q2)Tx(l2)=[cosq2sinq20l2cosq2sinq2cosq20l2sinq200100001]
      • 全局变换矩阵:
      T02(q1)=T1(q1)T2(q2)=[cosq1+q2sinq1+q20l1cosq1+l2cos(q1+q2)sinq1+q2cosq1+q20l1sinq1+l2sin(q1+q2)00100001]

      旋转矩阵

      R2(q)=[cosq1+q2sin(q1+q2)0sinq1+q2cos(q1+q2)0001]

      质心位置:设连杆1,2质心分别在 l1/2l2/2 处,则:

      • 连杆1质心:
      r1(q)=[(l1/2)cosq1(l1/2)sinq10]
      • 连杆2质心:
      r2(q)=[l1cosq1+(l2/2)cos(q1+q2)l1sinq1+(l2/2)sin(q1+q2)0]
  2. 动能计算:

    1. 单个刚体的动能拆解 刚体的动能由平动动能和转动动能组成:
    • 平动动能(Translational Kinetic Energy)

    ​ 显然有:

    ET=12mir˙iTr˙i

    ​ 其中:

    r˙iTr˙i=r˙i2
    • 转动动能(Rotational Kinetic Energy)
    ER=12ωiTIiωi

    ​ 具体推导过程:

    设刚体由无数质点组成,第 i 个质点的质量为 mi,相对于旋转中心的位置向量为 ri=[xi,yi,zi]T

    刚体的角速度向量为 ω=[ωx,ωy,ωz]T,表示绕 x,y,z 轴的角速度;

    质点的线速度为 vi=ω×ri,其动能为 Ti=12mivi2

    首先计算 ω×ri2。根据向量叉乘性质:

    a×b2=a2b2(ab)2

    代入 a=ω,b=ri,得:

    ω×ri2=(ωx2+ωy2+ωz2)(xi2+yi2+zi2)(ωxxi+ωyyi+ωzzi)2

    展开右侧第二项:

    (ωxxi+ωyyi+ωzzi)2=ωx2xi2+ωy2yi2+ωz2zi2+2ωxωyxiyi+2ωxωzxizi+2ωyωzyizi

    代入后整理:

    ω×ri2=ωx2(yi2+zi2)+ωy2(xi2+zi2)+ωz2(xi2+yi2)2ωxωyxiyi2ωxωzxizi2ωyωzyizi

    刚体的总转动动能为所有质点动能之和:

    Trot=12imiω×ri2

    将上一步的展开式代入,按 ωx,ωy,ωz 的二次项和交叉项分组:

    Trot=12[ωx2imi(yi2+zi2)+ωy2imi(xi2+zi2)+ωz2imi(xi2+yi2)2ωxωyimixiyi2ωxωzimixizi2ωyωzimiyizi]

    根据惯性张量的定义,其元素为:

    • 主转动惯量:

      {Ixx=imi(yi2+zi2)Iyy=imi(xi2+zi2)Izz=imi(xi2+yi2)
    • 惯性积:

      {Ixy=Iyx=imixiyiIxz=Izx=imixiziIyz=Izy=imiyizi

      注意到惯性积前的负号,将求和式转化为惯性张量元素:

      Trot=12[Ixxωx2+Iyyωy2+Izzωz22Ixyωxωy2Ixzωxωz2Iyzωyωz]

      将上式写成矩阵乘法形式。惯性张量为对称矩阵:

      I=[IxxIxyIxzIxyIyyIyzIxzIyzIzz]

      角速度向量为:

      ω=[ωxωyωz]

      计算二次型ωTIω :

      ωTIω=[ωxωyωz][IxxIxyIxzIxyIyyIyzIxzIyzIzz][ωxωyωz]

      展开乘积:

      ωTIω=ωx(IxxωxIxyωyIxzωz)+ωy(Ixyωx+IyyωyIyzωz)+ωz(IxzωxIyzωy+Izzωz)=Ixxωx2+Iyyωy2+Izzωz22Ixyωxωy2Ixzωxωz2Iyzωyωz

      对比转动动能表达式,可得:

      Trot=12ωTIω
    1. 广义坐标系到笛卡尔速度的映射:

      机械臂的广义坐标是关节角q , 但动能公式里的 r˙i (平动速度) 和ωi (角速度)是笛卡尔速度。需要通过雅可比矩阵,将关节角的变化率q˙ 映射到笛卡尔速度。

      • 平动雅可比ji(q):
      r˙i=Ji(q)q˙
      • 转动雅可比 Jωi(q):
      ωi=Jωi(q)q˙
    2. 总动能的推导:

      机械臂的总动能是所有刚体动能之和

      T=i=1nTi=i=1n(12mir˙iTr˙i+12ωiTIiωi)

      平动雅可比转动雅可比代入,替换 r˙iωi

      • 替换平动动能:
      12mir˙iTr˙i=12mi(Jiq˙)T(Jiq˙)

      利用矩阵转置性质:

      (AB)T=BTAT

      展开得:

      12miq˙TJiTJiq˙
      • 替换转动动能:
      12ωiTIiωi=12(Jωiq˙)TIi(Jωiq˙)

      同样展开转置:

      12q˙TJωiTIiJωiq˙

      最后,总动能整合:

      将所有刚体的平动、转动动能项相加:

      T=i=1n[12miq˙TJiTJiq˙+12q˙TJωiTIiJωiq˙]

      提取公因子:

      T=12q˙T(i=1n[miJiTJi+JωiTIiJωi])q˙

      定义惯性矩阵M(q):

      M(q)=i=1n(miJiTJi+JωiTIiJωi)

      因此,总动能最终表示为广义坐标速度的二次型

      T=12q˙TM(q)q˙

  3. 重力势能计算:

第 i 个连杆的质心在基坐标系中的 z 坐标zi(q)(高度),因此其重力势能为:

Ep,i=migzi(q)
  • mi:第 i 个连杆的质量;
  • zi(q):质心高度,是广义坐标 q=[q1,q2,,qn]T 的函数(关节角变化会带动连杆运动,进而改变 zi)。

合成总势能:

V=i=1nEp,i=i=1nmigzi(q)

重力向量 G(q):

G(q)=Vq=[Vq1,Vq2,,Vqn]T

推导示例(以单关节机械臂为例):

假设机械臂只有 1 个关节n=1,连杆长度为 l,关节角为 q1,质心位于连杆中点,则质心高度:

z1(q1)=l2sin(q1)

总势能:

V=m1gl2sin(q1)

重力向量(1维):

G1=Vq1=m1gl2cos(q1)

物理意义

  • q1=0 (连杆水平):cos(0)=1,G1=m1gl/2 (重力矩使连杆向下摆);
  • q1=90(连杆竖直向上):cos(90)=0G1=0(质心在关节正上方,重力矩为零)。

多关节推广:

对于 n 关节机械臂,每个关节角 qj 会影响多个连杆的质心高度 zi(q)(因为连杆间通过关节连接,一个关节的运动可能带动后续所有连杆运动)。因此,计算 Vqj 时,需要对所有连杆的 zi(q) 关于 qj 求偏导,再叠加:

Gj=Vqj=i=1nmigzi(q)qj
  1. 拉格朗日方程代入:

    1. 拉格朗日方程的一般形式

      对于一个自由度为 n 的系统,其拉格朗日方程为:

    ddt(Lq˙)Lq=τ+τd

    其中:

    • L=TV 为拉格朗日函数;
    • τ 为关节驱动力矩(广义力);
    • τd 为外部干扰力矩。
    1. 计算Lq˙

      展开拉格朗日函数:

    (L)q˙=(TV)q˙=Tq˙Vq˙
    • 势能 V 与速度 q˙ 无关,故势能关于速度的偏导数 Vq˙=0 ;

    • 动能 T=12xTAx , 有:

      Tq˙=M(q)q˙

      代入 x=q˙ , A=M(q), 可得:

      Tq˙=M(q)q˙

      因此:

      (L)q˙=M(q)q˙
    1. 对拉格朗日函数关于时间求导:
      ddt((L)q˙)=ddt(M(q)q˙)=M˙(q)q˙+M(q)q¨

      其中,M˙(q) 是惯性矩阵 M 的时间导数,由 q(t) 变化引起,通过链式法则计算:M˙=j=1nMqjq˙j (即 M对每个广义坐标 qj 的偏导数乘以 q˙j,再求和)。

    2. 计算 Lq :
      Lq=(TV)q=TqVq=q(12xTA(q)x)G(q)=12xTAqxG(q)

      代入 x=q˙A=M(q),得:

      Lq=12q˙TMqq˙G(q)

      其中 Mq 是一个 n×n×n 的三阶张量(对每个 qjMqj 是 n×n 矩阵)

      表示 M 随每个 qj 的变化率。

    3. 代入拉格朗日函数:

      将前三步结果代入方程:

      M˙(q)q˙+M(q)q¨ddt(Lq˙)(12q˙TMqq˙G(q))Lq=τ+τd

      移项后:

      M(q)q¨+M˙(q)q˙12q˙TMqq˙+G(q)=τ+τd
    4. 构造科里奥利矩阵C以简化拉格朗日方程:

      已知惯性矩阵关于时间的导数为:

      M˙=j=1nMqjq˙j

      其中,Mqj 表示 M 对第 j 个关节角的偏导数,q˙j 为关节速度。

      对任意向量 vRn,有:

      vTM˙v=vT(j=1nMqjq˙j)v=j=1nq˙jvTMqjv

      由于 M 是实对称矩阵,其偏导数满足:

      Mikqj=Mkiqj

      故其二次型可展开为:

      vTMqjv=i=1nk=1nvivkMikqj=i=1nk=1nvivkMkiqj

      构造矩阵 C,使 M˙2C 为反对称矩阵(即 (M˙2C)T=(M˙2C)),从而对任意向量 v,有:

      vT(M˙2C)v=0vTM˙v=2vTCv

      矩阵元素的定义和其反对称性的验证:

      • 显式定义:

      C 的元素为 Cij,则对任意 i,j,根据反对称性条件:

      M˙ij2Cij=(M˙ji2Cji)

      M 对称,M˙ij=M˙ji,代入得:

      Cji=Cij

      C 为对称矩阵。进一步,代入:

      M˙ij=k=1nMijqkq˙k

      定义:

      Cij=12k=1n(Mikqj+Mjkqi)q˙k
      • 反对称性验证:

      构造矩阵 S=M˙2C,其元素:

      Sij=M˙ij2Cij=k=1nMijqkq˙kk=1n(Mikqj+Mjkqi)q˙k

      交换 i,j

      Sji=k=1nMjiqkq˙kk=1n(Mjkqi+Mikqj)q˙k=k=1nMijqkq˙kk=1n(Mjkqi+Mikqj)q˙k=Sij

      S 是反对称矩阵,满足 vTSv=0,即

      vTM˙v=2vTCv

      在拉格朗日方程推导中,已得到:

      M(q)q¨+M˙(q)q˙12q˙TMqq˙+G(q)=τ+τd

      利用 M˙q˙=2Cq˙ 替换其中关键项:M˙q˙12q˙TMqq˙

      对于右侧二次型,我们展开后有:

      12q˙TMqq˙=12j=1nq˙jq˙TMqjq˙=12i,k,j=1nq˙iq˙kMikqjq˙j

      而对于 2Cq˙ 的元素,有:

      (2Cq˙)i=2j=1nCijq˙j=j,k=1n(Mikqj+Mjkqi)q˙jq˙k

      注意到:

      i,k,jq˙iq˙kMikqjq˙j=vTM˙v(v=q˙)

      且:

      i,k,jq˙iq˙kMjkqiq˙j=j,k,iq˙jq˙kMjkqiq˙i=vTM˙v

      因此:

      2Cq˙12q˙TMqq˙=12M˙q˙=Cq˙

      最终可将拉格朗日方程简化为:

      M(q)q¨+C(q,q˙)q˙+G(q)=τ+τd

      上式物理量含义:

      • 惯性项 M(q)q¨:关节加速度引起的惯性力矩,与关节位置 q 相关(耦合效应);
      • 科里奥利与离心力项 C(q,q˙)q˙:关节速度引起的非线性力矩(如高速转动时的离心力、关节间相对运动的科里奥利力);
      • 重力项 G(q):重力对关节的静力矩,仅与关节位置有关;
      • 输入项 τ+τd:控制输入力矩与外部干扰力矩。
    5. 单关节机械臂的拉格朗日方程(实例参考):
      • 系统参数定义

      广义坐标:关节角度 q

      系统参数:连杆质量 m, 质心到关节的距离 lc , 连杆绕关节的转动惯量 I , 重力加速度 g , 关节驱动力矩 τ .

      • 计算动能 T

      对于单关节转动系统,动能仅包含转动部分:

      T=12Iq˙2

      其中, I 是连杆绕关节的转动惯量。

      • 计算势能 V:

      假设重力方向竖直向下,则势能由重力场中的高度决定:

      V=mglccosq
      • 计算拉格朗日量 L:

        L=TV=12Iq˙2+mglccosq
      • 应用拉格朗日方程

      拉格朗日方程为:

      ddt(Lq˙)Lq=τ

      其中:

      Lq˙=q˙(12Iq˙2mglccosq)=Iq˙ddt(Lq˙)=ddt(Iq˙)=Iq¨

      且:

      Lq=q(12Iq˙2mglccosq)=mglcsinq

      代入拉格朗日方程后整理可得:

      Iq¨+mglcsinq=τ

References:

  1. 机器人正向运动学和D-H参数方法_d-h参数法-CSDN博客
  2. 【Manim/熟肉】拉格朗日方程推导_哔哩哔哩_bilibili
  3. 【大学物理】科里奥利力的矩阵形式推导 - 知乎
  4. 干货 | 机械臂的动力学(二):拉格朗日法 - 知乎
  5. 转动惯量、惯性张量、转动动能的推导 - 知乎
  6. 机器人动力学建模之理解惯性张量-CSDN博客
  7. 刚体(1):惯量张量 - 知乎
  8. LaTeX 公式篇 - 知乎
  9. LaTeX新手半小时速成手册(不速成你打我_overleaf 另起一页-CSDN博客
  10. Markdown 基本语法 | Markdown 教程