APP下载

旋翼式无人机从仿真到实践

2022-05-28彭晓珊

贵阳学院学报(自然科学版) 2022年1期
关键词:飞控控制算法旋翼

古 训,彭晓珊

(贵阳学院 电子与通信工程学院,贵州 贵阳 550005)

旋翼式无人机按照旋翼数量可以划分为单旋翼无人直升机以及多旋翼无人直升机。其中,单旋翼无人直升机通常由主旋翼、尾旋翼和机身组成,相较于多旋翼无人直升机,具有更大的飞行机动性、更强的负载能力与更长的续航能力,但较为复杂的机械结构增加了直升机的维护难度。多旋翼无人直升机通常由偶数螺旋桨和机身组成,相较于单旋翼无人直升机,控制方式简单,易于维护,可靠性强[1-2]。

20 世纪90 年代,随着微机电设备的研究成熟与控制系统的发展,旋翼式无人机逐渐在民用和军用上得到应用[3]。同时,由于其具有多变量、强耦合、高度非线性以及静不稳定的动力学特性,使得针对旋翼式无人机的控制方法得到了广泛的研究。如基于平衡点线性化模型的PID 控制方法[4]、LQR 控制[5]、H 无穷控制[6]等,以及基于非线性动力学模型的滑模控制[7]、自适应控制[8]、反步控制[9]等。相比于线性控制方法,非线性控制方法综合考虑无人机系统的建模不确定性、动力学模型非线性因素以及外界未知扰动,因此具有较好的控制效果。但是,值得一提的是,上述文献中,仅给出了系统的仿真效果或实际飞行效果。受制于传感器噪声、控制频率、系统状态可观可测等因素,从控制算法的提出到部署到无人机实际飞行仍然较难快速实施。

针对这一问题,文献[10]中结合Matlab 与Flightgear 提出一种可视化半实物仿真平台,并通过仿真验证了所提出的半实物平台的可靠性。文献[11]中结合Matlab 与Gazebo 提出了一种仿真平台,并结合教学效果证明了该方案的优越性。但是上述方案仅提出一种可行的半实物仿真方案,相较于实机飞行在算法稳定性与控制可行性上仍有一定的差距。

因此,本文提出一种从仿真到实践的通用研究方案。具体包括旋翼式无人机动力学模型、基于Matlab/Simulink 的仿真验证、基于ArduPilot 开源飞控的可视化仿真验证、基于Matlab/XPC 与ArduPilot 硬件在环仿真平台算法验证以及实机飞行验证。相较于上述文献中提到的仿真/半实物平台,本文提出的旋翼式无人机从仿真到实践验证方案能够较好地完成基于模型的非线性控制算法验证,并逐步部署到真机飞行中。

1 旋翼式无人机动力学模型

为方便后续叙述,首先提出两个右手正交坐标系。定义{I}={oI,x I,y I,zI}为惯性坐标系,其中oI固定在大地表面,x I指向北方,y I指向东方,zI竖直向下指向地心。定义 {B}={oB,x B,y B,zB}为机体坐标系,其中oB固定在机身重心,xB指向机身前向,yB指向机身右向,zB垂直机身指向下面。参考文献[1,2],旋翼式无人机的运动学方程和姿态动力学方程可以写为:

其中,矢量p∈R3和v∈R3分别表示旋翼无人机在{I}下的位置和线速度,m表示旋翼无人机的质量,g表示重力加速度,f表示旋翼无人机提供的总升力。矩阵σ∈R3×3表示旋翼无人机从机体坐标系到惯性坐标系的旋转矩阵。矢量ω∈R3表示旋翼无人机在{B} 下的角速度,矩阵J∈R3×3表示旋翼无人机的系统惯性矩阵,矢量τ∈R3表示控制力矩,映射sk(ω)表示由矢量ω张成的反对称矩阵,Δp∈R3和Δa∈R3表示由系统未建模动态和外部未知扰动组成的集总扰动。

注 1:假设集总未知扰动Δp和Δa有界。在实际飞行控制系统开发过程中,难以避免引入未知扰动。一般情况下,存在于自然界的未知扰动总是有界的,因此这种假设是合理的。

注 2:公式(1)中给出的旋翼式无人机模型为广义模型。具体到单旋翼和多旋翼无人机,由于执行结构与动力分配方式不同[1,8],其分配到执行结构的权重结果不同。在后续的仿真到实践开发流程中,由于采用开源飞控,内含针对不同旋翼类型的动力分配方式,可以根据不同的机型选择适配相应的动力分配方式。因此,在本文中不再单独列出此部分内容。

2 从仿真到实践的开发流程

2.1 基于Matlab/Simulink 的仿真验证

Matlab 是美国MathWorks 公司1984 年开始出品的商业软件,可用于数值矩阵运算、图像/语音处理、无线通信仿真、深度学习训练、控制工程仿真应用等。其特点是如下:一是高效的数值计算能力;二是可以实现可视化、结构化、模块化编程;三是友好的用途编程界面与快速错误定位功能;四是丰富可靠的应用工具箱。

图1 基于Matlab/Simulink 的旋翼无人机仿真流图

基于Matlab 软件的上述优点,针对公式(1)中旋翼式无人机的运动与动力学模型,通过Matlab/Simulink 模块中集成的丰富的矩阵运算库函数,可以非常方便地实现前期的非线性控制算法验证。如图2 所示,其优点在于,开发速度快,功能模块齐全。编程使用语言为基于Matlab的m脚本化语言。

图2 基于Matlab/Simulink 的旋翼无人机仿真模块图

从图2 中可以看出,基于Matlab/Simulink 的旋翼无人机仿真以模块可视化形式编写,分别对应用参考轨迹(Reference)模块,控制器设计模块(Controller),系统模型模块(Helicopter Model)以及波形查看模块(Scope)。在控制器设计/验证时,可以根据不同模块的功能快速定位需要修改的部分,完成对应的代码修改。

2.2 基于ArduPilot 开源飞控的可视化仿真验证

2.1 节完成了基于Matlab/Simulink 的算法验证仿真,但是其控制逻辑较为简单。一款可以应用的无人机飞行控制软件除包含有飞行控制算法外,还应具备底层传感器读取、传感器数据融合、控制逻辑的判断与调度、失控保护策略、飞控实时信息存储等多个模块。因此,在部署到实际飞行之前,有必要针对所设计的飞行控制算法完成“基于完整约束的飞控软件”仿真调试。

本文中推荐两款较为优秀的开源飞控软件 :1)由开源基金Dronecode 管理的PX4(又名AutoPilot)飞控软件,该软件代码采用的是BSD 协议,最早由苏黎世联邦理工学院的计算机视觉与几何实验室的一个软硬件项目PIXHAWK 演变而来。2)长期开源项目ArduPilot,该软件代码采用的是GPLv3 协议,最早由无人机商业公司3DR Robot开源而来。经过多年的发展,两款飞控软件均有较好的发展,维护更新迭代较快,且均配备有较为完善的开发指导流程。本文以ArduPilot 为例进行说明。

ArduPilot 支持多种旋翼式无人机飞行控制,包含有直升机、四旋翼、六旋翼、八旋翼、共轴双桨多旋翼等[12]。其飞行模式包含有Stabilize Loiter Guided Acro Rtl Poshold 等十几种。软件在环仿真采用Maxproxy 辅助工具完成,只需针对上述一种飞行模式进行修改即可。本文给出Stabilize 模式下的飞行控制流程图,如图3 所示。另一方面,由于ArduPilot 采用的标准的Mavlink通信协议,可以采用ROS/Mavros 或者Dronekit 辅助形式完成飞行控制器的设计与替换。其飞行控制流程如图4 所示。编程使用语言为C++/Python。

图3 Stabilize 模式下的旋翼无人机飞行控制流程图

图4 基于协处理器的控制流程图

2.3 基于Matlab/XPC 与ArduPilot 硬件在环仿真平台算法验证

上述步骤完成了控制算法的软件在环仿真,2.2 中的仿真环境,考虑了无人机飞行过程中的整个飞行框架,相较于2.1 中的仿真效果,更具有稳定性。但是上述软件在环仿真中忽略了实际飞行过程中的未建模动态以及传感器噪声和延迟问题。如果直接移植到实机飞行,有可能因为上述原因造成飞机的高频抖动,甚至失稳。因此,有必要完成基于Matlab/XPC 与ArduPilot 的硬件在环仿真平台算法验证。

相较于2.2 中提出的仿真方案,本步骤中飞机和传感器设备将采用真实设备,将步骤一中的Simulink 仿真代码通过XPC 模块生成对应的C/C++代码,下载到下位机中。通过串口设备完成下位机与机载控制器之间的无人机数据交互,实现无人机的飞行。其仿真平台示意图如图5 所示,半实物仿真控制流程图如图6 所示。

图5 半实物仿真平台示意图

图6 半实物仿真平台控制流程图

飞机固定在球头底座上,因此在半实物仿真验证过程中,姿态环的数据来自于机载传感器,位置信息来自于虚拟的动态模型解算[13]。

从图5-6 中可以看出,PC 机主要运行Matlab/XPC 的系统编程,然后通过网络接口将在Matlab中编译好的C++代码下载到X86 结构的下位机中。下位机通过串口与固定在球头测试台架上的无人机飞控进行交互,主要完成姿态信息与控制量之间的交互。然后飞控单元在接收到控制信号后完成对无人机的飞行控制,进而实时改变无人机的飞行状态。图5 中的遥控器主要完成飞行模式的转换,以及飞控安全的保证。同时在实际飞行操作过程中,出于安全考虑以及飞行测试台架的最大倾角限制,无人机外部需要固定安全保护网,且无人机飞行角度不易太大。通过本步骤的测试,主要实现了完成无人机的硬件在环半实物控制仿真实验。基于此方案的无人机(主要为单旋翼无人机和四旋翼无人机)飞行控制设计可以参看本课题组相关论文,在此不再赘述。

2.4 基于运动捕捉系统的实机飞行

室内运动捕捉系统可以输出高采样频率、高精度的三维空间刚体位置和姿态信息。室内定位精度可达毫米级别,位姿输出频率可达150Hz 以上。相较于室外空旷环境下GPS 的米级定位精度,室内运动捕捉系统为旋翼式无人机室内位置和姿态控制算法验证提供了保障。因此,在完成前三步骤的基础上,将MCU 放在无人机上即可。相较于前三个步骤,本步骤完全脱离了软件仿真,对控制器的稳定性要求更高。其基于运动捕捉系统全自由度室内飞行示意图如图7 所示。

图7 运动捕捉系统下全自由度无人机飞行示意图

用于实时计算旋翼无人机姿态及位置的协同处理器可以采用树莓派等小型微控制器完成,也可以通过对开源算法ArduPilot 固件进行修改,将控制算法写入飞控中。后者则通过不同模式的切换完成控制算法的验证实验。

从图7 可以看出,Optitrack 主要完成无人机室内三自由度飞行位姿数据的获取,通过局域网发送给PC 机。然后PC 机与无人机飞控单元(包含有X86 MCU 与Ardupilot 飞控)通过无线局域网完成数据的交互。具体的,飞控单元通过无线局域网获取无人机的位姿数据;PC 机获取无人机飞行状态数据,包含有实时的飞行模式、状态、控制量等。最后,飞控单元在接收到实时的无人机位姿后,结合内部的飞行控制算法,完成对无人机的飞行控制。图7 中的遥控器主要用于完成无人机飞行模式的切换,用以保证无人机的安全飞行。同时在本步骤中,出于安全飞行的考虑,室内飞行建议在四周具有围栏的环境中完成。

注:PC 机一般不参与飞行控制算法的实施,仅用于完成无人机飞行数据的显示。

2.5 室外飞行控制

相较于2.4 所提出的室内运动捕捉环境下的飞行实验,室外飞机仍然具有一定的挑战。具体体现在:(1)定位传感器频率与精度的降低。常用的GPS 约5Hz,米级定位,DGPS ≤5Hz,厘米级定位,均远低于室内动捕环境的位置数据与精度;(2)室外强风干扰较大。相较于室内环境,室外飞行过程中,易受到来自于不同方向的紊流阵风,这对无人机的位置控制器的稳定性提出一定挑战;(3)室外周边环境复杂。相较于室内“干净”的飞行环境,室外不规则障碍较多,对旋翼式无人机航线飞行产生一定的影响;(4)GPS 信号不稳定。在近楼区域或者隧道等区域,GPS 信号较差或者不稳定,导致定位失败。(5)天气,航空管制等因素。

因此,在室外飞行前,需要综合考虑以上条件,合理安排飞行计划与实验流程,确保旋翼式无人机室外安全可靠飞行。

4 总结与展望

本文主要考虑旋翼式无人机从仿真到实践飞行的控制设计过程,提出了一种可靠的基于模型的控制开发方法。按照旋翼式无人机姿态环与位置环的控制策略开发流程,包含有基于非线性模型的旋翼无人机Matlab/Simulink 仿真、基于ArduPilot 开源飞控的可视化仿真平台算法验证方案、基于Matlab/XPC 与ArduPilot 硬件在环仿真平台算法验证方案、基于室内运动捕捉系统的算法验证方案,以及室外控制算法验证。通过上述开发流程,确保所提出控制方案从仿真验证到实际飞行的稳定性与安全性。同时为后续针对旋翼式无人机的控制设计开发提供保障。未来工作将考虑基于上述飞行控制开发流程,针对小型旋翼无人机的敏捷性安全控制策略进行研究。

猜你喜欢

飞控控制算法旋翼
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
纺织机械手专利瞄准控制算法
民用飞机飞控通电自检测安全性研究
基于STM32的四旋翼飞行器的设计
基于ARM+FPGA的模块化同步控制算法研究
02 飞控技术与机场安保引关注
飞控系统故障告警实时监控软件的设计与实现
四旋翼无人机动态面控制
基于航迹差和航向差的航迹自动控制算法