一种基于服务的机械与控制系统联合仿真实现的方法

文档序号:6287041阅读:104来源:国知局
专利名称:一种基于服务的机械与控制系统联合仿真实现的方法
技术领域
本发明涉及一种基于服务的机械与控制系统联合仿真实现的方法,即一种基于服务的 ADAMS与MATLAB的联合仿真实现的方法,属于计算机分布式仿真技术领域。
(二)
背景技术
随着计算机软硬件技术以及仿真自身技术的发展,人们丌发了大量成熟的商用仿真软件 如ADAMS (Automatic Dynamic Analysis of Mechanical Systems机矛戒多体云力力学仿真软件) 和Math Work公司的MATLAB/Simulink,有力的推动了仿真技术在复杂产品设计中的应用。 为了将仿真全面应用于复杂产品设计,我们需要在设计过程中全面考虑产品行为要求,充分 利用仿真建模、控制及校验工具,使机械、控制、电子等多个不同领域的仿真工具协同运行, 对完整系统模型进行并行分析,尽可能获取产品优化设计。
面向复杂产品设计的分布式协同仿真,是位于不同地方的设计人员为某仿真任务相互协 同建模仿真,它有"分布性"和"协同性"两个主要特征。分布性主要体现在设计人员地理 位置的分布性,而协同性则主要体现在不同设计人员为—'个总的建模仿真任务而协同工作。 当利用不同学科领域商用仿真软件如ADAMS与MATLAB,采用基于接口的方法完成多领 域建模后,可以实现协同仿真运行。但目前,通常只能提供集中式的协同仿真运行功能所 有模型和相应的仿真软件都必须位于单台计算机上。很显然,这种协同仿真运行的方法必然 具有基于接口的多领域建模方法的诸多缺点,它不具标准性、开放性,且扩充困难。
解决这个问题的方法主要有高层体系结构HLA。它是一种先进的仿真体系结构,具有 标准性、开放性、可扩充性和支持分布式仿真等诸多优点,使各领域仿真应用软件只需开发 同HLA的接口,即可较好的实现多领域建模。然而,HLA也只支持局域网内对仿真软件各 联邦成员的管理协同调用,随着仿真技术的进一歩发展和复杂产品设计的需要,基于广域网 的分布式协同仿真,仍是一个亟待解决的问题。
(三) 发明内容(1) 目的本发明的目的在于提供一种基于服务的机械与控制系统联合仿真实现的方 法,即ADAMS与MATLAB的联合仿真实现的方法,它克服了现有技术的不足,在广域网 中构建ADAMS与MATLAB仿真应用程序服务平台,使二者以松耦合的方式集成,实现在 广域网下的多领域分布式协同并行仿真。
(2) 技术方案 一种基于服务的机械与控制系统联合仿真实现的方法,即ADAMS与 MATLAB的联合仿真实现的方法,该方法具体歩骤如下
歩骤一编写ADAMS通用接口模块并封装为Web服务的歩骤,即首先确定ADAMS 与MATLAB联合仿真输入输出调用关系,改变单结点下ADAMS与MATLAB联合仿真方 式,根据ADAMS软件自带的FORTRAN语言编写的用户子程序模版,创建能够自动读入 输入文档值,启动ADAMS/Solver对模型进行仿真运算,并能自动将输出值写入输出文档的 ADAMS通用接口模块,然后根据Web服务的创建方法,在.NET或者J2EE环境下用C弁或 JAVA编写能够调用可执行程序文件的Web服务,生成相应的WSDL接口描述文档;
歩骤二编写MATLAB通用接口模块并进行Web服务封装的歩骤,即首先,将ADAMS 输出文档作为MATLAB的模型输入,将ADAMS输入文档作为MATLAB的模型输出。编 写相应m文件模块,读入ADAMS的输出,启动Simulink控制仿真模块,并将结果输入 ADAMS的输入文档,然后利用MATLAB引擎技术调用此m文件,在VC环境下生成能够 启动Simulink控制仿真模块的可执行文件,建立MATLAB接口调用模块,并创建可调用 MATLAB控制仿真的Web服务,生成WSDL服务描述文档。在此基础上手动修改、扩充 ADAMS与MATLAB接口的描述文档,以形成完备通用的Web服务访问接口描述;
歩骤三注册并发布Web服务,实现广域网的应用程序联合调用的歩骤,即在现有 的Web服务平台下,以UDDI标准规范将ADAMS与MATLAB的Web服务描述文档注册 到服务器平台,发布共享接口服务信息,提供Web服务的查询及调用。然后在Web页面添 加Web服务引用,编写ADAMS与MATLAB的Web服务循环调用模块,使用户能在广域 网中搜索查询到该Web服务,并经选择在Web页面远程自动化循环调用ADAMS与 MATLAB联合仿真,对模型进行并行分析;
(3) 优点及功效
1、 面向服务的设计方法。服务具有开放性、自治性、自描述性和实现无关性,Web服 务的引用解决了 ADAMS与MATLAB分布式协同仿真的两大难题 一个是平台之间的互操 作问题;另一个是客户端与服务器端的表示层与应用逻辑层的紧耦合问题;
2、 广域网中分布式协同仿真。扩展了多领域的协同仿真,有效保护了软件企业知识产权,促进遗留系统的复用,支持随需应变的敏捷性和先进的分布式仿真建模,使复杂产品设计在更广阔的领域以高效、便捷的方式开展。
(四)


图1是本发明总体设计方法歩骤示意图2是ADAMS与MATLAB联合仿真输入输出关系示意图3是本发明ADAMS用户子程序设计流程示意图4是ADAMS与MATLAB单结点下的联合仿真的流程示意图5是Web服务中WSDL、 SOAP与UDDI关系示意图6是本发明服务调用关系示意图。
(五)
具体实施例方式
本发明一种基于服务的机械与控制系统联合仿真实现的方法,下面结合附图和实施例对本发明作进一歩详细的描述。
本发明的实施例是ADAMS与MATLAB联合仿真的服务封装与发布的方法。
第一歩,编写ADAMS与MATLAB的接口模块函数并封装。首先,确定ADAMS与MATLAB联合仿真的输入输出关系,参见图2。根据ADAMS/Solver (求解器)的调用特点,在ADAMS软件自带的FORTRAN语言编写的用户子程序模版框架下编写能够调用ADAMS/SoWer进行仿真运算的模块。用户子程序具有通用性,可以利用编程语言来定义模型元素或者特定的输出。用户可以将函数表达式写成子程序的形式并将其与ADAMS/View连接,它具有函数表达式所没有的通用性和灵活性。子程序利用通用程序设计语言(FORTRAN或C)的功能来定义ADAMS/View不能提供的函数,并使之按照需要而量身设计。通过连接用户子程序,不会失去ADAMS/View的任何功效,也不会降低仿真速度。
如图3所示,本例编写的用户子程序模块定义了一个输入文档并自动生成一个输出文档,在读取输入文档中输入值后自动调用ADAMS/Solver对模型进行分析求解,并将结果写入输出文档,支持ADAMS仿真模型的多输入多输出。
由于进行的是单歩仿真,需要有控制仿真的文件来支持仿真过程,因此需要编写控制仿真文件以支持仿真过程,即编写ADAMS/acf文件执行ADAMS初始化及后续仿真命令。最后,通过编写批处理文件将初始化及后续仿真的控制仿真语句和acf文件封装,实现ADAMS独立于模型的应用程序接口模块的创建。
然后,将上述接口函数模块进行Web服务封装,也即是将所编写的通用接口模块在WSDL标准及规范下将其功能等信息向用户描述,方便调用。首先是创建一个Web服务,在现有平台的Web服务框架下用C^编写调用ADAMS接口模块的Webmethod。 Web方法编辑生成之后,随之生成一个与该调用模块相对应的默认WSDL文档。该文档定义了接口 Web服务的类型描述、消息描述、操作描述、端口描述及其绑定协议等方面的内容。在默认WSDL的描述框架下,可以通过手动修改完善此接口描述。WSDL定义存储了有别于接口设计的实现信息,从而使接口定义的存在独立于传输协议,直到它被最终绑定。第二歩,编写MATLAB通用接门模块并进行Web服务封装。
首先是使用MATLAB弓I擎技术对MATLAB进行接口的二次丌发。MATLAB引擎功能,可实现VC与MATLAB的m文件的相互调用,它是一个后台工作过程,与当前运行的所有交互式MATLAB过程相互独立,也不会干扰任何用户运行的MATLAB过程。在Windows操作系统中,MATLAB引擎使用组件对象模型(COM)与C或FORTRAN程序交互。首先通过编写m文件读取ADAMS的模型输出文档,运行在MATLAB/Simulink中建立的控制模型,并将结果自动送入ADAMS模型输入文档。然后利用MATLAB引擎技术在VC中编写程序调用该m文件的函数,生成该控制模型的初始化及后续仿真执行模块。
参阅图4,图4为ADAMS与MATLAB通过通用接口模块进行单结点下的联合仿真的流程图。
在编写MATLAB初始化及后续仿真接口模块之后,就利用C弁语言创建Web方法调用MATLAB接口模块,将MATLAB初始化与后续仿真模块分别封装为服务,生成服务的接口描述文档,同ADAMS模块的服务封装方法一样。
图5具体说明了 WSDL文档在Web服务中所处位置服务提供者在服务注册中注册所提供的服务,WSDL文件所包含的信息部分被映射到服务注册中以便服务请求者査询;服务使用者通过服务注册来查找和发现自己所需要的服务,从中可以得到所需服务的WSDL访问地址;服务使用者得到WSDL文件后通过WSDL文件所描述的接口规约、消息格式规约、通信协议规约以及访问地址來完成对服务的调用。
第三歩,注册并发布应用程序接口的Web服务,实现广域网的应用程序联合调用。UDDI规范定义了一个通用服务信息注册中心软件,该注册中心软件以XML格式存储和管理各类服务元信息,并以Web服务的方式提供基于元信息的服务发布和发现。首先,在生成相应的接口 Web服务描述文档的基础上,将WSDL描述文档注册到UDDI中去,此时,用户即可通过SOAP消息协议对相应的应用程序进行远程调用。然后,在Web页面可查找并发现Web服务,通过添加Web服务引用的方法,在Web页面中编写对ADAMS与MATLAB接口服务循环调用的执行程序,即可形成ADAMS、 MATLAB及其二者联合仿真的三个服务,参见图6,实现广域网中对ADAMS与MATLAB联合对模型进行过程控制仿真的方法。
权利要求
1、一种基于服务的机械与控制系统联合仿真实现的方法,其特征在于该方法具体步骤如下步骤一编写ADAMS通用接口模块并封装为Web服务的步骤,即首先确定ADAMS与MATLAB联合仿真输入输出调用关系,改变单结点下ADAMS与MATLAB联合仿真方式,根据ADAMS软件自带的FORTRAN语言编写的用户子程序模版,创建能够自动读入输入文档值,启动ADAMS/Solver对模型进行仿真运算,并能自动将输出值写入输出文档的ADAMS通用接口模块,然后根据Web服务的创建方法,在.NET或者J2EE环境下用C#或JAVA编写能够调用可执行程序文件的Web服务,生成相应的WSDL接口描述文档;步骤二编写MATLAB通用接口模块并进行Web服务封装的步骤,即首先,将ADAMS输出文档作为MATLAB的模型输入,将ADAMS输入文档作为MATLAB的模型输出,编写相应m文件模块,读入ADAMS的输出,启动Simulink控制仿真模块,并将结果输入ADAMS的输入文档,然后利用MATLAB引擎技术调用此m文件,在VC环境下生成能够启动Simulink控制仿真模块的可执行文件,建立MATLAB接口调用模块,并创建可调用MATLAB控制仿真的Web服务,生成WSDL服务描述文档;在此基础上手动修改、扩充ADAMS与MATLAB接口的描述文档,以形成完备通用的Web服务访问接口描述;步骤三注册并发布Web服务,实现广域网的应用程序联合调用的步骤,即在现有的Web服务平台下,以UDDI标准规范将ADAMS与MATLAB的Web服务描述文档注册到服务器平台,发布共享接口服务信息,提供Web服务的查询及调用;然后在Web页面添加Web服务引用,编写ADAMS与MATLAB的Web服务循环调用模块,使用户能在广域网中搜索查询到该Web服务,并经选择在Web页面远程自动化循环调用ADAMS与MATLAB联合仿真,对模型进行并行分析。
全文摘要
本发明一种基于服务的机械与控制系统联合仿真实现的方法,该方法有三大步骤步骤一编写ADAMS通用接口模块并封装为Web服务;步骤二编写MATLAB通用接口模块并进行Web服务封装;步骤三注册并发布Web服务,实现广域网的应用程序联合调用。本发明是包括一种基于服务的应用程序封装,借助ADAMS用户子程序和MATLAB引擎技术,实现了在面向服务的体系结构(SOA)下ADAMS与MATLAB之间的松散耦合、位置和传输协议透明,从而满足复杂产品多领域分布式协同仿真的优化需求。它解决了目前ADAMS机械系统与MATLAB控制系统分布式协同仿真中二者的集成与模块复用性问题,支持ADAMS与MATLAB的Web服务封装,支持广域网环境下多领域分布式协同仿真,协同仿真系统构造简洁,扩展性强,具有广阔地应用前景。
文档编号G05B17/02GK101533262SQ200910082809
公开日2009年9月16日 申请日期2009年4月22日 优先权日2009年4月22日
发明者南 司, 晓 宋, 霖 张, 赖李媛君 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1