论文部分内容阅读
摘要:在一定假设的基础上,建立了武器装备稳态可用度仿真计算模型,利用MATLAB6.5工程计算软件编制了仿真计算程序,借助Visual Basic6.0编程语言制作了前端交互界面,并通过Windows操作系统特有的动态数据交换(DDE)机制实现了数据的传输。
关键词:可用度;仿真计算;动态数据交换
中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)23-983-02
A Method and Program Realization of the Emulation Calculate on the Steady Available of the Weapon Equipment
ZHANG Cheng-li, LI Xiu-liang, REN Yu, CAO Jian
(Artillery Academy of PLA, Hefei 230031, China)
Abstract: In basic of a hypothesis, a emulation calculate mode about the steady available of the weapon equipment was formed. Emulation calculate process was compiled by using MATLAB6.5 engineering calculate software. A front-alternating interface was made in virtue of Visual Basic6.0 program language, and the data transfers was realized by using DDE of Windows operating system.
Key words: available; emulation calculate; dynamic data exchange
1 提出问题
武器装备在任一随机时刻需要和开始执行任务时,处于可工作或可使用状态的程度称为可用性,可用度则是可用性的概率度量。可用度是装备可靠性和维修性的综合反映,是装备系统分析的重要参数之一。其数值计算往往受到诸如部件数量繁多、位置关系复杂、试验消耗大等因素的影响,而现在多采用的马尔可夫型可修复系统稳态可用度手工计算模型,步骤多,计算较繁琐。这里采用建模与仿真的办法来解决这类实际问题。
2 建立模型
2.1 基本理论
蒙特卡罗仿真方法的理论基础是大数定律,其形式之一是柏努里定理,即:在相同条件下进行无限次独立试验时,事件出现的频率收敛于事件出现的概率。
式中: A——随机事件;
fn(A)——n次试验中事件A出现的频率;
p——事件 出现的概率;
α——任一趋于零的小整数。
2.2 稳态可用度仿真计算模型
统计N次故障前装备可用(能工作)时间Ui和发生故障后因维修等原因而产生的不可用(不能工作)时间Di,当N→∞时,其稳态可用度的数学表达式记为:
由上式可知,在实际工作中,寻求武器装备稳态可用度最可靠的方法是:对特定的对象进行持续地跟踪调查,作好记录,一段时间之后汇总数据,利用相关公式(如马尔可夫法)进行解算。显然这样的方法费时费力。
为方便建立模型,这里假设:
1)武器装备不可用时间为排除故障的维修时间,其中包含为排除故障而产生的延误时间(如管理延误时间)和装备升级更新的时间,其它时间装备均处于稳定可用状态;
2)故障发生时间间隔与排除该故障的维修时间间隔均服从指数分布,分布系数根据经验值或统计数据确定。
根据假设条件结合对公式的应用分析,容易看出在一定时间内,武器装备处于两种互斥的状态:可用状态和不可用状态。在程序中通过随机试验,模拟装备使用、发生故障和排除故障的全过程,利用模拟生成的随机事件推进仿真时钟并进行统计计算,仿真结束后,统计相关数据,最终将稳态可用度表示为n次模拟仿真某一给定仿真时间内仿真时长T与不可用时长(维修时间)D之差与仿真时长 之比的平均值。即仿真计算模型的数学表达式为:
(3)
通过进行多次模拟,可提高计算精度和控制随机误差。
3 流程设计与程序实现
3.1 流程设计
根据上述模型和假设,武器装备稳态可用度仿真计算程序流程如图1所示。
3.2程序实现
以Basic 语言为基础的Microsoft Visual Basic6.0中文版编程软件具有很强的前台界面程序开发能力,具有上手快,易操作的特点,但是其数学计算功能有限;而MATLAB6.5是一款功能强大的工程计算软件,包含了内容丰富的数学函数库,可以完成各种数学逻辑运算,在仿真计算方面应用较为广泛,但是其可视化界面开发功能较弱。在程序设计中,应用Microsoft Visual Basic6.0编程软件制作用户可视化交互界面,作为用户前端,应用MATLAB工程计算软件编制了模拟仿真计算程序,作为后台处理端。
由于以上两种软件基于的计算机编程语言不同(MATLAB6.5基于C语言),所以两者之间无法直接进行数据传输,这将给数据地输入与仿真结果地输出带来困难。但是应用动态数据交换(DDE)机制,这一问题将迎刃而解。所谓动态数据交换DDE(Dynamic Data Exchange)是指在Windows操作系统中允许各应用程序之间交换数据的通信机制。MATLAB提供了一些实现动态数据交换(DDE)的函数,借助它们,Windows应用程序就能够与MATLAB进行通信,实现数据交换。
在程序实现过程中,首先分别使用VB编程软件制作可视化交互界面,MATLAB工程计算软件编写后台仿真计算程序,然后在VB源程序中利用DDE编写软件通信程序,通过DDE函数“告诉”两端程序采用何种机制进行怎样通信,即实现VB前端交互式界面与MATLAB后台仿真计算程序之间的实时数据交换,例如,以下代码表示将VB控件Label6的值传输给后台MATLAB作为计算参数,仿真计算结束后,在控件Label9中输出结果:
Label6.LinkMode = vbLinkNone
Label6.LinkTopic = "MATLAB|Engine"‘调用MATLAB通信引擎
Label6.LinkItem = "EngEvalString"
Label6.LinkMode = vbLinkManual‘定义与MATLAB的连接模式
szcommand = Label6.Caption
Label6.LinkExecute szcommand‘将控件值传给后台计算程序
Label9.LinkTopic = "MATLAB|Engine"
Label9.LinkItem = "EngStringResult" ‘将计算结果赋予控件Label6
Label9.LinkMode = vbLinkManual
Label9.LinkRequest‘发送通信请求
这样就可以顺利完成从前端数据输入,数据传输,后端仿真计算并最终将计算结果输出到前端可视化界面的仿真计算全过程。
4 应用示例
假设根据以往数据显示,某型经纬仪平均每200小时发生一次故障(即故障系数为200)每次排除故障平均要3小时(即维修系数为3),利用程序模拟计算900次,设定每次仿真时间为1000小时,可求得其平均可用度为0.9821,结果如图2所示。
参考文献:
[1] 汪伦根.炮兵武器装备技术保障[M].北京:解放军出版社,2003.
[2] 苏金明.MATLAB高级编程[M].北京:电子工业出版社,2005.
[3] 温小敏.Visual Basic数据库系统项目开发实践[M].北京:科学出版社,2005.
[4] 郝杰忠.装备技术保障运筹分析[M].北京:国防工业出版社,2006.
关键词:可用度;仿真计算;动态数据交换
中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)23-983-02
A Method and Program Realization of the Emulation Calculate on the Steady Available of the Weapon Equipment
ZHANG Cheng-li, LI Xiu-liang, REN Yu, CAO Jian
(Artillery Academy of PLA, Hefei 230031, China)
Abstract: In basic of a hypothesis, a emulation calculate mode about the steady available of the weapon equipment was formed. Emulation calculate process was compiled by using MATLAB6.5 engineering calculate software. A front-alternating interface was made in virtue of Visual Basic6.0 program language, and the data transfers was realized by using DDE of Windows operating system.
Key words: available; emulation calculate; dynamic data exchange
1 提出问题
武器装备在任一随机时刻需要和开始执行任务时,处于可工作或可使用状态的程度称为可用性,可用度则是可用性的概率度量。可用度是装备可靠性和维修性的综合反映,是装备系统分析的重要参数之一。其数值计算往往受到诸如部件数量繁多、位置关系复杂、试验消耗大等因素的影响,而现在多采用的马尔可夫型可修复系统稳态可用度手工计算模型,步骤多,计算较繁琐。这里采用建模与仿真的办法来解决这类实际问题。
2 建立模型
2.1 基本理论
蒙特卡罗仿真方法的理论基础是大数定律,其形式之一是柏努里定理,即:在相同条件下进行无限次独立试验时,事件出现的频率收敛于事件出现的概率。
式中: A——随机事件;
fn(A)——n次试验中事件A出现的频率;
p——事件 出现的概率;
α——任一趋于零的小整数。
2.2 稳态可用度仿真计算模型
统计N次故障前装备可用(能工作)时间Ui和发生故障后因维修等原因而产生的不可用(不能工作)时间Di,当N→∞时,其稳态可用度的数学表达式记为:
由上式可知,在实际工作中,寻求武器装备稳态可用度最可靠的方法是:对特定的对象进行持续地跟踪调查,作好记录,一段时间之后汇总数据,利用相关公式(如马尔可夫法)进行解算。显然这样的方法费时费力。
为方便建立模型,这里假设:
1)武器装备不可用时间为排除故障的维修时间,其中包含为排除故障而产生的延误时间(如管理延误时间)和装备升级更新的时间,其它时间装备均处于稳定可用状态;
2)故障发生时间间隔与排除该故障的维修时间间隔均服从指数分布,分布系数根据经验值或统计数据确定。
根据假设条件结合对公式的应用分析,容易看出在一定时间内,武器装备处于两种互斥的状态:可用状态和不可用状态。在程序中通过随机试验,模拟装备使用、发生故障和排除故障的全过程,利用模拟生成的随机事件推进仿真时钟并进行统计计算,仿真结束后,统计相关数据,最终将稳态可用度表示为n次模拟仿真某一给定仿真时间内仿真时长T与不可用时长(维修时间)D之差与仿真时长 之比的平均值。即仿真计算模型的数学表达式为:
(3)
通过进行多次模拟,可提高计算精度和控制随机误差。
3 流程设计与程序实现
3.1 流程设计
根据上述模型和假设,武器装备稳态可用度仿真计算程序流程如图1所示。
3.2程序实现
以Basic 语言为基础的Microsoft Visual Basic6.0中文版编程软件具有很强的前台界面程序开发能力,具有上手快,易操作的特点,但是其数学计算功能有限;而MATLAB6.5是一款功能强大的工程计算软件,包含了内容丰富的数学函数库,可以完成各种数学逻辑运算,在仿真计算方面应用较为广泛,但是其可视化界面开发功能较弱。在程序设计中,应用Microsoft Visual Basic6.0编程软件制作用户可视化交互界面,作为用户前端,应用MATLAB工程计算软件编制了模拟仿真计算程序,作为后台处理端。
由于以上两种软件基于的计算机编程语言不同(MATLAB6.5基于C语言),所以两者之间无法直接进行数据传输,这将给数据地输入与仿真结果地输出带来困难。但是应用动态数据交换(DDE)机制,这一问题将迎刃而解。所谓动态数据交换DDE(Dynamic Data Exchange)是指在Windows操作系统中允许各应用程序之间交换数据的通信机制。MATLAB提供了一些实现动态数据交换(DDE)的函数,借助它们,Windows应用程序就能够与MATLAB进行通信,实现数据交换。
在程序实现过程中,首先分别使用VB编程软件制作可视化交互界面,MATLAB工程计算软件编写后台仿真计算程序,然后在VB源程序中利用DDE编写软件通信程序,通过DDE函数“告诉”两端程序采用何种机制进行怎样通信,即实现VB前端交互式界面与MATLAB后台仿真计算程序之间的实时数据交换,例如,以下代码表示将VB控件Label6的值传输给后台MATLAB作为计算参数,仿真计算结束后,在控件Label9中输出结果:
Label6.LinkMode = vbLinkNone
Label6.LinkTopic = "MATLAB|Engine"‘调用MATLAB通信引擎
Label6.LinkItem = "EngEvalString"
Label6.LinkMode = vbLinkManual‘定义与MATLAB的连接模式
szcommand = Label6.Caption
Label6.LinkExecute szcommand‘将控件值传给后台计算程序
Label9.LinkTopic = "MATLAB|Engine"
Label9.LinkItem = "EngStringResult" ‘将计算结果赋予控件Label6
Label9.LinkMode = vbLinkManual
Label9.LinkRequest‘发送通信请求
这样就可以顺利完成从前端数据输入,数据传输,后端仿真计算并最终将计算结果输出到前端可视化界面的仿真计算全过程。
4 应用示例
假设根据以往数据显示,某型经纬仪平均每200小时发生一次故障(即故障系数为200)每次排除故障平均要3小时(即维修系数为3),利用程序模拟计算900次,设定每次仿真时间为1000小时,可求得其平均可用度为0.9821,结果如图2所示。
参考文献:
[1] 汪伦根.炮兵武器装备技术保障[M].北京:解放军出版社,2003.
[2] 苏金明.MATLAB高级编程[M].北京:电子工业出版社,2005.
[3] 温小敏.Visual Basic数据库系统项目开发实践[M].北京:科学出版社,2005.
[4] 郝杰忠.装备技术保障运筹分析[M].北京:国防工业出版社,2006.