基于VxWorks的小型四旋翼飞行器半实物仿真平台设计

2018-09-29 03:08史莹晶李青松
实验室研究与探索 2018年8期
关键词:工控机实时性旋翼

李 瑞, 史莹晶, 李青松

(1. 电子科技大学 自动化工程学院, 成都 611731; 2. 中国船舶重工集团公司 第七二二研究所, 武汉 225001)

0 引 言

与固定翼飞行器相比,四旋翼飞行器(以下简称:四旋翼)结构简单紧凑、机动性强、操控灵活、能源利用率高、安全性高,适合在近地面环境中执行监视、侦查等任务,具有广阔的军事和民用前景,因而,吸引了大批科研人员进行相关研究[1-6]。

由于四旋翼飞行器在动力学上具有静不稳定、欠驱动、强耦合、非线性等特点,使得控制器设计与实现有较大难度。传统的纯数值仿真虽简便、高效,但控制效果不够直观,且仿真环境过于理想化,难以真实地反映复杂的实际情况;而实物飞行测试虽直观、真实,但实验风险大、成本高、周期长,并且容易受到天气、环境等制约。

半实物仿真则介于纯数值仿真和实物飞行之间,其将部分控制对象及控制装置实物嵌入仿真系统结构中,旨在保留数值仿真优良特性的同时,不失被控对象的真实性。飞行器模型可从实物控制器采集到真实的信息,以此检验飞控板的控制性能。同时,半实物仿真可靠、操作便捷,可谓兼备了纯数值仿真和实物飞行测试的优点。

对四旋翼来说,半实物仿真既是便捷可靠的科研手段,又可作为从纯数值仿真向实物飞行的过渡平台,国内外已有多所高校及科研院所成功搭建了四旋翼半实物仿真平台[7-11]。固高四旋翼半实物仿真平台主要由运动控制卡、3自由度实验本体组成,基于Matlab快速模型,方便修改调试,大大缩短控制器设计周期。dSPACE是由软件和专用硬件组成的一整套开发平台,可实现快速原型化和半实物仿真一体化。Chen等[11]采用dSPACE仿真平台对一款商用四旋翼飞行器(Draganflyer3)进行了辨识和控制算法检验,Kis等[12]也基于自主研发的四旋翼平台进行了实时仿真。宋子豪[13]利用dSPACE系统搭建了八旋翼飞行器仿真平台,控制器采用实物飞控板,仿真对象是Simulink数学模型,对八旋翼无人机的多种飞行模式进行仿真并成功运用到实物飞行中。但是,目前多数半实物仿真平台或采用商用的仿真系统,其软、硬件造价昂贵,或仿真系统的实时性和稳定性不好,或真实信息舍弃过多,导致控制效果不够明显。

针对实际应用需求,设计并实现了一款可快速迭代、实时性高、界面友好、可信度高的半实物仿真平台,并在该平台上进行了四旋翼的仿真分析,所得半实物仿真结果能够直接应用于四旋翼实物平台。

因为仿真回路中有硬件实物,为保证对象模型解算能够在规定的采样周期内完成,仿真平台需要满足强实时性。实时操作系统VxWorks是专为实时嵌入式系统设计的操作系统,自推出以来,得到包括美国军方在内的国内外用户的认可,已被广泛应用于包括美国火星探路者、F-16、B-2轰炸机等的大量嵌入式设备上[14],是市场占有率最高的嵌入式系统之一。本文采用VxWorks操作系统,使仿真系统软件在可靠性、稳定性和实时性方面有了保障;同时为VxWorks操作系统和仿真计算机在半实物仿真应用提供了经验。

本文将从上位机、仿真计算机、四旋翼飞行控制器3方面介绍上述四旋翼半实物仿真平台,并给出对四旋翼的姿态、位置控制的实验结果。

1 总体框架设计及软硬件平台选择

四旋翼半实物仿真平台总体设计框架如图1所示。整个仿真平台包括由个人电脑组成的上位机、四旋翼飞行控制板、工控机组成的仿真计算机3部分。

图1 总体框架图

个人电脑运行上位机程序,主要用于在线监控仿真过程和参数修改以及仿真结果展示。除此之外,在嵌入式交叉编译中,个人电脑不但充当宿主机用于VxWorks目标机操作系统配置、驱动软件和应用程序的编译和调试,而且实现四旋翼模型、飞控系统仿真模型的建立及其全数字仿真的运行、验证,并且完成模型及其控制律的下载等任务。四旋翼飞控板运行原始四旋翼飞控程序,在半实物仿真中作为实物接入。工控机运行VxWorks操作系统和仿真应用程序,主要负责解析上位机命令和参数、对象模型离散化、四旋翼动力学和运动学模型解算。个人电脑和飞控板、飞控板与工控机之间通过串口连接,个人电脑与工控机之间通过网络连接,以太网的作用是下载编译后的可运行模块、在线调整模型参数、数据传输、仿真启停控制。四旋翼飞控板和实时对象模型通过高速硬件接口形成一个闭环控制回路。

2 四旋翼飞行器动力学模型构建

对物体运动的描述首先要建立合适的坐标系。文章采用惯性坐标系和机体坐标系构建四旋翼飞行器动力学模型。惯性坐标系中OXe指向地理北向,OYe指向地理东向,OZe垂直于地面向下。机体坐标系中沿着机体向前的方向为机体系X轴,沿着机身向右,与X轴垂直为机体Y轴方向,沿着机体垂直向下为机体系Z轴,满足右手定则。

将四旋翼飞行器看做一个刚体,可以将四旋翼动力学模型分为平移运动和旋转运动两个子系统。在悬停状态下,忽略空气阻力,由文献[15]可知,四旋翼飞行器的非线性数学模型为:

式中:(x,y,z)为四旋翼的位置坐标;φ,θ,φ为机体坐标系下四旋翼沿3轴的旋转角度,分别是滚转角、俯仰角和偏航角;Ix,Iy,Iz分别为四旋翼飞行器3轴转动惯量;l为旋翼在机体轴向与四旋翼质心的距离;系统的控制输入U1和U2~U4分别为4个旋翼产生的力和力矩;m为四旋翼飞行器的质量。

3 四旋翼飞行器半实物仿真平台设计

根据第1节提出的总体设计框架,下文将分别设计上位机程序、四旋翼飞行控制器和仿真计算机程序。

3.1 上位机程序设计

仿真平台的上位机程序框架如图2所示。

图2 上位机程序框架

上位机程序设计主要在虚拟仪器开发环境Labwindows/CVI中完成。通过与数据采集卡连接,CVI可以实现个性化定制,针对专用界面和功能,在同一台电脑上可以实现示波器、频谱分析、信号发生等各种功能。CVI应用程序采用模块化设计,基于消息响应机制,用户只需要编写模块的响应回调函数即可实现相应的功能,方便快捷,不需要用户对界面编程有很深入的了解。

如图3所示,上位机程序主要分为仿真控制、参数配置、结果展示以及通信4个模块。其中网络通信采用传输控制协议/网间协议(Transmission Control Protocol/Internet Protocol,TCP/IP),上位机程序作为客户端,打开上位机的时候主动发出连接请求。由于四旋翼飞行控制分为姿态控制和位置控制,因此需要对不同的控制模式进行切换,仿真控制程序主要负责模式切换和仿真运行以及数据保存回显等功能。

图3 上位机界面

3.2 四旋翼飞行器控制器设计

为了实现半实物仿真平台的设计,首先需要设计四旋翼飞行器的控制器。在第2节的基础上,对四旋翼非线性数学模型进行线性化处理,四旋翼的控制可以解耦成高度、俯仰、滚转和偏航等通道。采用PID控制算法对4个通道分别控制,系统框图见图4。

图4 四旋翼飞行器控制器结构

针对四旋翼的实物平台,将上文设计的控制器转为嵌入式C语言程序,并将程序移植到飞行控制板上,根据主控芯片的处理速度,设计合适的控制流程,如图5所示。

图5 四旋翼飞行控制器

在实物平台上,通过遥控器或者个人电脑PC端给出控制指令,控制器首先接收控制指令并对指令进行解析,然后判断四旋翼的控制模式,最后根据期望的控制量对四旋翼进行控制。其中,模式判断每3 ms进行一次,角速度控制周期为2 ms,角度控制周期为5 ms,速度控制周期为20 ms,位置控制周期为50 ms。在姿态控制模式中,外环为角度控制,内环为角速度控制,外环的输出作为内环的输入;在位置控制模式中,外环为位置控制,内环为速度控制,速度控制器的输出量为角度控制器的输入。

3.3 仿真计算机程序设计

仿真计算机主要负责网络通信任务、串口通信任务、通信状态检测、飞行控制器解算、对象模型动力学解算、仿真控制指令的解析和执行、仿真周期定时任务。根据任务的功能和特性,进行模块化设计。

图6 仿真计算机程序结构

本文针对第2节构建的四旋翼模型和3.2节中设计的双回路PID控制器,首先在Matlab环境中搭建了Simulink模型。实时工作间(Real-Time Workshop,RTW)是Matlab/Simulink一个工具箱,在代码自动生成技术方面较为成熟。因而,使用RTW将仿真模型转化为实时性高、性能可靠的目标平台代码。

四旋翼仿真模型导入过程为:① 设置仿真模型参数,设置目标文件格式。针对工控机平台选择ert.tlc文件和C语言。② 设置仿真周期。针对实时仿真平台采用固定仿真周期,选择ode4步长模式解算器。③ 在Simulink界面点击Build Model(生成模型)等待生成嵌入式代码,存放在当前目录文件夹中。④ 在协同仿真环境Workbench中新建仿真项目,复制嵌入式代码到项目文件夹中,编写仿真任务应用程序,设置控制器和对象模型的输入输出接口。

网络通信是一种常用的通信方式,其传输速度快、实现方便并且技术已经成熟,可实现跨平台之间的通信,适合Windows程序和VxWorks程序之间的通信。因此,本文将工控机平台作为服务器端,上位机作为客户端,使用网络通信的方式来实现工控机平台与PC端上位机之间的长时间的可靠通信。

四旋翼飞行控制板与外界数据的交互通过串口方式实现。在对四旋翼进行控制时,控制任务采用固定周期解算控制输出,角度环控制采用5 ms的更新周期,角速度环更新周期是2 ms。为了保证串口通信的可靠、实时性,采用有限状态机编写串口接收模块。对数据帧解析过程如图7所示。

图7 串口解析有限状态机

仿真任务模块是半实物仿真平台的核心,必须保证一定的实时性和准确性。本文设计的仿真任务模块主要完成仿真初始化、四旋翼动力学解算。仿真任务阻塞在接收信号量阶段,一旦串口数据解析正确将发送信号量,实现仿真任务的同步。仿真任务解算完毕将分别通过串口和网口将四旋翼反馈状态发送至上位机用于实时显示和保存,并通过网口将反馈状态发送至飞行控制器进行下一步控制解算。半实物仿真平台如图8所示。

4 四旋翼飞行器半实物仿真实验

文中设计了一系列仿真实验对半实物仿真平台进行性能测试。首先在Matlab/Simulink中完成四旋翼控制器和对象模型的搭建,对姿态控制和位置控制进行仿真验证。然后将四旋翼对象模型生成相应的嵌入式C代码,移植到仿真计算机,将控制器移植到实际的飞控板中,在半实物仿真平台中验证控制器的控制效果。最后将飞控板移植到实际四旋翼实物平台进行实际飞行验证。

在将控制器移植到飞控板之前,必要的Matlab仿真可以减小后续飞行器调试的工作量。姿态控制是四旋翼稳定飞行的关键,在Simulink中分别设置四旋翼期望的滚转角、俯仰角、偏航角均为12°,四旋翼飞行器的阶跃响应如图9所示。由图可见,在控制器作用下,四旋翼姿态角的角度响应能在2s以内达到期望姿态角,超调量小于3%,且几乎没有稳态误差。

(a) 滚转角的姿态控制

在姿态角控制的基础上加入位置环控制器,同样的,设置四旋翼为零初始状态,分别给定3个轴向坐标点为10 m,四旋翼可以在4 s内从静止状态飞到期望目标位置。

为了保证VxWorks中实时仿真的可靠性,分别在Matlab中和实时操作系统中运行相同的控制器和对象模型,对比两者的运行结果。采用RTW生成四旋翼PID控制器和对象模型的VxWorks应用程序。在全数字仿真中,仿真步长采用固定步长,为了得到准确的计时,在仿真中采用辅助时钟计时方法。Matlab中仿真周期是10 ms,在VxWorks应用中采用同样的仿真周期。

从图10可以看出,Matlab解算和工控机解算高度一致,证明了基于VxWorks的实时仿真可靠性较高。VxWorks为了满足高实时性,牺牲了部分数据精度,在拐点附近表现明显,但不影响最终的仿真结论。

(a) 基于滚转角的仿真对比(b) 基于俯仰角的仿真对比

在前期工作的基础上,将四旋翼飞行控制器直接应用于实物平台,将飞控板固定在实际四旋翼上,连接传感器、电调、数传等接口,对基本功能调试后进行室外实际飞行。在室外飞行中,通过3位开关切换到指定模式,给四旋翼一个期望的坐标位置,在5 s左右都能接近目标点附近并逐渐收敛,实际飞行比半实物仿真稍慢,但总体趋势吻合较好,说明半实物仿真置信度较高,可用于指导四旋翼飞行控制器的设计。

图11 X轴向位置仿真

进一步,采用导航向量场算法设计了四旋翼包围飞行实验。让四旋翼从任意点起飞,在导航向量场控制和双回路PID控制器作用下,四旋翼将逐渐沿着期望的圆形轨迹飞行。这里,以参考点作为坐标原点,期望半径为4 m,起飞位置坐标(-3,-3),起飞点初始状态设为零。首先在半实物仿真平台中验证,图12(a)表示半实物仿真结果,图12(b)表示实际飞行效果。对比分析半实物仿真和实际飞行结果可以发现,半实物仿真结果更加平滑,稳态误差更小。实际飞行效果与半实物仿真效果吻合,进一步验证了半实物仿真的可靠性,因而,四旋翼飞行控制器半实物仿真结果可以直接应用于实际飞行。

(a) 半实物仿真结果(b) 实际飞行效果

5 结 语

根据四旋翼飞行器半实物仿真的功能要求,设计了半实物仿真平台的总体框架和硬件选型。为保证半实物仿真平台的实时性,采用嵌入式实时操作系统VxWorks。在此基础上,对半实物仿真平台的3部分:上位机、飞行控制器、仿真计算机进行设计和实现,分别完成了四旋翼飞行器的全数字仿真、半实物仿真,并通过半实物仿真与实际飞行数据对比验证了半实物仿真平台的可靠性。

本文设计的四旋翼半实物仿真平台界面友好,实时性高,能指导四旋翼飞行控制器设计,具有很好的实用价值。

猜你喜欢
工控机实时性旋翼
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
定制工控机在老旧线路计算机联锁设备中的应用
基于STM32的四旋翼飞行器的设计
中压电子束焊工控机Windows NT系统文件丢失故障的修复方法
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
四旋翼无人机动态面控制
中国工控机市场新Style
新汉 前插拔CoreTM-i系列无风扇工控机