一种连续系统模型的分布式交互方法

文档序号:6625283阅读:233来源:国知局
一种连续系统模型的分布式交互方法
【专利摘要】本发明属于连续系统的分布式仿真领域,提出一种连续系统模型的分布式交互方法,具体包括以下几个步骤:步骤一:将连续系统模型分割为若干子模型;步骤二:确定仿真引擎的时间推进步长;步骤三:对每个子模型作适当的修正;步骤四:对所有子模型进行初始化;步骤五:对修正后的子模型进行并行解算;步骤六:判断是否满足仿真结束条件。本发明的分布式交互方法,切实有效地解决了连续系统模型在并行仿真中存在的严重偏差问题,可以充分利用分布式仿真环境的优势,提高仿真的效率。本发明提出一种连续系统模型的分布式交互方法,能够有效利用分布式仿真环境进行并行解算,提高仿真效率。
【专利说明】一种连续系统模型的分布式交互方法

【技术领域】
[0001]本发明属于连续系统模型的分布式仿真领域,具体涉及一种连续系统模型的分布式交互方法。

【背景技术】
[0002]分布式仿真是系统仿真的一个新方向,在军事领域得到了广泛地应用,其深远的工程应用价值,已引起世界各国的广泛重视。它一般采用协调一致的结构、标准和协议,通过网络将分散在各地的仿真设备进行互联,其特点主要表现为分布性、交互性、异构性、时空一致性和开放性。分布式交互仿真技术使大规模复杂系统的仿真成为可能,并有效降低了仿真成本。
[0003]然而,对于连续系统模型,为了保证仿真结果的正确性,通常各个子系统的解算需要依照一定的解算次序,这种依序串行的解算方式在分布式仿真中显然不能有效地提高仿真效率。为了充分地利用分布式仿真的资源,需要将各个子模型并行解算,但是单纯的并行解算可能导致仿真结果出现较大的偏差。由此可见,无论是依序串行解算还是单纯并行解算,都不能充分发挥分布式仿真的优势,有必要探索分布式仿真的并行式解算以解决现有方法的不足。


【发明内容】

[0004]本发明的目的是为了解决上述问题,提出一种连续系统模型的分布式交互方法,在科学理论研究和实际工程应用中,可有效提高连续系统模型在分布式仿真环境下的解算效率。
[0005]本发明提出一种连续系统模型的分布式交互方法,具体包括以下几个过程:
[0006]步骤一:将连续系统模型分割为若干子模型。
[0007]步骤二:确定仿真引擎的时间推进步长。
[0008]步骤三:对子模型作修正。
[0009]步骤四:对子模型进行初始化。
[0010]步骤五:对修正后的子模型进行并行解算。
[0011]步骤六:判断是否满足仿真结束条件。
[0012]本发明具有以下优点:
[0013](I)本发明提出一种连续系统模型的分布式交互方法,能够有效利用分布式仿真环境进行并行解算,提闻仿真效率;
[0014](2)本发明提出一种连续系统模型的分布式交互方法,能够有效降低仿真系统对通信延迟的不利影响和对外部资源的依赖程度;
[0015](3)本发明提出一种连续系统模型的分布式交互方法支持与其他模型及平台进行联合分布交互仿真。

【专利附图】

【附图说明】
[0016]图1是本发明提出的一种连续系统模型的分布式交互方法流程图;
[0017]图2是实施例中集中式仿真的控制系统;
[0018]图3是实施例中控制系统子模型I ;
[0019]图4是实施例中控制系统子模型2 ;
[0020]图5是实施例中经过修正后的子模型I ;
[0021]图6是实施例用三种仿真方式的结果。

【具体实施方式】
[0022]下面将结合附图和实例对本发明作进一步的详细说明。
[0023]本发明基于连续系统的频域分析建模,将连续系统分割为若干个子模型,且子模型之间存在着因果关系,通过比较并行式解算与串行依次解算的流程,可以发现,并行式解算在仿真过程中对连续系统模型做了修改,相当于引入了滞后环节,因而可通过对滞后环节进行补偿,以减小仿真结果的偏差。
[0024]本发明提出一种连续系统模型的分布式交互方法,如图1所示,具体包括以下几个过程:
[0025]步骤一:将连续系统模型分割为若干子模型。
[0026]在分布式仿真环境中,一个连续系统将被分割为若干个子模型,且子模型之间存在着数据交互关系,并分别部署在不同的计算机上。这种分割可以按照各个子模型的功能划分,也可单纯的按数值计算复杂性划分。子模型按照输出与输入的关系,可以分为两类:第一类子模型在tn时刻的输出Yn依赖于该时刻的输入Xn,即Yn = g(Xn),第二类子模型在tn时刻的输出Yn只依赖于V1时刻的输入Xlri,即Yn = g (Xn^1),因此,第一类子模型必须要先更新输入,然后才能进行内部解算,再更新输出;而第二类子模型却可以先更新输出,再更新输入值并进行内部解算。
[0027]步骤二:确定仿真引擎的时间推进步长。
[0028]计算各个子模型的解算周期的最大公约数作为仿真引擎的时间推进步长。
[0029]步骤三:对子模型作修正。
[0030]单纯的并行式仿真相当于在子模型的输入与输出之间加入了一个滞后环节 ,因而可以通过在子模型中适当添加一个超前环节进行补偿。需要注意的是,如果子
/、t I
模型为一阶系统,则添加一个超前环节将改变子模型的类型,使得子模型从第二类子模型转变为第一类子模型。
[0031]对于一阶模型F = J7Z,等价于f y v例如仿真时采用Euler法,则有
5 + 1Y=A-Y ,
[0032]Yn+1-Yn = h (Xn-Yn),
[0033]可见,它是第二类子模型。但添加一个超前环节Ts+Ι后,变为Y~—~= TX +---X ,显然,在tn时刻的输出Yn依赖于当前时刻的输入Xn,属第一类子
S + IΛ' + I模型。
[0034]特别地,若子模型阶次低于1,则添加一个超前环节后,物理模型将不可实现。因此,不能采用上述方法对该子模型进行修正,但可通过对与之因果相关的子模型作进一步修正,以减小整个系统的仿真偏差。
[0035]步骤四:对各子模型进行初始化。
[0036]依次调用各子模型的初始化函数接口,完成子模型的初始化。还需将其输出传递到相应的其他子模型的输入接口。
[0037]步骤五:对修正后的子模型进行并行解算。
[0038]在每一个离散时间点上,每个子模型首先更新自己的输入值,然后调用该子模型的内部解算函数接口进行内部解算,然后更新自己的输出值,并将输出传递到相应的子模型的输入接口。
[0039]步骤六:判断是否满足仿真结束条件。
[0040]若满足结束条件,则仿真结束;否则继续推进一个时间步长。
[0041]本发明基于连续系统的频域分析建模。将连续系统分割为若干个子模型,且子模型之间存在着因果关系。通过比较并行式解算与串行依次解算的流程,可以发现,并行式解算在仿真过程中对连续系统模型做了修改,相当于引入了滞后环节,因而可通过对滞后环节进行补偿,以减小仿真结果的偏差。
[0042]实施例:
[0043]下面针对某连续系统模型在分布式仿真环境中的并行解算实施例说明本发明。如图2所示的连续系统,利用MATLAB软件的仿真模块实现该连续系统的分布式交互仿真,包括以下几个步骤:
[0044]步骤一:将该连续系统模型分解成两个子模型。
[0045]该实施例中,按模块功能不同将连续系统分为前向传递函数子模型I和反馈函数子模型2,分别如图3、图4所示。子模型I中当前时刻的输出作为下一时刻的输入,当前输入均为前一时刻的输出反馈,属于第二类子模型;子模型2中存在小于I阶的通道,该通道输出必须依赖于当前时刻的输入,因此属于第一类子模型。并且子模型2中三个输出端口分别对应于子模型I中的输入端口。
[0046]步骤二:确定仿真引擎的时间推进步长。
[0047]计算各个子模型的解算周期的最大公约数作为仿真引擎的时间推进步长。本例中所有子模型都采用固定时间步长0.0ls推进,故仿真引擎的时间推进步长为0.0ls.
[0048]步骤三:对子模型作适当的修正。
[0049]单纯的并行式仿真相当于在子模型的输出与输入之间加入了一个滞后环节 ,这里的T = 0.01,因而可以通过在子模型中适当添加一个超前环节Ts+Ι进行补偿。
Ts+ I



10
对子模型I釆用模型修正,具体是在其一阶环节中添加一个超前环节。同样也需要对



55 + 1
子模型2采用模型修正,但是在子模型2中的输入与输出之间存在着小于I阶的通道,这种情况是无法采用模型修正方式的。此时可以将这种修正添加到子模型I中以实现整个系统





10
对滞后的补偿,即在子模型I中再添加一个超前环节Ts+1,最终子模型I中的环节变





5s+ \成α?Λ \10 (由于T = 0.01,故略去T2S2项),如图5所示。
3‘v +1
[0050]步骤四:对子模型进行初始化。
[0051]依次调用子模型的初始化函数接口,在完成一个子模型的初始化后,还需将其输出传递到相应的其他子模型的输入接口。
[0052]该例中两个子模型的所有状态变量和输出值均初始化为0,仿真采用固定时间步长 0.01s。
[0053]步骤五:对所有子模型并行解算。
[0054]在每一个离散时间点上,两个子模型首先更新自己的输入值,然后调用该子模型的内部解算函数接口进行内部解算,然后更新自己的输出值,并将输出值传递到相应的子模型的输入接口。
[0055]步骤六:判断是否满足仿真结束条件。
[0056]若满足结束条件,则仿真结束;否则继续推进一个时间步长。
[0057]该实施例中,系统输出随时间变化的曲线如图6所示,其中实线表示集中式仿真曲线,虚线表示单纯并行式仿真曲线,圆圈表示模型修正后的仿真曲线。该实施例中,单纯并行式仿真将导致系统发散,而修正后由于忽略了高阶项,与真实系统存在较小误差,但在允许误差范围内。
[0058]可见,在一定情况下,采用该方法可以切实有效解决子模型并行仿真的问题,从而充分利用分布式仿真环境的优势,提高仿真的效率。但是该方法对子模型进行修正时,无法将建模过程与仿真过程分开,增加了建模过程的复杂性。
【权利要求】
1.一种连续系统模型的分布式交互方法,具体包括以下几个过程: 步骤一:将连续系统模型分割为若干子模型; 在分布式仿真环境中,将连续系统模型分割为若干个子模型,子模型之间存在着数据交互关系,分别部署在不同的计算机上; 步骤二:确定仿真引擎的时间推进步长; 计算各个子模型的解算周期的最大公约数作为仿真引擎的时间推进步长; 步骤三:对子模型作修正; 在子模型中添加超前环节,进行补偿,当子模型为一阶系统时,添加超前环节后,子模型从第二类子模型转变为第一类子模型,当子模型阶次低于I时,不对子模型进行修正; 步骤四:对各子模型进行初始化; 依次调用各子模型的初始化函数接口,完成子模型的初始化,将子模型输出传递到相应的其他子模型的输入接口; 步骤五:对修正后的子模型进行并行解算; 在每一个离散时间点上,每个子模型首先更新自己的输入值,然后调用该子模型的内部解算函数接口进行内部解算,然后更新自己的输出值,并将输出传递到相应的子模型的输入接口 ; 步骤六:判断是否满足仿真结束条件; 若满足结束条件,则仿真结束;否则继续推进一个时间步长,继续仿真。
2.根据权利要求1所述的一种连续系统模型的分布式交互方法,其特征在于:子模型按照输出与输入数据关系,分为两类:第一类子模型在tn时刻的输出Yn依赖于该时刻的输入Xn,第二类子模型在tn时刻的输出Yn只依赖于V1时刻的输入XlrlO
3.根据权利要求1所述的一种连续系统模型的分布式交互方法,其特征在于:所述的步骤三中,当子模型阶次低于I时,不对子模型进行修正,修正与之因果相关的子模型。
【文档编号】G06F17/50GK104200022SQ201410433132
【公开日】2014年12月10日 申请日期:2014年8月28日 优先权日:2014年8月28日
【发明者】王江云, 王永胜 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1