技术文章

使用MATLAB/Simulink设计无人机飞行控制系统

作者 郭文彦、MathWorks


众所周知,无人机已经越来越广泛的应用于国防,电力,石油,地质勘察,乃至消费娱乐行业,有越来越多的工程师开始从事无人飞行器的设计,MATLAB/Simulink通常在无人机的设计过程中发挥着不可替代的作用。

今天就给大家介绍一下如何采用MATLAB/Simulink进行无人飞行器设计,这个过程通常可简单分为以下几个阶段:

无人机的设计流程

无人机的设计流程

在实际工程中,每个阶段或多个阶段之间往往会进行多次迭代,以不断的优化设计。

根据飞行器构型计算气动参数

我们以设计一个小型固定翼无人机为例。

首先需要根据无人机的飞行性能进行气动外形设计:

无人机的几何构型

无人机的几何构型

我们要设计的是一个低速低空无人飞行器,对飞行控制系统的设计要求是,我们要设计一个能够保持飞机在飞行包线内具有高度保持,速度保持功能的自动飞行控制律,并且飞控系统的飞行品质能够满足我们预先定义的标准。

在设计之前,我们先简单介绍一个小工具DATCOM,这是美国空军开源的快速气动参数计算工具,当我们不具备风洞试验条件时,或觉得使用CFD计算太慢,准备工作繁琐时,用这个工具可以快速的生成空气动力学参数,便于工程师进行无人机动力学分析和控制系统设计。

DATCOM需要用户根据自己飞机的几何形状,通过一个文本文件描述定义几何形状,

 一个典型的DATCOM飞机几何构型定义文件

 一个典型的DATCOM飞机几何构型定义文件

这就是一个典型的DATCOM输入文件,设计师需要按照格式定义需要计算气动系数的工作点,如马赫数,攻角,高度等,也需要定义无人机的参考面积,翼型等。总之通过这样的定义就可以快速的算出一个已知构型飞机的气动参数了。

不过这个方法对刚上手的同学似乎并不友好,现在大家可以在MATLAB Add-on上搜索AID或前往此链接下载。

这个设计工具可以通过图形化的方式把飞机画出来。我们通过它画出无人机的外形,并定义重心位置。

绘制无人机构型

绘制无人机构型

调用DATCOM进行分析

调用DATCOM进行分析

根据无人飞行器的构型,在MATLAB中画出了飞机的构型,得到DATCOM的输入文件,然后调用DATCOM计算气动系数。

更具体的操作,大家可以参考AID的使用手册及MathWorks的教学视频 (15:58)

相信你通过简单学习后,马上就可以画出像下面这样的大型客机了

大型客机示例

大型客机示例

总之,通过以上操作,得到了我们无人机的气动系数,这是进行飞控设计的第一步。

建立无人机动力学模型

前面我们用MATLAB绘制了飞机的几何外形,并调用DATCOM计算了无人机的气动参数。我们现在看一看DATCOM输出的.out文件是什么样的。我们又该怎么利用它呢?

通过DATCOM计算得到的气动参数文件

通过DATCOM计算得到的气动参数文件

这是一个非常复杂的文件,里面记录了我们之前定义的各种飞行包线内的工作点上,无人机的各种气动参数,包括升力系数,阻力系数,气动力系数导数,气动力矩系数等,这么多表格,如果我们一个一个手敲进去那就太麻烦了,不用担心,在MATLAB中具有自动解析DATCOM气动数据的功能,只要一行命令。

使用命令将DATCOM输出导入MATLAB

使用命令将DATCOM输出导入MATLAB

所有的系数就导入到MATLAB中的一个结构体里。

接下来,我们可以根据动力学方程搭建无人机六自由度模型,并搭建气动模型把上面这些表格放进去。

MATLAB中已经考虑到各位无人机设计师的需求,你只需在Aerospace Block中拖一个模块并把刚才的导入的DATACOM气动系数结构体直接填到DATCOM气动计算模块中的参数表就可以使用了。

气动计算模型

气动计算模型

同时也提供了相对不同坐标系下不同运动学表达方式的的3自由度和6自由度刚体动力学模型。

Aerospace Block中的6DOF 动力学模型

Aerospace Block中的6DOF 动力学模型

根据前面的描述,本次飞行控制设计的目标是设计一个高度和速度保持自动驾驶仪。我们做简化假设,仅考虑纵向通道。

下面是搭建的本体气动力与气动力矩计算功能和作动面气动力和气动力矩计算功能。

气动力和气动力矩计算模型

气动力和气动力矩计算模型

下面是考虑了发动机推力系统与气动力组合的外层模型,动力学部分则采用了3自由度模型用于模拟纵向动力学。动力学模型中需要无人机设计师根据无人机的质量和惯量特性将参数填入。

本体综合模型

本体综合模型

此外我们还可以使用Aerospace Blockset模块中的环境模型,将大气环境,重力加速度引入模型中。

环境模型

环境模型

关联到控制系统,还有传感器模型和作动器模型

传感器模型

传感器模型

作动器模型

作动器模型

于是,我们得到了完整的无人机纵向动力学模型。

系统分析和控制系统设计

为了设计无人机的高度保持和速度保持功能,我们可以对无人机进行开环动力学分析,这需要首先把无人机模型拉至设计工作点附近配平后,并进行小扰动分析,辨识其该点的近似线性系统参数。这通常使用Simulink和控制相关的工具箱完成,如Linear Analysis Toolbox, Control System Toolbox。

并根据辨识的线性系统设计控制律。无人机的高度保持可简单划分为两个回路,内回路主要负责姿态保持以维持指定的航迹倾角。外回路则需根据自动驾驶仪面板上的高度指令生成航迹倾角指令,当高度指令变化时,使得航迹倾角向上或向下以进行爬升和下降,高度变化时还需考虑推力指令以保证顺利爬升或下降。与之类似,速度保持则即包括推力控制也涉及俯仰安定面以使得速度变化时高度能保持稳定。

控制系统设计流程

控制系统设计流程

下图为根据以上分析设计的控制器架构图。

高度保持控制器架构

高度保持控制器架构

设计时,首先进行内回路设计,即姿态角设计,然后进行外回路设计,即高度保持控制。设计高度保持功能(即外回路)时,需把内回路连带动力学看成一个被控对象进行分析和设计。通常情况下需先选定一些工作点,根据飞行品质要求在每个工作点进行设计。

完整的无人机闭环控制模型

完整的无人机闭环控制模型

最后,我们终于搭好了模型,并且完成了控制设计。但总觉得少了点什么,如果能可视化仿真不是更好吗,MATLAB/Simulink允许设计师建立与Flightgear的连接,可以把无人机的位置姿态甚至舵面位置,起落架位置都在视景平台上显示出来。

下面的视频演示了无人机从平飞到在自动驾驶仪面板上逐次输入高度爬升指令,加速指令,高度下降指令的3D演示,也演示了实时绘制飞行数据的内容。

2022 年发布

查看文章,了解相关功能

查看文章,了解相关行业