本申请涉及数据同步领域,特别涉及一种基于数据驱动的复杂产品协同设计管理方法和系统。
背景技术:
复杂产品定义为"客户需求复杂、产品组成复杂、产品技术复杂、制造流程复杂、制造管理复杂的一类产品",如航天器、飞机、汽车、船舶、复杂机电产品等。复杂产品的总体方案论证和创新设计过程涉及到多种学科技术,需要多学科工程师灵活创新的协同工作,解决多学科应用集成和多学科优化问题,完成对不同方案的快速设计和比对分析,最终形成设计结果。
复杂产品创新协同设计是一个多方案尝试和多轮次迭代的过程,复杂产品的协同设计过程存在如下问题:
(1)复杂产品创新协同设计是多任务并行开展、紧密配合并反复迭代的过程,难以用固定流程描述,利用传统的工作流方式管理设计过程,容易造成大量任务处于挂起状态,协同效率低。
(2)多专业并行工作时,会产生多版本的各专业数据,数据模型的统一性和结果的匹配性无法保证。
技术实现要素:
本申请提供了一种基于数据驱动的复杂产品协同设计管理方法和系统。
根据本申请实施例的第一个方面,提供了一种基于数据驱动的复杂产品协同设计管理方法,该系统包括:
基于预先构建的复杂产品协同设计数据模型,对设计数据之间的制约和影响进行描述;
基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯;
利用根据数据之间的依赖关系构建的任务之间的制约关系模型,对任务进行管理。
在一种优选地实施例中,所述复杂产品协同设计数据模型的构建步骤包括:
获取复杂产品协同设计过程中产生的数据;
根据数据的组织形式中包含的树状的数据分类和网状的数据关联,建立数据之间的网状关联;
根据数据的组织方式,以树状形式组织产品数据,将数据挂接在产品结构上。
在一种优选地实施例中,所述网状关联包括:数据依赖关系和数据继承关系。
在一种优选地实施例中,所述基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯的步骤包括:
阶段性完成某项任务,则数据在某一时间会形成一个数据版本;每次提交时,均形成不同的版本,且版本之间具有数据继承关系;优选地,可设定磨一版本为主版本;
在某一历史版本上新开展工作时,利用不同的分支标签来定义不同的分支管理的分叉;
在同一份文件或模型开展多个工作时,产生多个文件版本;在某一时间点,基于冲突检测算法,选择合并多个文件版本;
基于上述步骤展现版本的演进关系,以使数据形成过程跟踪和数据状态回溯。
在一种优选地实施例中,该方法的步骤还包括:
在某一工作版本上同时发布了多个版本的成果的情况下,当选择依赖文件开新分支时,所有文件之间的依赖构成一个依赖路径;
若依赖路径符合预设条件,则允许此新分支的创建;若不符合,则不允许创建此分支。
根据本申请实施例的第二个方面,提供了一种基于数据驱动的复杂产品协同设计管理系统,该系统包括:
关系描述单元,基于预先构建的复杂产品协同设计数据模型,对设计数据之间的制约和影响进行描述;
版本管理单元,基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯;
任务管理单元,利用根据数据之间的依赖关系构建的任务之间的制约关系模型,对任务进行管理。
在一种优选地实施例中,该系统还包括:
模型构建单元,用于构建复杂产品协同设计数据模型;所述模型构建单元具体执行如下步骤构建所述模型:
获取复杂产品协同设计过程中产生的数据;
根据数据的组织形式中包含的树状的数据分类和网状的数据关联,建立数据之间的网状关联;
根据数据的组织方式,以树状形式组织产品数据,将数据挂接在产品结构上。
在一种优选地实施例中,述网状关联包括:数据依赖关系和数据继承关系。
在一种优选地实施例中,所述版本管理单元具体执行如下步骤:
阶段性完成某项任务,则数据在某一时间会形成一个数据版本;每次提交时,均形成不同的版本,且版本之间具有数据继承关系;优选地,可设定磨一版本为主版本;
在某一历史版本上新开展工作时,利用不同的分支标签来定义不同的分支管理的分叉;
在同一份文件或模型开展多个工作时,产生多个文件版本;在某一时间点,基于冲突检测算法,选择合并多个文件版本;
基于上述步骤展现版本的演进关系,以使数据形成过程跟踪和数据状态回溯。
在一种优选地实施例中,所述任务管理单元具体执行如下步骤;
在某一工作版本上同时发布了多个版本的成果的情况下,当选择依赖文件开新分支时,所有文件之间的依赖构成一个依赖路径;
若依赖路径符合预设条件,则允许此新分支的创建;若不符合,则不允许创建此分支。
有益效果
本申请所述技术方案能够为任务管理和数据管理提供集成环境,驱动任务并行开展的同时,有效组织设计过程中的大量中间结果,提升数据可重用性,保障模型统一性、参数的一致性和结果的匹配性,提高多学科跨专业沟通效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出本方案所述任务管理和数据管理之间关联关系的示意图;
图2示出本方案所述数据组织方式的示意图;
图3示出本方案所述数据之间的关联关系的示意图;
图4示出本方案所述现有技术方案论证过程中版本问题的示意图;
图5示出本方案所述版本线性变化的示意图;
图6示出本方案所述版本分支的示意图;
图7示出本方案所述数据依赖关系的示意图;
图8示出本方案所述不允许的依赖方式的示意图;
图9示出本方案所述依赖文件更新的示意图;
图10示出本方案实施例所述设计任务模型的示意图;
图11示出本方案实施例所述任务上下游关系定义的示意图;
图12示出本方案实施例所述设计任务状态图的示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
现有技术中对于复杂产品创新协同设计方案存在很多种形式,例如以下几种:1)、采用基于模型的数据集成方法,针对设计与设计、设计与制造、制造与制造的协同开展基于统一数据源的数据集成;2)、基于数据订阅/发布的复杂产品任务协同;3)、复杂产品数值计算过程中的数据管理手段。经过对现有技术的研究和分析,这些方案忽视了复杂产品任务及数据间复杂的依赖和制约关系,不适合多学科耦合任务的管理与数据管理场景。因此,本方案意在提供一种基于数据驱动的复杂产品协同设计管理方案,本方案能够管控大量并行设计数据的版本变化,辅助工程师高效完成设计任务,并实现结果清晰可追溯。本方案的总体思路包括:
(1)建立复杂产品协同设计数据模型,模型基于产品结构,描述设计数据间的制约和影响关系。
(2)研究复杂产品过程数据版本管理方法,对数据的更新、传递进行记录,实现了数据形成过程跟踪与数据状态回溯。
(3)利用数据间的依赖关系,对任务间制约关系进行建模,实现基于数据驱动的任务管理过程。
(4)开发复杂产品任务数据协同系统,以某研究院所复杂产品方案论证为例进行了验证,结果表明本方法支持多专业快速工作,提升多学科协同设计质量与设计效率。
具体地,本方案提供了一种基于数据驱动的复杂产品协同设计管理方案,如图1所示,该方案中过程数据管理与任务数据管理过程是两个紧密关联的过程,利用数据模型里的数据组织关系,形成任务间的驱动和制约关系,构成任务过程模型,任务启动过程中,执行者获取最新数据,按照任务过程执行任务,并发布数据形成完整的协同设计数据版本,保证数据变化过程的清晰记录。本方案具体的实施过程如下:
1、复杂产品协同设计数据模型
复杂产品协同设计过程中产生的数据包括:结构化的指标数据、各种格式的文档数据、计算机辅助设计(cad)数据、计算机辅助工程数据和实物试验数据等等。数据描述的可以是功能、性能、制造、工艺、结构等信息。
数据的组织形式分为树状的数据分类和网状的数据关联两类。树状的数据分类确保数据能够存储在唯一的位置,并且被准确的索引;建立数据的网状关联,将设计数据间的制约和影响显性化,将使得数据能够被更快的追溯和应用。
数据组织方式如图2所示,产品结构树是复杂产品数据集的基本组织结构,贯穿研制全过程;从总体结构、分系统、装配件、组合件到零件,以树状形式组织产品数据,将数据挂接在产品结构上。另外,产品设计会有不同的阶段,比如需求->方案->详细,或者初样->试样->模样等多种划分方式。依靠“产品结构 所属阶段”的树状管理方式能够定位到节点上的具体数据。
网状关联会有多种关联方式,例如,(1)数据依赖关系,主要是指会被互相参考与影响的设计数据,如图3所示,例如系统的总体指标会对分系统的设备的设计造成影响,分系统间的设计也会互相影响。数据b依赖a记做:
datab∝dataa
(2)数据继承关系,也就是数据版本的变化关系,利用数据继承关系记录数据的变化过程,有助于多版本数据的清晰管理。
2、过程数据版本管理方法
对于常见的数据版本控制方法,例如软件配置管理,工程数据库和工程设计数据。这些版本控制模型随着时间推移实现同一对象的演化管理,但是,它们都不适合复杂工程设计项目中的数据管理,因为它们不能记录不同设计对象的依赖关系。如图4所示,例如以下场景:
在方案论证阶段,工程师a提出指标,由工程师b进行具体的模型计算。在复杂产品方案论证阶段,主要利用电话、邮件进行沟通,此时由于沟通不及时,往往会出现工程师a更改指标而工程师b没有及时查看,仍按照原先数值进行计算,导致模型与指标不统一。
本方案将借鉴软件工程里的版本管理方式进行数据管理。git是目前最成熟的分布式代码管理系统,将在git理念基础上,针对复杂产品研制需求,形成多专业版本控制方法。
工程师阶段性完成某项任务,则数据在某一时间会形成一个数据版本。
一次版本提交信息包括了提交的作者,提交时间等,提交的版本信息包括了提交的文件信息,将存储每一个文件的二进制编码的哈希值,以便数据存储发生问题后及时发现,这次提交的版本分别包含了指标,一份试验结果,以及一份模型文件。
如图5所示,每次的提交将形成不同的版本,版本间有着数据继承关系,工程师也可以给版本加上标签,确定某个版本为主版本。
如图6所示,当工程师需要在某一历史版本上新开展工作,在需要不同分支管理不同类型,不同功能的设计结果时,版本会发生分叉,工程师可以用不同的分支标签来定义不同的分叉。
当不同的工程师针对同一份文件或模型开展工作时也会发生分叉,双方需保持着自己的文件版本,在某一时间点选择合并文件版本。
不同的分叉版本能够进行合并,对于指标或者文本文件,合并过程可以使用智能化的冲突检测算法,检测文本差异并帮助进行合并。本文使用gitdiff算法进行冲突检测与合并。
3、数据之间的依赖关系描述
除了版本的演进关系,当多工程师并行工作时版本管理过程也需要描述数据依赖关系。如图7所示,工程师c在工程师a的a2版本上开展自己的工作,发布了三个版本的成果c。
当选择依赖文件开新分支时,所有文件之间的依赖还构成一个依赖路径,只有依赖路径符合一定条件,才允许此新分支的创建。如图8所示,c1如果依赖a2和b1,而b1是依赖a3的,系统就会提示,不允许创建此分支。
如图9所示,判断路径的过程如下:
1)针对依赖路径,进行深度优先遍历,遍历出所有被依赖的节点集合,图例中是{b2,a3,a2}。
2)遍历节点集合,如果节点中有同样文件的不同版本,此依赖路径不合法,不允许创建该分支;如果集合中的节点全分属不同文件,那此次创建合法。
当某个人发现依赖数据变化,它也可以选择在新产生的依赖数据上继续开展工作。
下面通过实例对本方案做进一步说明。
本实施例提供了一种一种基于数据驱动的复杂产品协同设计管理方案,该方案在复杂产品协同设计过程中,研发管理人员首先进行任务分配与下发,工程师接受任务消息后,完成任务的执行与反馈,在任务执行过程中,使用各类软件进行计算分析,提交产生的阶段性成果,数据统一纳入研发过程数据管理系统中管理,工程师能够查看与本人相关的数据变动情况。
在多学科协同设计过程中,仅利用固定流程,很难描述完整的过程逻辑,本实施例中将基于idf0(icamdefinitionforfunctionmodeling)方法,利用数据间的依赖关系,形成任务间的上下游关系,实现基于数据驱动的任务管理。
如图10所示,idef0的基本组件由任务和连接活动的边构成,连接活动的边分别输入(input)、控制(control)、输出(output)与机制(mechanism)。
在进行任务过程建模时,将复杂产品设计过程分解成设计任务,并明确每个任务的输入输出关系。设计任务task用五元组<i,c,o,m,stask>表示。i,c,o,m分别代表输入,控制,输出与机制。s代表任务状态。输入输出需满足关系如下:
数据间的依赖关系需要在设计任务中体现,如下图所示,当某个数据b依赖于其他数据c时,产出该数据b的任务的输入也应包括数据c。另有一类特殊情况是,两个任务同时更改同一数据c,此时两个任务的输入和输出数据均包括数据c。
如图11所示,输入分成两类,一类是必要性输入,一类是参考性输入。必要性输入是上游任务产生的,本任务激活的充分条件;参考性输入是其他任务产生的,对本任务会造成影响的输入数据。
在设计活动图上,箭头代表着数据约束,而不代表流或顺序。设计任务状态包括有“未激活”,“已激活”,“已完成”三类。未激活代表该任务执行条件未满足,无法启动;“已激活”代表该任务能够被执行;已完成代表任务被完成,数据已经被提交。各状态间的转移过程如下:
(1)“未激活”->“已激活”:当任务的控制条件和机制提交均被满足,所有的必要性输入数据也准备好时,上游工程师将数据提交,系统通过查看数据依赖关系,通知下游工程师开展工作,设计任务被激活,工程师能够执行该任务。
(2)“已激活”->“已完成”:工程师设计完毕后,提交所有的输出数据,标记数据间的依赖关系和版本集成关系。
(3)“已完成”->“已激活”:当上游数据发生变动后,工程师能够再次激活已完成任务,指定此次任务输出数据的新依赖关系,开展设计工作。
如图12所示,a,b任务均已完成,用虚线代表非必要输入,b完成后的非必要输入给a进行参考,a的输入更新,进入已激活状态,可以更新输出。
当两个任务同时更改一个数据时,其中一个任务更改该数据后,另一任务将被激活,确认该更改后,两个任务均进入完成状态。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。
1.一种基于数据驱动的复杂产品协同设计管理方法,其特征在于,该方法的步骤包括:
基于预先构建的复杂产品协同设计数据模型,对设计数据之间的制约和影响进行描述;
基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯;
利用根据数据之间的依赖关系构建的任务之间的制约关系模型,对任务进行管理。
2.根据权利要求1所述的复杂产品协同设计管理方法,其特征在于,所述复杂产品协同设计数据模型的构建步骤包括:
获取复杂产品协同设计过程中产生的数据;
根据数据的组织形式中包含的树状的数据分类和网状的数据关联,建立数据之间的网状关联;
根据数据的组织方式,以树状形式组织产品数据,将数据挂接在产品结构上。
3.根据权利要求2所述的复杂产品协同设计管理方法,其特征在于,所述网状关联包括:数据依赖关系和数据继承关系。
4.根据权利要求1所述的复杂产品协同设计管理方法,其特征在于,所述基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯的步骤包括:
阶段性完成某项任务,则数据在某一时间会形成一个数据版本;每次提交时,均形成不同的版本,且版本之间具有数据继承关系;优选地,可设定磨一版本为主版本;
在某一历史版本上新开展工作时,利用不同的分支标签来定义不同的分支管理的分叉;
在同一份文件或模型开展多个工作时,产生多个文件版本;在某一时间点,基于冲突检测算法,选择合并多个文件版本;
基于上述步骤展现版本的演进关系,以使数据形成过程跟踪和数据状态回溯。
5.根据权利要求1所述的复杂产品协同设计管理方法,其特征在于,该方法的步骤还包括:
在某一工作版本上同时发布了多个版本的成果的情况下,当选择依赖文件开新分支时,所有文件之间的依赖构成一个依赖路径;
若依赖路径符合预设条件,则允许此新分支的创建;若不符合,则不允许创建此分支。
6.一种基于数据驱动的复杂产品协同设计管理系统,其特征在于,该系统包括:
关系描述单元,基于预先构建的复杂产品协同设计数据模型,对设计数据之间的制约和影响进行描述;
版本管理单元,基于版本管理方式,对数据的更新和传递进行管理,以使数据形成过程跟踪和数据状态回溯;
任务管理单元,利用根据数据之间的依赖关系构建的任务之间的制约关系模型,对任务进行管理。
7.根据权利要求6所述的复杂产品协同设计管理系统,其特征在于,该系统还包括:
模型构建单元,用于构建复杂产品协同设计数据模型;所述模型构建单元具体执行如下步骤构建所述模型:
获取复杂产品协同设计过程中产生的数据;
根据数据的组织形式中包含的树状的数据分类和网状的数据关联,建立数据之间的网状关联;
根据数据的组织方式,以树状形式组织产品数据,将数据挂接在产品结构上。
8.根据权利要求7所述的复杂产品协同设计管理系统,其特征在于,述网状关联包括:数据依赖关系和数据继承关系。
9.根据权利要求6所述的复杂产品协同设计管理系统,其特征在于,所述版本管理单元具体执行如下步骤:
阶段性完成某项任务,则数据在某一时间会形成一个数据版本;每次提交时,均形成不同的版本,且版本之间具有数据继承关系;优选地,可设定磨一版本为主版本;
在某一历史版本上新开展工作时,利用不同的分支标签来定义不同的分支管理的分叉;
在同一份文件或模型开展多个工作时,产生多个文件版本;在某一时间点,基于冲突检测算法,选择合并多个文件版本;
基于上述步骤展现版本的演进关系,以使数据形成过程跟踪和数据状态回溯。
10.根据权利要求6所述的复杂产品协同设计管理系统,其特征在于,所述任务管理单元具体执行如下步骤;
在某一工作版本上同时发布了多个版本的成果的情况下,当选择依赖文件开新分支时,所有文件之间的依赖构成一个依赖路径;
若依赖路径符合预设条件,则允许此新分支的创建;若不符合,则不允许创建此分支。
技术总结