马子龙 MA Zi-long;房立清 FANG Li-qing
(军械工程学院火炮工程系,石家庄 050003)
摘要: 在装备操作仿真训练的机理模型建模过程中,由于训练内容较多、装备工作状态复杂,难以建立表达明确的面向操作训练的机理模型。针对这种情况,基于混杂自动机理论提出适合装备操作系统的自动机模型,并对其建模实现方法进行研究,提出了一种利用Simulink/Stateflow建立离散系统模型,并且按照不同的训练内容和装备工作状态建立多个连续系统模型的机理建模解决方案,在实际应用中,提高了建模及工作效率。
教育期刊网 http://www.jyqkw.com
关键词 : 仿真训练;混杂自动机;Stateflow;机理模型
中图分类号:TP391.9 文献标识码:A 文章编号:1006-4311(2015)03-0048-04
作者简介:马子龙(1989-),男,河北石家庄人,硕士研究生,主要从事武器系统仿真与虚拟样机的研究;房立清(1969-),男,河北石家庄人,教授,博士研究生导师,主要从事武器系统仿真与虚拟样机方向的研究。
0 引言
目前随着多种新装备陆续装备部队,新装备的教学和训练还停留在人工和多媒体教学、武器实装训练的状态,这种情况下存在人员接触装备少、装备了解不深入的缺点,制约了战斗力快速生成。针对新型装备的训练,不同型号武器装备模拟器的涌现,改变了以往的武器系统教学及训练模式,促进了人员对装备结构、工作原理的理解和操作技能的掌握。
机理模型作为抽象的系统工作原理,具体到武器装备的操作训练模拟系统中就是系统工作情况的控制模型。在工程实际过程中,建模人员往往按照装备工作流程在外观模型上直接进行编程,且建模过程缺乏理论指导。在武器系统的模拟器开发过程中,尤其是含有复杂机械结构的装备机理建模的过程中,一方面需要根据各个机械零件的传动关系建立准确的运动模型,又要根据其运动过程中可能引发的状态转换建立状态模型。在对一个复杂系统的建模研究中,常常会包含由连续时间物理过程描述的动态系统和受离散事件驱动的离散子系统,这就需要一种二者结合相互作用的系统——混杂系统来描述[1]。以机械结构为主的武器系统机理建模非常符合混杂系统的既包含由连续变量所描述的物理层的动态演化过程,又有以符号操作和离散监控决策为特征的高层协调优化过程的特征[2]。
本文在讨论了适合装备仿真操作训练系统的混杂自动机模型的基础上,针对以机械结构为主的武器装备,利用Simulink中的Stateflow工具和Virtools虚拟现实软件对武器装备工作过程进行建模仿真,同时对连续系统的连续变量进行离散化处理,使建模更加方便,同时对异构系统之间的数据交互进行研究,提出了一种较为实用的武器训练系统的机理建模方法。
1 装备仿真训练模型结构
目前武器训练模拟器的操作训练仿真模型构建的主要依据为相似性原理[3]。根据装备仿真模型的相似性,可以将其分为对装备几何结构直接映射的外观模型和对其工作原理进行抽象化表示的机理模型[4]。装备仿真模型建模过程中,一种是将交互动作采集、数据处理解释和虚拟装备的响应、显示的过程整合在一个模型里,建立紧耦合式的仿真模型的方法,但是对于一种模型的修改也要相应的修改另外一种模型,很不方便。另外则是如图1b中所示的松耦合式仿真模型,这种分开建模的方法便于模型的维护、扩展和重用。
外观模型可由三维建模软件建立,机理模型则包含了众多数学模型和操作逻辑等,因此在建模过程中较为复杂。如何对装备操作机理模型进行准确地建模,成为了武器系统仿真模型的建模关键。
2 装备操作训练系统的混杂自动机模型
装备仿真模型运行过程中,除了自身运行状态会导致离散状态的跃变,受训人员通过人机交互接口也会对系统运行状态和运行参数进行控制。混杂系统的结构组成表现为如图2所示的“三位一体”[5],因此在式1表示的混杂自动机模型的基础上,添加接口映射,得到的混杂自动机模型为:
H=(Q,∑,X,U,F,E,T,γ,α) (1)
式3中的表征的混杂系统可以分为三个部分:事件驱动的离散决策系统(DEDS)、连续变量动态系统(CVDS)和转换接口部分。与其他系统略微不同的就是增加了人机交互作为系统的外部输入,相应地通过人机接口,操作者可以直接对DEDS系统进行控制,改变系统运行状态,也可以通过控制CVDS系统的动态变量,使混杂系统针对外界输入做出响应。因而,混杂自动机中的离散事件集合∑又包含两个子集合∑u和∑c,∑u包含的事件发生的条件由连续状态演化结果决定的,为不可控的;∑c为控制事件集合,其中的事件由外部输入和离散决策机构决定,因而为能控事件集合。图2所示的混杂系统结构中,U?哿Rm为m维的控制空间,uq(t)∈U和u(t)∈U分别为连续系统对应的内部和外部控制向量,则状态映射函数也可以表示为:
(2)
接口部分是混杂系统中的信号表达和处理方面的关键部分,主要由执行器和发生器组成。执行器可由离散状态集合Q和离散输出事件集合∑c到控制输入空间U映射γ表示,即:
γ:Q∪∑c→U (3)
发生器由连续状态空间X到离散事件集合∑u的映射α表示:
α:X→∑u (4)
在装备操作机理建模过程中,利用上面提出的混杂自动机模型可以建立完整的机理模型,但是随着装备工作状态和操作行为复杂度的增加,单一层次的模型会使状态空间的状态呈爆炸式增长,另外模型缺乏对并行机制的支持,不能描述装备的并行操作。针对上述不足,将Harel建立的层级有限自动机[6]中层级(Hierarchy)、并发(Concurrency)的概念对混杂自动机模型进行扩展,通过引入状态层次函数ρ和状态类型函数φ分别描述状态之间的层次和并发关系。因此,整个混杂系统的混杂自动机模型可以由下面的11元组表述:
H=(Q,∑,X,U,F,E,T,γ,α,ρ,φ) (5)
3 基于混杂自动机模型的装备操作机理建模
3.1 装备操作训练仿真系统 在进行基于虚拟现实技术的装备仿真训练系统构建时,武器系统中包含的机械结构复杂,从建模的效率出发,采用Solidworks对规则的机械零件进行建模和3dsmax对不规则曲面模型建模,最后经3dmax导出插件导出为.nmo格式,应用到Virtools虚拟现实编辑环境中。
装备操作训练仿真系统为半实物设计,分设多名操作者席位,在协同操作训练过程中,多个下位机与控制引擎之间的交互是基于UDP协议的网络通信。装备操作仿真系统硬件组成如图3所示。
由图3中可知,利用Matlab/Stateflow工具建立的是基于有限状态机理论的离散系统模型,即上层控制系统,在虚拟现实编辑环境中,建立仿真操作连续子系统模型,其中包括装备外观模型和部分机理模型。接口部分的映射则包括在Matlab/Simulink模型中的S函数和Virtools中的事件触发部分。由于操作训练的内容不同,对应的装备工作状态也不一样,各个机构之间的运行状况也不同,因此,对CVDS模型进行划分,便于建模和系统控制。系统模型结构如图4 所示。
3.2 基于有限状态机理论的DEDS建模 本文主要基于某型火炮的机理建模过程,首先应分析其工作流程,并按照一定的操作阶段和武器系统的状态划分工作阶段。在由行军状态向战斗状态转换过程中,需要进行升炮操作,如图5所示,分别有三个控制手柄分别控制1、2、3号炮脚的液压系统的工作状态,另外有启动和停止按钮操纵炮脚液压系统的工作启停。操作流程主要为首先通过3个控制手柄设定炮脚液压系统的起落状态,然后通过控制按钮控制液压系统的启停。
例如当系统进行到升炮训练进程时,如图6所示,炮手扳动控制手柄1控制炮脚落下,Virtools中的控制手柄的模块在接收人机交互模块发出的消息后,在进行手柄扳动的动作演示同时,利用UDP通信模块将操作事件发送给Simulink,Simulink针对操作事件信息进行数据解析后利用S函数编写的模块在线修改常量模块的参数值,触发HANDLE_1_DOWN事件,手柄1的工作状态由Handle_1_UC进入Handle_1_DOWN,随着Handle_1_DOWN的状态被激活,Simulink会将状态触发利用S函数编写的模块进行相应的编码,随后经BytePack和UDPSend模块广播至其他操作者席位。同样地,在对其它两个控制手柄设置状态时,由于Handle_State的类型为AND,三个控制手柄的的操作为并行关系,相互之间没有影响,每个控制手柄状态类型为OR,其中包括3个互斥子状态,分别为对应一个控制手柄的3种状态,每个子状态会对一个作用范围为Local的变量进行赋值,例如当Handle_1_DOWN被激活时,Handle_1_Flag被赋值为2。当按下“启动”按钮时,Simulink接收VT发送过来的启动事件编码,经解析后,触发START事件。3个炮脚的液压系统会根据对应的控制手柄中状态标志,进行相应的动作,当PJ_State处于工作状态时,3个并行的炮脚工作状态同时处于激活状态,各个状态根据Handle_1(2,3)_Flag条件转移至相应的炮脚具体工作状态,Simulink会以广播方式告知虚拟环境进入相应的装备动作。
在Virtools建模过程中,针对装备的不同部组件进行相应的建模,因此不同的部组件仿真模型可以看作多个连续变量系统。当炮脚进行工作时,当炮脚下降到最大位置或炮脚收回至初始位置均会使液压系统停止工作,反映到装备仿真模型中,即Virtools在DEDS系统处于PJ_State状态时,监控炮脚液压系统的工作模型中的炮脚伸长量,当达到上确界或下确界时,触发PJ_1(2,3)_LENGTH事件,Stateflow机理模型针对输入事件进行状态转移,从而控制系统的工作状态。
3.3 改进的复杂机械结构运行机理模型 以机械装备模型为主的装备仿真机理模型建模过程中,为了提升虚拟环境的沉浸感和机械结构的运动系统的准确度,在连续子系统的行为建模中,将连续子系统对应的难以求解的离散状态的连续演化规律用运动学分析软件导出的离散参数代替,能较为方便地建立机械结构运动仿真模型。例如在对往复机构建模过程中,内部零件模型可在Solidworks中进行三维建模并利用Solidworks Motion插件,自动求解机构运动仿真参数,并添加到Virtools中,实现模型的准确控制。
由于利用Solidworks Motion求解的零件运动参数的测量是在其局部坐标系下,因此将运动参数输出到Virtools环境中须进行调整。一是作三维坐标变换,采用齐次坐标技术来对空间坐标进行变换,变换矩阵为4×4矩阵。
二是利用指定作参考位置的物体的方法,即指定Referential(参考)实现参数的直接利用,显然第二种方法更加简单实用。利用Solidworks Motion解得的阀门杆在x、y、z三个坐标轴上的位移,在凸轮旋转一周内的变化的运动学参数如表1所示。
将得到的零件运动参数按照不同的机构保存在Virtools的表(Array)中,一般存储长度为具有最大运动周期的零件的一个周期,系统运行时根据运行的步长进行查询和进行线性插值即可。该方法一方面节约了硬件资源,另一方面,使以机械结构为主的装备模型的机理建模更加方便快捷。
3.4 数据交互实现 在机理模型建模过程中,除了利用Stateflow进行离散控制系统的建模和与装备外观模型耦合的连续系统建模,二者的通信接口部分的实现对于异构系统之间的协作至关重要。以Matlab/Simulink为控制引擎,实现对Virtools行为模型进行分布式交互控制,则需要针对其进行特殊的设计。
首先,仿真操作系统和Simulink环境之间的数据交互利用基于UDP协议的网络通信实现。利用Sockets套接字编程编写UDPSend和UDPReceive BB通信模块。通过UDPSend BB对人员的操作事件、CVDS的系统变量引发的事件信息和变量进行发送,利用UDPReceive BB接收Simulink模型发送的离散状态、事件和变量信息。
可以通过Simulink中编写的S函数实现对UDP接收的数据进行解码操作,并利用set_param语句对常数(Constant)模块修改参数实现Stateflow中的事件触发和变量修改操作,并且对系统发出的状态、事件和数据进行编码,实现不同软件系统之间的数据交互。
Simulink控制模型和Virtools仿真模型之间的数据交互流程如图8所示。
4 结论
本文在对装备仿真模型分析的基础上,对混杂自动机模型研究,提出了一种适合装备操作训练的自动机模型,并对模型实现方法进行研究,提出了利用Matlab/Stateflow对DEDS进行建模,将复杂连续系统的连续变量描述改为离散参数的查表。解决了装备操作机理模型建模过程中的建模困难、可读性差、维护困难等缺点,对于装备操作训练仿真机理模型的建模及实现提供一条有效思路。
教育期刊网 http://www.jyqkw.com
参考文献:
[1]郑刚,谭民,宋永华.混杂系统的研究进展[J].控制与决策,2004(01).
[2]高峰.基于混杂自动机的大型风力发电机组全程控制[J].可再生能源,2012(07).
[3]郭齐胜,董志明,李亮,等.系统建模与仿真[M].北京,国防工业出版社,2007.
[4]贾晨星,朱元昌,邸彦强.面向操作的装备虚拟训练系统机理建模方法[J].计算机工程与设计,2012(03).
[5]秦世引,宋永华.混杂控制系统的结构体系分析[J].电力系统自动化,2000(11).
[6]HAREL D. Statecharts: a visual formalism for complex systems [J]. science of Computer Programming, 1987.