首页/文章/ 详情

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

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


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


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


     

     
     

     

     

图 1飞行器分专业建模与一体化仿真

FMI标准接口与模型

01

   

1.1 FMI标准的发展与应用

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


1.2 FMI标准接口

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

           

           
           

           

         

图 2 FMU仿真流程

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


1.3 FMI模型描述格式

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


1.3.1模型属性信息

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

           

           
           

           

         

图 3 FMU Model Attributes

1.3.2仿真执行信息描述

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

           

           
           

           

         

图 4 FMU Model Description Information

1.4 FMI接口

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

           

           
           

           

         

图 5 Joint Simulation Functions

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

02

   

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


2.1 模型建立

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


2.2 FMU封装

目前一些厂商的建模工具支持模型直接导出成FMU,如AMESim、Mworks、SimulationX以及Matlab R2017以后版本等。对于VS2010环境下的C++模型,根据FMI标准,可以确定其FMU封装基本思路为:使C ++程序适应输入输出接口,编译生成动态链接库;生成相应的XML描述文件,然后将其打包成FMU。本文开发了相应工具进行封装,其具有如下特点:

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

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

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

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


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

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


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


           

           
           

           

         

图 6仿真平台下的变量关联

2.4 仿真运行

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


2.4.1 实例化阶段

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


2.4.2 初始化阶段

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


2.4.3 仿真阶段

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


2.4.4 终止阶段

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

应用实例与分析

03

   

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


3.1 模型构建

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

           

           
           

           

         

图 7 仿真模块信息交互关系

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


3.2 模型封装

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


3.3 模型加载

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

           

           
           

           

         

图8 平台加载的模块与输入输出关联信息列表

3.4 执行仿真与结果输出

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

           

           
           

           

         

图9 某变量输出曲线

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

本文摘自 复杂系统控制与智能协同技术重点实验室

来源:世冠科技
其他专业系统仿真通用船舶汽车电力电子AMESim理论SimulationX控制试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-15
最近编辑:2年前
世冠科技
国内领先的系统仿真工业软件和数...
获赞 25粉丝 17文章 142课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈