【无人机】四旋翼无人机的几何跟踪控制研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客  

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

文献来源:

摘要:本文为四旋翼无人机(UAV)的跟踪控制提供了新的结果。无人机有四个输入自由度,即四个旋翼推力的大小,用于控制六个平移和旋转自由度,实现四个输出的渐近跟踪,即车辆质心的三个位置变量和一个车身固定轴的方向。引入了全球定义的四旋翼无人机刚体动力学模型作为分析的基础。在特殊的欧几里得群SE(3)上开发了一种非线性跟踪控制器,并显示出它具有几乎是全局的理想闭环性质。几个数值示例,包括四旋翼飞行器从最初颠倒中恢复的示例,说明了控制器的多功能性。

原文摘要:

Abstract:

This paper provides new results for the tracking control of a quadrotor unmanned aerial vehicle (UAV). The UAV has four input degrees of freedom, namely the magnitudes of the four rotor thrusts, that are used to control the six translational and rotational degrees of freedom, and to achieve asymptotic tracking of four outputs, namely, three position variables for the vehicle center of mass and the direction of one vehicle body-fixed axis. A globally defined model of the quadrotor UAV rigid body dynamics is introduced as a basis for the analysis. A nonlinear tracking controller is developed on the special Euclidean group SE(3) and it is shown to have desirable closed loop properties that are almost global. Several numerical examples, including an example in which the quadrotor recovers from being initially upside down, illustrate the versatility of the controller.

四旋翼无人机 (UAV) 由两对反向旋转的旋翼和螺旋桨组成,位于方形框架的顶点。它能够垂直起降(VTOL),但它不需要复杂的机械连杆,例如斜盘或跷跷板铰链,这些通常出现在典型的直升机中。由于其简单的机械结构,它已被设想用于各种应用,例如监视或移动传感器网络以及教育目的。有几个大学级项目[1],[2],[3],[4]和商业产品[5],[6],[7]与四旋翼无人机的开发和应用有关。

尽管人们对四旋翼无人机产生了浓厚的兴趣,但很少有人关注为它们构建非线性控制系统,特别是设计非线性跟踪控制器。比例导数控制器或线性二次调节器等线性控制系统广泛用于增强平衡的稳定性[1],[3],[4],[8][9]。针对饱和位置在[10]中的四旋翼无人机的线性动力学,开发了一种非线性控制器。[11]中应用了反步和滑模技术。由于这些控制器基于欧拉角,因此它们在表示四旋翼无人机的复杂旋转机动时表现出奇点,从而从根本上限制了它们跟踪非平凡轨迹的能力。

几何控制涉及在非线性流形上演化的动态系统的控制系统的开发,这些非线性流形不能用欧几里得空间全局识别[12],[13][14]。通过从本质上表征非线性流形的几何性质,几何控制技术为控制理论提供了独特的见解,而这些见解无法从使用局部坐标表示的动态模型中获得[15]。这种方法已被应用于李群上的完全驱动刚体动力学,以实现几乎全局的渐近稳定性[14],[16],[17],[18]。

在本文中,我们开发了一种用于四旋翼无人机的几何控制器。四旋翼无人机的动力学在特殊欧几里得群SE(3)的构型流形上全局表示。我们构建了一个跟踪控制器,以遵循质心和航向的规定轨迹。结果表明,该控制器对跟踪误差的零平衡表现出几乎全局指数吸引力。由于这是一种无坐标控制方法,因此完全避免了使用局部坐标时出现的奇异点和复杂性。

与其他刚体动力学的几何控制方法相比,这是不同的,因为它控制驱动不足的四旋翼无人机使用四个推力输入稳定六个平移和旋转自由度,同时渐近跟踪四个输出,包括其位置和航向方向。我们证明该控制器对于四旋翼无人机的复杂杂技机动特别有用,例如从最初的颠倒中恢复。

📚2 运行结果

 

 

 

 部分代码:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%% INTIALIZING - INTIAL PARAMETERS x,v,R,w %%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % Intial position
            x_quad_0 = [0;0;0];
        %     xQ0 = [1;3;2];
        % Intial velocity
            v_quad_0 = zeros(3,1);
        % Initial orientation
%             R0 = RPYtoRot_ZXY(0*pi/180, 0*pi/180, 0*pi/180);
        R0 = eye(3);
        % Intial angular velocity
            w0= zeros(3,1);
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % Concatenating the entire initial condition into a single vector
            x0 = [x_quad_0; v_quad_0; reshape(R0,9,1); w0];
        
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        
        %%%%%%%% SIMULATION
        odeopts = odeset('RelTol', 1e-8, 'AbsTol', 1e-9) ;
        % odeopts = [] ;
        [t, x] = ode15s(@odefun_quadDynamics, [0 20], x0, odeopts, quad_params) ;

        % Computing Various Quantities
        disp('Evaluating...') ;
        index = round(linspace(1, length(t), round(1*length(t))));
        % ind = 0:length(t);
        for i = index
           [~,xd_,f_,M_] =  odefun_quadDynamics(t(i),x(i,:)',quad_params);
           xd(i,:) = xd_';
           pos_err_fx(i) = norm(x(i,1:3)-xd(i,1:3));
           vel_err_fx(i) = norm(x(i,4:6)-xd(i,4:6));
           f(i,1)= f_;
           M(i,:)= M_';
        end

        %%% Plotting graphs
        plott(t,x,xd,pos_err_fx,vel_err_fx);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%% CASE 2 %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        
    case 2
            clear;
        %%% INITIALZING SYSTEM PARAMETERS %%%
        % moment of Inertia in Kg(m^2)
            quad_params.params.mass = 0.5 ;
        % moment of Inertia in Kg(m^2)
            quad_params.params.J = diag([0.557, 0.557, 1.05]*10e-2);
        % acceleration via gravity contant
            quad_params.params.g = 9.81 ;
        % interial fram axis
            quad_params.params.e1 = [1;0;0] ;
            quad_params.params.e2 = [0;1;0] ;
            quad_params.params.e3 = [0;0;1] ;
        % distance of center of mass from fram center in m
            quad_params.params.d = 0.315;
        % fixed constant in m
            quad_params.params.c = 8.004*10e-4;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码、数据、文章讲解

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值