【四轴飞行器】非线性3DOF四轴飞行器模拟器(Matlab实现)

“在代码的海洋里,有无尽的知识等待你去发现。我就是那艘领航的船,带你乘风破浪,驶向代码的彼岸。

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

四轴飞行器,由于其结构简单、机动性强及成本较低等优点,在无人机技术中占有重要地位。然而,四轴飞行器的控制是一个复杂的非线性问题,尤其是当涉及到三维自由度(3DOF)的动态控制时,即控制飞行器的俯仰(pitch)、偏航(yaw)和滚转(roll)三个旋转自由度。为了在真实飞行前测试和优化控制算法,非线性3DOF四轴飞行器模拟器成为了一个不可或缺的工具。3DOF四轴飞行器模拟器基于飞行器的动力学模型,该模型考虑了飞行器在空间中的旋转运动。 在实际飞行前,模拟器允许工程师测试和优化飞行控制算法,确保其稳定性和准确性。相比于实物原型,模拟器可以大大降低开发成本,避免因测试失败造成的硬件损坏。非线性3DOF四轴飞行器模拟器是四轴飞行器研发和控制算法开发中不可或缺的工具。它不仅有助于在真实飞行前优化飞行性能,而且在教育、培训和系统测试方面也发挥着重要作用。随着仿真技术的不断进步,未来的模拟器将更加逼真,提供更高级的交互性和更广泛的测试功能。

📚2 运行结果

主函数部分代码:


clear all;close all;clc;
addpath QuadFiles

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% Parameter definition %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% user  
Sim.degrees=1;% Shows results in radians (0) or degrees (1)
Sim.Ts=0.005;% Sampling time [s]
Sim.Time=30; % Simulation time  [s]
Sim.t=0:Sim.Ts:Sim.Time; % Time vector  [s]
iniC=[-pi/8;+pi/8;0]; %inital conditions
ref=[0;0;-pi/2]; %[desiredPhi,desiredTheta,desiredPsi] Set Point
Sim.desiredAngFi=repmat(ref,1,size(Sim.t,2));% step signal
Sim.delay=10; %turn control system on after a certain time delay
% for rotating around z axis
%Sim.desiredAngFi(3,:)=((Sim.t-Sim.delay)/8).*(Sim.t>=Sim.delay);
%%  parameter of quadcopter, simulation space states and control system
Sim.ccc=1;   % Auxiliary variable for Ts of control system 
Sim.g = 9.81;% Gravity acceleration [m/s^2]
Sim.lb=0.295;% Arm length of quadcopter [m]
mp=0.084;    % Point mass that represents the engine and propeller [kg]
me=0.742;    % Sphere mass that represents the Quadcopter body [kg]
re=0.075;    % Sphere radius [m] 
Sim.Le = .014; % Arm Thickness [m]
Sim.rH = .127; % Propeller radius  [m]
Sim.kf=0.0757;% Atuador parameter
%%%%%%%%%%%%%%%%% Moment of Inertia (J)  %%%%%%%%%%%%%%%%%%%
Sim.Jx=0.4*(me*re^2)+2*mp*Sim.lb^2; % J Matrix position (1,1)
Sim.Jy=Sim.Jx;                      % J Matrix position (2,2)
Sim.Jz=0.4*(me*re^2)+4*mp*Sim.lb^2; % J Matrix position (3,3)
%%%%%%%%%%%%%%%% Inserting noise in IMU data %%%%%%%%%%%%%%%%
Sim.GyrosBias=[0.0524;-0.0524;0.020838];   % Gyros offset
Sim.GyrosMag=[0.66675;0.53642;0.4403]*1; % Gyros noise mag
Sim.AcelMag=[0.08;-0.06;0.075]*1;       % Acel noise mag
%%%%%%%%%% Partameters for Kalman Filter %%%%%%%%%%%%
Qangle=0.001;
Qbias =0.003;
Sim.AKalman=[1  -Sim.Ts;0        1]; 
Sim.QKalman=[Qangle       0;0       Qbias];     
Sim.biasKalman=zeros(2,1);
Sim.angleG=zeros(2,1);     
Sim.Pphi=zeros(2,2);
Sim.Ptheta=zeros(2,2);
Sim.Rmedido=0.03;
Sim.KphiKalman=zeros(2,1);
Sim.KthetaKalman=zeros(2,1);
Sim.aux=[0;0;0];
%%%%%%%%%%%%%%%%%%% state Space variables %%%%%%%%%%%%%%%%%%%%%%%%
% angular position in Fi
Sim.AngFi=iniC;% actual [phi;theta;psi] 
Sim.AngFiR=[0;0;0];  % [phi;theta;psi] read by IMU with noise
Sim.AngFiM=[0;0;0];  % [phi;theta;psi] filtered using Kalman filter

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]孙悦,盖玉林,陈明,等.带虚拟控制律饱和的四旋翼无人机姿态跟踪控制[J/OL].控制工程:1-9[2024-07-17].https://doi.org/10.14107/j.cnki.kzgc.20240139.

[2]宋馨怡,贾磊,潘持玉,等.基于LADRC扩张滑模控制的四旋翼无人机的控制方法稳定性研究[J].工业技术与职业教育,2024,22(03):1-5.DOI:10.16825/j.cnki.cn13-1400/tb.2024.03.017.

🌈4 Matlab代码实现

图片

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值