1. 同轴倾转旋翼三轴无人机概述
同轴倾转旋翼三轴无人机是一种融合多旋翼和固定翼无人机优势的混合构型飞行器。其核心特征在于采用同轴布置的倾转旋翼系统,通过旋翼倾转实现垂直起降与高速巡航模式的无缝切换。这种独特设计使其兼具多旋翼无人机的悬停能力和固定翼无人机的长航时特性,在军事侦察、物流配送、灾害救援等领域展现出巨大应用潜力。
1.1 机械结构与飞行原理
该无人机的机械系统主要由以下关键部件构成:
-
同轴倾转旋翼机构:采用两组共轴反向旋转的旋翼,通过精密伺服机构实现0-90°倾转。前旋翼直径通常为0.5-0.7m,后旋翼略小以减小气动干扰。旋翼转速范围800-3000RPM,采用变桨距控制提升效率。
-
三轴稳定系统:包含:
- 滚转控制:通过差动调节左右旋翼推力实现
- 俯仰控制:前后旋翼推力差配合倾转角度调节
- 偏航控制:利用同轴旋翼的反扭矩差实现
-
轻量化机身:采用碳纤维复合材料,整机重量控制在1.5kg以内,载荷能力可达0.5kg。流线型设计使巡航模式气动效率提升40%以上。
飞行模式转换过程可分为三个阶段:
- 垂直起降模式:旋翼完全垂直(90°),类似多旋翼无人机工作方式
- 过渡模式:旋翼倾转30-60°,产生部分前向推力
- 巡航模式:旋翼接近水平(<15°),主要依靠机翼产生升力
关键提示:模式转换过程中需特别注意旋翼气动干扰导致的力矩突变,这是控制系统设计的难点之一。
2. 非线性动力学建模
2.1 坐标系定义与运动方程
建立无人机数学模型需定义以下坐标系:
- 地面坐标系(E系):固定于地面的惯性参考系
- 机体坐标系(B系):原点在无人机质心,随无人机运动
- 旋翼坐标系(R系):各旋翼局部坐标系
采用牛顿-欧拉法建立六自由度运动方程:
平动动力学:
$$
m\ddot{\boldsymbol{r}} = \boldsymbol{R}b^e(\sum^4\boldsymbol{F}_i^b) + m\boldsymbol{g}^e
$$
转动动力学:
$$
\boldsymbol{I}\dot{\boldsymbol{\omega}}^b + \boldsymbol{\omega}^b\times\boldsymbol{I}\boldsymbol{\omega}^b = \sum_{i=1}^4\boldsymbol{M}_i^b
$$
其中关键参数:
- $m=1.331kg$:无人机质量
- $\boldsymbol{I}=diag([0.0103,0.00902,0.0172])kg\cdot m^2$:转动惯量
- $l_1=0.240m$:前后旋翼间距
- $l_2=0.078m$:左右旋翼间距
2.2 气动力建模
旋翼产生的力和力矩包含:
-
推力模型:
$$
T_i = c_t\rho n_i^2 D^4
$$
其中$c_t$为推力系数,$n_i$为转速,$D$为旋翼直径 -
扭矩模型:
$$
Q_i = c_q\rho n_i^2 D^5
$$
$c_q$为扭矩系数 -
倾转效应:
旋翼倾转时会产生额外的俯仰力矩:
$$
M_{tilt} = T_i\cdot l_3\cdot sin(\delta_i)
$$
$l_3=0.151m$为旋翼中心到质心的垂直距离
2.3 耦合特性分析
同轴倾转旋翼系统引入的主要耦合效应:
- 气动干扰:
- 前旋翼尾流对后旋翼入流的影响
- 旋翼间涡流相互作用导致的推力波动
-
惯性耦合:
旋翼倾转时转动惯量矩阵发生变化:
$$
\boldsymbol{I}(\delta) = \boldsymbol{I}_0 + \Delta\boldsymbol{I}(\delta)
$$ -
控制耦合:
单个旋翼的推力变化同时影响三个轴向的力矩
3. 混合反步滑模控制设计
3.1 控制架构概述
采用分层控制结构:
code复制上层:位置控制器(反步法)
↓
中层:姿态控制器(滑模控制)
↓
底层:执行器分配
3.2 反步位置控制
设计步骤:
-
定义位置误差:
$$
\boldsymbol{e}p = \boldsymbol{r} - \boldsymbol{r}
$$ -
构造Lyapunov函数:
$$
V_1 = \frac{1}{2}\boldsymbol{e}_p^T\boldsymbol{e}_p
$$ -
设计虚拟控制量:
$$
\boldsymbol{v}{des} = \dot{\boldsymbol{r}} + \boldsymbol{K}_1\boldsymbol{e}_p
$$ -
推力计算:
$$
T_{total} = m|\ddot{\boldsymbol{r}}_{des} + \boldsymbol{K}_1\dot{\boldsymbol{e}}_p + \boldsymbol{K}_2\boldsymbol{e}_v + \boldsymbol{g}|
$$
关键增益选择:
$$
\boldsymbol{K}_1 = diag([2,2,2]), \boldsymbol{K}_2 = diag([3,3,3])
$$
3.3 滑模姿态控制
-
设计滑模面:
$$
\boldsymbol{s} = \dot{\boldsymbol{e}}\Theta + \boldsymbol{\Lambda}\boldsymbol{e}\Theta
$$
其中$\boldsymbol{\Lambda}=diag([5,5,5])$ -
控制律设计:
$$
\boldsymbol{u} = \boldsymbol{I}(\boldsymbol{\omega}^b\times\boldsymbol{\omega}^b + \ddot{\boldsymbol{\Theta}}{des} + \boldsymbol{\Lambda}\dot{\boldsymbol{e}}\Theta + \boldsymbol{K}_ssgn(\boldsymbol{s}))
$$ -
抖振抑制:
采用饱和函数代替符号函数:
$$
sat(s_i) = \begin{cases}
s_i/\phi & |s_i| \leq \phi \
sgn(s_i) & |s_i| > \phi
\end{cases}
$$
取$\phi=0.1$
3.4 执行器分配
将总推力和力矩分配到各旋翼:
$$
\begin{bmatrix}
T_1 \ T_2 \ T_3 \ T_4
\end
\boldsymbol{A}^{-1}
\begin{bmatrix}
T_{total} \ M_x \ M_y \ M_z
\end{bmatrix}
$$
分配矩阵$\boldsymbol{A}$考虑旋翼位置和倾转角度:
$$
\boldsymbol{A} = \begin{bmatrix}
1 & 1 & 1 & 1 \
-l_2sinδ_1 & l_2sinδ_2 & l_2sinδ_3 & -l_2sinδ_4 \
l_1cosδ_1 & l_1cosδ_2 & -l_1cosδ_3 & -l_1cosδ_4 \
(-1)^ic_q/c_t & (-1)^ic_q/c_t & (-1)^ic_q/c_t & (-1)^ic_q/c_t
\end{bmatrix}
$$
4. 状态估计算法实现
4.1 EKF设计
状态向量:
$$
\boldsymbol{x} = [x,y,z,\phi,\theta,\psi,\dot{x},\dot{y},\dot{z},p,q,r]^T
$$
观测模型:
$$
\boldsymbol{z} = [x_{GPS},y_{GPS},z_{baro},\phi_{IMU},\theta_{IMU},\psi_{mag}]^T
$$
预测步骤:
$$
\boldsymbol{x}{k|k-1} = f(\boldsymbol{x},\boldsymbol{u}k)
$$
$$
\boldsymbol{P} = \boldsymbol{F}k\boldsymbol{P}\boldsymbol{F}_k^T + \boldsymbol{Q}
$$
更新步骤:
$$
\boldsymbol{K}k = \boldsymbol{P}\boldsymbol{H}_k^T(\boldsymbol{H}k\boldsymbol{P}\boldsymbol{H}_k^T + \boldsymbol{R})^{-1}
$$
$$
\boldsymbol{x}k = \boldsymbol{x} + \boldsymbol{K}_k(\boldsymbol{z}k - h(\boldsymbol{x}))
$$
4.2 UKF改进
采用sigma点采样策略:
-
计算sigma点:
$$
\boldsymbol{\mathcal{X}}_0 = \hat{\boldsymbol{x}}
$$
$$
\boldsymbol{\mathcal{X}}_i = \hat{\boldsymbol{x}} \pm (\sqrt{(n+\lambda)\boldsymbol{P}})_i
$$ -
非线性变换:
$$
\boldsymbol{\mathcal{Y}}_i = h(\boldsymbol{\mathcal{X}}_i)
$$ -
统计量计算:
$$
\hat{\boldsymbol{z}} = \sum W_i^{(m)}\boldsymbol{\mathcal{Y}}i
$$
$$
\boldsymbol{P} = \sum W_i^{(c)}(\boldsymbol{\mathcal{Y}}_i-\hat{\boldsymbol{z}})(\boldsymbol{\mathcal{Y}}_i-\hat{\boldsymbol{z}})^T + \boldsymbol{R}
$$
参数选择:
- $\alpha=1e-3$
- $\beta=2$
- $\kappa=0$
5. MATLAB实现关键代码
5.1 主仿真循环
matlab复制% 初始化
x = x0;
t = 0:Ts:Tfinal;
for k = 1:length(t)
% 获取参考轨迹
[r_des, v_des, a_des] = get_trajectory(t(k));
% 状态估计
x_hat = ukf_update(x, u_prev, z_meas);
% 控制计算
[T_total, M_des] = backstepping_control(x_hat, r_des, v_des, a_des);
u = sliding_mode_control(x_hat(4:6), M_des);
% 执行器分配
[omega, delta] = actuator_allocation(T_total, u);
% 动力学更新
x = drone_dynamics(x, omega, delta, Ts);
% 存储数据
log_data(k) = pack_data(x, u, x_hat);
end
5.2 反步控制器实现
matlab复制function [T_total, M_des] = backstepping_control(x, r_des, v_des, a_des)
% 位置误差
e_p = r_des - x(1:3);
e_v = v_des - x(7:9);
% 虚拟控制量
v_c = v_des + K1*e_p;
a_c = a_des + K1*e_v + K2*e_p;
% 总推力计算
R = euler2rot(x(4:6));
T_total = m*(norm(a_c + [0;0;g]) + 0.1); % 0.1为安全裕量
% 期望姿态计算
z_b_des = (a_c + [0;0;g])/norm(a_c + [0;0;g]);
x_c = [cos(x(6)); sin(x(6)); 0];
y_b_des = cross(z_b_des, x_c)/norm(cross(z_b_des, x_c));
x_b_des = cross(y_b_des, z_b_des);
R_des = [x_b_des, y_b_des, z_b_des];
% 期望力矩
e_R = 0.5*vee(R_des'*R - R'*R_des);
M_des = -K_R*e_R - K_omega*x(10:12);
end
5.3 UKF实现核心
matlab复制function x_hat = ukf_update(x, u, z)
% Sigma点生成
[X, Wm, Wc] = sigma_points(x, P, alpha, beta, kappa);
% 预测步骤
X_pred = zeros(size(X));
for i = 1:size(X,2)
X_pred(:,i) = process_model(X(:,i), u);
end
x_pred = X_pred*Wm';
P_pred = zeros(size(P));
for i = 1:size(X,2)
P_pred = P_pred + Wc(i)*(X_pred(:,i)-x_pred)*(X_pred(:,i)-x_pred)';
end
P_pred = P_pred + Q;
% 更新步骤
Z_pred = zeros(length(z), size(X,2));
for i = 1:size(X,2)
Z_pred(:,i) = measurement_model(X_pred(:,i));
end
z_pred = Z_pred*Wm';
Pzz = zeros(length(z));
Pxz = zeros(length(x), length(z));
for i = 1:size(X,2)
Pzz = Pzz + Wc(i)*(Z_pred(:,i)-z_pred)*(Z_pred(:,i)-z_pred)';
Pxz = Pxz + Wc(i)*(X_pred(:,i)-x_pred)*(Z_pred(:,i)-z_pred)';
end
Pzz = Pzz + R;
% 卡尔曼增益
K = Pxz/Pzz;
x_hat = x_pred + K*(z - z_pred);
P = P_pred - K*Pzz*K';
end
6. 仿真结果与分析
6.1 悬停控制性能
在垂直起降模式下(旋翼角度90°),控制器表现如下:
- 位置稳态误差:<0.05m
- 姿态角稳态误差:<0.5°
- 抗风扰能力:可抵抗6m/s侧风
- 模式转换时间:3-5秒(从悬停到巡航)
6.2 轨迹跟踪结果
跟踪正弦轨迹的性能指标:
| 指标 | X方向 | Y方向 | Z方向 |
|---|---|---|---|
| RMSE(m) | 0.12 | 0.15 | 0.08 |
| 最大误差(m) | 0.25 | 0.30 | 0.15 |
| 收敛时间(s) | 1.2 | 1.5 | 0.8 |
6.3 状态估计对比
EKF与UKF在GPS信号丢失时的表现:
| 算法 | 位置误差(m) | 速度误差(m/s) | 计算时间(ms) |
|---|---|---|---|
| EKF | 1.2 | 0.3 | 0.45 |
| UKF | 0.8 | 0.2 | 0.68 |
UKF在非线性强的情况下估计精度提升约30%,但计算量增加50%。实际应用中可根据计算资源选择。
7. 工程实现注意事项
-
硬件选型建议:
- 飞控处理器:STM32H7系列(400MHz主频)
- IMU传感器:BMI088(加速度计)+ BMX055(陀螺仪)
- 倾转伺服:DS3218(20kg·cm扭矩)
- 电调:BLHeli_32(支持双向DShot)
-
参数整定经验:
- 先调节内环(姿态控制),再调外环(位置控制)
- 滑模控制增益从1/3理论值开始逐步增加
- 执行器分配需加入伪逆矩阵的奇异值保护
-
常见问题排查:
- 振荡问题:检查IMU安装是否牢固,降低姿态控制增益
- 响应迟缓:增加滑模面参数Λ,检查执行器响应延迟
- 估计发散:检查EKF/UKF的Q、R矩阵是否合理设置
-
实时性优化技巧:
- 将UKF的sigma点计算改为并行处理
- 使用ARM的DSP库加速矩阵运算
- 控制周期建议设置在2-5ms之间
在实际飞行测试中,我们发现旋翼倾转机构的机械间隙会显著影响控制性能。建议采用谐波减速器配合高精度编码器,将倾转角度误差控制在0.5°以内。此外,锂电池电压下降会导致旋翼转速响应非线性变化,需在线识别电机参数或采用电压补偿策略。
