欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【控制】四旋翼无人机姿态角分析

发布时间:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【控制】四旋翼无人机姿态角分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

搞起来,从建模到控制,再到仿真

Link: 【控制】《多无人机协同控制技术》周伟老师-第3章-面向协同控制的无人机单机控制

文章目录

  • 1. 坐标系
  • 2. 角度介绍
    • 航向角 yaw angel
    • 俯仰角 pitch angle
    • 横滚角 roll angle
  • 3. 控制原理
    • 坐标系
    • 3.1 基础知识
      • 力矩
      • 转矩
      • 角动量
      • 欧拉运动学方程
    • 移动
    • 旋转
    • 惯性矩
    • 列写动力学方程


1. 坐标系

2. 角度介绍

绕三个轴的旋转值 pitch,yaw,roll 来自航空界的叫法,翻译为俯仰角,偏航角,翻滚角,非常形象。它们不一定如上所述,但一定分别代表绕 y,z,x 的旋转值。

一般定义载体的右、前、上三个方向构成右手系:

  • 绕向前(x轴)的轴旋转就是横滚角;

  • 绕向右(y轴)的轴旋转就是俯仰角;

  • 绕向上(z轴)的轴旋转就是航向角。

航向角 yaw angel

俯仰角 pitch angle

横滚角 roll angle


3. 控制原理

可以看到建模的其实就是为了得到输入的力与加速度的关系,通过牛顿方程可以得到平动的加速度,通过欧拉方程可以得到角加速度,所以这种建模方法也叫牛顿-欧拉方程:

坐标系

  • Inertial frame:固定的全局坐标系,又叫惯性坐标系,世界坐标系
  • Translating frame:固定在运动体上的坐标系,原点在质心,但轴平行于 Inertial frame
  • Body frame:固定在运动体上的坐标系,原点在质心,轴随着质点运动会改变方向
  • 3.1 基础知识

    力矩

    力矩,表示力对物体作用时所产生的转动效应的物理量。力矩能使物体获得角加速度。力 FFF 对矩心 OOO 点的矩简称力矩,用 M(F)M(F)M(F) 表示,其大小等于力 FFF 的大小与力臂 rrr 的乘积。即:
    M(F)=F×r=dLdtM(F) = F \times r = \frac{dL}{dt}M(F)=F×r=dtdL

    其中,FFF 为矩心 OOO 点的力,rrr 是矩心相对 OOO 点的位置矢量,LLL为 角动量,根据角动量定理得到。

    转矩

    转矩,使机械元件转动的力矩称为转动力矩,简称转矩,又称扭矩,与转动惯量 III 具有如下关系:
    M(F)=IdwdtM(F) = I \frac{dw}{dt}M(F)=Idtdw

    其中,III 为转动惯量,www 为角速度。

    角动量

    角动量
    L=r×pL = r \times pL=r×p

    其中,ppp 为质点 OOO 点的动量,rrr 是质点相对 OOO 点的位置矢量。

    欧拉运动学方程

    欧拉运动学方程

    A∈R3A\in \mathbb{R}^3AR3 代表一个刚体。σ(r)\sigma(r)σ(r) 代表 r∈Ar\in\mathbb{A}rA 的一点的刚体密度,m(A)m(A)m(A) 的总质量为:
    m=∫Aσ(r)drm = \int_A \sigma(r) drm=Aσ(r)dr

    dr=dr1⋅dr2⋅dr3dr = dr_1\cdot dr_2\cdot dr_3dr=dr1dr2dr3 表示一个柱状的提及,p∈R3p\in\mathbb{R}^3pR3 表示 AAA 的质心,p=(p1,p2,p3)p=(p_1,p_2,p_3)p=(p1,p2,p3)
    pi=1m∫Ariσ(r)drp_i = \frac{1}{m} \int_A r_i \sigma(r) drpi=m1Ariσ(r)dr


    由于刚体的内部力相互抵消,外部边界的力的集合可以合成一个力 FFF 和力矩 NNN 作用在质点 ppp
    F=∑fF=\sum fF=f

    N=∑r×fN = \sum r\times fN=r×f

    移动

    刚体不旋转只移动:动量 D=mp˙D = m\dot{p}D=mp˙

    牛顿第二定理:F(u)=dDdt=mp¨F(u) = \frac{dD}{dt} = m \ddot{p}F(u)=dtdD=mp¨

    可以得到六个状态转移方程:
    p˙i=vi,for i=1,2,3\dot{p}_i = v_i, ~~\text{for}~ i = 1,2,3p˙i=vi,  for i=1,2,3

    v˙i=ui=Fi(u)/m,for i=1,2,3\dot{v}_i = u_i=F_i(u)/m, ~~\text{for}~ i = 1,2,3v˙i=ui=Fi(u)/m,  for i=1,2,3

    Expand:
    {p˙x=vxp˙y=vyp˙z=vzv˙x=ux=Fx(u)/mv˙y=uy=Fy(u)/mv˙z=uz=Fz(u)/m(1)\left\{\begin{aligned} &\dot{p}_x = v_x \\ &\dot{p}_y = v_y \\ &\dot{p}_z = v_z \\ &\dot{v}_x = u_x = F_x(u)/m \\ &\dot{v}_y = u_y = F_y(u)/m \\ &\dot{v}_z = u_z = F_z(u)/m \\ \end{aligned}\right.\tag{1}p˙x=vxp˙y=vyp˙z=vzv˙x=ux=Fx(u)/mv˙y=uy=Fy(u)/mv˙z=uz=Fz(u)/m(1)

    旋转

    旋转可以同移动进行解耦,所以现在只在 translating frame 中考虑纯粹的旋转运动。
    LLL 为角动量,则力矩为:
    M(u)=dLdtM(u) = \frac{dL}{dt}M(u)=dtdL

    参考上图,旋转角速度:vvv 是单位向量,表示旋转方向,θ\thetaθ 表示旋转角度
    w=vdθdtw = v \frac{d\theta}{dt}w=vdtdθ

    将此角速度,转化为 yaw-pitch-roll 形式表示的旋转角速度:
    [γ˙β˙α˙]=1cos⁡β[cos⁡αsin⁡α0−sin⁡αcos⁡βcos⁡αcos⁡β0cos⁡αsin⁡βsin⁡αsin⁡β−cos⁡β][w1w2w3]\left[\begin{matrix} \dot{\gamma} \\ \dot{\beta} \\ \dot{\alpha} \\ \end{matrix}\right]= \frac{1}{\cos\beta} \left[\begin{matrix} \cos\alpha & \sin\alpha & 0 \\ -\sin\alpha \cos\beta & \cos\alpha \cos\beta & 0 \\ \cos\alpha \sin\beta & \sin\alpha \sin\beta & -\cos\beta \\ \end{matrix}\right] \left[\begin{matrix} w_1 \\ w_2 \\ w_3 \\ \end{matrix}\right] γ˙β˙α˙=cosβ1cosαsinαcosβcosαsinβsinαcosαcosβsinαsinβ00cosβw1w2w3

    惯性矩

    通常平面刚片且是均质的,则也称为转动惯量

    EEE 是整个刚体的角动量。

    经过以下一系列操作,主要是点乘和叉乘之间的转换:
    E=∫A(q)((r⋅r)w−(r⋅w)r)σ(r)drE = \int_{A(q)} ((r\cdot r)w - (r\cdot w)r) \sigma(r) drE=A(q)((rr)w(rw)r)σ(r)dr

    E=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)wE = (\int_{A(q)} ((r\cdot r)I_3 - rr^T) \sigma(r) dr)wE=(A(q)((rr)I3rrT)σ(r)dr)w

    惯性矩阵 3×33\times33×3 对称矩阵:
    I(q)=(∫A(q)((r⋅r)I3−rrT)σ(r)dr)I(q) = (\int_{A(q)} ((r\cdot r)I_3 - rr^T) \sigma(r) dr)I(q)=(A(q)((rr)I3rrT)σ(r)dr)

    则刚体的角动量:
    E=IwE = I wE=Iw

    From:
    M=Idwdt=dEdtM = I \frac{dw}{dt} = \frac{dE}{dt}M=Idtdw=dtdE

    刚体所受到的力矩:
    N(u)=dEdt=d(Iw)dt=Idwdt+dIdtwN(u) = \frac{dE}{dt} = \frac{d(Iw)}{dt} = I\frac{dw}{dt} + \frac{dI}{dt}wN(u)=dtdE=dtd(Iw)=Idtdw+dtdIw

    注意上面求得的惯性矩阵 III 是在 translating frame 中考虑的,它会随着旋转 qqq 的变化而变化:
    I(q)=[I11(q)I12(q)I13(q)I21(q)I22(q)I23(q)I31(q)I32(q)I33(q)]I(q) = \left[\begin{matrix} I_{11}(q) & I_{12}(q) & I_{13}(q) \\ I_{21}(q) & I_{22}(q) & I_{23}(q) \\ I_{31}(q) & I_{32}(q) & I_{33}(q) \\ \end{matrix}\right] I(q)=I11(q)I21(q)I31(q)I12(q)I22(q)I32(q)I13(q)I23(q)I33(q)

    这里我们将惯性矩阵定义在 body frame 中,表示成 III,则 IIII(q)I(q)I(q) 的关系(其中 RRR 是 body frame 到 translating frame 的旋转矩阵):
    I(q)=RII(q) = R II(q)=RI

    则刚体所受到的力矩简化为:
    N(u)=Idwdt+w⋅(Iw)N(u) = I \frac{dw}{dt} + w\cdot(Iw)N(u)=Idtdw+w(Iw)

    如果选择的 body frame 等于惯性主轴,那么惯性矩阵就简化为:
    I=[I11(q)000I22(q)000I33(q)]I = \left[\begin{matrix} I_{11}(q) & 0 & 0 \\ 0 & I_{22}(q) & 0 \\ 0 & 0 & I_{33}(q) \\ \end{matrix}\right] I=I11(q)000I22(q)000I33(q)

    列写动力学方程

    这里假设选择的 body frame 等于惯性主轴,求得角加速度 w˙\dot{w}w˙ 方程:
    [N1(u)N2(u)N3(u)]=[I11000I22000I33][w˙1w˙2w˙3]+[0−w3w2w30−w1−w2w10][I11000I22000I33][w1w2w3]\left[\begin{matrix} N_1(u) \\ N_2(u) \\ N_3(u) \\ \end{matrix}\right] = \left[\begin{matrix} I_{11} & 0 & 0 \\ 0 & I_{22} & 0 \\ 0 & 0 & I_{33} \\ \end{matrix}\right] \left[\begin{matrix} \dot{w}_1 \\ \dot{w}_2 \\ \dot{w}_3 \\ \end{matrix}\right] + \left[\begin{matrix} 0 & -w_3 & w_2 \\ w_3 & 0 & -w_1 \\ -w_2 & w_1 & 0 \\ \end{matrix}\right] \left[\begin{matrix} I_{11} & 0 & 0 \\ 0 & I_{22} & 0 \\ 0 & 0 & I_{33} \\ \end{matrix}\right] \left[\begin{matrix} w_1 \\ w_2 \\ w_3 \\ \end{matrix}\right] N1(u)N2(u)N3(u)=I11000I22000I33w˙1w˙2w˙3+0w3w2w30w1w2w10I11000I22000I33w1w2w3


    Ref: 机器人动力学(Basic Newton-Euler Mechanics)

    Ref: 机器人运动学(a simple car)

    Ref: 机器人系统动力学——惯性参数

    Ref: 四旋翼姿态解算原理

    Ref: 如何对四旋翼飞行器进行精确的数学建模?

    Ref: 四旋翼建模、控制与仿真(理论部分)

    Ref: 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角

    Ref: 横滚角,俯仰角,航向角

    Ref: 四旋翼无人机飞行控制入门(一)

    Ref: 四旋翼飞行控制入门(二)

    Ref: (三)专家PID控制理论基础

    总结

    以上是生活随笔为你收集整理的【控制】四旋翼无人机姿态角分析的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。