【无人机设计与技术】设计内部和外部 PID 回路,用于控制四轴飞行器的姿态和位移

摘要

本文设计了一个用于四轴飞行器控制的内部和外部PID回路。外部PID回路控制飞行器的位移,而内部PID回路则用于控制飞行器的姿态。这种控制结构能够有效调节飞行器的姿态和位移,实现平稳飞行并响应给定的轨迹。通过Simulink仿真模型对控制效果进行了验证,结果显示该设计能够稳定飞行器并具有较好的动态响应和稳态误差特性。

理论

四轴飞行器具有复杂的非线性和耦合特性,因此控制其姿态和位移是一项具有挑战性的任务。通过将控制器分为两个PID回路,外部回路控制位置,而内部回路控制姿态,可以有效地分解控制任务。

姿态控制(内部PID回路):姿态角度包括偏航角(Yaw, ψ)、俯仰角(Pitch, θ)和横滚角(Roll, φ)。内部PID控制器的任务是调节这些角度,使得飞行器的姿态稳定。姿态控制器的输入是期望角度和实际角度之间的误差。

位置控制(外部PID回路):位置控制用于调节飞行器在空间中的位置(x, y, z)。通过将期望位置和实际位置之间的误差输入外部PID控制器,生成所需的姿态角度作为内部PID控制器的输入。

PID控制器的公式如下:

实验结果

通过MATLAB Simulink模型进行仿真,飞行器能够稳定在设定的姿态和位移上。下图展示了飞行器在不同时间点的姿态和位移响应。该控制系统的动态响应具有良好的稳定性,且稳态误差较小。飞行器能够跟踪给定的轨迹,姿态角度和位移误差控制在合理范围内。

姿态响应:仿真结果显示,偏航、俯仰和横滚角度能够迅速达到稳定状态,并且稳态误差接近于零。 位移响应:位移响应同样表现出良好的动态特性,飞行器能够按照给定的轨迹移动,且位移误差较小。

部分代码

以下是用于四轴飞行器姿态和位移控制的部分MATLAB代码:

复制代码
% 定义系统参数
Kp_attitude = 1.5;
Ki_attitude = 0.1;
Kd_attitude = 0.5;

Kp_position = 2.0;
Ki_position = 0.2;
Kd_position = 0.6;

% 姿态控制器(内部回路)
phi_error = phi_d - phi;
theta_error = theta_d - theta;
psi_error = psi_d - psi;

u_phi = Kp_attitude * phi_error + Ki_attitude * integral(phi_error) + Kd_attitude * derivative(phi_error);
u_theta = Kp_attitude * theta_error + Ki_attitude * integral(theta_error) + Kd_attitude * derivative(theta_error);
u_psi = Kp_attitude * psi_error + Ki_attitude * integral(psi_error) + Kd_attitude * derivative(psi_error);

% 位置控制器(外部回路)
x_error = x_d - x;
y_error = y_d - y;
z_error = z_d - z;

u_x = Kp_position * x_error + Ki_position * integral(x_error) + Kd_position * derivative(x_error);
u_y = Kp_position * y_error + Ki_position * integral(y_error) + Kd_position * derivative(y_error);
u_z = Kp_position * z_error + Ki_position * integral(z_error) + Kd_position * derivative(z_error);

% 将控制信号输入飞行器模型
QuadcopterModel(u_phi, u_theta, u_psi, u_x, u_y, u_z);

参考文献

  1. Bouabdallah, S., Murrieri, P., & Siegwart, R. (2004). Design and control of an indoor micro quadrotor. Proceedings of the 2004 IEEE International Conference on Robotics and Automation (ICRA), 3, 4393-4398.

  2. Castillo, P., Lozano, R., & Dzul, A. (2005). Modelling and control of mini-flying machines. Springer. Pounds, P., Mahony, R., & Corke, P. (2006). Modelling and control of a quad-rotor robot. Proceedings of the 2006 Australasian Conference on Robotics and Automation (ACRA), 44(4), 299-308.

相关推荐
moonsims13 分钟前
AiBrainBox-UGV无人系统核心感知与控制平台:面向矿山地下环境的空地协同无人系统及多模态融合定位关键技术
无人机
思绪无限2 小时前
YOLOv5至YOLOv12升级:无人机目标检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·无人机·yolov12
matlabgoodboy1 天前
ROS代做机械臂导航路径规划激光雷达SLAM三维重建点云无人机视觉
无人机
RoboWizard2 天前
移动固态硬盘摔了一下后无法识别,数据还能恢复吗?
大数据·人工智能·数码相机·智能手机·性能优化·无人机
BatyTao2 天前
APM/EKF 无人机三级振动(Primary/Secondary/Tertiary)
无人机
dragon_perfect2 天前
无人机跟随 无人机自动降落算法
python·无人机·无人船
GIS数据转换器2 天前
基于AI+无人机的城市巡检系统
人工智能·3d·无人机·知识图谱·旅游
mtouch3332 天前
三维数字沙盘点云与无人机数据分析电子沙盘系统
人工智能·机器人·无人机·虚拟现实·电子沙盘·数字沙盘
老兵发新帖3 天前
无人机视角目标检测数据集
人工智能·目标检测·无人机