论文部分内容阅读
摘 要:随着航天科技的不断发展,关于航天器各部件的仿真测试在实际工程中的应用越来越广泛,所以采用一种高可靠性总线通信协议是实现FMU仿真的关键。针对FMI联合仿真系统中的半物理仿真要求,采用软硬件结合的方式设计了一种基于1553B总线的数据交互功能,实现各类仿真模型和实物硬件的数据交互,进一步提高了仿真实验的可靠性和实用性。
关键词:1553B总线 FMI联合仿真 数据交互方法 半物理仿真
中图分类号:TP392 文献标识码:A文章编号:1672-3791(2021)05(b)-0050-03
Abstract: With the continuous development of aerospace science and technology, the simulation test of various parts of spacecraft is more and more widely used in practical engineering, so the key to realizeFMU simulation is to adopt a high reliability bus communication protocol. According to the requirement of semi-physical simulation in FMI co-simulation system, a data interaction function based on 1553B bus is designed by combining hardware and software, which realizes the data interaction between various simulation models and physical hardware, and further improves the reliability and practicability of simulation experiments.
Key Words: The 1553b bus; FMI co-simulation; Data interaction method; Semi-physical simulation
随着航天科技的不断发展,多种类仿真模型与不同实物硬件之间的数据交互是开发和测试各类航天器的重要组成部分[1]。准确判断出数据交互所体现的内容为把握航天器的运行状态、有效载荷、故障模式等提供了强有力的数据支撑[2]。仿真模型之间的传输因数据传输协议问题存在不稳定现象以及数据的丢失问题。模型互连的高复杂度引起仿真系统的数据交互不够灵活,导致开发过程中工作量大、周期长、维护困难等问题[3]。
该文基于1553B总线高可靠性,在FMI联合仿真系统中设计并实现数据交互功能。各类仿真模型有机的整合在一起,降低了仿真模型的耦合性,实现了仿真数据的可靠传输。
1 数据交互总体设计方案
基于1553B总线工作模式设计并搭建硬件模块中的物理设备。在软件模块的中平台配置系统属于FMI联合仿真系统的一个子服务,将平台配置系统下发至服务器终端的仿真数据通过1553B协议发送至远程终端,实现半物理仿真。
1.1 硬件模块实现方法
如图1所示,硬件模块由多个物理设备组成,服务器终端系统通过物理设备来存储程序和输入数据。物理设备作为程序的执行机构,将仿真指令处理成通用的数字信号,各设备间通过分布式集成的方式协同工作[4]。
在物理设备的实现中,总线控制设备实现1553B总线系统中总线控制器(BC)模式,控制并管理1553B总线系统,起到负责发送仿真命令、参与仿真数据传输、接收状态响应的作用[5]。仿真终端设备实现1553B总线系统中远程终端(RT)模式,对总线控制设备发送的有效命令做出响应并回送状态字。总线监测设备实现1553B总线系统中总线监视器(BM)模式,负责监听和记录总线上传输的命令和数据,该设备受总线控制设备控制,不参与任何数据传输工作[6]。各设备内部均搭载多功能1553B板卡,通过1553B耦合器连接在A总线和B总线上。
1.2 1553B协议实现方法
在FMI联合仿真系统数据交互功能的软件模块设计方案主要包含两个方面,分别是平台配置系统和服务器终端系统。仿真任务启动后,平台配置系统和服务器终端通过中间件Redis建立连接,仿真数据和1553B协议都会以JSON对象的格式下发至服务器终端系统中,运行在仿真计算机上的服务器终端系统将接收到的JSON对象处理成1553B字格式规定的配置信息和仿真数据,再通过硬件模块中的1553B板卡接收并完成数据的处理和轉发功能,各仿真计算机之间依赖1553B板卡的连接完成数据交互。软件模块数据交互图见图2。
该文在1553B协议的实现上采用DOM结构的方式,设计动态绑定方法构建父子节点的一对多关系。协议树形节点构建过程流程图见图3。
动态绑定表示当所有节点位置确定后,仍然可以调整父子节点的关联关系,这种方式提高了DOM结构的灵活性。具体的实现方法设计为使用嵌套循环的方式,首先通过外循环遍历当前节点元素NodeId,内循环遍历当前节点元素ParentId。将ParentId作为NodeId去获取当前节点的父节点对象,当前节点的NodeId赋值给父节点实体类对象的Children属性,完成父子节点的绑定。主要实现步骤如下。 Step1:调用getAllNode()方法将数据库中所有节点对象存入List集合。
Step2:初始化根节点的值为null,若存在根节点,则指向根节点。
Step3:使用for循环将List集合中所有节点对象存入Map集合类,Map的key保存的是当前节点的NodeId,value保存的是当前节点对象。
Step4:使用for循环遍历获取当前节点对象的ParentId,当ParentId为空时将当前节点的NodeId赋值给根节点并跳出本轮循环。如果ParentId不为空值,通过ParentId查询Map中映射的父节点对象并将当前节点对象赋值给父节点实体类中的Children属性。
Step5:通过@Responsebody注解将根节点对象以Json格式返回。前端程序解析节点对象并渲染至平台配置系统中。
1.3 半物理仿真实现方法
在半物理仿真过程中,仿真数据以1553B消息格式发送。一条1553B消息可以由命令字、状态字和0~32个数据字组成。具体实现方法如下。
Step1:调用OpenDevice()函数初始化1553B板卡,调用ADT_L1_GetVersionInfo()函数装配板卡信息。
Step2:通过1553_AddTime ()函数启动时间标签,调用BC_Init()、RT_Init()和MT_Init()函数初始化多功能1553B板卡的BC、RT和MT工作模式。
Step3:使用Read_Param()函数读取数据并解析为1553B总线字格式中的命令字(BCCB)和数据字(CDP)。调用ADT_L1_1553_CDP()函数为CDP域申请内存空间。
Step4:将1553B协议中RT地址、子地址、时间同步周期和工作模式等配置参数作为命令字,平台下发的仿真数据CDP作为数据字,调用ADT_L1_1553_BCCB_Write()函数和ADT_L1_1553_BC_CB_CDPWrite()函数将数据流写入1553B总线中,调用ADT_L1_1553_BC_Start()函数启动BC发送消息。
2 实验结果
通过程序控制1553B板卡,成功实现仿真数据的交互。从图4可以看到,在FMI联合仿真系统显示控制运行界面中可以正常运行仿真程序并监测FMU数据和状态变化。使其可以真正应用到工程实践中,实现了FMI联合仿真系统的半物理仿真功能。
3 结语
该文基于1553B总线工作模式搭建并配置了硬件模块中的物理设备,设计动态绑定方法生成1553B协议。在服务器终端系统中实现了仿真数据交互功能,推动了航空航天领域的联合仿真技术,极大地提高了仿真的可靠性和实用性。
参考文献
[1] 王鸿亮,廉东本,徐久强.基于FMI的分布式联合仿真技术研究[J].计算机仿真,2017,34(4):256-261.
[2] 刘巨富.基于FMI的热插拔式联合仿真平台设计与实现[D].华东师范大学,2017.
[3] 周光海.嵌入式软件可靠性仿真测试系统[J].电子技术与软件工程,2019(5):36-37.
[4] 胡新葉,李典蔚.大数据在交互设计中的应用研究[J].艺术与设计(理论),2020,2(10):74-76.
[5] 蒋志军,吴旋辉,陈春海,等.提高1553B总线通信装置可靠性方法的研究[J].长江信息通信,2021,34(1):125-128.
[6] 张亚航,杨培尧,杨志刚.基于时间同步的1553B总线通信协议设计[J].航天器工程,2021,30(2):88-95.
关键词:1553B总线 FMI联合仿真 数据交互方法 半物理仿真
中图分类号:TP392 文献标识码:A文章编号:1672-3791(2021)05(b)-0050-03
Abstract: With the continuous development of aerospace science and technology, the simulation test of various parts of spacecraft is more and more widely used in practical engineering, so the key to realizeFMU simulation is to adopt a high reliability bus communication protocol. According to the requirement of semi-physical simulation in FMI co-simulation system, a data interaction function based on 1553B bus is designed by combining hardware and software, which realizes the data interaction between various simulation models and physical hardware, and further improves the reliability and practicability of simulation experiments.
Key Words: The 1553b bus; FMI co-simulation; Data interaction method; Semi-physical simulation
随着航天科技的不断发展,多种类仿真模型与不同实物硬件之间的数据交互是开发和测试各类航天器的重要组成部分[1]。准确判断出数据交互所体现的内容为把握航天器的运行状态、有效载荷、故障模式等提供了强有力的数据支撑[2]。仿真模型之间的传输因数据传输协议问题存在不稳定现象以及数据的丢失问题。模型互连的高复杂度引起仿真系统的数据交互不够灵活,导致开发过程中工作量大、周期长、维护困难等问题[3]。
该文基于1553B总线高可靠性,在FMI联合仿真系统中设计并实现数据交互功能。各类仿真模型有机的整合在一起,降低了仿真模型的耦合性,实现了仿真数据的可靠传输。
1 数据交互总体设计方案
基于1553B总线工作模式设计并搭建硬件模块中的物理设备。在软件模块的中平台配置系统属于FMI联合仿真系统的一个子服务,将平台配置系统下发至服务器终端的仿真数据通过1553B协议发送至远程终端,实现半物理仿真。
1.1 硬件模块实现方法
如图1所示,硬件模块由多个物理设备组成,服务器终端系统通过物理设备来存储程序和输入数据。物理设备作为程序的执行机构,将仿真指令处理成通用的数字信号,各设备间通过分布式集成的方式协同工作[4]。
在物理设备的实现中,总线控制设备实现1553B总线系统中总线控制器(BC)模式,控制并管理1553B总线系统,起到负责发送仿真命令、参与仿真数据传输、接收状态响应的作用[5]。仿真终端设备实现1553B总线系统中远程终端(RT)模式,对总线控制设备发送的有效命令做出响应并回送状态字。总线监测设备实现1553B总线系统中总线监视器(BM)模式,负责监听和记录总线上传输的命令和数据,该设备受总线控制设备控制,不参与任何数据传输工作[6]。各设备内部均搭载多功能1553B板卡,通过1553B耦合器连接在A总线和B总线上。
1.2 1553B协议实现方法
在FMI联合仿真系统数据交互功能的软件模块设计方案主要包含两个方面,分别是平台配置系统和服务器终端系统。仿真任务启动后,平台配置系统和服务器终端通过中间件Redis建立连接,仿真数据和1553B协议都会以JSON对象的格式下发至服务器终端系统中,运行在仿真计算机上的服务器终端系统将接收到的JSON对象处理成1553B字格式规定的配置信息和仿真数据,再通过硬件模块中的1553B板卡接收并完成数据的处理和轉发功能,各仿真计算机之间依赖1553B板卡的连接完成数据交互。软件模块数据交互图见图2。
该文在1553B协议的实现上采用DOM结构的方式,设计动态绑定方法构建父子节点的一对多关系。协议树形节点构建过程流程图见图3。
动态绑定表示当所有节点位置确定后,仍然可以调整父子节点的关联关系,这种方式提高了DOM结构的灵活性。具体的实现方法设计为使用嵌套循环的方式,首先通过外循环遍历当前节点元素NodeId,内循环遍历当前节点元素ParentId。将ParentId作为NodeId去获取当前节点的父节点对象,当前节点的NodeId赋值给父节点实体类对象的Children属性,完成父子节点的绑定。主要实现步骤如下。 Step1:调用getAllNode()方法将数据库中所有节点对象存入List集合。
Step2:初始化根节点的值为null,若存在根节点,则指向根节点。
Step3:使用for循环将List集合中所有节点对象存入Map集合类,Map的key保存的是当前节点的NodeId,value保存的是当前节点对象。
Step4:使用for循环遍历获取当前节点对象的ParentId,当ParentId为空时将当前节点的NodeId赋值给根节点并跳出本轮循环。如果ParentId不为空值,通过ParentId查询Map中映射的父节点对象并将当前节点对象赋值给父节点实体类中的Children属性。
Step5:通过@Responsebody注解将根节点对象以Json格式返回。前端程序解析节点对象并渲染至平台配置系统中。
1.3 半物理仿真实现方法
在半物理仿真过程中,仿真数据以1553B消息格式发送。一条1553B消息可以由命令字、状态字和0~32个数据字组成。具体实现方法如下。
Step1:调用OpenDevice()函数初始化1553B板卡,调用ADT_L1_GetVersionInfo()函数装配板卡信息。
Step2:通过1553_AddTime ()函数启动时间标签,调用BC_Init()、RT_Init()和MT_Init()函数初始化多功能1553B板卡的BC、RT和MT工作模式。
Step3:使用Read_Param()函数读取数据并解析为1553B总线字格式中的命令字(BCCB)和数据字(CDP)。调用ADT_L1_1553_CDP()函数为CDP域申请内存空间。
Step4:将1553B协议中RT地址、子地址、时间同步周期和工作模式等配置参数作为命令字,平台下发的仿真数据CDP作为数据字,调用ADT_L1_1553_BCCB_Write()函数和ADT_L1_1553_BC_CB_CDPWrite()函数将数据流写入1553B总线中,调用ADT_L1_1553_BC_Start()函数启动BC发送消息。
2 实验结果
通过程序控制1553B板卡,成功实现仿真数据的交互。从图4可以看到,在FMI联合仿真系统显示控制运行界面中可以正常运行仿真程序并监测FMU数据和状态变化。使其可以真正应用到工程实践中,实现了FMI联合仿真系统的半物理仿真功能。
3 结语
该文基于1553B总线工作模式搭建并配置了硬件模块中的物理设备,设计动态绑定方法生成1553B协议。在服务器终端系统中实现了仿真数据交互功能,推动了航空航天领域的联合仿真技术,极大地提高了仿真的可靠性和实用性。
参考文献
[1] 王鸿亮,廉东本,徐久强.基于FMI的分布式联合仿真技术研究[J].计算机仿真,2017,34(4):256-261.
[2] 刘巨富.基于FMI的热插拔式联合仿真平台设计与实现[D].华东师范大学,2017.
[3] 周光海.嵌入式软件可靠性仿真测试系统[J].电子技术与软件工程,2019(5):36-37.
[4] 胡新葉,李典蔚.大数据在交互设计中的应用研究[J].艺术与设计(理论),2020,2(10):74-76.
[5] 蒋志军,吴旋辉,陈春海,等.提高1553B总线通信装置可靠性方法的研究[J].长江信息通信,2021,34(1):125-128.
[6] 张亚航,杨培尧,杨志刚.基于时间同步的1553B总线通信协议设计[J].航天器工程,2021,30(2):88-95.