GCAir全虚拟分布式仿真-用于复杂系统的仿真

前言

典型复杂系统如飞机,有“大”和“杂”两个特点,“大”是指系统规模大,“杂”是指系统跨学科、跨领域复杂。对于产品设计人员来讲,通过仿真的手段来进行系统设计是常用的解决方法。

随着计算机的进步与仿真需求的不断发展,分布式仿真技术作为当前先进仿真技术研究的重要领域之一,能够较好地满足这种在空间、时域、控制逻辑上分布配置的复杂系统仿真要求。在分布式仿真系统中,各个仿真节点在地理位置上是分布的,在功能和计算能力上同样也是分布的,既可联网交互运行,也可独立运行各自的仿真功能,为此,世冠科技基于GCAir软件开发了全虚拟分布式仿真功能,通过局域网(LAN)和广域网(WAN)将分布的各种仿真系统连接成一个整体,形成一个在时间和空间上互相耦合的合成计算环境。

本文详细介绍了在GCAir软件中通过分布式仿真功能实现不同多个分布式系统联合仿真的方法,通过模型运算测试,验证了基于GCAir的分布式仿真功能能够满足复杂系统分布式仿真的需求。

一、分布式仿真功能简介

GCAir系统仿真测试验证一体化平台是世冠科技基于MBSE思想完全自主研发的一款工业软件,为复杂装备系统研制的正向设计提供了工具支撑。GCAir支持多源异构模型集成,从全虚拟到半实物的便捷切换,能够在同一平台上完成模型在环、软件在环、硬件在环境测试,具备连续综合集成测试验证的能力,可应用于复杂装备从设计研发到运行维护的全生命周期。

它具有以下特点:

  • 完全自主知识产权—100%自主研发,已获数十项发明专利授权;
  • 系统架构设计—支持ICD管理、模型库管理、系统模型构建;
  • 系统集成仿真—多源异构模型集成、第三方软件联合仿真;
  • 分布式仿真功能;
  • 可视化与人机交互—支持2D曲线、虚拟仪表/控件、3D视景、AR/VR、模拟器等人机交互设备。

GCAir软件分布式仿真功能基于TCP/IP技术开发,其技术实现方法分为两层,一是“FMU分配”,根据系统的划分,将系统框架中的FMU模型分配给不同IP的GCAir仿真引擎进行计算。二是“多线程分配”进一步将不同的FMU模型分配给当前仿真引擎中不同计算机线程进行更高效率地计算资源利用。另外TCP/IP是一个协议族,是分布式系统中广泛采用的交互方式,其突出优点是传输距离长、易于测试、扩展性能好、实时性和可靠性较好。

分布式仿真过程中,GCAir仿真引擎(SimulationEngine)是实际运行仿真模型的实体,通过指定进行仿真引擎计算的IP地址,将不同的模型分配给需要进行运算的仿真引擎进行计算,TCP接收GCAir的命令进行仿真计算,仿真完成后将仿真结果数据实时发送给GCAir。

二、基于GCAir的全虚拟分布式仿真

在案例中应用的分布式全虚拟仿真功能,能够通过配置不同子系统中的FMU在不同的仿真引擎下运行,避免复杂系统在单一仿真引擎运行过载而导致的仿真运行缓慢乃至错误的情况出现,可以提高仿真计算效率;另外,GCAir提供了性能监测的功能,能够分析在仿真运行过程中各模块FMU在实际执行过程中的负载情况,指导对各模块FMU更科学地分配,做到“物尽其用”,最终实现多系统、复杂系统的虚拟分布式仿真,具体过程示意如下。

 

参考上述技术方法,以“六自由度飞行器末段比例导引仿真”为例,描述实现过程。

本示例使用GCAir系统建模工具,将飞行器各部件的仿真模型进行封装,建立了六自由度飞行器的模型库,而后在系统页面中进行了比例导引控制回路仿真系统集成仿真,展示了完整的建模仿真流程。示例是一个能够对飞行器“末段比例导引”追踪机动目标的过程进行分析的六自由度飞行器控制系统仿真工程,包含了能够参数化配置的机动目标、导引头、六自由度飞行器、飞行控制器以及简化的舵机模型,目标是在不同初始条件及目标区域的情况下,对末段追踪控制效果进行分析评估。

示例中具体信息如下。

 

 

 

 

在实现上述技术方法的过程中,首先在网络中保证参与仿真的引擎是正常运行的状态时,此时可在GCAir的界面中获取可用的仿真引擎节点IP地址信息,在工具栏中的“更换引擎”界面,选择“全虚拟分布式仿真”。

在可选IP列表中,选择想要参与仿真的仿真引擎IP,点击加号,选择的仿真机进入已选择仿真机IP列表,例如本例中主机端IP地址为192.168.2.113,两台客户端IP地址分别为192.168.2.116、192.168.2.112。

 

分别在客户端IP地址为192.168.2.116、192.168.2.112中,用cmd命令行运行GCAir仿真引擎,注意不启动GCAir软件,仿真引擎路径在安装目录下,将“QsimEngine.exe”拖拽至cmd命令行中,另外加入端口号,全部运行内容为“QsimEngine.exe 7101 8101 9101 10101”。

 

以上为仿真环境准备,在此基础上依据系统划分,进行分布式仿真配置。

 

在FMU的分配中,将不同的FMU模型拖拽分配给不同IP地址的实时仿真机运行。本例中,将导引头homing_head子系统中的FMU模型、rudder子系统中的FMU模型、靶机target子系统中的FMU和视景3DEMGERING子系统中的FMU分配给192.168.2.112仿真引擎进行计算;将飞行器missile_body子系统中的FMU模型分配给192.168.2.113仿真引擎进行计算;将飞行控制器onboard_controller子系统中的FMU模型分配给192.168.2.116仿真引擎进行计算。

 

然后切换至多线程分配界面,将对应的FMU模型分配到不同实时仿真机的线程中,高效利用计算机计算资源。本例中,将导引头homing_head子系统中的FMU模型、rudder子系统中的FMU模型、靶机target子系统中的FMU和视景3DEMGERING子系统中的FMU分别分配给192.168.2.112仿真引擎中不同的计算机线程进行计算;将飞行器missile_body子系统中的FMU模型分配给192.168.2.113仿真引擎中不同的计算机线程进行计算;将飞行控制器onboard_controller子系统中的FMU模型分配给192.168.2.116仿真引擎中不同的计算机线程进行计算。

 

 

 

以上配置完成后,即可进行仿真,结果与单独应用本机IP地址进行运算的结果一致,符合期望值。

 

以上配置完成后,即可进行仿真,结果与单独应用本机IP地址进行运算的结果一致,符合期望值。

 

由于分布式仿真的目标是解决可能由于单机仿真效率低的问题,因此分析分布式仿真过程中的计算资源分配是指导在仿真过程中FMU模型高效率运行的必要条件。在GCAir软件中提供了仿真过程中的监测功能,性能监测画面可分为四部分解读仿真过程中模型的运算情况。

第一部分CPU使用率:统计在CPU线程中各个FMU的运行耗时及总耗时,在CPU中FMU在执行计算的运行耗时,其中setvalue环节为设置参数,getvalue环节为获取参数,dostep环节为执行运算。

第二部分线程实时曲线:红色的是调度步长1ms,它下面的是线程实时曲线,不超过红色的就表示支持1ms。

第三部分FMU操作占用:分为FMU操作占用的时间长度,FMU操作占用调度步长的时间百分比。

第四部分时间延迟:在整个仿真过程中,超过调度步长的情况。

 

上图为仿真过程中性能监测的总图,以下对各分项进行详细说明。

(1)CPU使用率-线程图

 

 

由CPU使用率-线程图可知,在执行仿真过程中,仿真引擎CPU线程运行全部FMU的总时间为0.811906秒,未超过仿真调度步长,为正常运行。

(2)CPU使用率-FMU图

 

由CPU使用率-FMU图可知,CPU运行FMU模型中的dostep、getvalue和setvalue环节总时间为0.591499秒,homing_head模型运行占用总时间的36.77%,rudder1模型运行占用总时间为36.78%,target1模型运行占用总时间的21.15%,DRENGERING模型运行占用总时间的5.3%,各模型占用时间合理。

(3)线程实时曲线图

 

由线程实时图可知,在仿真执行过程中,模型的执行均没有超过仿真调度步长0.01s。

(4)FMU操作占用图

由FMU操作占用图可知,在仿真执行过程中,各FMU模型的执行大部分用时均在dostep环节,最大的rudder模型运行时间为0.293s。

(5)FMU操作占用百分比图

 

由FMU操作占用百分比图可知,在仿真执行过程中,除3DRENDERING模型外,各FMU模型的执行大部分用时均在dostep环节,最大的rudder模型运行时间占比为78%。

基于以上性能监测分析,表明系统在分布式仿真执行过程正常且正确运行,如若有偏离不合理的情况,可分析性能监测图重新优化FMU分配,线程分配。

三、小结

GCAir软件不但可以实现多源异构的集成仿真,也可以实现基于TCP/IP技术的分布式全虚拟仿真,此种仿真技术适用复杂装备系统。从虚拟仿真只需设置被测硬件即可一键切换到半实物仿真。分布式仿真技术已经被广泛地应用到军事训练、科学研究、协同验证等领域,其深远的工程应用价值,尤其在复杂系统的仿真领域价值,已引起世界各国的广泛重视。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值