在无人机制导、导航与控制中应用半实物仿真
扫描二维码
随时随地手机看文章
挑战:
在目标硬件上搭建一个系统,在实时控制仿真环境中,来验证无人飞机(UAV)的制导、导航和控制(GNC)算法。
解决方案:
在开发的早期阶段,开发一个硬件在环(HIL)测试环境来测试无人机GNC解决方案。
HIL测试环境是软件仿真和飞机实验的一个中间步骤,对于无人机GNC软件的开发过程非常关键。通过HIL环境,工程师可以在一个可控的仿真环境中对无人机软件进行测试。同时,它也能加速设计,缩短开发周期。
通过HIL环境,工程师可以发觉软件仿真(主要是同步和定时)中没有出现的问题,从而避免现场试验的故障,并增加无人机团队的安全性。
我们开发了一个通用的HIL平台来设计验证控制和导航算法。这个HIL测试环境完全集成在一个基于模型的设计开发周期中(见图1)。
图1 : HWIL测试环境示意图
基于模型的开发
首先我们设计编改了无人机平台,将其用于仿真,并将控制器和算法部署至硬件中。
我们根据基于模型的设计理念来完成这个任务。对于系统设计和仿真来说这是一个可靠方便的方法。使用代码自动生成工具可以使我们减少设计时间,轻松完成对于测试架构的重复利用,以及快速系统原型,从而形成一个连续的确认和验证过程。
构架的目的包括:在不同的硬件平台上不用任何改变即可对模型重复利用;对设计测试套件模型进行重复使用以验证目标系统;将透明模型完全集成到目标硬件中,并创建一个系统的,快速的流程,将自动生成的代码集成到目标硬件,从而使得控制工程师无需软件工程师的参与,即可以快速测试模型(见图2)。对于这个项目,我们使用Simulink®公司的MathWorks软件(我们还使用了Esterel Technologies公司的SCADE套件)开发了模型任务,并使用MathWorks和Real-Time Workshop®公司的软件实现自动编码。我们需要两次不同的编改:在无人机中进行测试及执行的算法是由ANSI C代码编写的,仿真无人机动态行为的数学模型将通过LabVIEW仿真接口工具包转换至NI LabVIEW软件动态库中。
图2: 基于模型的开发流程
在最终的系统中,我们使用多个LabVIEW I/O模块来仿真一些无人机航空电子和逻辑传感器以及激励器接口。
LabVIEW Real-Time PXI
PXI 是一个基于PC的平台,可用于测试,测量和控制,能够在不同的接口和总线中提供高带宽和超低的执行延时。在这个案例中,PXI需要在一个复杂的无人机模型中运行,该模型会在实时中以动态库的形式被执行。 在系统中使用PXI模块能让我们使用无人机上完全一样的接口进行HIL仿真。所以,我们会以现场实验完全相同的配置验证GNC算法处理单元。这对于一些使用纯仿真不足以捕捉所有硬件相关问题(例如信号噪音,错误和同步问题)的系统来说是十分重要的。
GPS仿真器
通过Spirent GSS8000 GPS仿真器,我们能够仿真并生成用户选择的GNSS星座卫星所发出的相同的射频信号。这些信号会以飞行实验相同的方式传送到无人机上真实的GPS传感器,并能仿真惯性传感器(加速度计和回转仪)。我们可以指定不同的情况,降级信号,指定天线模式及模拟IMU传感器错误。
板载处理单元
我们在实时操作系统(QNX或VxWorks)中运行一个PC/104单元,操作系统中包含了算法和控制策略,用于测试自动代码生成工具和集成架构创建的代码的完成。我们在现场实验的真实无人机中也使用了相同的单元。
可视化
我们可以使用Simulink External Mode软件对无人机进行调试。通过这个软件,我们可以监测用户需要实时知晓的信号值。此外我们可以改变嵌入式处理单元中所执行算法的参数。在操作中所使用的界面,与控制工程师在仿真设计算法时所使用的界面完全一样。由此,整个测试环境完全透明,而且能以同现场测试一样的方式进行HIL测试,从而大幅减少开发时间。
结果
对比飞行遥测和使用同样的GNC算法的HIL仿真,可以表明HIL的精准性和与真实测试结果的相似性。
我们在一架改装过的无线电控制的直升飞机上集成了几个传感器(加速度计,回转仪,磁力计,GPS和一个高度计)和一个处理单元(见图3),将其转变成一架无人机,进行飞行测试。
图3:实验中使用的基于CB5000 RC直升机改装而成的无人机
无人机在没有过冲或任何一个永久误差的情况下,达到了水平面要求的参考值(见图4和图5)。HIL仿真和真实的飞行测试结果极其一致。
图4:北方位置对比结果
图5: 西方位置对比结果
结论
HIL环境非常适用于测试包含真实硬件的整个系统。使用NI PXI,我们在实时状态下以低延时仿真了一个复杂的无人机模型,并完美模拟了航空设备界面。
这个环境能检测出软件仿真中无法显示的错误,从而避免现场实验意外的发生。因为控制工程师在设计,开发和验证过程中也会使用相同的可视化和调试工具,由此可以快速重复循环,减少开发时间。