用于集成优化软件的通用接口系统的制作方法

文档序号:2225988阅读:187来源:国知局
专利名称:用于集成优化软件的通用接口系统的制作方法
技术领域
本发明涉及一种用于集成优化软件的通用接口系统,用于外部程序对集成优化软
件的调用。
背景技术
在航天产品研制过程中,涉及多个专业学科,往往需要进行多专业耦合设计才能实现航天产品的总体性能最优,现在,通用的集成优化软件很多,如iSIGHT, optimus,ModelCenter等,这些软件提供了复杂产品进行集成优化的功能模块,其目标是将原有的各专业模型通过包装工具集成到集成优化软件中,通过软件中的设计结构矩阵(DSM)功能模块完成参数耦合关系映射及各专业之间的数据传递关系,最后应用不同的优化算法开展面向多专业的设计优化工作,从而获取总体最优的技术方案。 虽然,集成优化软件较多,但这些软件往往只提供一些算法的接口 ,用户可以在这些接口的基础上开发自己的优化算法,丰富软件的功能。但其它软件(外部程序)无法实现对这些集成优化软件功能模块的直接调用,针对航天产品对集成优化软件的高利用率和需求,迫切需要一种能够实现外部程序或软件直接调用集成优化软件的通用接口系统,目前,国内外未见相关报道。

发明内容
本发明的技术解决问题克服现有技术的不足,提供一种用于集成优化软件的通用接口系统,该系统能够实现外部软件对集成优化软件的模块级功能调用,在不启动集成优化软件的基础上可以开展复杂产品的研究工作,有利于功能模块的重用和共享,可以大大提高设计效率,而且节约成本。
本发明的技术解决方案 用于集成优化软件的通用接口系统,所述集成优化软件包括模型管理模块、装配建模模块、集成应用程序模块、设计结构矩阵模块及优化运算模块,其特征在于主要包括文
档接口、装配接口、计算任务接口、变量接口及连接接口 文档接口 文档接口是顶层接口 ,外部程序通过文档接口的标记信息获取到文档接口对象,并通过文档接口调用模型管理模块,而且外部程序通过文档接口中的函数实现与其他接口的直接连接,文档接口通过建立属性和函数实现,属性包括文档名称、文档版本、文档作者和文档路径,用于对文档进行说明,函数包括新建装配函数、新建计算任务函数、新建变量函数、新建连接函数、获取计算任务函数与获取变量函数,新建装配函数、新建计算任务函数、新建变量函数、新建连接函数,分别用于实现与装配接口 、计算任务接口 、变量接口及连接接口的直接连接,获取计算任务函数与获取变量函数用于实现文档接口与已有计算任务和变量的连接; 装配接口 外部程序通过文档接口获取到装配接口以后,通过装配接口调用装配建模模块;装配接口通过建立属性和函数实现,属性用于存储当前装配包含的数据信息,包括子装配集合、计算任务集合、变量集合,子装配集合为当前装配包含的所有子装配的数据信息的集合,计算任务集合为当前装配中包含的所有计算任务数据信息的集合,变量集合为当前装配中包含的所有变量数据信息的集合,函数包括添加装配函数、添加变量函数、删除装配变量函数、装配重命名函数,添加装配函数用于在当前装配中添加新的子装配,添加变量函数用于添加当前装配中的变量,删除装配变量函数用于删除当前装配中的变量,装配重命名函数用于给当前装配重命名; 计算任务接口 外部程序获取到计算任务接口以后,通过计算任务接口调用集成
应用程序模块;计算任务接口通过建立属性和函数实现,属性包括变量集合、连接集合,变
量集合用于存储当前计算任务输入、输出变量数据信息,连接集合用于存储当前计算任务
中的变量与其它变量的连接关系,函数包括运行计算任务函数、获取变量函数、更改当前计
算任务名称函数,运行计算任务函数用于执行当前计算任务,获取变量函数用于获取当前
计算任务中的变量,更改当前计算任务名称函数用于更改当前计算任务名称; 变量接口 外部程序获取到变量接口以后,通过变量接口调用优化运算模块;变
量接口通过建立属性和函数实现,属性包括变量的状态,用于记录当前变量是否更改过,函
数包括读取数据函数、变量名称函数、变量类型函数、输入变量函数、变量是否有效函数、保
存数据函数,读取数据函数用于读取当前变量的信息,变量名称函数用于识别变量,变量类
型函数用于判断当前变量类型,输入变量函数用于判断当前变量是否为输入变量,变量是
否有效函数用于判断当前变量是否需要重新赋值,保存数据函数用于保存当前变量的数据
信息; 连接接口 外部程序获取到连接接口以后,通过连接接口调用设计结构矩阵模块,连接接口通过建立属性和函数实现,属性包括左关系和右关系,左关系为一个变量,右关系为一个表达式,用于表达式给变量赋值,建立数据传递关系,函数包括断开连接函数,用于把当前的连接关系断开。
本发明与现有技术相比具有的有益效果是 (1)本发明将集成优化软件中的各个功能模块通过文档接口、装配接口、计算任务接口 、变量接口 、连接接口等通用接口与外部程序连接,外部程序可以通过通用接口实现对集成优化软件的功能控制,可以实现在不启动集成优化软件的基础上开展集成优化工作,便于将现有的集成优化软件在其它管理系统中进行重用,可以方便高效的被其它软件系统调用,从而有效解决现有集成优化软件与其它软件的协同应用问题。 (2)本发明的通用接口系统能够实现对整个产品集成优化过程的有效管理,并可以在此基础上进行灵活的产品定制开发。该发明具有灵活性、通用性、实用性及可扩展性的特点能满足未来复杂产品研制或工程应用中的扩展需求。 (3)本发明用于集成优化软件的通用接口系统可采用C++、 Java等面向对象语言编写,具有很强的通用性。 (4)通过本发明的通用接口系统可直接将集成优化软件发布为通用软件,易于非专业开发人员使用,降低对使用者的要求。 (5)提供了一种基于文档的层次化的接口设计模式,可以按照该方法完成其它软件系统的通用接口设计,形成具有良好扩展性的通用软件系统。


图1为本发明的组成结构框图; 图2为本发明的通用接口层次结构图; 图3为本发明的文档接口实现图; 图4为本发明的装配接口实现图; 图5为本发明的装配接口实现的配置信息图; 图6为本发明的计算任务接口实现图; 图7为本发明的变量接口实现图; 图8为本发明的连接接口实现图。
具体实施例方式
目前,集成优化软件很多,如iSIGHT、 optimus、 ModelCenter等商业软件,也有用 户根据自身需求自行研发的集成优化软件。 一般情况下,从集成优化软件实现的功能看,其 主要功能是在软件模型集成的基础上进行设计方案的优化,通常都包含模型管理模块、装 配建模模块、集成应用程序模块、设计结构矩阵模块及优化运算模块。 模型管理模块用于对整个集成优化软件文档的模型管理,实现文档的新建、保存 和读取,在通用接口的文档接口中需要对集成优化软件中的模型管理模块功能进行调用, 来实现外部程序通过文档接口调用模型管理模块的功能。 装配建模模块将需要进行集成优化的问题集合,组合成为一个装配,当前装配由 子装配、计算任务、变量中的一种或多种构成,子装配也由下一级子装配、计算任务、变量中 的一种或多种构成,计算任务由一个或多个需要进行集成优化的集成应用程序构成,变量 可以是一个或多个需要进行集成优化的变量;集成优化软件中的装配建模模块提供新建子 装配、新建变量、删除变量以及重命名本装配的功能,在通用接口的装配接口中需要调用集 成优化软件的装配建模模块工能,实现外部程序通过文档接口获取到装配接口后调用装配 建模模块的功能。 集成应用程序模块集成应用程序模块包含集成程序、运行程序等功能,集成程序 功能将不同的应用程序进行封装集成,并作为一个计算任务添加到当前装配中,每个计算 任务可以包含多个输入、输出变量,运行程序提供驱动集成应用程序运算的功能。在通用接 口的计算任务接口中需要调用集成应用程序模块的功能,实现外部程序通过计算任务接口 直接相连集成应用程序模块的功能,封装的应用程序如CAD、 CAE、 CAA及自研软件等常用应 用软件。 设计结构矩阵模块设计结构矩阵模块包含创建连接、断开连接等功能,创建连接 功能用于建立不同变量之间的连接关系,可以将前一个计算任务的输入或输出变量赋值给 后一个计算任务的输入,断开连接功能用于删除已经存在的连接。在通用接口的连接接口 中需要调用设计结构矩阵模块的功能,实现外部程序通过连接接口调用设计结构矩阵模块 的功能。 优化运算模块集成优化软件中的优化运算模块实现在给定的优化变量、优化约 束及约束目标下,自动寻求目标最优的功能。在通用接口的设计变量的基础上,需要增加对 优化模块的调用,将通用接口中的设计变量对象作为优化模块的优化变量、优化约束及优化目标,从而实现外部接口通过对变量接口调用优化运算模块的功能。优化算法模块是为 了实现工程问题寻优而开发的算法模块,可以根据问题的不同开发相应的适用算法,如遗 传算法、单纯行法等。 如图1所示,本发明是外部程序调用集成优化软件使用的一种通用接口系统,该 系统是一个层次化的结构构成的,其中文档接口是顶层接口,通过该接口可以获取其它4 类接口 ;装配接口可以包含子装配接口,同时可以包含计算任务接口、变量接口 ;计算任务 接口可以包含变量接口及连接接口 ,具体层次关系如图2所示。其中,外部程序或软件是指 需要增加或调用集成优化软件功能的软件产品,包含现有的系统级协同设计软件、专业设 计分析软件以及用户自定义开发软件,如工作流管理系统(BPM)等。 下面具体的对本发明进行介绍。以Microsoft Visual C++6. 0为系统开发平台、 以COM技术为接口实现方式。通过基于一个单文档的标准MFC程序进行介绍,其中文档接 口通过单文档的文档类实现,装配、活动、变量及连接关系为MFC扩展类实现,具体的实施 步骤如下 通用接口系统的实现如下 (1)建立文档接口 ,定义文档接口的标记信息,建立文档接口的函数及属性信息。 文档接口是顶层接口 ,外部程序通过文档接口的标记信息获取到文档接口对象,并通过文 档接口调用模型管理模块,而且外部程序通过文档接口中的函数实现与其他接口的直接连 接,文档接口通过建立属性和函数实现,属性包括文档名称、文档版本、文档作者和文档路 径,用于对文档进行说明,函数包括新建装配函数、新建计算任务函数、新建变量函数、新建 连接函数、获取计算任务函数与获取变量函数,新建装配函数、新建计算任务函数、新建变 量函数、新建连接函数,分别用于实现与装配接口 、计算任务接口 、变量接口及连接接口的 直接连接,获取计算任务函数与获取变量函数用于实现文档接口与已有计算任务和变量的 连接,文档接口的实现方式如图3所示; 在VC6. 0中建立一个标准的单文档应用程序,例如,程序名称为"MDO",按照向导默 认参数顺序执行,其中在预览的第三步,需要选择Automation模式。 为了增加文档接口的标记信息,需要在生成的CMD0Doc类的基础上进行修改。具 体步骤为 在MDODoc. h文档中的"DECLARE_DISPATCH_MAP ()"语句之前增加一行"DECLARE_ OLECREATE (CMD0Doc)"内容。 在MDODoc. c卯文档中的"ENDJNTERFACE—MAP ()"语句的下一行增加"MPLEMENT_ OLECREATE(CMD0Doc, 〃 MD0. calt 〃 ,0x3803a97f,0xca07,0x4460,0xb7,0x9,0xal,0x49, 0xl,0xff,0x99,0xdc)",其中MD0. calt为接口标记信息,外部程序可以通过该标记信息获 取接口对象。 程序生成MD0接口,通过MDO接口实现文档接口功能,建立文档接口函数及属 性,其中接口函数包括新建装配、新建活动、新建变量、新建连接、获取活动以及获取变量, 属性包含文档名称、文档版本、文档作者、文档路径,文档接口的函数及属性的IDL文件如 下 [uuid(8BA85E33-1EB1-400E-8F7E-22B558FAECE1)]
dispinterface MD0
{ properties:
〃{{AFX_0DL_PR0P(CMDODoc) [id(l)]BSTR ModelName ; [id(2)]BSTR ModelVersion ; [id(3)]BSTR ModelAuthor ; [id (4) ]BSTR ModelPath ; 〃}} AFX_0DL_PR0P methods: 〃{{AFX_0DL_METH0D(CMDODoc) [id (5) ] IDispatch*CreateAssembly (BSTR謹e, BSTR parent); [id(6)]IDispatch*CreateActivity(BSTR謹e, BSTR parent, BSTR resource); [id(7)]IDispatch*CreateAssemblyVariable(BSTR謹e, BSTR parent, BSTR type); [id(8)]IDispatch氺CreateLink(BSTR曹,BSTR equation); [id(9)]IDispatch*GetActivity(BSTR謹e); [id(10)]VARIANT GetValue(BSTR name); 〃}} AFX_0DL_METH0D }; 文档名称属性为BSTR ModelName,新建文档时,需要给出文档名称,并将该名称的
数据信息存储到ModelName中,外部程序可以通过ModelName属性获取当前文档的名称。
文档版本属性为BSTR ModelVersion,新建文档时,需要给出文档的版本信息,并 将该版本信息存储到ModelVersion中,外部程序可以通过ModelVersion属性获取当前文 档的版本号。 文档作者属性为BSTR ModelAuthor,新建文档时,需要给出文档的创建作者信息, 并将该数据信息存储到ModelAuthor中,外部程序可以通过ModelAuthor属性获取当前文 档的创建作者。 文档路径属性为BSTR ModelPath,新建文档时,需要给出文档的路径信息,并将该 数据信息存储到ModelPath中,外部程序可以通过ModelPath属性获取当前文档的存储路 径。 新建装配函数为IDispatch*CreateAssembly (BSTR謹e, BSTRparent),其中name 表示新建装配的名称,parent为新建装配的父装配名称,对于顶层装配,其父装配名称为 空,该函数生成一个装配类对象,并将该对象作为函数返回值,外部调用程序通过这个返回 值可以调用相应的装配接口函数及属性。 新建计算任务函数为IDispatch*CreateActivity(BSTR name, BSTRparent, BSTR resource),其中name表示新建任务的名称,parent为新建任务所属的装配名称,resource 为任务的资源信息标识(如程序地址,运行参数等),该函数生成一个计算任务类对象,并将该对象作为函数返回值,外部程序通过这个返回值可以调用相应的计算任务接口函数及 属性。 新建变量函数为IDispatch*CreateAssemblyVariable(BSTR謹e,BSTR parent, BSTR type),其中name表示新建的变量名称,parent为新建变量所属的装配名称,type为 变量的类型,可以为double、 int、 bool、 String等类型,该函数生成一个变量类对象,并将 该对象作为函数返回值,外部程序通过这个返回值可以调用相应的变量接口函数及属性。
新建连接函数为IDispatch*CreateLink(BSTR var,BSTR equation),其中var表 示需要连接的变量名称,equation为给var变量赋值的表达式,该函数生成一个连接类对 象,并将该对象作为函数返回值,外部程序通过这个返回值可以调用相应的连接接口函数 及属性。 获取计算任务函数为IDispatch*GetActivity(BSTR name),其中name表示需要 获取的计算任务名称,该函数搜索当前所有的计算任务,并将名称为name的计算任务对象 作为函数返回值,外部程序通过这个返回值可以调用相应的计算任务接口函数及属性。 [OO73] 获取变量函数为VARIANT GetValue (BSTR name),其中name为所需获取的变量名 称,该函数搜索当前所有的计算任务,并将名称为name的变量对象作为函数返回值,外部 程序通过这个返回值可以调用相应的变量接口函数及属性。 在MDODoc. c卯文件中实现上述函数及属性的功能,从而完成文档接口的建立及 功能实现。 通过文档接口调用模型管理模块,其实现方式为在文档接口实现函数中,调用模 型管理模块的功能函数,包含新建、保存及读取等模型管理模块功能函数,从而通过文档接 口可以实现对模型管理模块功能的调用,实现对基于XML标准的模型文档的新建、保存及 读取。
(2)建立装配接口 ,外部程序通过文档接口获取到装配接口以后,通过装配接口调
用装配建模模块;装配接口通过建立属性和函数实现,属性用于存储当前装配包含的数据
信息,包括子装配集合、计算任务集合、变量集合,子装配集合为当前装配包含的所有子装
配的数据信息的集合,计算任务集合为当前装配中包含的所有计算任务数据信息的集合,
变量集合为当前装配中包含的所有变量数据信息的集合,函数包括添加装配函数、添加变
量函数、删除装配变量函数、装配重命名函数,添加装配函数用于在当前装配中添加新的子
装配,添加变量函数用于添加当前装配中的变量,删除装配变量函数用于删除当前装配中
的变量,装配重命名函数用于给当前装配重命名。装配接口的实现如图4所示 在MDO工程中,增加装配(Assembly)类,其配置信息如图5所示,选取基类为
CCmdTarget,选取Automation类型。通过该新建类,生成IAssembly接口及Assembly类。 通过IAssembly接口定义装配接口功能,包含接口函数及属性信息,装配接口的
函数及属性实现的IDL文件如下 [皿id (D54D4C3D-0597-4B4A-B33F-CF07A9C0EEC4)]
dispinterface IAssembly
{
[id(l)]VARIANT Assemblies ; [id(2)]VARIANT Activities ; [id(3)]VARIANT Variables ; 〃}} AFX_0DL_PR0P methods: 〃{{AFX_0DL_METH0D(Assembly) [id(4)]IDispatch*AddAssembly(BSTR name); [id(5)]IDispatch*AddVariable(BSTR謹e, BSTR type); [id(6)]void DeleteVariable(BSTR name); [id (7)] void rename (BSTR name); 〃}} AFX—0DL—METH0D }; 子装配集合属性为VARIANT Assemblies,其中Assemblies为一个数组变量,新建
一个装配时,在本装配的Assemblies中增加新的装配对象,通过Assemblies可以获取当前
装配的所有子装配对象,通过子装配对象可以调用装配接口的属性及函数。 计算任务集合属性为VARIANT Activities,其中Activities为一个数组变量,新
建一个计算任务时,在本装配的Activities中增加新的计算任务对象,通过Activities可
以获取当前装配的所有计算任务对象,通过计算任务对象可以调用计算任务接口的属性及函数。 变量集合属性为VARIANT Variables,其中Variables为一个数组变量,新建一个 变量时,在本装配的Variables中增加新的变量对象,通过Variables可以获取当前装配的 所有变量对象,通过变量对象可以调用变量接口的属性及函数。 添加装配函数为IDispatch*AddAssembly (BSTR name),其中name为要添加的新 装配名称,该函数创建一个新的装配对象,并将创建的对象存储到Assemblies属性中,同 时,将新建的装配对象作为函数返回值,外部程序通过这个返回值可以调用新建装配的接 口函数及属性。 添力口变量函数为IDispatch*AddVariable(BSTR謹e, BSTR type),其中謹e表 示新建的变量名称,type为变量的类型,可以为double、int、boQl、 String等类型,该函数 生成一个变量类对象,并将该对象存储到Variables属性中,同时,将新建的变量对象作为 函数返回值,外部程序通过这个返回值可以调用相应的变量接口函数及属性。
删除装配变量函数为void DeleteVariable (BSTR name),其中name表示需要删除 的变量名称,该函数将在本装配的Variables属性中进行搜索,如果查到要删除的变量名 称,则从Variables属性中去掉该变量对象。 装配重命名函数为void rename (BSTR name),其中name本装配的新名称,该函数 将对本装配的名称进行修改,用name的数据替换已有的装配名称。 在Assembly, c卯文件中实现上述函数及属性的功能,从而完成对装配接口的设 计。 通过装配接口调用装配建模模块,其实现方式为装配建模模块的功能包含新建 装配、新建变量、删除变量及重命名等,与装配接口的4个函数对应,通过在装配接口函数中直接调用集成优化软件中的装配建模功能函数,实现通过装配接口函数调用装配建模模 块的功能。 (3)建立计算任务接口 。外部程序获取到计算任务接口以后,通过计算任务接口调 用集成应用程序模块;计算任务接口通过建立属性和函数实现,属性包括变量集合、连接集 合,变量集合用于存储当前计算任务输入、输出变量数据信息,连接集合用于存储当前计算 任务中的变量与其它变量之间的数据关系,函数包括运行计算任务函数、获取变量函数、更 改当前计算任务名称函数,运行计算任务函数用于执行当前计算任务,获取变量函数用于 获取当前计算任务中的变量,更改当前计算任务名称函数用于更改当前计算任务名称。计 算任务接口的实现如图6所示 在MD0工程中,增加计算任务Activity类,选取基类为CCmdTarget,选取 Automation类型。通过该新建类,生成IActivity接口及Activity类。
通过IActivity接口定义计算任务接口功能,包含接口函数及属性信息,计算任 务接口的函数及属性实现IDL文件如下
[uuid(F00F6950-lD3A-41A5-A85B-A58B5BlEFC96)]
dispinterface IActivity
{











}; 变量集合属性为VARIANT Variables,其中Variables为一个数组变量,新建一个 变量时,在本计算任务的Variables中增加新的变量对象,通过Variables可以获取当前计 算任务的所有变量对象,通过变量对象可以调用变量接口的属性及函数。
连接集合属性为VARIANT Links,其中Links为一个数组变量,新建一个连接时, 在本计算任务的Links中增加新的连接对象,通过Links可以获取当前计算任务的所有连 接对象,通过连接对象可以调用连接接口的属性及函数。 运行计算任务函数为void R皿(),该函数实现计算任务的运算,该计算任务可以 是商业软件、自研软件或脚本程序等,在R皿函数的实现过程中,需要根据上述三类程序进 行开发设计,实现程序的自动运行。 获取变量函数为IDispatch*GetVariable(BSTR name),其中name为变量的名称, 该函数将在本计算任务的Variables属性中进行搜索,如果查到变量名称,则从Variables
properties:
〃{{AFX—0DL—PR0P(Activity) [id(l)]VARIANT Variables; [id (2)]VARIANT Links ; 〃}}AFX_0DL_PR0P methods:
〃{{AFX—0DL—METH0D (Activity) [id (3)] void Run(); IDispatch承GetVariable (BSTR謹e) [id (5)]void rename(BSTR name); 〃}}AFX_0DL_METH0D属性获取该变量对象,并将变量对象作为函数返回值,外部程序通过这个返回值可以调用 相应的变量接口函数及属性。 更改当前计算任务名称函数为void rename(BSTR name),其中name本计算任务的 新名称,该函数将对本计算任务的名称进行修改,用name的数据替换已有的装配名称。
在Activity, c卯文件中实现上述函数及属性的功能,从而完成对计算任务接口 的设计。 通过文档接口的获取计算任务、新建计算任务两个接口函数以及装配接口的活动
集合属性,可以获取计算任务接口对象,从而实现对计算任务的函数及属性的调用。 在文档接口的新建计算任务函数中,增加对集成优化软件中集成应用程序模块中
的集成程序功能的调用,从而实现对各种软件的集成功能,将该计算任务所包含的输入/
输出变量存储到当前计算任务的Variables属性中。 在计算任务接口的运行任务函数中,增加对集成应用程序模块中的运行程序的功 能调用,从而实现通过计算任务接口调用集成应用程序运行的功能。 (4)建立变量接口 。外部程序获取到变量接口以后,通过变量接口调用优化运算模 块;变量接口通过建立属性和函数实现,属性包括变量的状态,用于记录当前变量是否更改 过,函数包括读取数据函数、变量名称函数、变量类型函数、输入变量函数、变量是否有效函 数、保存数据函数,读取数据函数用于读取当前变量的信息,变量名称函数用于识别变量, 变量类型函数用于判断当前变量类型,输入变量函数用于判断当前变量是否为输入变量, 变量是否有效函数用于判断当前变量是否需要重新赋值,保存数据函数用于保存当前变量 的数据信息。变量接口的实现如图7所示。 在MD0工程中,增加Variable类,选取基类为CCmdTarget,选取Automation类型。 通过该新建类,生成IVariable接口及Variable类。 通过IVariable接口定义变量接口功能,包含接口函数及属性信息,变量接口的 函数及属性实现IDL文件如下 [皿id(F0172779-E02B-4931-AFD4-53C95F427BFF)]
dispinterface IVariable
{
:0138] :0139] :0140] :0141] :0142] :0143] :0144] :0145] :0146] :0147] :0148] :0149]void fromString(BSTR value);BSTR getFullName (); [id (4)] BSTR getType ();boolean isl即ut(); [id(6) ]boolean isValid(); [id (7)]BSTR toString();
11

}}AFX_0DL_METH0D 变量状态属性为boolean hasChanged,当变量数据改变时,该参数为真,否则为 假。 读取数据函数为void fromString(BSTR value),其中value为该变量的数值,外 部程序可以调用该函数为本变量赋值。 变量名称函数为BSTR getFullName(),该函数将返回本变量的名称。 变量类型函数为BSTR getType(),该函数用于获取变量的数据类型,可以为
double、int、bo01、 String等类型,外部程序通过该函数获取变量的类型。 输入变量函数为boolean islnput (),对于属于计算任务的变量,该函数判断当前
变量是输入变量或输出变量,如果是输入变量则返回真,否则返回假。 变量是否有效函数为boolean isValid(),对于属于计算任务的变量,该函数可以 判断变量是否有效,当计算任务运行后,当前变量已经更新则该函数返回真,否则返回假。
保存数据函数为BSTR toString(),该函数获取变量数值,并将数值作为函数返回 值,外部程序通过该函数可以获取变量数值。 在Variable, c卯文件中实现上述函数及属性的功能,从而完成对变量接口的建 立及功能实现。 外部程序通过文档接口的新建变量、获取变量函数,装配接口的添加变量函数、变 量集合属性,计算任务接口的获取变量函数、变量集合属性,能够获取变量接口 ,通过变量 接口可以调用变量接口的函数及属性。 在集成优化软件中,包含优化运算模块,在变量接口的基础上,需要对集成优化软 件中的优化运算模块进行功能调用,具体实现方式为通过变量接口将系统中的变量作为 优化问题的优化变量、优化约束及优化目标,开展优化计算,当满足优化运算的收敛条件 时,完成优化运算,否则通过变量接口获取新的变量数值,进行下一轮优化,直到满足收敛 条件。 (5)建立连接接口。外部程序获取到连接接口以后,通过连接接口调用设计结构 矩阵模块,连接接口通过建立属性和函数实现,属性包括左关系和右关系,左关系为一个变 量,右关系为一个表达式,用于表达式给变量赋值,建立数据传递关系,函数包括断开连接 函数,用于把当前的连接关系断开。连接关系接口的实现如图8所示。
在MD0工程中,增加Link类,选取基类为CCmdTarget,选Automation类型。通过 该新建类,生成ILink接口及Link类。 通过ILink接口定义连接关系接口功能,包含接口函数及属性信息,连接关系接 口的函数及属性实现IDL文件如下 [uuid(33ElFB77-3A92-498B-94EB-719821AD5C49)]
dispinterface ILink
{

BSTR LeftString ;
[id (2) ] BSTR RightString ; 〃}}AFX_0DL_PR0P
methods: 〃{{AFX—0DL—METH0D(Link) [id (3)] void breakLink(); 〃}} AFX—ODL—METHOD }; 连接接口左关系属性为BSTR LeftString,该属性为一个变量的字符串数值,该变 量为需要赋值的变量。 连接接口右关系属性为BSTR RightString,该属性为一个表达式,该表达式中可 以包含变量及一些数据运算,该表达式用于对左关系的赋值。 连接接口的断开连接函数为void breakLink (),该函数先通过左关系获取变量名 称,让后获取变量所属的计算任务,然后删除这个计算任务中的左关系为当前变量名称的 连接对象。 在Link, c卯文件中实现上述函数及属性的功能,从而完成对连接接口的设计。
外部程序通过文档接口中的新建连接函数以及计算任务接口中的连接集合属性 可以获取连接接口对象,从而调用连接接口的函数及属性。 集成优化软件中的设计结构矩阵模块主要包含新建连接、断开连接等功能。
新建连接的接口调用实现方式为在文档接口的新建连接函数中调用设计结构矩 阵模块中的新建连接功能,实现通过文档接口的新建连接函数可以实现设计结构矩阵的新 建连接功能。同时,在文档接口的新建连接函数实现中,需要将生成的连接对象存储到连接 变量所属的计算任务中的连接集合中。 断开连接的接口调用实现方式为由计算任务中的连接集合中选出左关系为需要 断开的变量,将该连接对象从连接集合中删除。 下面以某产品结构设计为例,说明该通用接口的使用过程,该结构为长方体,在满 足强度的基础上需要进行结构减重优化设计,具体实施方案如下 (1)建立文档,通过文档接口对文档属性进行赋值,其中文档名称为"结构设计"、 文档版本为"1.0"、文档作者为"lis"、文档路径为"E:V',该接口将调用集成优化软件模型 管理模块中的新建功能,将文档属性信息写到集成优化软件中。 (2)创建装配,该产品包含l个结构设计装配,通过文档接口的新建装配函数 CreateAssembly(BSTR name, BSTR parent)建立装配,其中装配名称为"Model",父装配 parent为空,表示建立顶层装配。在集成优化软件中将调用装配建模模块的新建装配功能, 实现在集成优化软件中增加一个新的装配。经过该步骤后,通用接口系统形成了一个用于 结构设计的装配对象。 (3)创建计算任务,该产品的结构设计包含3个计算任务,分别为总体计算任务 (System)、质量计算任务(mass)、强度分析计算任务(stress),通过文档接口的新建计算 任务函数在"Model"装配的基础上新建上述3个计算任务,新建计算任务函数会调用集成 优化软件的集成应用程序模块中的集成程序功能,实现对计算任务的集成,三个计算任务 的名称分别为"Model. System"、 "Model, mass"、 "Model, stress"。经过该步骤,在结构设计装配(Model)中的Activities属性集合中存储上述三个计算任务对象。
(4)创建变量,该产品的结构设计共包含11个变量,其中总体包含3个变量,分 别为长(length)、宽(width)、高(height),调用文档接口的创建装配变量函数,其中函数 的name参数赋值为3个变量的名称,函数的parent参数赋值为"Model. System",函数的 type参数赋值为"double"。经过上述函数调用后,在"Model. System"计算活动的变量集 合属性中包含上述3个变量对象,其中长度变量名称为"Model. System, length",宽度变量 为名称"Model. System, width",高度变量名称为"Model. System, height",创建装配变量函 数需要调用集成优化软件的集成应用程序模块中的集成程序功能,实现对程序输入、输出 变量的集成。同样质量计算包含4个变量,长(length)、宽(width)、高(height)以及质量 (mass),强度计算包含4个变量长(length)、宽(width)、高(height)以及应力(stress), 按照总体计算任务中变量相同的方式创建变量。 (5)创建连接,共需要创建6个连接对象,对于质量计算任务中的长(length)、 宽(width)、高(height)等3个变量,需要与总体计算中的长(length)、宽(width)、高 (height) 3个变量建立连接关系,通过文档接口中的创建连接函数,完成上述三个连接的创 建,其中var为质量计算中三个变量的名称,equation为总体计算中三个变量的名称,经过 创建后,在质量计算任务中的连接集合中,增加上述三个连接对象。创建连接函数需要调用 集成优化软件中的设计结构矩阵模块中的新建连接功能,实现在集成优化软件中增加新的 连接。同理,在强度计算任务中,也需要与总体计算的3个变量建立连接关系。
(6)创建优化问题,其中设计变量为总体计算任务的的三个变量长(length)、宽 (width)、高(height),约束变量为强度计算任务的应力(stress)变量,优化目标为质量计 算任务的质量(mass)变量。在集成优化软件的优化运算模块中,给出上述优化问题参数, 通过外部程序调用优化计算,当需要变量数据时,先调用计算任务的运行函数,获取新的变 量数值,当数值满足收敛条件时,完成迭代,否则继续更新变量数值,进行任务计算。
本发明未详细说明部分属本领域技术人员公知常识。
权利要求
用于集成优化软件的通用接口系统,所述集成优化软件包括模型管理模块、装配建模模块、集成应用程序模块、设计结构矩阵模块及优化运算模块,其特征在于主要包括文档接口、装配接口、计算任务接口、变量接口及连接接口文档接口文档接口是顶层接口,外部程序通过文档接口的标记信息获取到文档接口对象,并通过文档接口调用模型管理模块,而且外部程序通过文档接口中的函数实现与其他接口的直接连接,文档接口通过建立属性和函数实现,属性包括文档名称、文档版本、文档作者和文档路径,用于对文档进行说明,函数包括新建装配函数、新建计算任务函数、新建变量函数、新建连接函数、获取计算任务函数与获取变量函数,新建装配函数、新建计算任务函数、新建变量函数、新建连接函数,分别用于实现与装配接口、计算任务接口、变量接口及连接接口的直接连接,获取计算任务函数与获取变量函数用于实现文档接口与已有计算任务和变量的连接;装配接口外部程序通过文档接口获取到装配接口以后,通过装配接口调用装配建模模块;装配接口通过建立属性和函数实现,属性用于存储当前装配包含的数据信息,包括子装配集合、计算任务集合、变量集合,子装配集合为当前装配包含的所有子装配的数据信息的集合,计算任务集合为当前装配中包含的所有计算任务数据信息的集合,变量集合为当前装配中包含的所有变量数据信息的集合,函数包括添加装配函数、添加变量函数、删除装配变量函数、装配重命名函数,添加装配函数用于在当前装配中添加新的子装配,添加变量函数用于添加当前装配中的变量,删除装配变量函数用于删除当前装配中的变量,装配重命名函数用于给当前装配重命名;计算任务接口外部程序获取到计算任务接口以后,通过计算任务接口调用集成应用程序模块;计算任务接口通过建立属性和函数实现,属性包括变量集合、连接集合,变量集合用于存储当前计算任务输入、输出变量数据信息,连接集合用于存储当前计算任务中的变量与其它变量的连接关系,函数包括运行计算任务函数、获取变量函数、更改当前计算任务名称函数,运行计算任务函数用于执行当前计算任务,获取变量函数用于获取当前计算任务中的变量,更改当前计算任务名称函数用于更改当前计算任务名称;变量接口外部程序获取到变量接口以后,通过变量接口调用优化运算模块;变量接口通过建立属性和函数实现,属性包括变量的状态,用于记录当前变量是否更改过,函数包括读取数据函数、变量名称函数、变量类型函数、输入变量函数、变量是否有效函数、保存数据函数,读取数据函数用于读取当前变量的信息,变量名称函数用于识别变量,变量类型函数用于判断当前变量类型,输入变量函数用于判断当前变量是否为输入变量,变量是否有效函数用于判断当前变量是否需要重新赋值,保存数据函数用于保存当前变量的数据信息;连接接口外部程序获取到连接接口以后,通过连接接口调用设计结构矩阵模块,连接接口通过建立属性和函数实现,属性包括左关系和右关系,左关系为一个变量,右关系为一个表达式,用于表达式给变量赋值,建立数据传递关系,函数包括断开连接函数,用于把当前的连接关系断开。
全文摘要
用于集成优化软件的通用接口系统,包含通用接口及软件功能模块两部分内容。其中通用接口是集成优化软件功能模块与外部程序连接的桥梁,通过通用接口的调用可以实现软件功能模块的功能,通用接口包含文档接口、装配接口、计算任务接口、变量接口及连接接口等5类接口;软件功能模块包含模型管理模块、装配建模模块、集成应用程序模块、设计结构矩阵模块及优化运算模块等5个功能模块。该方法能够解决复杂产品集成优化软件的通用接口设计问题,为复杂产品集成优化软件的通用接口设计提供了技术支撑。
文档编号G06F9/44GK101739256SQ20091024328
公开日2010年6月16日 申请日期2009年12月30日 优先权日2009年12月30日
发明者冷传航, 张冶, 施国强, 李烁, 沈重, 赵雯, 郑宏涛 申请人:中国运载火箭技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1