无人机线性控制器

无人机控制系统数学模型

本文推导来源

1. 控制系统数学模型

1.1 控制系统基本目标

该系统应能够根据无人机当前状态(位置、速度、加速度等信息)以及期望状态,通过油门控制量u.thrust和姿态控制量u.q来实现控制目标。

1.2 期望加速度的计算

期望加速度 a des \mathbf{a}_{\text{des}} ades的计算公式如下:
a des = a ref + K v ( v des − v ) + K p ( p des − p ) + [ 0 0 g ] \mathbf{a}_{\text{des}} = \mathbf{a}_{\text{ref}} + \mathbf{K}_v (\mathbf{v}_{\text{des}} - \mathbf{v}) + \mathbf{K}_p (\mathbf{p}_{\text{des}} - \mathbf{p}) + \begin{bmatrix} 0 \\ 0 \\ g \end{bmatrix} ades=aref+Kv(vdesv)+Kp(pdesp)+ 00g
其中:

  • a ref \mathbf{a}_{\text{ref}} aref:由轨迹规划提供的参考加速度
  • K v , K p \mathbf{K}_v, \mathbf{K}_p Kv,Kp:分别为速度和位置的控制增益
  • v des , p des \mathbf{v}_{\text{des}}, \mathbf{p}_{\text{des}} vdes,pdes:表示期望速度和位置
  • v , p \mathbf{v}, \mathbf{p} v,p:表示当前速度和位置
  • g g g:重力加速度,根据实际方向定义

1.3 推力计算(油门百分比)

基本公式

推力(以油门百分比表示)通过以下公式计算:
throttle_percentage = a z , des thr2acc \text{throttle\_percentage} = \frac{a_{z,\text{des}}}{\text{thr2acc}} throttle_percentage=thr2accaz,des

参数说明
  • a z , des a_{z,\text{des}} az,des:z方向的期望加速度
  • thr2acc \text{thr2acc} thr2acc:推力到加速度的映射系数,初始化为:
    thr2acc = g hover_percentage \text{thr2acc} = \frac{g}{\text{hover\_percentage}} thr2acc=hover_percentageg
    其中 hover_percentage \text{hover\_percentage} hover_percentage为悬停油门百分比
悬停状态分析

在悬停状态下:

  • 期望加速度: a z , des = g a_{z,\text{des}} = g az,des=g
  • 油门百分比: throttle_percentage = hover_percentage \text{throttle\_percentage} = \text{hover\_percentage} throttle_percentage=hover_percentage
    此时推力: T = m g T = m g T=mg,恰好能够抵消重力

1.4 姿态计算(滚转角和俯仰角)

滚转角 ϕ \phi ϕ和俯仰角 θ \theta θ的计算采用小角度近似,公式如下:
ϕ = a x , des sin ⁡ ψ − a y , des cos ⁡ ψ g \phi = \frac{a_{x,\text{des}} \sin \psi - a_{y,\text{des}} \cos \psi}{g} ϕ=gax,dessinψay,descosψ
θ = a x , des cos ⁡ ψ + a y , des sin ⁡ ψ g \theta = \frac{a_{x,\text{des}} \cos \psi + a_{y,\text{des}} \sin \psi}{g} θ=gax,descosψ+ay,dessinψ
其中:

  • ψ \psi ψ:表示当前偏航角
  • a x , des , a y , des a_{x,\text{des}}, a_{y,\text{des}} ax,des,ay,des:分别为x和y方向的期望加速度

1.5 悬停油门的处理

  • 正常悬停:当位置和速度都为零时, a z , des = g a_{z,\text{des}} = g az,des=g,此时推力 T = m g T = m g T=mg,无人机能够实现悬停
  • 特殊情况:当 a z , des = 0 a_{z,\text{des}} = 0 az,des=0时,推力为零,无人机处于自由落体状态。控制系统应确保无人机在需要下降时明确给出下降指令

通过控制系统在期望加速度中自动添加 + g +g +g分量,可以确保无人机在默认状态下能够实现悬停

2. 推力模型的参数估计

2.1 估计目标

estimateThrustModel函数采用递归最小二乘(RLS)算法在线估计参数 thr2acc \text{thr2acc} thr2acc,以应对系统参数的变化(如负载变化、电池衰减等)

2.2 数学模型

模型表达式为:
est_a ( 2 ) = thr2acc ⋅ T \text{est\_a}(2) = \text{thr2acc} \cdot T est_a(2)=thr2accT
其中:

  • est_a ( 2 ) \text{est\_a}(2) est_a(2):表示z方向的估计加速度
  • T T T:为控制量,以推力表示

2.3 递归最小二乘(RLS)算法

RLS算法通过以下公式更新 thr2acc \text{thr2acc} thr2acc

  • 增益计算
    K k = P k − 1 ⋅ T λ + T ⋅ P k − 1 ⋅ T K_k = \frac{P_{k - 1} \cdot T}{\lambda + T \cdot P_{k - 1} \cdot T} Kk=λ+TPk1TPk1T
  • 参数更新
    thr2acc k = thr2acc k − 1 + K k ⋅ ( est_a ( 2 ) − T ⋅ thr2acc k − 1 ) \text{thr2acc}_k = \text{thr2acc}_{k - 1} + K_k \cdot \left( \text{est\_a}(2) - T \cdot \text{thr2acc}_{k - 1} \right) thr2acck=thr2acck1+Kk(est_a(2)Tthr2acck1)
  • 协方差更新
    P k = 1 λ ⋅ ( P k − 1 − K k ⋅ T ⋅ P k − 1 ) P_k = \frac{1}{\lambda} \cdot \left( P_{k - 1} - K_k \cdot T \cdot P_{k - 1} \right) Pk=λ1(Pk1KkTPk1)
    其中, λ \lambda λ为遗忘因子,由 rho2_ \text{rho2\_} rho2_参数控制,用于调节历史数据对估计结果的影响

2.4 数据选择逻辑

在数据选择方面,选取35ms到45ms之前的数据点,这样设计是为了匹配传感器和执行器之间的传输延迟。对于较旧的数据(时间差大于45ms)会被丢弃,而对于较新的数据(时间差小于35ms)也会被忽略

3. 总结

  • 控制系统通过PD控制和加速度前馈控制,成功实现了对无人机位置和速度的有效控制
  • 在推力计算方面,悬停状态通过 + g +g +g加速度分量自动实现
  • 递归最小二乘(RLS)算法在线估计了推力到加速度的映射关系,从而确保了控制的准确性和适应性
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值