
第一章 简介高层体系结构High Level ArchitectureHLA是美国国防部为了解决美军在各个领域开发出来的多种模型和各类仿真系统的互联和互操作问题而提出的一种分布式仿真标准而按照HLA接口规范实现的软件则被称之为运行支撑平台Run Time InfrastructureRTI。HLA定义了一个通用的、灵活的、可伸缩的、可重用的仿真软件体系结构实现了基于组件“即插即用”的分布式仿真思想。1996年8月美国国防部建模和仿真办公室Defense Modeling Simulation OfficeDMSO颁布了第一个HLA标准HLA 1.0DMSO的最新标准为1998年2月颁布的HLA 1.3。1997年12月HLA 1.3被仿真互操作标准化委员会SISCSimulation Interoperability Standards Committee接纳为IEEE标准草案并在2000年9月被正式接纳为IEEE 1516标准。当前的IEEE1516标准由瑞典Pitch公司主导该公司实现的RTI软件为pRTI。HLA极大地丰富和促进了各国仿真事业的发展并已发展成为分布式仿真领域的前沿和热点技术。1.1 KY-RTI遵循的标准KY-RTI旨在为国产操作系统提供全方位支持。KY-RTI遵循HLA1.3标准采用HLA1.3标准实现KY-RTI主要基于以下几点理由。1HLA1.3简单实用编程方便。与之相对IEEE1516标准则更加规范化但编程相对复杂。以参数类型来说IEEE 1516对参数类型进行了更复杂的封装。逻辑时间一般用浮点数就可以实现了通过“”、“-”、“”、“”等运算符进行逻辑时间的运算和比较操作但在IEEE1516标准中却无法做到逻辑时间必须实例化再通过调用对象类中的方法来进行运算和比较。再看字符串类型在C中常用的char数组、string、Qt中的QString、VC中的CString等这些类型相互之间转换也比较容易但在IEEE 1516中被定义为wstring平时有多少用户使用wstring呢与之相关的数据类型wchar_t、_bstr_t等又有多少用户熟悉呢IEEE 1516这种封装看似比HLA1.3更加标准化了但使用起来却不方便。2美军几乎都在使用DMSO自己定义的HLA1.3标准而不是一个由他国公司主导的仿真标准。3遵循HLA1.3标准可以更好地兼容原有仿真系统。像10多年以前的仿真系统一般都是基于HLA1.3标准开发但这些仿真程序现在一般很难运行在最新的操作系统和CPU上但通过KY-RTI可以方便地移植到最新的操作系统和CPU上。1.2 KY-RTI的特点KY-RTI的特点概括如下1与DMSO RTI-1.3NGv6完全兼容DMSO RTI-1.3NGv6是DMSO开发的一个RTI软件。KY-RTI采用了与DMSO RTI-1.3NGv6完全一样的.h文件和库文件名因此与DMSO RTI-1.3NGv6完全兼容。采用DMSO RTI-1.3NGv6编写的程序几乎不需要修改任何代码即可移植到KY-RTI包括Windows程序和Linux程序。2支持Linux和Windows操作系统除了支持WindowsKY-RTI为Linux和各种国产操作系统和国产CPU提供全面支持。当前KY-RTI在x86、飞腾、龙芯、申威等CPU在RedHat、CentOS、Ubuntu、银河麒麟、中标麒麟、优麒麟、深度等操作系统上都运行良好并且能够很好地移植到其他国产操作系统和CPU。3支持GNU C、Qt、Java、Python、Visual C、Visual C#KY-RTI支持多种程序设计语言包括GNU C、Qt、Java、Python、Visual C、Visual C#。Java支持OpenJDK和Oracle JDK、JRE。Visual C版本包括VC6.0、VC2005、VC2008、VC2010、VC2013、VC2015等。KY-RTI支持基于不同操作系统、不同CPU、不同程序设计语言开发的仿真成员之间实现透明通信就好像这些仿真成员在同一台计算机上使用同一种程序设计语言毫无障碍地进行数据通信。4坚持“大道至简”的设计原则对于C接口而言KY-RTI采用了与DMSO RTI-1.3NGv6完全一样的.h文件和库文件名。但对于Java和Visual C#来说则采用了能简单则尽量简单的原则所有Handle例如仿真成员句柄、对象类句柄、对象实例句柄、交互类句柄、参数句柄等都用int表示所有时间都用double表示。从而有效地提高用户的编程效率。5融合IEEE1516标准的优点支持使用tick和不使用tick两种程序设计方法在基于HLA1.3标准开发时间管理服务的程序时仿真成员需要不断调用tick服务来接收来自RTI的回调消息否则将收不到消息。KY-RTI对此进行了功能增强既可以按照HLA1.3标准采用tick服务来接收回调消息也可以不采用tick服务而直接接收回调消息。当仿真程序第一次运行时会在当前目录产生1个叫做“RTI.rid”的文件。RTI.rid是遵循HLA1.3标准实现的RTI所采用的文件。KY-RTI对其功能进行了扩展如图1.1所示该文件定义了RTI服务器的IP地址和端口号另一方面还定义了一个tick开关标识。图中的IP地址为127.0.0.1即为本机端口号为10000可在configure.rti中修改。“;; UsingTickSwitch On”为tick开关标识该标识以“;;”开头其他RTI会把该行作为注释行而忽略KY-RTI会根据该标识确定仿真成员是否使用tick服务设置为“;; UsingTickSwitch On”表示使用tick服务设置为“;; UsingTickSwitch Off”表示不使用tick服务。如果没有这一行则默认表示使用tick服务因此基于DMSO RTI-1.3NGv6开发的程序其RTI.rid文件中并没有这一行但同样可以在KY-RTI上运行。图1.1 自动生成的RTI.rid1.3 章节说明本文主要围绕KY-RTI在GNU C、Qt、Java、Python、Visual C、Visual C#等多个程序设计语言的仿真成员开发方法进行介绍。前三种语言分别针对KY-RTI在Linux软件包中的聊天程序和时间管理程序进行介绍后两种语言通过KY-RTI在Windows软件包中的ping、pong程序进行介绍。通过相近程序的比较用户可以迅速地掌握基于KY-RTI开发仿真系统的方法。第一章本章介绍了KY-RTI遵循HLA1.3标准的原因、KY-RTI自身的优点。对于用户而言需要重点关注图1.1在程序设计中会经常用到。第二章本章介绍了KY-RTI在Linux和Windows系统下的安装方法。第三章本章介绍了对象模型模板的概念再次探讨了将对象类和交互类作用于数据交换时在很多情况下是等价的。另外介绍了基于KY-OMT工具建立fed文件的方法。第四章本章介绍了基于GNU C开发两个示例程序的方法包括聊天程序和时间管理程序。第五章本章介绍了使用Qt Creator开发聊天程序和时间管理程序的方法。聊天程序是一个控制台Qt程序而时间管理程序则是一个图形界面的Qt程序。时间管理程序是一个接近真实仿真系统的典型用例。第六章本章介绍了基于Java开发两个示例程序的方法包括聊天程序和时间管理程序。用户应主要关注Java程序的接口和调用形式用例程序的逻辑在前面章节中已有多次介绍。另外Java程序的使用方式与Visual C#较为相似两者可参照查看。第七章本章介绍了基于Visual C开发ping、pong示例程序的方法。第八章本章介绍了基于Visual C#开发ping、pong示例程序的方法。另外Visual C#程序的使用方式与Java较为相似两者可参照查看。第九章本章介绍了4个演示系统。一是基于银河麒麟操作系统实现了GNU C、Qt、Java三种程序的互操作二是基于Ubuntu1604操作系统实现了GNU C、Java、Python三种程序的互操作三是基于Windows 7实现了Visual C和Visual C#两种程序的ping-pong测试四是在飞腾和x86两种CPU型号的机器上基于银河麒麟操作系统和Windows 7实现了GNU C、Qt、Java、Visual C和Visual C#等各种程序的互操作功能。在这些程序中有些使用了tick服务有些则没有使用tick服务。结果表明KY-RTI具有很好的集成性能够把基于不同CPU、不同操作系统、不同程序设计语言、不同HLA服务调用方式开发的仿真程序完美地集成在一起。本章以银河麒麟操作系统和飞腾CPU为主进行测试同样的测试也适用中标麒麟操作系统和龙芯CPU以及深度操作系统和申威CPUKY-RTI支持x86、飞腾、龙芯、申威等机器的互联互通实现各类程序的集成。第十章本章介绍了基于Python开发两个示例程序的方法包括聊天程序和时间管理程序。为方便用户快速了解采用了与Java和Visual C#相似的编程方式。KY-RTI的Linux、Windows版本和源码请联系作者:walt_lbq163.comKY-RTI分布仿真技术前 言KY-RTI分布仿真技术第一章 简介KY-RTI分布仿真技术第二章 系统安装KY-RTI分布仿真技术第三章 KY-OMT对象模型模板工具KY-RTI分布仿真技术第四章 C程序设计KY-RTI分布仿真技术第五章 Qt程序设计KY-RTI分布仿真技术第六章 Java程序设计KY-RTI分布仿真技术第七章 Visual C程序设计KY-RTI分布仿真技术第八章 Visual C#程序设计KY-RTI分布仿真技术第九章 综合演示KY-RTI分布仿真技术第十章 Python程序设计KY-RTI分布仿真技术第十一章 人工智能大模型仿真--低空无人机巡逻实战示例KY-RTI分布仿真技术第十二章 HLA联邦保存与恢复--仿真中的热恢复与冷恢复KY-RTI分布仿真技术第十三章 基于Unity的多语言三维态势仿真--以Island Assault夺岛突击想定为例KY-RTI分布仿真技术附录1 分组聊天HLA数据分发管理的应用KY-RTI分布仿真技术附录2 大联邦构建1000个成员的HLA/RTI仿真系统KY-RTI分布仿真技术附录3 国产化操作系统CPUs