在无人机系统的研制过程中, 系统综合检测与仿真是两个重要环节. 无人机系统主要由飞行控制系统、传感器系统、动力系统、执行机构、通信链路等组成, 系统综合检测既包括对各分系统的测试, 同时对整机系统也要进行考量. 通过测试, 可以及时发现机载设备存在的问题, 为无人机正常飞行提供安全保证. 仿真将部分机载设备接入仿真环境, 通过一系列飞行科目的模拟, 可以验证飞行控制律、控制逻辑, 数据链路通信状态以及设备稳定性. 仿真能够更真实的测试无人机系统的性能, 对于提高飞控系统的设计效率、降低设计过程中可能出现的风险, 发挥着重要作用[1].
在通常的研制过程中, 综合检测系统与仿真系统往往作为两个独立系统, 实际上两个系统在硬件资源上有很高的重复性, 独立开来不仅造成资源的浪费, 使用时也不太方便. 本文所设计的系统充分考虑了综合检测和仿真两大功能需求: 重新进行硬件资源设计, 通过软件程序实现相应功能, 满足综合检测和仿真的要求.
本文首先确定综合检测与仿真两大功能的共性需求, 提出系统整体设计方案. 接着从硬件、系统通信协议和软件3个方面详细介绍系统的设计, 最后搭建应用环境进行验证.
1 系统研制方案 1.1 技术需求与指标考虑综合检测和仿真的实际需要, 其共性的需求如下[2-4]:
1) 系统的软硬件应采用模块化设计, 尽量减少相互间的耦合性.
2) 系统模拟量、开关量、频率/脉冲、通信接口等硬件资源应足够丰富, 满足不同类型、不同数量设备的测试要求.
3) 系统应有电源转换模块, 在测试或仿真时向其他设备供电.
4) 系统应具备数据记录功能, 方便测试或仿真完毕后的数据分析.
5) 系统在综合检测时不能改变被测试系统的软硬件结构;仿真时可以采用外部模型, 系统具备网络通信能力.
系统对模拟量信号、开关量信号、频率/脉冲信号以及通信接口等硬件资源的需求如表1所示.
1.2 总体方案
综合检测与仿真系统总体结构如图1所示, 系统以仿真计算机为主体, 搭配飞控计算机、地面站、仿真控制台、仿真视景、待测试设备等[5,6]实现综合检测和仿真两大主要功能. 仿真计算机主要是模拟无人机各个设备的接口特性, 提供无人机模型, 传递无人机飞行状态信息. 飞控计算机作为飞控程序实现的硬件载体, 对仿真计算机传入的无人机状态信息进行解算, 同时响应地面站的遥控遥测指令, 发出相应控制变距控制无人机姿态. 飞控计算机与仿真计算机之间按照实际设备的定义, 通过串口连接, 进行数据通信. 仿真计算机提供无人机飞行状态信息, 飞控计算机接收解算后反馈控制信息. 地面站实时显示无人机飞行状态信息, 发送飞行控制指令, 完成预定操纵. 也可对飞控机参数配置进行在线调整, 飞行航线在线设计. 仿真控制台实时显示仿真计算机的状态信息, 控制仿真计算机的运行状态.
针对综合检测功能, 设计了3个子功能: 自检测、设备检测、飞控系统测试. 自检测是指仿真计算机自身工作状态的测试, 系统以仿真计算机为主体, 工作前需判断仿真计算机工作状态. 设备检测指对单个设备工作状态的测试, 如舵机、惯导等设备的测试. 飞控系统测试是指无人机整体系统的测试, 仿真计算机与飞控计算机连接, 通过控制飞控计算机对机载设备的输出信号达到系统综合检测的目的.
针对仿真功能, 仿真计算机内部程序模拟出传感器设备接口特性、执行机构. 无人机动力学模型可由仿真机内部实时解算模拟或采用外部动力模型, 常见的有Xplane软件[7,8]、Flightgear软件等, 这两款软件既可作为外部模型进行实时解算, 也可作为仿真视景实时显示无人机运行状态.
仿真计算机的设计是本系统设计的核心, 采用Power PC处理器作为硬件平台, VxWorks实时操作系统作为软件运行平台. Power PC处理器因其稳定性在航空航天领域使用较多, 课题组使用该处理器已经开发了飞控计算机等设备, 积累了一定经验. 系统采用模块化设计, 每个功能模块对应一块板卡, 每块板卡通过机箱上的导槽插入机箱内, 通过64芯连接器插在机箱内背板上的64芯连接器插座上. 这样设计将各个资源模块按照功能不同划分到不同的板卡, 方便设备测试和维护, 使用更具灵活性, 扩展性能强.
1.3 系统功能围绕综合检测与仿真的设计目标, 系统具备以下功能:
1) 单个设备的检测以及无人机整机系统的综合检测. 根据设备的不同特性输入不同的信号源激励, 观察设备状态.
2) 传感器及其他设备接口特性的验证. 传感器等设备主要通过串口与飞控机进行通信, 仿真计算机通过模拟通信过程验证接口特性.
3) 导航/制导/控制系统的验证. 通过一系列飞行科目的模拟, 从地面站、仿真视景以及数据记录器的数据分析, 验证控制效果.
4) 数据分析功能. 在测试或仿真结束后, 对仿真计算机内部数据记录器里的数据进行分析, 对结果进行定量判断.
2 系统设计与实现 2.1 硬件设计与实现 2.1.1 仿真计算机仿真计算机遵循模块化设计的思想, 分为6个模块: CPU模块、频率测量模块、模拟信号模块、开关量信号模块、通信模块、电源模块. 在硬件上, 每个模块单独成板, 板上设计一块FPGA或CPLD, 挂靠在背板上的LBC总线上, CPU可通过操作LBC总线读取各模块采集到的数据, 模块图如图2, 实物图如图3.
各模块具体设计和包含资源如下:
1) CPU模块: 采用Power PC处理器MPC8309, VxWorks操作系统, 包含2个10-100 MBPS自适应标准网络接口, 1个网口用于下载仿真程序, 另一个网口用于网络通信. CPU模块还包括数据记录器, 记录仿真过程数据; 2路独立的标准RS232串行接口, 用于同仿真控制台通信和调试使用.
2) 频率测量模块: 板上设计一块FPGA, 频率脉冲信号和PWM输入信号由光耦芯片隔离并整形输入到FPGA内, FPGA由CPU给出命令自动测量, PWM输出信号由光耦芯片隔离输出. 此模块包含12路PWM输入, 满足FUTABA遥控器特性; 12路PWM输出, 满足航模舵机的接口特性; 4路频率测量, 其中2路输入、2路输出, 测量范围为1 Hz~1 kHz, 测量的信号类型包括方波、三角波、正弦波.
3) 模拟信号模块:板上设计一块FPGA, 模拟量输入通道由两片AD7608芯片组成, 模拟量输出通道由4片AD5764芯片组成. FPGA根据CPU的需求自动采集AD变换器所有通道的数据, 同时也将CPU输入的DA转换数据按DA的数据和命令格式输出. 此模块包含16通道模拟量输入输出, 输入输出范围为−10~10 V或−15~15 V, 可通过内部跳线设置.
4) 开关量信号模块: 开关量输出信号, 使用两个8位锁存器芯片74LS373产生16位TTL输出数字信号, 再通过光耦芯片隔离驱动成+27 V/低电平模式或地/开模式. 开关量输入信号, 通过光耦芯片隔离转换成TTL电平, 再由两片8位的三态输入控制芯片74L-S245输入到LBC的数据总线. 输入输出译码控制使用一片CPLD芯片EPM7128, CPLD挂在背板的LBC总线上. 此模块包含16路开关量输入输出, 可通过跳线设置+27 V/低电平模式或地/开模式.
5) 通信模块:包含12路串口, 其中6路为RS232/RS422, 可通过跳线选择, 4路固定为RS232, 2路固定为RS422/RS485, 可通过跳线选择, 还包含4路CAN总线接口. 串口控制器和CAN控制器都采用FPGA IP核. 由于12个串口控制器IP核和4个CAN控制器IP核需要的FPGA资源较大, 这里需选用EP3C25F25-6UBG.
6) 电源模块:输入电压范围为18~36 V, 内部包含DC-DC隔离电源模块将电压转换供仿真计算机内部芯片和外部设备使用. 内部使用的±15 V和+5 V选用10 W小功率模块, 提供给外部输出电源选用20 W模块, 可输出+5 V, +12 V, +27 V和±15 V不同大小的电压.
2.1.2 飞控计算机本系统所采用的机载飞行控制计算机为自行设计和研制, 如图4所示.
该型飞行控制计算机采用PowerPC处理器, 由CPU板卡、综合信号板卡、资源扩展板卡三块板卡组成, 包括1路网络通信、12路串口通信、2路CAN通信、8路模拟量输入、4路模拟量输出、8路数字量输入、12路数字量输出、2路频率量输入, 内部自带数据记录器[7].
2.1.3 辅助设备除上述仿真计算机和飞控机外, 系统硬件还包括两台PC机, 两个MOXA设备(USB转串口供PC机使用), 串口转接线两条, 基于上述硬件配置可完成系统搭建.
2.2 系统通信协议系统通信协议主要包括两部分, 一是仿真系统与仿真控制台之间的通信, 采用串行通信; 二是仿真系统与仿真视景之间的通信, 采用网络通信(UDP通信).
2.2.1 仿真控制台通信协议仿真控制台采用如下通信形式: 采用RS232串行通信; 波特率不超过38400 bps、8位数据位、1位停止位、无校验; 采用二进制码, 多字节数据传送时, 低字节在前、高字节在后. 上行数据定义为仿真控制台软件向仿真/测试设备发送的数据流; 下行数据定义为仿真/测试设备向仿真控制台软件发送的数据流. 通信数据包格式如图5.
通信数据包由5部分组成: 同步码、有效数据长度、帧识别码、有效数据区、和校验. 同步码2个字节(0xEB, 0x90), 作为数据包开始的标志; 有效数据长度为协议第4部分有效数据的字节数; 帧识别码用于区分不同的仿真设备; 有效数据包括指令信息和各设备的状态信息; 和校验采用8位和格式校验, 校验数据不包括数据包同步头(0xEB, 0x90)的2个字节, 从字节索引号2至N+3数据进行校验, 校验结果的低位在N+4.
2.2.2 仿真视景通信协议UDP网络通信采用标准的UDP网络通信协议, 仿真计算机为客户端, IP地址: 192.168.1.1, 端口号: 4000. 仿真视景为服务器端, IP地址: 192.168.1.2, 端口号: 4001. 上行数据定义为仿真视景向仿真计算机发送的数据流, 下行数据定义为仿真计算机向仿真视景发送的数据流. UDP通信的数据包格式如图6所示.
帧同步码为4个字节, 帧识别码为1个字节, 作为下行数据帧开始发送的标志; 帧数据区为固定长度字节数, 帧结束标识码为1字节, 自行设定.
2.3 软件设计与实现 2.3.1 测试与实时仿真软件测试与实时仿真软件在Workbench平台下开发, 基于VxWork6.9操作系统. VxWorks是一个运行在目标机上的高性能和可剪裁的嵌入式实时操作系统, 具备以下特点: (1) 多任务; (2) 有线程优先级; (3) 多种中断级别[9]. 软件整体可分为应用管理层、测试/仿真执行层、设备驱动层、硬件设备层. 应用管理层负责与仿真控制台进行交互, 根据需要调用测试/仿真执行层的各功能模块. 测试/仿真执行层负责测试及仿真功能的实现, 在仿真计算机的硬件资源的基础上编程模拟出各种设备接口特性, 模型的实时解算等. 此部分包括初始化模块、自检测及设备检测模块、传感器仿真模块、舵机仿真模块、发动机模型模块、无人机模型模块. 设备驱动层包括底层硬件的驱动程序和接口, 供测试/仿真执行层调用. 硬件设备层包括各种信号量物理接口, 依靠这些接口与其他设备连接. VxWorks基于多任务调度, 每个模块设置为一个单独任务, 由操作系统调用. 各模块之间除了数据交换外互相独立、自成体系, 降低了程序的耦合性, 便于程序调试和后期维护、扩展和修改, 同时也增加了程序的可读性[10]. 总体模块如图7所示.
2.3.2 仿真控制台软件仿真控制台主要功能是作为上位机在检测或仿真过程中发送指令, 检测各设备状态信息, 其设计同样基于模块化设计的思想, 开发平台为Qt. 总体分为通信处理模块、指令控制模块、激励信号注入模块、故障注入模块、数据显示模块等五部分, 结构图如图8所示.
仿真控制台软件的主要功能模块如下:
1) 通信处理模块: 仿真控制台与仿真计算机之间采用串行通信, 该部分实现两者之间信息发送和接收的建立, 并对接收的数据进行解帧, 解帧后的数据供其他模块使用.
2) 指令控制模块: 该模块主要作用是通过离散式上传指令的方式进行仿真计算机功能的控制, 包括运行模式的选择, 不同模式下控制指令发送等.
3) 激励信号注入模块: 在综合测试模式下, 对不同待测设备施加不同激励信号, 观察设备运行状态, 采集设备回馈信号.
4) 故障注入模块: 在仿真模式下, 模拟设备的故障状态, 观察无人机系统的应对反应. 故障包括:数据链路断开, 传输数据频率变化、设备数据异常等.
5) 数据显示模块: 主要是通过表格、曲线等比较直观的形式显示测试或仿真过程中设备的数据.
3 应用环境构建与验证
系统包含硬件设备: 仿真计算机、飞控计算机、待测试设备. 软件: 地面站软件、仿真控制台软件、数据解码与分析软件. 应用环境搭建参照图1系统整体方案图即可完成, 一台PC机运行地面站软件, 通过PC串口与飞控计算机通信. 飞控计算机与仿真计算机之间的通信也通过串口进行, 设备的连接需参考实际定义. 另一台PC机运行仿真控制台软件, 同样通过串口与仿真计算机通信, 监控仿真计算机运行状态. 仿真控制台界面如图9.
3.1 综合检测系统实现与验证
综合检测系统验证方案如下:
1) 将仿真计算机与飞控系统按相应设备定义连接, 使用1台PC机运行仿真控制台软件;
2) 仿真控制台选择“自检测”模式, 首先测试仿真计算机工作状态;
3) 仿真控制台切换至“设备测试”模式, 对单个设备进行检测;
4) 仿真控制台切换至“飞控检测”模式, 对整体系统进行检测, 测试环境搭建如图10所示.
如图11所示为舵机测试过程中仿真控制台显示情况, 通过仿真控制台将舵机的位置依次设置为“5”、“6”、“7”、“8”、“9”、“10”、“11”, 可以看出反馈值与设定值相同, 舵机工作状态正常.
3.2 仿真系统实现与验证以无人直升机为例, 仿真系统验证方案如下:
1) 使用两台PC机, 一台PC机运行地面站软件, 另一台PC机运行仿真视景软件和仿真控制台软件, 这里仿真视景软件选用Xplane软件;
2) 根据飞控程序和仿真程序对各个设备的串口定义, 飞控计算机和仿真计算机之间通过串口转接线缆以及转接头连接;
3) 上电运行, 仿真控制台发送“仿真”指令, 系统进入仿真模式. 通过地面站控制无人直升机从起飞悬停到小机动飞行来观察分析仿真效果. 仿真实物搭建如图12所示.
如图13所示为地面站设计的航线飞行过程, 结果显示飞行轨迹基本与航线一致.
经过测试验证, 各软件以及各仿真设备运行正常, 无人机飞行过程中状态信息以及各个仿真设备信息在地面站和仿真控制台中实时显示, 整个仿真系统能很好地完成飞行控制系统的验证工作.
3.3 数据分析与处理根据仿真计算机数据记录器的记录数据, 进行数据解转码、数据分析, 如图14和图15.
4 结论
本文立足于实际工程需要, 设计出一套适用于无人机飞行控制系统验证和综合检测的系统. 在分析综合检测和仿真两大功能共性需求的基础上提出以仿真计算机为主体的设计方案. 着重介绍了仿真计算机的硬件结构、资源配置, 测试/仿真软件设计框架和通信协议设计, 最后以实际测试结果验证系统的合理性. 通过最后的仿真结果可以看出, 该系统性能可靠、操作灵活性强, 具有很好的实际应用价值.
[1] |
刘树锋, 陈欣, 刘标. 小型化无人机实时飞行仿真系统结构设计. 兵工自动化, 2014, 33(6): 27-31. DOI:10.7690/bgzdh.2014.06.007 |
[2] |
邱晓红. 无人飞行器综合检测控制系统. 测控技术, 1999, 18(1): 25-27. DOI:10.3969/j.issn.1000-8829.1999.01.008 |
[3] |
陈敬军. 无人机综合检测技术研究. 航空科学技术, 2012(2): 15-17. |
[4] |
路蔼梅, 李新军, 何进, 等. 一种无人机通用综合检测系统. 北京航空航天大学学报, 2006, 32(1): 27-30. DOI:10.3969/j.issn.1001-5965.2006.01.007 |
[5] |
王凯鹏, 蒙志君, 陈旭智. 某小型无人直升机半物理仿真系统设计和实现. 第33届中国控制会议论文集. 南京, 中国. 2014. 6.
|
[6] |
包健, 顾冬雷. 无人机通用实时半物理仿真系统设计与应用. 兵工自动化, 2015, 34(8): 85-88, 92. DOI:10.7690/bgzdh.2015.08.021 |
[7] |
刘丙涛, 周炎, 祖家奎. 无人直升机跟踪地面移动目标实时仿真系统设计与实现. 计算机应用与软件, 2019, 36(1): 22-27, 98. DOI:10.3969/j.issn.1000-386x.2019.01.005 |
[8] |
Bittar A, Figuereido HV, Guimaraes PA, et al. Guidance software-in-the-loop simulation using X-plane and simulink for UAVs. Proceedings of 2014 International Conference on Unmanned Aircraft Systems. Orlando, FL, USA. 2014. 993–1002.
|
[9] |
董艳铃, 常扬. Vxworks嵌入式实时操作系统任务调度方法研究. 计算机与网络, 2014, 40(10): 55-58. DOI:10.3969/j.issn.1008-1739.2014.10.056 |
[10] |
周炎, 祖家奎, 陶德臣, 等. 无人直升机实时仿真系统设计与实现. 电子测量技术, 2019, 42(21): 15-20. |