首页 > 范文大全 > 正文

海鹰仿真模型转化为银河仿真模型的编程实现方法

开篇:润墨网以专业的文秘视角,为您筛选了一篇海鹰仿真模型转化为银河仿真模型的编程实现方法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:海鹰仿真系统是基于Alpha计算机研制的实时仿真工作站,曾被广泛应用于航天仿真,但如今海鹰仿真系统正在被银河仿真系统等新型设备取代。本文旨在介绍一种将海鹰仿真模型自动转化为银河仿真模型的实现方法,以实现将海鹰仿真系统中的经典模型快速移植到银河仿真系统中。

关键词:海鹰仿真模型;银河仿真模型

中图分类号:TP391.9

由于银河仿真系统和海鹰仿真系统使用的语言结构、语言语法基本一致,而且银河仿真系统的硬件配置也完全包容海鹰仿真系统的硬件接口,所以银河仿真系统正在逐渐完全取代海鹰仿真系统。然而海鹰仿真系统的仿真模型依然不能在银河仿真系统中直接使用,而是需要进行大量的手工修改后才能在银河仿真系统中编译及运行仿真模型。

因此本文先介绍海鹰仿真模型与银河仿真模型的特点,然后介绍海鹰仿真模型及银河仿真模型的特性,最后再给出海鹰仿真模型转化为银河仿真模型的编程实现方法

1 海鹰仿真系统与银河仿真系统分析

海鹰仿真系统与银河仿真系统的特性如表1所示,精简的模型运行顺序一致如图1所示,可见两种系统的语言结构具有横多共同点。

2 海鹰仿真模型和银河仿真模型分析

海鹰仿真模型包含yfs后缀的海鹰仿真语言主程序、dat后缀的插值函数、for后缀的fortran语言用户代码;银河仿真模型包含yfs后缀的海鹰仿真语言主程序、dat后缀的插值函数、cpp后缀的C++语言用户函数、h后缀的C++语言用户头文件。

海鹰仿真模型的插值函数可以直接使用到银河仿真模型中,海鹰仿真模型的主程序除了语法结构外也可以直接使用到银河仿真模型中,将海鹰仿真模型转化为银河仿真模型的关键一步是将fortran代码转化为银河仿真模型支持的C、C++代码或银河仿真模型支持yfs代码,本文只讲述转化为yfs代码的方法。

海鹰仿真模型中fortran语言的用户代码包含以double precision function标识的函数和以subroutine标识的子程序,其中subroutine子程序供fortran代码中function标识的函数调用,而function标识的函数供yfs主程序调用。

3 海鹰仿真模型转化为银河仿真模型的编程实现步骤

通过编程方式实现将一个海鹰仿真模型转化为银河仿真模型需要进行以下三步:海鹰仿真模型的dat插值函数文件转化、海鹰仿真模型的fortran代码转化为yfs函数、海鹰仿真模型的yfs代码转化。

3.1 海鹰仿真模型的dat插值函数文件转化。海鹰仿真模型的dat插值函数文件可以一成不变地直接拷贝到银河仿真模型中去使用,因此这里只需要直接拷贝文件即可。

3.2 海鹰仿真模型的fortran代码分析及转化。fortran代码转化为的yfs格式函数的过程可以用图3来描述,但由于海鹰仿真模型的fortran代码的子程序或函数的参数从代码形式上看,没有输入参数和输出参数之分,因此将其转化为yfs子函数(特指fortran子程序对应的yfs格式的函数)或yfs函数(特指fortran函数对应的yfs格式的函数)之前,首先要将fortran代码的子程序或函数的参数从代码中提取成输入参数或输出参数。

图3 编程实现过程

fortran子程序或函数处理为yfs子函数或yfs函数的分块过程完全一致,具体如下:

首选将fortran子程序或函数的实参进行左右值分析,将其分成左值参数、右值参数、混合参数,然后将参数按下述原则进行分类:(1)凡是左值参数(只在赋值号左边出现的参数)的参数为输出;(2)凡是右值参数(只在赋值号右边出现的参数)的为输入;(3)凡是混合参数(在赋值号两边均出现过得参数)在第一次左值之后将参数名加一new后缀,并将该混合参数作为一输入参数,同时将加了new后缀的参数名作为一输出参数。

然后按新输出参数和输入参数按如下格式书写为yfs格式的函数:

Function 函数名(输出参数列表=输入参数列表)

函数体

End function函数名

3.3 海鹰仿真模型的yfs代码分析及转化

海鹰仿真模型的yfs代码和银河仿真模型的yfs代码结构一致,这里主要需要做的是将海鹰仿真模型中yfs代码对fortran函数的调用行用按fortran函数转化后的yfs函数的形式去作实参匹配替换即可。

4 结束语

银河仿真模型是域工程的形式存在和使用的,因此在完成了上述转化后还需要编辑银河仿真程序的工程文件盒配置文件。

其中工程文件为以prj为后缀的文本文件,只有两行内容,格式如下:

工程名.yfs

插值函数文件名.dat

参考文献:

[1]陈卫民,张红宇.海鹰仿真集成开发环境HYSide[J].系统仿真学报,1998(03).

[2]航天海鹰仿真中心.海鹰仿真语言HYSL[Z].1997.

[3]国防科学技术大学计算机学院.YHSIM用户手册[Z].2011.

[4]Fotran77程序设计语言[M].北京:高等教育出版社,1984.

作者单位:三二设计研究所,贵州 550009