基于FMI的飞行器分系统多源异构模型一体化仿真

2018-11-21 03:35陆冠华郝明瑞水尊师
导航定位与授时 2018年6期
关键词:调用实例建模

陆冠华,郝明瑞,胡 松,水尊师

(复杂系统控制与智能协同技术重点实验室,北京 100074)

0 引言

在飞行器设计过程中,控制专业依赖于设计经验与大量的仿真试验来优化控制系统设计。系统仿真通常分为全物理仿真、半物理仿真和计算机数学仿真,具体取决于所使用的模型。而在飞行器研制和控制系统设计初期,使用实物仿真和半实物仿真的效费比极低。因此,飞行器的控制设计过程非常依赖于计算机模拟。各研究机构对研究技术的投入逐年增加,希望获得更加高效便捷的模拟方法。

飞行器是复杂交联的大系统,其飞行仿真系统建模涉及大气专业、气动专业、发动机专业、舵系统专业[1]、雷达专业、惯导专业[2]、计算机专业等分系统专业。目前,飞行器系统的仿真设计主要基于独立建模和独立验证。这些模型的生成工具和构造形式均不同,称为多源异构模型。在模型设计验证过程期间,使用物理对象开始协同仿真到半物理仿真阶段。在此之前的大部分时间,控制专业的设计工作无法考虑多专业因素,只能在同一软件环境(一般为 C/ C++编译软件)下,基于各分系统专业提供的信息构造简化模型进行飞行仿真。其模型准确度低,动态特性与实物相去甚远,加上仿真程序中飞行器和环境模型的内部耦合性非常高,控制专业自仿真设计的最优控制律不适合实际系统,仿真结果与实验数据有很大差异。不得不在使用时间资源紧张的半实物仿真中,消耗大量精力对控制律进行修改,增加了科研人员的工作负担。因此,需要一种多学科的联合仿真方法,结合理论建模技术和仿真分析技术,以及各种专业设计方法,分阶段实施多专业联合设计仿真分析,从而有效地提高飞行器系统的控制设计效率,缩短产品的迭代周期。

多域系统建模和协同仿真是为了实现复杂系统的协同仿真而出现的建模和仿真技术,目标是将来自不同学科的模型集成到一个系统中进行系统设计、模拟和分析。为实现这个需求,国际上制定了通用模型接口标准( Functional Mockup Interface,FMI),每个专业人员使用不同的建模工具设计的仿真模型具有统一的模型描述格式和数据存储方法。这些多源异构模型可以在相同的软件模拟环境中进行通信和运行,从而提高了模型的多功能性;同一模型也可用于不同的软件模拟环境,以提高模型的可重用性。

本文开发了基于FMI接口的C++语言建模与打包技术,以及多源异构模型的集成仿真平台。在应用层中,使用动态链接库的方法,以模块的形式直接调用,从而避免了与用户自开发软件的耦合。它解决了共享各种专业建模软件模型的难题,提高了集成仿真平台的可扩展性,验证了多源异构模型集成仿真系统,具有较高的工程应用价值[3,4]。

1 FMI接口与模型

1.1 FMI的发展与应用

多源异构模型一体化仿真的需求最早出现于汽车设计与制造领域。由于汽车建模涉及流体、电气、动力等系统的多源建模,给分布式仿真带来不便。结合其他工业领域提出的类似问题,欧洲发展信息技术计划[5-7]提出了Modelisar项目。该项目制定了FMI,对模型描述、数据结构和接口格式都进行了标准化,解决了不同的建模、仿真软件难以同步联合仿真的问题,且提升了通信方面的设计效率,进而提升了仿真速度。近年来该标准已广泛应用于飞行试验、船舶、能源、电力电子、楼宇自动化、起落架设计等领域[8-16]。2014年该标准升级至 FMI2.0,具有仿真运行期间可变参数功能、增强的初始化行为以及实施环境集成和处理模拟器等,改善了可用性和兼容性。

1.2 FMI标准接口

与FMI对应的模型称为功能模拟单元(Functional Mock-up Unit,FMU),包含两部分:模型描述文件(.XML文件)和模拟器动态链接库文件(.DLL文件)。模型描述文件记录模型的基本信息,包括名称、输入和输出参数等。仿真平台根据标准中规定的调用方法为FMU提供求解器。

仿真软件调用FMU模型仿真模式,如图2所示。当FMU输入集成仿真软件时,软件首先解析模型的描述文件,读取模型的属性信息和模型的输入输出信息,并将每个FMU的输入和输出关联起来。仿真进行时,仿真软件对模型文件执行调度,采用分组方式进行单线程顺序或多线程仿真。

1.3 FMI模型描述格式

模型描述文件记录FMU的基本信息和变量信息。

1.3.1 模型属性信息

集成仿真平台通过读取描述文件掌握FMU的基本信息,内容包含两部分:必需信息和可选信息。必需信息是模拟平台调用FMU所需的关键信息,不能省略。可选信息一般供仿真软件使用者完成项目管理相关记录工作。FMU模型属性信息如图3所示。

1.3.2 仿真执行信息描述

该部分描述主要服务于仿真过程,供仿真平台在开始初始化时对存储空间的分配、模型运行的起止时间、同步异步运行以及规定步长、输出导数阶数等进行具体设定,为仿真过程顺利执行提供重要依据。模型描述信息如图4所示。

1.4 FMI接口

FMI还规定了模拟控制器的运行方式和调用模块。控制器代码包含诸多负责监控仿真过程的功能函数,通过调用这些函数获得返回值,仿真平台可以获取仿真状态、分析仿真出现的问题以及判断是否需要介入停止。FMI中仿真函数分为三类:控制器功能、子系统执行功能和子系统状态功能。其构成如图5所示。

2 基于FMI的建模仿真设计流程

根据多领域协同仿真集成仿真平台的要求,提出了仿真设计过程方案。基本上可以分为3个阶段:模型建立、模型的FMU封装、模型的调度关联。

2.1 模型建立

首先各分系统专业需对输入输出接口,包括接口数量、名称等进行协调与约定,之后由各设计专业根据自身需求,使用各自惯用的建模软件进行详细化建模。

2.2 FMU封装

目前,一些厂商的建模工具支持模型直接导出成FMU,如AMESim、Mworks、SimulationX以及MatlabR2017以后版本等。对于VS2010环境下的C++模型,由于VS2010本身不支持将程序封装成FMU,故只能根据FMI,编写预留输入输出接口的C++程序,编译生成动态链接库;编写程序生成相应的XML描述文件,然后使用自研软件将其打包成FMU。本文开发了相应工具进行封装,具有如下特点:

1)使用统一的格式结构统一全局接口头文件中的数据接口;

2)简化FMI映射,在C++代码中规定格式函数,包含实例化、初始化、单步运行、重置和释放函数;

3)使用系统API生成动态链接库,以提高通用性和兼容性;

4)具有模型合规性检查功能。

2.3 一体化仿真平台与FMU的调度链接

GCAir仿真平台软件能够进行图形化系统架构设计,数字化定义模型的接口,导出分系统模型模板,提供模型转换工具链,加载来自于不同模型软件的 FMU,并提供强大而友好的用户操作接口和功能完备的数据显示和分析测试工具,从而准确高效地解决多种模型的联合仿真问题,为模型的可复用性提供支持。本文使用该平台对各专业提供的FMU模型进行校验和运行仿真。

仿真平台加载全部所需的FMU后,可通过解析 XML文件获取模型输入输出信息,采取根据变量名称的自动关联和手动关联两种输入输出关联方式,并用颜色区分提示用户已关联和尚未关联的变量。

2.4 仿真运行

仿真过程即仿真平台调用FMU及其信息流的运算过程。FMU实例的模拟执行时间内的所有相关活动可以分为4个部分:实例化、初始化、单步计算和终止。

2.4.1 实例化阶段

一个FMU可以被认为是一个仿真模块的类。仿真平台根据类具体化出实际运行的模块,按照模型描述文件和接口关联关系对接口进行配置,调用状态监测函数对实例化状态进行检查,无报错后为其分配内存。

2.4.2 初始化阶段

实例化完成后,仿真平台将通过查询开始时间和结束时间信息来检验模型的有效性,并为该模块的输出分配内存空间。建立平台与各仿真模块核心程序的地址通信,完成仿真准备[17]

2.4.3 仿真阶段

仿真循环中,平台循环调用各模块进行单步运行。每个模块使用前一个模拟周期中每个模块的输出。在仿真运行期间,仿真平台调用监控功能来监控计算过程的正常状态。

2.4.4 终止阶段

仿真结束标志被触发的原因可能是某子系统因程序设定判据触发仿真结束,或被用户手动终止,或是仿真控制器检测到错误而终止仿真。此时仿真平台调用析构实例函数,释放被联合仿真模型实例以及变量所占用的内存空间。

3 应用实例与分析

本节以某型无人飞行器的联合仿真为例,具体介绍了基于FMI的多源异构模型一体化仿真平台的建设及仿真设计流程。该项目验证了一体化仿真平台的可用性,凸显了其对于构建不同专业仿真模型交互的重要价值。

3.1 模型构建

一般的无人飞行器仿真模型由导引头、发动机、舵机、综控机等设备模型,环境传感器、惯导传感器等传感器模型以及环境模型、动力学解算、运动学解算、目标运动模型、弹目运动解算等外部环境模型构成。其信息交互关系如图7所示。

原先控制专业完全依据其他专业提供的简化模型,再基于C++语言的平台进行控制律设计。一体化仿真平台的出现,使得控制专业可以在初步设计的基础上,依据各专业详细建模后的一体化仿真,对比模型差异,及时便捷高效地修正控制系统设计。

3.2 模型封装

使用C++语言建模的模块,将在VS2010环境下创建工程编译,生成DLL文件,编写.c文件供仿真平台调用、获取输入输出关系和数据文件调用。最终使用自研程序将程序代码封装为FMU模块。其他建模平台可进行相应的输出配置,输出合规的FMU模块。

3.3 模型加载

将FMU加载到仿真平台中,并实例化模块,关联各模块实例的输入输出,如图8所示。

3.4 执行仿真与结果输出

配置好全部模块实例的接口关联后,即可进行实时或超实时仿真。在仿真进行时和结束后,可以在平台建立结果输出显示框,实时或最后查看各模块输入或输出情况。如果需要查看非接口数据,可在配置时将该数据输出,并将接口悬空即可。

仿真的成功运行,验证了多源FMU模块的通用性和一体化仿真的兼容性和扩展性。

4 结论

本文基于FMI,面向飞行器设计领域多学科同源异构模型联合仿真的问题,对模型封装和仿真流程设计进行了研究。并结合一体化仿真软件,在实际项目背景下进行了验证,为控制专业的设计工作提供了新的平台,为开展更高效的设计工作提供了新思路和可能性,解决了总体与各分系统研发单位之间模型级交流的困难与障碍。

多源异构模型一体化仿真系统的实现,是构建复杂产品虚拟样机的重要一步。以此为基础,可进一步开发和集成已有的计算机技术、制造技术,将平台向前期产品构想规划和后期产品性能多角度评估2个方向进行扩展,继续在以下方面进行研究开发:

1)研究可用于产品全生命周期、支持异地协同开发的,具有完备的信息描述、标准化规范化产品定义的虚拟样机支撑平台。

2)开发产品全方位测试、分析与评估功能。支持不同专业人员从各自特有角度对产品进行测试、分析和评估。

猜你喜欢
调用实例建模
基于FLUENT的下击暴流三维风场建模
《符号建模论》评介
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
求距求值方程建模
系统虚拟化环境下客户机系统调用信息捕获与分析①
基于属性数据的系统调用过滤方法
完形填空Ⅱ
完形填空Ⅰ
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析