👨🎓个人主页
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
多旋翼无人机设计、开发、建模与仿真及控制方案研究
一、多旋翼无人机设计与开发
-
系统组成与设计原则
多旋翼无人机由机身主体、动力系统、控制系统、通信链路四大部分构成。- 机身设计:需满足刚度、强度、轻量化、低振动等要求。机架长宽比、轴距布局需优化以减少气动干扰。
- 动力系统:包括电机、电调、螺旋桨和电池。选型时需根据负载和飞行时间匹配电机升力、电调电流及电池容量。例如,电机KV值与螺旋桨尺寸的匹配直接影响扭矩与响应速度。
- 控制系统:飞控集成陀螺仪、加速度计、GPS等传感器,负责姿态解算与指令执行。
-
开发流程
- 参数设计:起飞重量、轴距、桨尖距离需平衡升力与气动效率;重心位置影响控制灵敏度。
- 工业设计:模块化设计提升可维护性,外观集成化可增强市场竞争力。
- 材料与工艺:碳纤维等轻质材料用于减重,3D打印技术简化复杂结构制造。
二、动力学建模方法
-
基础模型构建
- 六自由度运动模型:包括平移(x, y, z)和旋转(俯仰、滚转、偏航)自由度。
- 旋翼动力学:拉力与力矩由螺旋桨转速平方决定,公式为 Ft=Ctω2,力矩 M=Cmω2,其中 Ct、Cm 为经验系数。
- 坐标系转换:通过欧拉角或四元数将机体坐标系转换至本地坐标系,计算受力分布。
-
多体动力学建模
- 拉格朗日方程:适用于多刚体系统(如机翼、旋翼、舵面),通过虚功原理整合各部件力/力矩。
- 叶素理论:用于旋翼非定常气动力建模,结合滑流理论分析动态入流效应。
- 对比研究:拉格朗日法相比牛顿-欧拉法更系统,但需处理四元数约束。
三、仿真工具与应用
-
MATLAB/Simulink
- 高保真仿真:集成刚体模型、环境模型(风扰、重力)及传感器噪声,支持PID、LQG、MPC算法验证。
- 代码生成:通过PSP工具箱将Simulink模型转换为C/C++代码,部署至Pixhawk飞控。
- 可视化:FlightGear接口实现3D飞行轨迹可视化。
-
ROS(机器人操作系统)
- 协同控制:支持多机编队仿真,通过Gazebo模拟复杂环境。
- 硬件在环(HIL) :连接真实飞控与仿真环境,验证算法鲁棒性。
四、控制方案研究
- PID控制
- 原理:通过比例(P)、积分(I)、微分(D)三环节调节误差。
- 姿态控制:外环(角度)与内环(角速度)串级PID增强阻尼,抑制振荡。
- 参数整定:典型参数示例:滚转通道 Kp=2000、Kd=4000,高度通道 Kp=1.2、Kd=2。
- 局限性:对模型不确定性和外部干扰(如风扰)鲁棒性较差。
- 线性二次高斯(LQG)控制
- 结构:结合LQR最优控制与卡尔曼滤波,处理传感器噪声和过程噪声。
- 应用案例:
- 液载四旋翼:LQG相比PID轨迹跟踪误差降低20%,能耗减少11%,且能补偿恒定干扰。
- 电力巡检:LQG控制俯仰/滚转姿态,PID辅助偏航,提升抗风性能。
- 模型预测控制(MPC)
- 优势:
- 预测优化:滚动时域内求解最优控制量,显式处理约束(如电机饱和)。
- 非线性适应:NLMPC直接处理无人机非线性动力学,精度优于线性MPC。
- 挑战:
- 计算复杂度:实时求解非线性优化需高性能硬件(如i7处理器)。
- 实时性妥协:常采用简化模型(如微分平坦性)或插值法加速计算。
五、性能对比与选型建议
控制方案 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
PID | 结构简单、参数易调 | 鲁棒性差、抗干扰弱 | 基础姿态稳定 |
LQG | 噪声抑制、最优控制 | 依赖精确模型 | 高噪声环境(如液载无人机) |
MPC | 多约束处理、预测优化 | 计算资源需求高 | 复杂轨迹跟踪 |
实验数据:
- LQG vs PID:在液载四旋翼中,LQG的俯仰角振幅比PID低30%,稳态时间缩短40%。
- MPC vs PID:MPC在轨迹跟踪中的均方误差(MSE)为 10−3 m210−3m2,而PID为 10−2 m210−2m2。
六、总结与展望
未来研究方向包括:
- 智能控制融合:将MPC与深度学习结合,提升模型自适应能力。
- 边缘计算优化:通过FPGA加速MPC求解,满足实时性需求。
- 多物理场耦合:深化气动-结构-控制联合仿真,提升模型精度。
通过系统化设计、精确建模与先进控制策略的结合,多旋翼无人机将在物流、巡检、农业等领域实现更高效、可靠的应用。
📚2 运行结果
部分代码:
close all; % close all figures
clear; % clear workspace variables
clc; % clear command window
format short;
%% Mass of the Multirotor in Kilograms as taken from the CAD
M = 1.455882;
g = 9.81;
%% Dimensions of Multirotor
L1 = 0.19; % along X-axis Distance from left and right motor pair to center of mass
L2 = 0.18; % along Y-axis Vertical Distance from left and right motor pair to center of mass
L3 = 0.30; % along Y-axis Distance from motor pair to center of mass
%% Mass Moment of Inertia as Taken from the CAD
Ixx = 0.014;
Iyy = 0.028;
Izz = 0.038;
%% Motor Thrust and Torque Constants (To be determined experimentally)
Kw = 0.85;
Ktau = 7.708e-10;
Kthrust = 1.812e-07;
Kthrust2 = 0.0007326;
Mtau = (1/44.22);
Ku = 515.5*Mtau;
%% Air resistance damping coeeficients
Dxx = 0.01212;
Dyy = 0.01212;
Dzz = 0.0648;
%% Equilibrium Input
%W_e = sqrt(((M*g)/(3*(Kthrust+(Kw*Kthrust)))));
%W_e = ((-6*Kthrust2) + sqrt((6*Kthrust2)^2 - (4*(-M*g)*(3*Kw*Kthrust + 3*Kthrust))))/(2*(3*Kw*Kthrust + 3*Kthrust));
%U_e = (W_e/Ku);
U_e = [176.1,178.5,177.2,177.6,202.2,204.5]';
W_e = U_e*Ku;
%% Define Discrete-Time BeagleBone Dynamics
T = 0.01; % Sample period (s)- 100Hz
ADC = 3.3/((2^12)-1); % 12-bit ADC Quantization
DAC = 3.3/((2^12)-1); % 12-bit DAC Quantization
%% Define Linear Continuous-Time Multirotor Dynamics: x_dot = Ax + Bu, y = Cx + Du
% A = 14x14 matrix
A = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 2*Kthrust*W_e(1)/M, 2*Kw*Kthrust*W_e(2)/M, 2*Kthrust*W_e(3)/M, 2*Kw*Kthrust*W_e(4)/M, 2*Kthrust*W_e(5)/M, 2*Kw*Kthrust*W_e(6)/M;
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, L1*2*Kthrust*W_e(1)/Ixx, L1*2*Kw*Kthrust*W_e(2)/Ixx, -L1*2*Kthrust*W_e(3)/Ixx, -L1*2*Kw*Kthrust*W_e(4)/Ixx, 0, 0;
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, -L2*2*Kthrust*W_e(1)/Iyy, -L2*2*Kw*Kthrust*W_e(2)/Iyy, -L2*2*Kthrust*W_e(3)/Iyy, -L2*2*Kw*Kthrust*W_e(4)/Iyy, L3*2*Kthrust*W_e(5)/Iyy,L3*2*Kw*Kthrust*W_e(6)/Iyy;
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, -2*Ktau*W_e(1)/Izz, 2*Ktau*W_e(2)/Izz, 2*Ktau*W_e(3)/Izz, -2*Ktau*W_e(4)/Izz, -2*Ktau*W_e(5)/Izz, 2*Ktau*W_e(6)/Izz;
0, 0, 0, 0, 0, 0, 0, 0, -1/Mtau, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, -1/Mtau, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1/Mtau, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1/Mtau, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1/Mtau, 0;
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]Alexander Dada,Mechatronics Engineer.Linear Control for Asymmetric Multirotor Unmanned Aerial Vehicles
[2][1]徐超.多旋翼无人机在山区应急救援中的应用分析[J].南方农机,2023,54(03):4-6+14.
[3]王磊,张启亮,翁明善.基于改进YOLOv4算法的小型多旋翼无人机目标检测[J].探测与控制学报,2022,44(05):125-131.