点击图片查看原图
|
|
张恒源李智
(装备指挥技术学院,北京,怀柔,101416)
摘要:目前,对基于HLA的半实物仿真的研究较少,原因是HLA的实时性较差。本文从实时性和仿真效率两个方面出发,研究了HLA半实物仿真的关键条件。基于此,本文提出了“实体属性插值预报法”,该方法使得基于HLA的半实物仿真成为可能。
关键词:HLA;实时仿真;半实物仿真
Research of HLA Based Hardware-in-the-Loop Simulation Based on Attribute Interpolative Forecasting
Hengyuan Zhang Zhi Li
(Academy of Equipment Command&Technology,Huairou,Beijing,101416)
Abstract:For the reason that HLA lacks the capability of performing real-time simulation,researches of HLA based hardware-in-the-loop simulation is few.Considering aspects of real-time and simulation efficiency,this paper investigates the pivotal qualifications of hardware-in-the-loop simulation using HLA.Based on the investigation,this paper puts forward a method called“Entity Attribute Interpolative Forecasting”,which makes HLA based hardware-in-the-loop simulation possible.
Keywords:HLA;Real-Time Simulation;Hardware-in-the-Loop Simulation
1引言
半实物仿真的一个显著特点是硬件在回路(Hardware-In-The-Loop)。在对系统进行仿真时,若有实物介入整个仿真系统,必须要求仿真时间标尺与实际系统时间标尺相同,这种仿真称为实时仿真。
HLA力图解决建模与仿真(Modeling and Simulation,M&S)领域存在的互操作和重用问题,并按照面向对象的思想和方法来构建仿真系统。为了保证仿真系统的协调运作、维护虚拟世界中正常的因果逻辑顺序,HLA需要对联邦进行严格的时间管理。但HLA复杂的时间管理算法却不利于实时仿真,给半实物仿真造成了一定的困难。
2 HLA实时性分析
联邦成员进行一次仿真时间推进的耗时Tadvc一般主要由3部分组成。(1)、帧计算时间Treck,指成员在一个仿真步长中所有计算的耗时,包括模型计算和交互响应等;(2)、帧信息获取时间Tinfo,指成员在时间推进的过程中通过tick()函数获得时戳事件(属性值更新和交互发送)的耗时;(3)、帧同步时间Tsync,指成员在调用timeAdvanceRequest()服务提出时间推进请求后,等待成员大使回调timeAdvanceGrant()的耗时。故Tadvc=Treck+Tinfo+Tsync。假设成员每次时间推进的仿真步长Tstep为仿真模型的积分步长,若要实现实时仿真,则应有Tadvc=Tstep。HLA实时仿真能力的不足体现在以下两个方面。
(1)Tadvc不易同Tstep保持一致首先,每个仿真步长内计算量的不同造成了Treck的不定;其次,在复杂的网络数据环境下,随机的网络传输延时造成了无参数tick()函数的执行时间即Tinfo的不定;最后,随着在仿真的运行过程中联邦成员数量的改变,成员LBTS算法的计算量将发生变化,这造成了Tsync的不定。因此,Tadvc是不定且难以预测的,使其不易同Tstep保持一致。
(2)一次时间推进的耗时过长为了实现联邦中各个成员之间的严格同步,确保仿真世界中因果逻辑的正确性,需要将每个成员设置为既时间控制又时间约束,这将使整个联邦的推进速度取决于计算负荷最大的成员。另外,联邦中还存在可观的网络传输延迟,以及繁琐的成员间同步过程。因此,每个成员进行一次时间推进的耗时过长,仿真效率(单位时间内时间推进的次数)过低。
3基于插值预报的半实物仿真方法
3.1半实物仿真的根本要求
将半实物仿真系统分为数字部分(计算机)和实物部分(硬件),与实物部分相关的数据按流向可分为输入和输出两种,对数字部分的实时性和仿真效率要求较高的是实物部分的输入数据。
实物部分典型的输入数据是来自数字部分的控制信号。首先,由于实物存在于自然时空中,所以控制信号必须是实时的;另外,实物的状态大多是连续变化的(如伺服系统),需要将来自数字部分的数字信号转化为模拟信号,数据输出频率foutput越小、跳变越大则数模(D/A)转换失真就越大。所以半实物仿真的根本要求有2点:
(1)、仿真系统数字部分是实时的;(2)、仿真系统数字部分的数据输出频率要足够大。
3.2 HLA联邦的实时化
对于Tadvc不定且难以预测、不易同Tstep保持一致的问题,可以通过在每个成员的仿真步长内加入等待时间的方法来解决。如图1所示,每个仿真步长之间Tadvc的差异通过Twait进行补偿,经补偿后的时间推进耗时T’advc=Tadvc+Twait将成为定值。Twait要有足够的冗余量,以克服Tadvc正常的随机起伏变化。
在固定了成员一次时间推进的耗时之后,按照实时仿真的要求,令Tstep=T’advc(仿真时间和自然时间保持一致),即可使HLA联邦的运行达到实时要求。
3.3利用插值预报提高仿真系统数字部分的数据输出频率
由于附加了帧等待时间,使得成员进行一次时间推进的耗时进一步增大,所以HLA联邦实时化的代价是仿真效率的进一步降低。仿真模型在一个仿真步长内积分一次,整个仿真系统数字部分的状态随之变化一次,实际的数据输出频率foutput-r决定于仿真效率(foutput-r=1/T’advc),由于T’advc较大,foutput-r很难满足半实物仿真的第2个要求。因此,必须对输出的数据进行处理,提高数据输出频率。
(1)数据插值
假设f (x)是一给定函数,且在相异的n组自变量0 1,,,nx x Lx处的值为01,,,nf f Lf,则由这些已知点的信息获得该函数在其它点上的值的方法称为函数的插值。若在这些给定的范围内进行插值,则称为内插;若在这些给定的范围以外进行插值,则称为外插;若从时间的概念上理解这个问题,则对nx以后的点进行的插值又称为预报。
(2)实体属性插值预报法
在仿真系统中,实体属性所表征的是实体的一些特数,一般也是实物部分所需的输入数据,如位置、姿态、角速度等。对于这些较少跳变的物理量,利用插值方法对其进行短期的预报时误差较小。以对某实体位置属性P进行插值预报为例进行说明。
将P视为时间t的函数,即P =f (t),且f (t)的具体形式未知。在这种情况下,根据t之前的P值对时间点t +n (n=0, 1, L,11,间隔10分钟)的Px值进行多项式拟合插值预报,拟合多项式的阶次为5,多项式系数由最小二乘法计算得到。预报结果如图2所示(圈为理论值,点为插值预报结果),效果比较理想。
图3给出了t +n点的预报误差同预报时间之间的关系,从图中可以看出,随着预报时间的延长,误差增大的趋势十分明显。另外,预报误差同已知的数据之间也有联系,图4给出了t时刻的预报误差同参加插值计算的已知点(从t-1点逐渐向“过去”取点)数量之间的关系。
由图可见,预报误差随已知点数的增加而变大,这是由于在实体运动状态的连续变化过程中,“现在”的状态受“刚才”的状态影响大,受“过去”的状态影响小,而在使用最小二乘算法计算拟合多项式的系数时却不考虑这种因素(不加权值)。因此,若采用多项式拟合进行插值预报,过多的距待估点较远的“过去”信息非但不会有助于插值预报,反而会对插值预报造成干扰、增大预报误差。
在对实体属性的变化特性一无所知的情况下,采用多项式拟合插值预报是通用的方法。多项式的阶数要根据实物对输入数据的精度要求而定。多项式阶数越高,插值预报的精度就越高,当然计算量和计算耗时也就越大。但在很多时候,仿真开始之前就已经对实体属性的变化特性有一定的先验了解,根据具体情况选择适当的拟合方式,将获得更好的插值预报效果。
通过上面的算例可以看出,利用基于插值的属性预报法来增大半实物仿真系统数字部分的数据输出频率是可行的。在实际应用中,假设联邦的仿真时间推进到了t0时刻,仿真步长和一次时间推进的耗时为tstep(实时仿真),数字部分的输出数据为某实体属性A,A为时间t的连续函数A =f (t),且f (t)的具体形式未知。那么可以利用A在t0以前的m个值。
对t0和t0+tstep之间的A值进行插值预报,这样就达到了增大仿真系统数据输出频率的目的。最长预报时间tstep较小,预报精度可以保证;所需的已知点数不多,在仿真开始后短时间内即可进行插值预报。
(3)对预报误差和跳变的处理
由于插值预报的误差是不可避免的,并且实体属性的跳变是确实有可能发生的(如航天器在进行变轨时速度的突然改变),所以在预报末端预报值和实际值有可能相差较大。为了区分这种差别的等级,需要设定2个阈值
θsmooth和θbreak(θsmooth <θbreak),分别称为误差门限和跳变门限。例如,将t0和t0+tstep之间的这段时间进行10等分,在每个等分点0/10(1,2,,10)stept +n ?t n=L上对实体属性A进行插值预报,当n=10时(仿真完成了一次时间推进)可获得A的一个实际值。计算该点的相对预报误差,若超过θsmooth但未达到θbreak则认为需要对预报误差进行处理;若超过θbreak则认为实体状态发生了突变。
如图5所示,在A变化幅度较大的时间段内,预报值逐渐偏离实际值,在末预报值与下一个实际值进行衔接时出现了一个明显的毛刺,这对输出信号的D/A转换是不利的。在这种情况下需要对输出的A值进行平滑,效果如图6所示。可以看出,平滑后的数据“绕过”了一个实际值,但却使得数据曲线变得更加光滑,数据输出经D/A转换后可以获得更高质量的控制信号,保证了仿真系统中硬件运行状态的稳定性。
若仿真系统中的硬件允许自身状态发生突变,则不必处理数字仿真系统输出数据的跳变;若硬件状态不允许突变,那么输出数据的跳变可能是仿真运行中的错误所致。
4结束语
通过在成员的仿真步长内加入等待时间,固定了成员进行一次时间推进的耗时,为HLA联邦提供了实时仿真的基础;利用插值预报提高数字仿真系统的数据输出频率,使HLA联邦拥有了半实物仿真的条件。通过本文可知,HLA本身虽然在实时仿真、半实物仿真方面能力不足,但利用一定的方法,在HLA联邦中实现一定精度的半实物仿真是可能的。
参考文献
[1]周彦,戴剑伟,HLA方针程序设计,电子工业出版社,2002.6
[2]廖瑛,梁加红,实时仿真理论与支撑技术,国防科技大学出版社,2002.3
[3]翟永翠,程健庆,HLA中时间管理及对实时仿真改善方
法的研究,计算机仿真,2003年8月第8期
[4]徐萃薇,计算方法引论,高等教育出版社,1985.