首页> 中国专利> 根据材料属性的自定义元胞晶格核的计算机辅助设计

根据材料属性的自定义元胞晶格核的计算机辅助设计

摘要

本发明公开了用于生成元胞晶格核的方法和系统,其通过用于几何形状和拓扑结构的高度特定针对属性的多个目标,而不是依赖于预定核库的现有技术方法来优化。使用虚拟核特征的表征,可以使用来自虚拟核的近似来预测块体材料属性,而不必仅依赖于晶格结构的实验有限元模拟。

著录项

说明书

技术领域

本申请涉及计算机辅助设计。更具体地,本申请涉及针对几何形状和拓扑结构优化设计自定义元胞材料。

关于联邦政府赞助研究或开发的声明

本发明在政府的支持下完成并被美国国防部高级研究计划局(DARPA)授予政府优质奖序号:HR0011-17-2-0015。政府对本发明拥有一定权利。

背景技术

元胞晶格材料是一类有吸引力的材料,其例如通过增材制造工艺促进超轻固体部件的构造。除了大大减少材料的使用和重量,元胞晶格还具有可调的优点,因为它们的形状与其内部结构无关。通常根据给定的一组材料属性来设计元胞晶格结构。

在元胞晶格的计算机辅助设计过程中,核是定义其拓扑结构的晶格的基本单位。可以生成虚拟晶格,该虚拟晶格由以一致的方式在空间中镶嵌的核的许多实例组成。

工程晶格材料的当前实践涉及从预定义的晶格核的小型库中选择一个核,同时专注于优化几何参数(例如,桁架直径和节点位置)而不是拓扑。已经开发了一些有限范围的拓扑优化,但是不能提供根据期望的材料属性自定义的晶格核。

发明内容

本发明公开了用于计算机辅助设计元胞晶格核的方法和系统,元胞晶格核通过针对几何形状和拓扑的高度特定目标属性的多目标,而不是依赖于预定义核库的现有技术方法来优化。在一方面,用于生成自定义的元胞晶格核的计算机辅助设计系统包括其上存储有多个应用模块的存储器,以及用于执行应用模块的处理器。这些模块包括基因组引擎,该引擎定义由在几何方向上互连的并具有拓扑结构的节点和杆组成的核空间体积单元的特征的基因组。该基因组由二进制代码表示,并且被配置为定义初始基因组序列。基因组引擎包括转化模块,该转化模块从基因组生成核候选,该核候选包括根据对激活的基因组特征的布尔转化的特征。从相应的新基因组序列生成多个新的核候选,在新的核生成迭代中生成每个新的核候选。这些模块还包括预测引擎,该预测引擎针对每个核候选运行基于机器学习的预测模型,以针对每个核候选的未构造晶格产生晶格结构属性的近似预测。预测引擎包括表征模块,该表征模块生成每个核候选的表征,作为每个核候选的几何和拓扑测量的唯一定量描述,其中晶格结构属性的近似预测是表征的函数。这些模块还包括具有评估模块的适应度评估器,评估模块基于目标属性值与预测属性值之间的差来生成预测模型的评估得分,其中通过关于与先前核生成迭代的核候选相关联的评估得分将该评估得分进行排序来评估每个核候选的适应度。

附图说明

当结合附图阅读时,从以下详细描述中可以最好地理解本发明的前述和其它方面。为了说明本发明,在附图中示出目前优选的实施例,然而应当理解,本发明不限于所公开的具体技术手段。附图中包括以下附图:

图1示出根据本公开实施例的计算机辅助设计系统的示例的流程图,该计算机辅助设计系统执行具有目标材料属性的自定义元胞晶格核生成;

图2示出根据本公开实施例的基因组到核的转化的示例;

图3示出根据本公开实施例的用于预测晶格实例的块体材料属性的表征的定量测量的示例集合;

图4示出根据本公开实施例的模拟晶格结构构造和测试的示例;以及

图5示出可以在其中实现本公开实施例的计算环境的示例。

具体实施方式

公开了使用基因组引擎、预测引擎、晶格模拟器和适应度评估器通过迭代过程来生成模拟元胞晶格的虚拟核的方法和系统,以预测核是否能够构造具有目标材料属性(例如,比刚度和泊松比)的模拟晶格。迭代过程为核(即,提供连续更好的目标属性近似的核)逐步找到更合适的候选。不同于从预定义核的小型库中提取的常规核生成模拟器,本发明公开的过程部署由核空间的超过100个特征定义的基因组,这些特征在每次迭代中被杂交和突变以生成子(后代)核候选。目标属性的预测引擎近似允许通过绕过初始迭代之后的每次迭代的全尺寸晶格模拟,从而更快地收敛到优化的核。

图1示出根据本公开实施例的计算机辅助设计系统的示例的流程图,该计算机辅助设计系统执行具有目标材料属性的自定义元胞晶格核生成。自定义核生成过程由计算机辅助设计系统100执行,该系统包括基因组引擎111、预测引擎121、晶格模拟引擎131和适应度评估器141。

基因组是用于构造虚拟晶格核的一组规定的独立特征。当设计核时,任务可能是找到用于构造具有由目标属性所描述的材料属性的晶格的基因组。基因组引擎111定义基因组{G}的初始基因组序列G_1,该基因组被定义为一组独立的基本特征f,其中特征f是原始晶格单元的几何或拓扑元素:

{G}={f1、f2、f3、f4...、fn}

初始基因组序列可以通过随机产生而获得,或者使用本发明所描述的方法从先前产生的基因组的库中选择。基因组引擎111包括转化模块101,该转化模块被配置为根据基因组生成一组核候选,每个核候选包括根据对激活的基因组特征的布尔转化的特征。例如,布尔真值(fn=1)将转化为核的激活特征。

图2示出根据本公开实施例的基因组到核的转化的示例。在实施例中,每个基因组序列(G_1、G_2、...G_N)是二进制代码,其中每个代码元素表示候选核(K_1、K_2、K_3...K_N)中的基因组特征的激活或去激活。在多次迭代的过程中,基因组{G}进化为收敛于满足目标材料属性的一组特征fn。核{K}的特征是基因组{G}的转化,该基因组被定义为核空间体积单元201(例如模拟晶格的元胞单元)内的候选特征202的连接节点元素。为了提高效率,每个特征fn仅表示由[1

K(G)={f∈G}

预测引擎121接收当前的核候选(例如,K_1)并且表征模块102为核候选生成表征{X},该表征是核候选的几何和拓扑测量的唯一定量描述。这些测量用于降低预测任务的复杂性,因为不同的核可以产生相同的晶格配置。

图3示出根据本公开实施例用于预测晶格实例的块体材料属性的表征的定量测量的示例集合。表征{X}可以包括几何测量集合,其可以基于球谐函数301,该球谐函数是描述相邻节点之间的角度依存性的键级的基函数。球谐函数301可被用于量化晶格实例中每个杆的对称性和相对取向,其本质上与体晶格属性相关联。表征{X}可以包括可与一组定义的子图302一致的多组拓扑测量。通过计数在晶格核的图形表示中引起的每个子图302的出现次数来获得拓扑描述。表征{X}可以是几何和拓扑测量的直方图,其为比较核的属性提供基础。

对于过程100的至少第一次迭代,晶格模拟引擎131使用构造模块104根据已知的模拟算法使用核候选{K}生成模拟晶格结构L。在核生成过程的后续迭代中,如果预测引擎121执行可靠性测试103,其中近似值M{X}具有大于阈值的可靠性得分,则可以绕过晶格模拟引擎131。在晶格构造之后,测试模块105模拟晶格结构L上的应力,以便预测候选核的晶格配置的属性。预测的属性矢量{P}={p

图4示出根据本公开实施例的模拟晶格结构构造和测试的示例。在晶格结构410上模拟垂直应力负载401。测试模块105包括对结构执行分析以预测块体材料属性的算法。虽然具有晶格结构的物体或部件的增材制造通常涉及一种或两种材料的印刷或挤压,但是即使一种材料也可以产生通过应用生产的物体或部件所需的许多不同的体特性。可以根据一个或多个定义的测试协议(例如,用于计算变形)通过标准有限元模拟晶格上的应力来执行测试。在图4所示的示例中,以泊松比值0.103(即,p(q,r)=(v,0.103))得出计算值422。通过测试模块105可以施加各种其它形式的应力负载,以计算附加的属性键值对。

返回图1,预测引擎121被配置为操作候选核的基于机器学习的预测模型M{X},其基于表征{X}提供晶格属性的近似。预测模型M{X}输出可以与针对较小有限尺寸定义作为大规模全尺寸晶格的近似的晶格实例(例如,具有少于五个核的维度,或者3x3x3核的晶格实例)有关。如果在103根据可靠性得分阈值,近似是可靠的(例如,在核生成过程100的一次或多次迭代之后),则由模型M{X}预测模块107生成晶格材料属性的近似预测

在106,通过先前晶格模拟的属性预测{P}向量来训练预测模型M{X},并且跟踪预测模型M{X}的可靠性得分RS,随着在核生成迭代的过程中执行晶格模拟的更多迭代,可靠性得分会提高。如果根据在可靠性测试103中低于阈值的当前可靠性得分RS,预测模型M{X}不可靠,则将候选核被发送到晶格模拟引擎131,用于基于如上所描述的晶格模拟得出基于模拟的属性预测{P}。在预测模型M{X}未通过可靠性测试103的条件下,该属性预测{P}可以用于在106处训练预测模型M{X}。在晶格模拟的一个或多个迭代以及预测模型M{X}在一个或多个相应的自定义核候选生成迭代上的训练之后,预测模型M{X}的可靠性提高到足以使用近似的属性预测

适应度评估器141包括评估模块108,用于基于目标属性{T}的值与预测属性{P}或近似预测

在109处评估得分满足令人满意的阈值的条件下(即,当某个晶格实例的预测属性{P}或近似预测属性

图5示出可以在其中实现本公开的实施例的计算环境的示例。计算环境500包括计算机系统510,计算机系统可以包括通信机制,诸如系统总线521或用于在计算机系统510内传递信息的其它通信机制。计算机系统510还包括与系统总线521耦合的一个或多个处理器520,用于处理信息。在实施例中,计算环境500对应于CAD系统,其中计算机系统510涉及下面更详细描述的计算机。

处理器520可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或本领域已知的任何其它处理器。更一般地,本发明描述的处理器是用于执行存储在计算机可读介质上的机器可读指令的设备,用于执行任务,并且可以包括硬件和固件中的任何一个或其组合。处理器还可以包括存储可执行用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转化或传输由可执行程序或信息设备使用的信息,和/或通过将信息路由到输出设备,从而对信息起作用。例如,处理器可以使用或包括计算机、控制器或微处理器的能力,并且可以使用可执行指令进行调节,以执行通用计算机不执行的专用功能。处理器可以包括任何类型的合适的处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(RISC)微处理器、复杂指令集计算机(CISC)微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、数字信号处理器(DSP)等。此外,(一个或多个)处理器520可以具有任何合适的微体系结构设计,其包括任何数量的组成部件,例如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓存存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微体系结构设计可以能够支持多种指令集中的任何一种。处理器可以与能够在其间进行交互和/或通信的任何其它处理器耦合(电耦合和/或包括可执行部件)。用户界面处理器或生成器是包括电子电路或软件或两者的组合的已知元件,用于生成显示图像或其部分。用户界面包括一个或多个显示图像,该显示图像使得用户能够与处理器或其它设备进行交互。

系统总线521可以包括系统总线、存储器总线、地址总线或消息总线中的至少一个,并且可以允许在计算机系统510的各个部件之间交换信息(例如,数据(包括计算机可执行代码)、信令等)。系统总线521可以包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线521可以与任何合适的总线架构相关联,包括但不限于工业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)架构、加速图形端口(AGP)架构、外围组件互连(PCI)架构、PCI-Express架构、个人计算机存储卡国际协会(PCMCIA)架构、通用串行总线(USB)架构等。

继续参考图5,计算机系统510还可以包括耦合到系统总线521的系统存储器530,用于存储由处理器520执行的信息和指令。系统存储器530可以包括易失性和/或非易失性存储器形式的计算机可读存储介质,例如只读存储器(ROM)531和/或随机存取存储器(RAM)532。RAM 532可以包括(一个或多个)其它动态存储设备(例如,动态RAM、静态RAM和同步DRAM)。ROM 531可以包括(一个或多个)其它静态存储设备(例如,可编程ROM、可擦除PROM和电可擦除PROM)。另外,系统存储器530可被用于在处理器520执行指令期间存储临时变量或其它中间信息。基本输入/输出系统533(BIOS)包括诸如在启动期间有助于在计算机系统510内的元件之间传递信息的基本例程,可以存储在ROM 531中。RAM 532可以包括处理器520可以立即访问和/或当前正在操作的数据和/或程序模块。系统存储器530可以另外包括例如操作系统534、应用模块535和其它程序模块536。应用模块535可以包括针对图1描述的前述模块,并且还可以包括用于开发应用程序的用户门户,允许键入输入参数并根据需要进行修改。

操作系统534可被加载到存储器530中,并且可以提供在计算机系统510上执行的其它应用软件与计算机系统510的硬件资源之间的接口。更具体地,操作系统534可以包括一组计算机可执行指令,用于管理计算机系统510的硬件资源,并用于向其它应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)。在某些示例性实施例中,操作系统534可以控制被描述为存储在数据存储器540中的一个或多个程序模块的执行。操作系统534可以包括现在已知或将来可能开发的任何操作系统,包括但不限于任何服务器操作系统、任何大型机操作系统或任何其它专有或非专有操作系统。

计算机系统510还可以包括耦合到系统总线521的磁盘/介质控制器543,以控制用于存储信息和指令的一个或多个存储设备,例如磁性硬盘541和/或可移动介质驱动器542(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。可以使用适当的设备接口(例如,小型计算机系统接口(SCSI)、集成设备电子设备(IDE)、通用串行总线(USB)或FireWire)将存储设备540添加到计算机系统510。存储设备541、542可以在计算机系统510的外部。

计算机系统510可以包括用户输入界面或图形用户界面(GUI)561,其可以包括一个或多个输入设备,例如键盘、触摸屏、平板电脑和/或定点设备,以与计算机用户交互并向处理器520提供信息。

响应于处理器520执行包含在诸如系统存储器530之类的存储器中的一个或多个指令的一个或多个序列,计算机系统510可以执行本发明实施例的部分或全部处理步骤。此类指令可以从存储设备540的另一计算机可读介质(例如,磁性硬盘541或可移动介质驱动器542)读入系统存储器530中。磁性硬盘541和/或可移动介质驱动器542可以包含由本公开的实施例使用的一个或多个数据存储和数据文件。数据存储540可以包括但不限于数据库(例如,关系数据库、面向对象数据库等)、文件系统、平面文件、其中数据存储在计算机网络的一个以上节点上的分布式数据存储、对等网络数据存储等。数据存储内容和数据文件可以加密以提高安全性。还可以在多处理布置中采用处理器520,以执行包含在系统存储器530中的一个或多个指令序列。在替代实施例中,可以使用硬连线电路来代替软件指令或者与软件指令相结合。因此,实施例不限于硬件电路和软件的任何特定组合。

如上所述,计算机系统510可以包括至少一个计算机可读介质或存储器,用于保存根据本发明实施例的编程的指令,并且用于包含数据结构、表格、记录或本发明描述的其它数据。本发明使用的术语“计算机可读介质”是指参与向处理器520提供指令以供执行的任何介质。计算机可读介质可以采取许多形式,包括但不限于非暂时性、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,例如磁性硬盘541或可移动介质驱动器542。易失性介质的非限制性示例包括动态存储器,例如系统存储器530。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括组成系统总线521的电线。传输介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的那些。

用于执行本公开的操作的计算机可读介质指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言例如Smalltalk、C++等,以及传统的过程编程语言例如“C”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上,作为独立的软件包执行,部分在用户的计算机上、部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路,以执行计算机可读程序指令,以便执行本公开的各方面。

在此参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图,描述本公开的各方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以通过计算机可读介质指令来实现。

计算环境500可以进一步包括计算机系统510,该计算机系统使用到一个或多个远程计算机(诸如,远程计算设备580和远程代理581)的逻辑连接在网络环境中操作。网络接口570可以实现例如经由网络571与其它远程设备580或系统和/或存储设备541、542的通信。远程计算设备580可以是个人计算机(膝上型或台式)、移动设备、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上相对于计算机系统510描述的许多或所有元件。当在网络环境中使用时,计算机系统510可以包括调制解调器572,用于通过诸如因特网之类的网络571建立通信。调制解调器572可以经由用户网络接口570或经由另一种适当的机制连接到系统总线521。

网络571可以是本领域公知的任何网络或系统,包括因特网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、直接连接或一系列连接、蜂窝电话网络或能够促进计算机系统510与其它计算机(例如,远程计算设备580)之间的通信的任何其它网络或介质。网络571可以是有线的、无线的或其组合。有线连接可以使用以太网、通用串行总线(USB)、RJ-6或本领域公知的任何其它有线连接来实现。无线连接可以使用Wi-Fi、WiMAX和蓝牙、红外、蜂窝网络、卫星或本领域公知的任何其它无线连接方法来实现。此外,几个网络可以单独工作或彼此通信,以促进网络571中的通信。

应当理解,图5中被描述为存储在系统存储器530中的程序模块、应用、计算机可执行指令、代码等仅是说明性的,而不是穷举性的,并且被描述为由任何特定模块支持的处理可以替代地分布在多个模块中,或者由不同的模块执行。另外,可以提供(一个或多个)各种程序模块、(一个或多个)脚本、(一个或多个)插件、(一个或多个)应用程序接口(API)、或本地托管在计算机系统510、远程设备580上和/或托管在可通过一个或多个网络571访问的(一个或多个)其它计算设备上的任何其它合适的计算机可执行代码,以支持由图5所示的程序模块、应用或计算机可执行代码提供的功能和/或附加或替代功能。此外,功能可以被不同地模块化,使得被描述为由图5所示的程序模块集合共同支持的处理可以由更少或更多数量的模块来执行,或者被描述为由任何特定模块支持的功能可以至少部分地由另一模块来支持。此外,支持本发明描述的功能的程序模块可以根据任何合适的计算模型(例如,客户端-服务器模型、对等模型等),形成可在任何数量的系统或设备上执行的一个或多个应用的一部分。另外,被描述为由图5所示的任何程序模块支持的任何功能可以至少部分地在任何数量的设备上的硬件和/或固件中实现。

还应当理解,在不脱离本公开的范围的情况下,计算机系统510可以包括除了所描述或描绘的那些之外的替代和/或附加的硬件、软件或固件部件。更具体地,应当理解,被描绘为形成计算机系统510的一部分的软件、固件或硬件部件仅是说明性的,并且在各种实施例中可以不存在一些部件或者可以提供附加部件。虽然各种说明性程序模块已经被描绘和描述为存储在系统存储器530中的软件模块,但是应当理解,被描述为由程序模块支持的功能可以由硬件、软件和/或固件的任何组合来实现。还应当理解,在各种实施例中,上述模块中的每个可以表示支持的功能的逻辑分区。该逻辑分区是为了便于解释功能而描述的,并且可能不代表用于实现该功能的软件、硬件和/或固件的结构。因此,应当理解,在各种实施例中,被描述为由特定模块提供的功能可以至少部分地由一个或多个其它模块提供。此外,在某些实施例中可能不存在一个或多个所描绘的模块,而在其它实施例中,未描绘的附加模块可能存在,并且可以支持所描述的功能和/或附加功能的至少一部分。此外,虽然某些模块可以被描绘和描述为另一模块的子模块,但是在某些实施例中,可以将这些模块可以提供为独立的模块或者其它模块的子模块。

虽然已经描述了本公开的特定实施例,但是本领域的普通技术人员将认识到许多其它修改和替代实施例都在本公开的范围内。例如,关于特定设备或部件描述的任何功能或处理能力可以由任何其它设备或部件执行。此外,虽然已经根据本公开的实施例描述了各种示例性实现方式和架构,但是本领域普通技术人员将理解,对本发明描述的示例性实现方式和架构的许多其它修改也在本公开的范围内。另外,在此被描述为基于另一操作、元素、部件、数据等的任何操作、元素、部件、数据等可以另外基于一个或多个其它操作、元素、部件、数据等。因此,短语“基于”或其变体应被解释为“至少部分基于”。

附图中的流程图和框图说明了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令。在一些可替换的实施方式中,框中标注的功能可以不按附图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。附图中的每个框和框的组合可以由基于专用硬件的系统来实现,该系统执行指定的功能或动作或者进行专用硬件和计算机指令的组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号