2022年动态系统建模仿真_四旋翼建模与控制_实验报告 .pdf
1 动态系统建模仿真实验 四旋翼飞行器仿真实验报告院(系)3 系姓名* 学号*_ 2013 年 12 月 8 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 2 1 实验内容基于 Simulink 建立四旋翼飞行器的悬停控制回路, 实现飞行器的悬停控制;建立 UI 界面,能够输入参数并绘制运动轨迹;基于 VR Toolbox 建立 3D 动画场景,能够模拟飞行器的运动轨迹。2 实验目的通过在 Matlab 环境中对四旋翼飞行器进行系统建模,使掌握以下内容:1、四旋翼飞行器的建模和控制方法2、在 Matlab 下快速建立虚拟可视化环境的方法。3 实验设备硬件: PC机。工具软件:操作系统 -Windows 系列;软件工具 -MATLAB 、VR Toolbox及 Simulink。4 实验原理及要求4.1 四旋翼飞行器四旋翼飞行器通过四个螺旋桨产生的升力实现飞行,原理与直升机类似。四个旋翼位于一个几何对称的十字支架前,后,左,右四端,如图1 所示。旋翼由电机控制;整个飞行器依靠改变每个电机的转速来实现飞行姿态控制。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 3 图 1 四旋翼飞行器旋转方向示意图在图 1 中, 前端旋翼 1 和后端旋翼3 逆时针旋转, 而左端旋翼2 和右端的旋翼4 顺时针旋转, 以平衡旋翼旋转所产生的反扭转矩。由此可知, 悬停时, 四只旋翼的转速应该相等,以相互抵消反扭力矩;同时等量地增大或减小四只旋翼的转速, 会引起上升或下降运动; 增大某一只旋翼的转速, 同时等量地减小同组另一只旋翼的转速, 则产生俯仰、横滚运动;增大某一组旋翼的转速,同时等量减小另一组旋翼的转速,将产生偏航运动。4.2 建模分析四旋翼飞行器受力分析 ,如图 2 所示图 2 四旋翼飞行器受力分析示意图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 4 旋翼机体所受外力和力矩为:重力 mg , 机体受到重力沿 zw方向;四个旋翼旋转所产生的升力iF(i= 1 , 2 , 3 , 4),旋翼升力沿bz 方向;旋翼旋转会产生扭转力矩iM(i= 1 , 2 , 3 , 4) 。iM 垂直于叶片的旋翼平面,与旋转矢量相反。力模型为:2iFiFk, 旋翼通过螺旋桨产生升力。Fk是电机转动力系数,可取826.11 10/Nrpm ,i为电机转速。旋翼旋转产生旋转力矩Mi(i=1,2,3,4),力矩 Mi 的旋向依据右手定则确定。力矩模型为2iMiMk,其中Mk是电机转动力系数, 可取921.5 10/Nm rpmi为电机转速。 当给定期望转速后, 电机的实际转速需要经过一段时间才能达到。 实际转速与期望转速之间的关系为一阶延迟:()desimiik响应延迟时间可取0.05s(即20mk)。期望转速desi则需要限制在电机的最小转速和最大转速之间,范围可分取1200rpm,7800rpm。飞行器受到外界力和力矩的作用,形成线运动和角运动。 线运动由合外力引起,符合牛顿第二定律:20000b wimrRmgFr 为飞机的位置矢量。角运动由合力矩引起。四旋翼飞行器所受力矩来源于两个方面:1)旋翼升力作用于质心产生的力矩;2)旋翼旋转产生的扭转力矩。角运动方程如下式所示。其中, L 为旋翼中心建立飞行器质心的距离,I 为惯量矩阵。24131234(-)=(-)L FFpppIqL F FqIqrrrMMMM名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 5 4.3 控制回路设计控制回路包括内外两层。外回路由Position Control 模块实现。输入为位置误差,输出为期望的滚转、俯仰和偏航角( )( )( )desdesdesttt、。内回路由Attitude Control 模块实现,输入为期望姿态角, 输出为期望转速。Motor Dynamics 模块模拟电机特性, 输入为期望转速 ()、, 输出为力和力矩。 Rigid Body Dynamics 是被控对象,模拟四旋翼飞行器的运动特性。图 3 包含内外两个控制回路的控制结构(1)内回路:姿态控制回路对四旋翼飞行器, 我们唯一可用的控制手段就是四个旋翼的转速。因此,这里首先对转速产生的作用进行分析。假设我们希望旋翼1 的转速达到1des,那么它的效果可分解成以下几个分量:h:使飞行器保持悬停的转速分量;F:除悬停所需之外,产生沿ZB 轴的净力;:使飞行器负向偏转的转速分量;:使飞行器正向偏航的转速分量;因此,可以将期望转速写成几个分量的线性组合:1deshF其它几个旋翼也可进行类似分析,最终得到:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 6 12341011110110111101deshFdesdesdes在悬浮状态下,四个旋翼共同的升力应抵消重力,因此:24FhKmg此时,可以把旋翼角速度分成几个部分分别控制,通过“ 比例-微分 ” 控制律建立如下公式:,=()()()()()()desdespddesdespddesdespdkkkkkk综合以上三式可得到 “ 期望姿态角 -期望转速 ” 之间的关系,即内回路。(2)外回路:位置控制回路外回路采用以下控制方式:1)通过位置偏差计算控制信号(加速度) ;2)建立控制信号与姿态角之间的几何关系;3)得到期望姿态角,作为内回路的输入。期望位置记为desir。可通过 PID 控制器计算控制信号:,()()()=desi Tid ii Tip ii Tii ii Tirrkrrkrrkrr()0, i Tr是目标悬停位置是我们的目标悬停位置(i=1,2,3),desir是期望加速度,即控制信号。注意:悬停状态下线速度和加速度均为0,即,=0i Ti Trr。通过俯仰角和滚转角控制飞行器在XW 和 YW 平面上的运动,通过控制偏航角,通过F控制飞行器在 ZB 轴上的运动。可得如下公式:123(cossincos sinsin)(sinsincoscos sin )cos cosiiimrFmrFmrmgF根据上式可按照以下原则进行线性化:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 7 1)将俯仰角、滚转角的变化作为小扰动分量,有sin, sin,cos1 , cos1;2)偏航角不变,有0=T,其中0初始偏航角,T为期望偏航角。3)在悬停的稳态附近,有iFmg。根据以上原则线性化后, 可得到控制信号 (期望加速度) 与期望姿态角之间的关系:123(cossin)(sincos)8desdesdesTTdesdesdesTTdesFhFrgrgkrm由期望加速度计算期望姿态角,则内回路的输入为:121231(sincos)1(cossin)8desdesdesTTdesdesdesTTdesFFhrrgrrgmrk4.4 GUI 界面设计建立了控制回路以后,有时候我们需要对控制回路的参数进行调整,以获得不同的控制效果。 这时候,一个方面的用户 GUI 界面将会帮我们节省很多工作。下面介绍在 Matlab 里建立 GUI 界面的过程。下图是为四旋翼飞行器所创建的GUI 参数界面。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - 8 图 4 GUI 界面5 实验步骤与结果(1)根据控制回路的结构建立simulink 模型;在 Simulink 与 VR 模块的接口处,采用了rate转换器,同时由于每个轴的旋转都包含四个变量, 前三个变量为轴的定位, 后一个是旋转角度。 具体配置细节图如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - 9 其中的 VR 模块通过下图配置(2)为了便于对控制回路进行参数调整,利用 Matlab 软件为四旋翼飞行器创建 GUI 参数界面;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - 10 由于给定程序未提供由GUI_config 窗口内部数据到 Simlink 数据的传递, 所以对程序进行了如下修改:% desired position %xdes = str2num(get(handles.xt_value, String );ydes = str2num(get(handles.yt_value, String );zdes = str2num(get(handles.zt_value, String );后面加入如下代码assignin(base,xdes,xdes);assignin(base,ydes,ydes);assignin(base,zdes,zdes); 这样点击窗口的运行之后,就能将目标位置xdes的值由 GUI_config中导入到workspace ,然后 simlink 直接调用 workspace的值进行仿真。其余数据的传递原理一样,不再赘述。(3)利用 Matlab 的 VR Toolbox 建立四旋翼飞行器的动画场景名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - 11 在其中加入了山地型地图,增加模拟效果。(4)根据系统的结构框图,搭建Simulink 模块以实现模拟飞行器在指定位置的悬停。使用默认数据,此时xdes=3,ydes=4,zdes=5,开始仿真,可以得到运动轨迹 x、y、z 的响应函数,同时可以得到在xyz 坐标中的空间运动轨迹。然后点击 GUI 中的 VR 按钮使 simulink 的工作空间中载入系统仿真所需的参数,把 x、y、z 的运动轨迹和 Roll,Pitch,Yaw 输入至 VR 中的模拟飞行器中,观察名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 12 飞行器的运动轨迹和运动姿态,然后再使用一组新的参数xdes=4,ydes=5,zdes=10进行四旋翼飞行器运动进行仿真模拟,可以看出仿真结果和动画场景相吻合。6 实验总结与心得此次 MATLAB 实验综合了 SIMULINK 、GUI 和 VR 场景等多个部分,对四旋翼飞行器运动进行了仿真模拟。由仿真结果可以看出, 四旋翼飞行器最终位置达到了期望给定的位置, 三个方向的响应曲线最终平稳,对应飞行器悬停在期望位置,达到了控制要求。通过本次实验,学到了很多有用的仿真知识。虽然本次实验的大部分程序,老师都有提供出来, 但是经过仔细的查看与理解, 对各个部分流程都有了比较好的理解。基本上掌握了VR 三维的仿真, GUI 窗口界面的编写, Simulink 模型的搭建和调试方法。 基本掌握了四旋翼飞行器的建模方法,与控制原理, 为将来对名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 13 实物飞行器的控制打下基础。真的非常感谢这个实验,带来的一次锻炼机会!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -