一、摘 要
现代复杂机械产品,无论是机器人、地面车辆、航空航天飞行器还是海洋船舰,乃至工程机械,均在向智能化方向发展。智能化的机械系统一般包含电子控制、液压与电气驱动、机械机构等组成部分,由电子控制系统通过电液驱动执行环节完成作业,这些组成部分集成在一起,使其动力学特性极为复杂。
这些系统由于各自的学科特点不同,其建模和仿真分析所采用的方法也不同,并且具有各自不同的数值求解方法。要分析智能化机械产品复杂的动力学性能,必须能够将电子控制、液压与电气、机械机构等不同部分的仿真模型集成到一起,从而分析它们之间的交互作用。
所以联合仿真是异构系统集成仿真必需的一步,GCAir基于FMI标准,可以配置导出FMU,此FMU可以被第三方仿真软件导入,通过TCP通讯实现GCAir与第三方仿真软件之间联合仿真。
二、案 例 介 绍
2.1GCAir与Simulink联合仿真
GCAir通过TCP模块与Simulink实现数据传送与接收,把GCAir中的正弦波、时间数据传输到Matlab/Simulink中,并在Simulink中显示,观察GCAir仿真时间与Simulink时间的关系;同时把Simulink中的常数值传输到GCAir中来,并显示。
2.1.1GCAir中建立仿真模型
在GCAir中新建工程,并创建子系统,在创建的子系统中使用TCP模块与Var模块。TCP模块可以设置传输的通道数及输入输出接口,此处设定两个输出与两个输入接口,如下图所示。
GCAir的准备工作已经做好了,接下来进入到Simulink中建立工程,并搭建联合仿真测试所需的模型。在Simulink模型库→Simulink_Extras中找到FMU_Import模块,FMU_Import是导入用来GCAir中TCP模块所生成的FMU。
图5.Simulink导入FMU
Simulink中使用FMU _Import模块导入FMU后,并搭建测试所需的模型,如下图所示。
图6.联合仿真测试中Simulink仿真模型
2.1.3联合仿真测试及结果
在Simulink求解器中,选择定步长求解0.01s,如下图所示。此处需要注意,GCAir与Simulink联合仿真时,两者的仿真步长一定为正数倍的关系,否则会联合仿真失败。
图7.设置Simulink求解器步长
仿真结果如下图所示:
图8.联合仿真结果
2.2GCAir与FMPy联合仿真
基于FMPy开源库和GCAir导出联合仿真FMU功能,实现在python环境中调用的GCAir仿真平台的功能,并在仿真过程中实现数据交互。
2.2.1FMPy介绍
FMPy是python语言的扩展库,用来对FMU(Functional Mock-up Units)进行仿真。目前FMPy支持:
1)FMI1.0和FMI2.0标准
2)支持Co-Simulation 和Model Exchange模型求解
3)可以在Windows、Linux和macOS系统下运行
4)具备有和用户交互界面
5)编译C代码FMU并生成CMake项目以进行调试
2.2.2安装FMPy
1)使用conda安装:conda install -c conda -forge fmpy
2)使用pip安装:python -m pip install fmpy[complete]
2.2.3示例工程介绍
六自由度模型为GCAir平台自带示例工程,该示例工程通过GCAir系统建模工具,将导弹各部件的仿真模型进行封装,建立了六自由度导弹的模型库,而后在系统页面中进行了比例导引控制回路仿真系统集成,然后进行仿真。该工程中包含了能够参数化配置的机动目标、导引头、六自由度弹体、弹载计算机以及简化的舵机模型。该示例的目标是在不同初始条件及杀伤半径的情况下,对末段追踪的脱靶量控制效果以及杀伤概率进行分析评估。
图9.模型架构图
本示例在原工程的基础上,改造Target(机动目标)子系统,使得机动目标的位置、速度由python环境输入,同时将导弹的位置、速度输出到python环境中,方便用户判断是否命中。
图10.TCP配置如下
点击上图右上角的fmu 图标将tcp导出成FMU,以便被FMPy调用
图11.fmu_slave
图12.外部连线设置
在仿真的过程中FMPy通过SetReal函数将目标的位置、速度传入到GCAir功能中;同时通过GetReal函数拿到导弹的位置;然后对目标位置和导弹位置做出判断,如果导弹接近目标半径10米以内,表示命中目标,仿真停止。
图13.仿真数据交互控制
仿真结果如下图所示:
图14.目标及导弹坐标变化曲线
三、应 用 场 景
GCAir导出FMU_slave扩展了GCAir平台的应用场景:
可以方便在Simulink、SimulationX中做控制模型、子系统模型的快速开发,与GCAir进行联合调试。
在机器学习方面:数据驱动与模型驱动必须融合,才能各自发挥其优势,基于数据的可以发掘潜在的规律,而模型将已有的知识形成控制,两者互补,学习到的新规律可以被融入到机理模型,而机理模型又能够为学习奠定基础。在GCAir中建立机理模型,通过Python环境的搭建智能算法,借助FMPy可以与GCAir工程进行实时的数据交互,通过不断的仿真对智能算法进行训练。