m基于PID控制算法的四旋翼无人机飞行控制simulink仿真

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

  无人机采用常见的四旋翼无人飞行器,如图1所示。

      PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制器适用于各种控制对象无法进行测量获得系统参数的情况,其根据控制对象的输出和参考控制变量的输入差进行实时的调整实现对未知参数控制对象的有效控制。PID控制器由比例调整模块,积分调整模块以及微分调整模块三个部分构成,那么其输入的误差信号e(t)与输出u(t)的关系为公式6

 

       公式4.15中,参数kp表示的是比例调整模块的系数,其作用是将系统的反馈误差e(t)根据参数 kp进行调节,使得调整后的控制对象的反馈误差减小。当比例系数kp​​​​​​​取较大值的时候,那么控制器的调整速度较快,但是其抖动也较大,从而导致系统了不稳定性。当比例系数kp取较小值的时候,那么控制器调整速度较慢,但调整过程较为稳定。

       参数ki​​​​​​​表示的是积分调整模块的系数,其作用将消除系统中存在的稳态误差,当存在稳态误差的时候,通过积分调节模块进行调节,直到完全消除稳态误差为止,之后积分调节功能停止工作,积分调节模块输出一个固定值。当积分调制系数ki​​​​​​​较小的时候,积分调节作用越强,反之,积分调节作用较弱,系统调整速度较慢。

      参数kd表示的是微分调整模块的系数,其主要是对系统反馈误差的变化率进行调整,其具有超前调整功能,可以预测系统反馈误差的变化率,因此可以在反馈误差产生之间将误差消除,因此通过设置微分调整参数,可以降低PID控制器的超调量,并加快系统的调整速度。

2.仿真效果预览

matlab2022a仿真结果如下:

    对无人机姿态控制系统进行建模,整个系统主要包括三个核心模块,无人机空间位置控制模块,无人机姿态控制模块以及无人机动力学模块。仿真的无人机仿真参数如下所示:

参数

单位

质量m

Kg

0.468

半轴距l

m

0.225

阻力系数 kd

N*m/rpm^2

1.5*10^-9

升力系数 kt

N/rpm

6.11*10^-8

X轴转动惯量 Ix

Kg*m^2

0.004856

Y轴转动惯量 Iy

Kg*m^2

0.004856

Z轴转动惯量 Iz

Kg*m^2

0.008801

 

 

 

 

3.MATLAB核心程序

        无人机模型主要包括目标输入模块,位置控制模块,姿态控制模块,姿态转化为控制量模块以及动力学模块五个部分。其中,无人机的核心模块是采用6DOF (Euler Angles)建模,6DOF(Euler Angles) 模块充分考虑了物体固定坐标系(Xb、Yb、Zb)相对于地球参考系(Xe、Ye、Ze)的旋转因素。无人机固定坐标系的原点是无人机的重心,无人机被假定为刚性,这一假设消除了考虑单个质量元件之间作用力的必要性。平面地球参考系被认为是惯性系,并且忽略由于地球相对于太阳的公转运动而产生的力。该模型,主要通过输入初始的Roll,Pitch,Yaw,初始的p,q,r,以及XYZ轴的转动惯量 Ix,Iy,Iz。其中,Roll,Pitch,Yaw,p,q和r的初始值均设置为零,转动惯量Ix,Iy,Iz设置根据表1的参数设置。

....................................................................
m       = 0.468;
g       = 9.8;
Ixx     = 0.004856;
Iyy     = 0.004856;
Izz     = 0.008801;
L       = 0.225;
kd      = 1.5*10^-9;
kt      = 6.11*10^-8;
 
%姿态角和位置的六个PID控制器未训练的参数
%PID x
kpx     = 0.8;
kix     = 1e-4;
kdx     = 1.3;
%PID y
kpy     = 0.8;
kiy     = 3e-4;
kdy     = 1.3;
%PID z
kpz     = 1.2;
kiz     = 1e-6;
kdz     = 2;
%PID phi
kpphi   = 2000;
kiphi   = 0;
kdphi   = 4000;
%PID theta
kptheta = 2000;
kitheta = 0;
kdtheta = 4000;
%PID psi
kppsi   = 800;
kipsi   = 0;
kdpsi   = 400;
05_065_m

4.完整MATLAB

V

猜你喜欢

转载自blog.csdn.net/hlayumi1234567/article/details/128678545