表示为程序代码的超材料的概率性设计的制作方法

文档序号:31754051发布日期:2022-10-11 23:36阅读:46来源:国知局
表示为程序代码的超材料的概率性设计的制作方法
表示为程序代码的超材料的概率性设计


背景技术:

1.计算机系统可用于创建、使用和管理用于产品和其它物品的数据。计算机系统的示例包括计算机辅助设计(computer-aided design,cad)系统(其可以包括计算机辅助工程(computer-aided engineering,cae)系统)、计算机辅助制造(computer-aided manufacturing,cam)系统、可视化系统、产品数据管理(product data management,pdm)系统、产品生命周期管理(product lifecycle management,plm)系统等。这些系统可以包括有助于产品结构和产品制造的设计和模拟测试的部件。
附图说明
2.在以下详细描述中并参考附图来描述某些示例。
3.图1示出了支持表示为程序代码的超材料的概率性设计的计算系统的示例。
4.图2示出了用于三维(3d)对象的程序代码的示例,所述程序代码包括代码参数,所述代码参数具有被分配为概率分布的值。
5.图3示出了对3d对象的程序代码的示例性分析,所述程序代码包括代码参数,所述代码参数具有被分配为概率分布的值。
6.图4示出了系统可以实施以支持用于以程序代码进行超材料表示的概率性设计的逻辑示例。
7.图5示出了支持表示为程序代码的超材料的概率性设计的计算系统的示例。
具体实施方式
8.随着增材制造(也称为3d打印)、拓扑优化和其它3d技术变得越来越可行,具有几何上复杂的内部和外部结构的3d零件的设计和制造也变得越来越可行。例如,3d零件的复杂的和优化的内部几何形状可以被设计为超材料。如本文所使用的,超材料可指3d对象的内部几何组成,并且在一些实例中,超材料可被配置为一个或多个实体和空虚区域的复杂的相互缠结。超材料可以包括被设计有非天然存在特性的任何工程化材料或复合材料。在一些情况下,超材料可以全部或部分地被实体材料层或其它对象边界包围。超材料和其它复杂的3d几何形状,当通过边界表示或其它基于cad的显式几何形状(例如,网格面或表面网格)进行几何建模时,可能需要数百万个(或更多)几何元素的组合,并且包括相当大的几何复杂性(例如,高亏格(genus)、高度弯曲的、可变的和不规则的)。因此,超材料可能不是特别地适于由标准cad几何范式的表示,而是非常适于通过编程式设计技术来表示为程序代码。
9.3d几何形状(包括超材料几何形状)的编程表示或编程式设计表示可以指任何使用计算机编程语言来表示对象几何形状,例如,与诸如边界表示(b-rep)、表面网格等的显式几何cad表示相反。因此,可以通过使用计算机程序经由诸如python、c++、c#、java、任何域特定语言(dsl)或用于表示超材料或其它3d对象几何形状的任何其它类型的程序代码的编程语言,通过代码变量和参数、函数、数据结构、循环、运算符和其它编程隐喻(metaphor)
来实施以程序代码进行的超材料表示。由于超材料特性和设计可以包括具有精确间隔和形状的重复结构化元素(例如,栅格或晶格、重复图案等),因此编程式设计可以提供有效和灵活的机制来产生超材料设计,以用于随后的经由3d打印进行的物理制造。
10.当经由增材制造来物理地制造超材料(和任何其它3d几何形状)时,3d零件的制造出的尺寸可能不同于在3d零件的设计阶段期间配置的指定尺寸。这种不一致性通常是由于在制造过程中使用的机器和设备(例如给定的熔融沉积模型(fused-deposition modeling,fdm)打印机,定向能量沉积系统或用于制造3d零件的其它3d打印设备)以及部件的对应内部超材料几何结构中的变化的公差引起的。概率性工程技术可提供将尺寸和值表示为统计分布而不是静态值的能力,并因此可支持通过3d分析流水线传播潜在的零件差异。然而,概率性工程通常被限制用于分析几何化身的3d设计。也就是说,概率性设计被限于分析处于其生成状态的3d设计,例如作为3d表面网格或b-rep,并且因此在基于概率性分析的重新设计方面成本高、耗时且效率低。
11.本文的公开内容可以提供用于表示为程序代码的超材料的概率性设计的系统、方法、设备和逻辑。如本文更详细描述的,包括指定为概率分布(例如,而不是静态值)的代码参数的超材料的编程式设计表示的组合可以支持新的、鲁棒的超材料的设计,尽管存在3d打印机的制造差异,但所述超材料的设计可以表现出所设计的特性,甚至是制造后的特性。通过将概率能力引入到程序代码本身中,本文描述的概率性超材料特征可以提高超材料的程序表示的效率和精确度,并且本文描述的特征可以提供一个框架,该框架增加了通过程序代码来设计独特、复杂和功能性材料和结构的灵活性、能力和效率。由于超材料特性的概率性表示可以在设计期间(例如,在超材料的设计期间经由程序代码)被指定,本文描述的特征可以经由程序代码通过减少昂贵的重新设计和/或提供与3d对象设计并行的附加分析能力来提高设计过程的效率。
12.本文更详细地描述了这些和其它概率性超材料特征和技术益处。
13.图1示出了支持表示为程序代码的超材料的概率性设计的计算系统100的示例。计算系统100可以采取单个或多个计算设备的形式,例如应用服务器、计算节点、台式或膝上型计算机、智能电话或其它移动设备、平板设备、嵌入式控制器等。
14.作为支持本文描述的概率性超材料特征的任何组合的示例性实施方式,图1所示的计算系统100包括超材料表示引擎110和超材料分析引擎112。计算系统100可以以各种方式实施引擎110和引擎112(包括其组件),例如实施为硬件和编程。针对引擎110和引擎112的编程可以采取存储在非暂时性机器可读存储介质上的处理器可执行指令的形式,而用于引擎110和引擎112的硬件可以包括执行这些指令的处理器。处理器可以采用单处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用相同的计算系统特征或硬件组件(例如,公共处理器或公共存储介质)来实施多个引擎。
15.在操作中,超材料表示引擎110可将超材料表示为程序代码,且超材料可以定义3d对象的内部几何形状并且被配置成经由增材制造而被物理地构造。在将超材料表示为程序代码时,超材料表示引擎110可以将超材料的代码参数的值分配为概率分布。在操作中,超材料分析引擎112可以通过为程序代码的代码参数的值分配的概率分布来分析超材料。
16.下面将更详细地描述这些和其它概率性超材料特征。本文所述的许多实例参考表示为程序代码的超材料来呈现。然而,本文描述的任何概率性超材料特征同样可以一致地
适用和实施用于任何3d对象几何形状的基于程序设计/代码的表示,所述3d对象几何形状例如为表面几何形状、微结构、重复的表面图案、复合3d对象等。
17.图2示出了用于3d对象的程序代码的示例,所述程序代码包括代码参数,所述代码参数具有被分配为概率分布的值。参考超材料表示引擎110来描述图2中所示的示例,所述超材料表示引擎110可以实施并提供任何数量的如本文所述的概率超材料设计能力。
18.特别地,超材料表示引擎110可以将3d对象、定义3d对象的内部(或其它)几何形状的超材料、或者这两者表示为程序代码,例如表示为python、java、c#、或者任何其它计算机编程语言的代码。在图2中,超材料表示引擎110经由程序代码210表示3d对象,该程序代码210可以包括编程地表示3d对象和对应的一种或多种超材料的多行代码。图2中的程序代码210表示3d对象220,该3d对象220包括经由蜂窝状超材料设计230形成的内部几何形状。蜂窝状超材料设计230可以包括共同形成3d对象220的内部结构的蜂窝形状的重复实例。所述重复实例可以是均匀的或不均匀的(例如,对于每个实例,跨越坐标空间逐渐增加5%)。
19.超材料表示引擎110可以支持表示3d对象220和蜂窝状超材料设计230(或任何附加的或替代的超材料)的各种形式的程序代码210。根据这些形式,可以以各种方式设计、配置和表示蜂窝状超材料设计230的特性。如本文所使用的,用于超材料的代码参数可以指表示或影响超材料特性的任何变量(无论是全局的还是局部的)、参数、函数输入、或程序代码的其它值。因此,可以在程序代码中设置代码参数以控制超材料特性,并且代码参数可以指定超材料内的顶点位置、超材料形状参数、超材料(或其部分)的材料厚度、超材料厚度或超材料图案实例的间隔、超材料边界、超材料空虚区域的范围、或超材料的任何其它特性。
20.作为用于基于程序代码的超材料表示和对应的代码参数的说明性示例,图2的程序代码210可以包括例如以python编程的honeycomb()函数,其基于作为输入提供给honeycomb()函数或以其它方式访问的指定代码参数将超材料插入到重复蜂窝图案的3d对象中。honeycomb()函数可以取第一自变量作为示例性函数输入,该第一自变量定义蜂窝状超材料设计230的垂直壁尺寸,如图2中的code_parameter1所示。超材料表示引擎110可以将包括code_parameter1的程序代码210的代码参数的值指定为概率分布。换句话说,不是将code_parameter1的值设置为静态值(例如,code_parameter1=100;),超材料表示引擎110可以将code_parameter1的值分配为概率分布,例如图2所示的概率分布240。
21.为了将代码参数值分配为概率分布,超材料表示引擎110可以利用概率分布函数。概率分布函数可以基于设计值(例如,对于蜂窝状超材料设计230的蜂窝状垂直壁尺寸为100微米)为代码参数提供基于函数的值谱。因此,对于可能针对3d对象的超材料特性设置、配置或期望的特定的设计值,超材料表示引擎110可以将设计值表示为反映设计值的制造条件、差异和公差的概率分布函数,而不是表示为设计值的静态值。本文考虑了超材料表示引擎110的概率分布函数的各种形式和实施方式。
22.在一些实施方式中,超材料表示引擎110通过将代码参数设置为通过概率分布函数定义的随机变量来将代码参数的值分配为概率函数。对于如图2所示的code_parameter1,超材料表示引擎110可以将honeycomb()函数的第一自变量设置为通过概率分布函数定义的随机变量,该概率分布函数将code_parameter1的值设置为概率分布240的分布曲线、值和概率,其因此可以考虑影响3d对象220的蜂窝状超材料设计230的垂直壁高度的制造出的值的制造差异。
23.针对程序代码210的code_parameter1的概率分布240可以考虑用来物理构造3d对象220的特定3d打印机的制造差异,包括可应用于蜂窝状超材料设计230的物理制造的差异。为了确定针对具有设计值的给定超材料特性而设置的适当概率分布,超材料表示引擎110可以访问用来物理构造3d对象220的特定3d打印机的采样数据。可以通过对由给定3d打印机打印的测试零件进行采样并对测试零件的差异进行评估,来确定、访问或生成这种识别给定3d打印机的制造差异或公差的采样数据。也就是说,由超材料表示引擎110分配来表示超材料特性的特定概率分布可以考虑特定3d打印机或制造过程的公差和差异,从而提供与可能由所设计的3d对象(例如,经由程序代码210)产生的所制造的物理零件相关的分布。
24.通过将程序代码的代码参数表示为概率分布而不是静态值,超材料表示引擎110可以支持3d对象以及通过编程式设计来设计的超材料中的概率性超材料设计。将编程式设计环境中的代码参数的值定义为概率分布而不是静态值可以在设计阶段期间提供概率性范式,而不是必须等待直到通过其他基于cad的设计流程完成3d对象设计之后。这样,超材料表示引擎110可以将超材料的代码参数的值分配为概率分布,而独立于将超材料或3d对象220进行任何化身成为3d边界表示或其它基于cad的几何表示(例如,无需在将超材料或3d对象220进行任何化身成为3d边界表示或其它基于cad的几何表示之前)。此外,本文所述的概率性超材料设计特征可支持直接对超材料设计的程序代码进行操作以并入并考虑制造差异和公差的分析过程。
25.图3示出了对3d对象的程序代码的示例性分析,所述程序代码包括代码参数,所述代码参数具有被分配为概率分布的值。参考超材料分析引擎112来描述图2中所示的示例,所述超材料分析引擎112可以实施并提供若干概率性超材料分析能力。
26.在图3所示的示例中,超材料分析引擎112分析如图2所示的程序代码210,该程序代码210可以包括表示为程序代码的蜂窝状超材料设计230,该程序代码包括表示为概率分布的代码参数。注意,超材料分析引擎112可以直接分析源代码(例如程序代码210),并且在设计后处理期间不需要等待3d对象的设计被化身为b-rep、表面网格或其它基于cad的几何表示。在这方面,超材料分析引擎112可以支持与开发程序代码210的3d对象设计阶段并发、并行或作为该3d对象设计阶段的组件的3d对象的概率分析。
27.超材料分析引擎112可通过经由程序代码210配置、设置、分配或以其它方式表示的概率分布(例如,作为考虑3d打印过程或设备的制造差异和公差的随机变量和/或概率分布函数)来分析程序代码210。在一些实施方式中,超材料分析引擎112可以对程序代码210的概率分布中的一些或全部进行采样,并生成表示所制造的3d对象的数字版本的一组虚拟3d对象。通过该代表性组,超材料分析引擎112可以确定故障率,例如,具有未通过质量测试或其它评估度量的超材料特性的虚拟的“所制造”的3d对象的百分比。作为用于程序代码210的分析过程的一部分,超材料分析引擎112可对概率分布240进行采样来获得蜂窝状超材料设计230的code_parameter1的不同值,以基于针对指定蜂窝状超材料设计230的垂直壁高度的code_parameter1采样得到的不同值来确定超材料的故障率。
28.在图3中,超材料分析引擎112生成基于3d对象的编程表示的概率分布计算的超材料故障率310的数据,作为分析输出。本文考虑了任何数量的附加的或可替代的分析输出,例如所制造的3d零件能力报告、分布报告、(例如,如根据任何数量或零件评估度量所测量的)成功率等。
29.作为另一分析示例,超材料分析引擎112可以提供智能分析能力,使得不需要穷举地执行对程序代码210中的概率分布的蛮力采样。在一些实施方式中,超材料分析引擎112可以通过分析针对程序代码210的概率分布的最坏情况或阈值情况场景,并且通过根据最坏情况的超材料特性(例如,基于具有最低概率的概率分布的代码参数值)或阈值情况场景(例如,基于完全满足超材料的评估标准的概率分布的代码参数,例如最小可允许的超材料厚度、最大可容许的间隔、或其它可配置的标准)评估概率分布,来分析程序代码210。在这种情况下,超材料分析引擎112可以沿着概率分布分析这种拐角、最坏情况或基于阈值的情况,以基于在物理制造期间构造的所制造的3d零件中存在的基于阈值的值的概率来确定最坏情况场景或故障概率。
30.作为又一分析示例,超材料分析引擎112可应用概率分布乘法技术来在相互关联的超材料部分和/或特性之间传播多个分布的影响。对于闭合形式或部分闭合形式的解决方案,超材料分析引擎112可以将分配给所选代码参数值的给定概率分布相乘,以便生成产品概率分布,该产品概率分布可以反映相互关联的超材料部分或特性的概率分布。这种产品概率分布可以提供物理超材料制造的故障率的概率,例如,由给定3d打印机制造相互关联的超材料部分将具有低于阈值评估度量的特性的概率。
31.在本文所述的任何方式中,超材料分析引擎112可直接通过3d对象或超材料的源代码表示或其它编程表示(包括具有被分配为概率分布的值的代码参数)来支持制造分析。虽然本文描述了一些概率性超材料分析能力,但是超材料分析引擎112可以经由以超材料设计的程序代码表示的概率分布来提供任何数量的附加的或可替代的分析能力。
32.图4示出了系统可以实施以支持作为程序代码表示的超材料的概率性设计的逻辑400的示例。例如,计算系统100可以将逻辑400实施为硬件、存储在机器可读介质上的可执行指令、或者实施为这两者的组合。计算系统100可以经由超材料表示引擎110和超材料分析引擎112来实施逻辑400,计算系统100可以经由超材料表示引擎110和超材料分析引擎112来实行或执行逻辑400,作为支持表示为程序代码的超材料的概率性设计的方法。以下使用超材料表示引擎110和超材料分析引擎112作为示例来提供对逻辑400的描述。然而,系统的各种其它实施选项是可能的。
33.在实施逻辑400时,超材料表示引擎110可以将3d对象的超材料表示为程序代码(402),并且超材料可以定义3d对象的内部几何形状,并且超材料可以被配置成经由增材制造而被物理地构造。在将超材料表示为程序代码时,超材料表示引擎110可以将超材料的代码参数的值分配为概率分布(404)。在实施逻辑400时,超材料分析引擎112可以通过为程序代码的代码参数的值分配的概率分布来分析超材料(406)。
34.图4中所示的逻辑400提供了计算系统100可通过其支持表示为程序代码的超材料的概率性设计的说明性示例。本文还设想逻辑400中的附加的或可替代的步骤,包括根据本文中针对超材料表示引擎110、超材料分析引擎112或其任何组合所描述的任何特征。
35.图5示出了支持表示为程序代码的超材料的概率性设计的计算系统500的示例。计算系统500可以包括处理器510,该处理器510可以采用单个或多个处理器的形式。一个或多个处理器510可以包括中央处理单元(cpu)、微处理器或适于执行存储在机器可读介质上的指令的任何硬件设备。系统500可以包括机器可读介质520。机器可读介质520可以采用存储可执行指令的任何非暂时性电子、磁性、光学或其它物理存储设备的形式,所述可执行指令
例如是图5所示的超材料表示指令522和超材料分析指令524。因此,机器可读介质520例如可以是随机存取存储器(ram)(诸如动态随机存取存储器(dram))、闪存、自旋转移转矩存储器、电可擦除可编程只读存储器(eeprom)、存储驱动器、光盘等。
36.计算系统500可以通过处理器510执行存储在机器可读介质520上的指令。执行指令(例如,超材料表示指令522和/或超材料分析指令524)可以使得计算系统500执行本文描述的任何概率性超材料特征,包括根据关于超材料表示引擎110、超材料分析引擎112或两者的组合的任何特征。
37.例如,由处理器510执行超材料表示指令522可以使计算系统500将3d对象的超材料表示为程序代码,包括通过:将超材料表示为程序代码包括将超材料的代码参数的值分配为概率分布。超材料可以定义3d对象的内部几何形状,并且超材料可以被配置成经由增材制造而被物理地构造。处理器510执行超材料分析指令524可以使计算系统500通过为程序代码的代码参数的值分配的概率分布来分析超材料。
38.可以经由超材料表示指令522、超材料分析指令524或这两者的组合来实施如本文所述的任何附加的或可替代的概率性超材料特征。
39.上述系统、方法、设备和逻辑,包括有超材料表示引擎110和超材料分析引擎112,可以以许多不同的方式以多种不同的硬件、逻辑、电路以及存储在机器可读介质上的可执行指令的组合来实施。例如,超材料表示引擎110、超材料分析引擎112或其组合可以包括控制器、微处理器或专用集成电路(asic)中的电路,或者可以用分立逻辑或部件来实施,或者可以用组合在单个集成电路上或分布在多个集成电路之间的其它类型的模拟或数字电路的组合来实施。产品,例如计算机程序产品,可以包括存储介质以及存储在介质上的机器可读指令,当在端点、计算机系统或其它设备中执行时,所述存储介质和机器可读指令使所述设备根据以上描述中的任何一者(包括根据超材料表示引擎110,超材料分析引擎112或其组合的任何特征)来执行操作。
40.本文描述的包括超材料表示引擎110和超材料分析引擎112的系统、设备和引擎的处理能力可以分布在多个系统组件之间,例如在多个处理器和存储器之间,可选地包括多个分布式处理系统或云端/网络元件。参数、数据库和其它数据结构可以被分开存储和管理,可以被合并到单个存储器或数据库中,可以以许多不同的方式被逻辑地和物理地组织,并且可以以包括有数据结构(例如链表)、哈希表或者隐式存储机制的多种方式来实施。程序可以是单个程序的一部分(例如子例程)、分开的程序、分布在多个存储器和处理器上的程序、或以多种不同的方式(例如库(例如共享库))来实施。
41.尽管上面已经描述了各个示例,但是更多的实施方式也是可行的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1