针对拓扑优化中的设计域的主动区域适应
文献发布时间:2023-06-19 11:32:36
相关申请的交叉引用
本申请要求于2018年9月14提交的名称为“具有演进的设计域和针对大规模问题的制造约束的拓扑优化”的第62/731,278号美国临时申请的优先权的权益,所述申请通过引用而全部并入本文。
背景技术
计算机系统可用于创建、使用和管理用于产品和其他物品的数据。计算机系统的示例包括计算机辅助设计(CAD)系统(其可能包括计算机辅助工程(CAE)系统)、计算机辅助制造(CAM)系统、可视化系统、产品数据管理(PDM)系统、产品生命周期管理(PLM)系统等等。这些系统可包括便于产品结构和产品制造的设计和仿真测试的部件。
附图说明
在以下的详细描述中,参考附图描述了某些示例。
图1示出了支持针对拓扑优化中的设计域的主动区域适应的计算系统的示例。
图2示出了由初始设计空间引擎针对未知起始拓扑进行设计域识别和初始主动区域确定的示例。
图3示出了由初始设计空间引擎针对已知起始拓扑进行设计域识别和初始主动区域确定的示例。
图4示出了由主动区域适应引擎进行的设计元素启用(activate)和停用(deactivate)以适应所确定的主动区域的示例。
图5示出了经适应的主动区域(adapted active region)的示例,主动区域适应引擎可确定所述经适应的主动区域并将所述经适应的主动区域设定为针对后续的适应周期的主动区域。
图6示出了逻辑的示例,系统可实施该逻辑以支持针对拓扑优化中的设计域的主动区域适应。
图7示出了支持针对拓扑优化中的设计域的主动区域适应的计算系统的示例。
具体实施方式
本公开涉及拓扑优化,该拓扑优化可指修改对象的材料布局以实现特定目标的技术。拓扑优化可用于航空、机械、生化、汽车和许多其他领域,例如,用以改善零件的性能或减少所需的原材料的重量。特别地,拓扑优化可利用任意数量的目标函数来定量地测量拓扑优化过程的设计目标。作为说明性示例,目标函数可统计地表示对象的顺应性、结构要求、热行为、流体动力学或各种特性。(例如,除了目标函数之外或与目标函数结合)负载、边界条件和其他约束也可用于拓扑优化中,以实现具体的产品要求。
在拓扑优化中,设计空间可指对象能够在其中存在的可容许区域或体积。在该设计空间内,可识别设计域,在设计域中对对象设计执行拓扑优化。设计域可以是(或等于)设计空间的子集,并且设计域可被离散化为多个设计元素。作为示例,设计元素可采用通过将2D设计域离散化为网格而形成的2D方格(square)的形式,或者采用通过将3D设计域离散化而成的3D体素的形式。设计域中的每个设计元素都可通过相应的设计变量值来表征,拓扑优化过程可通过该设计变量值来计算或估算目标函数。通过各种处理技术(诸如仿真、变量优化或有限元分析),拓扑优化可修改设计变量值(例如,3D设计域中的体素的密度值),以将目标函数和设计域收敛为针对对象进行优化的拓扑。
拓扑优化可提供用以改善零件性能或减少零件需求(例如,重量或输入原材料)的技术能力。然而,拓扑优化计算可能会占用大量资源,并且需要很长时间来完成,尤其是对于可能具有数百万以及更多数量的设计元素的复杂设计空间而言。在如此巨大的设计空间上执行数百或数千次拓扑优化过程的迭代可能是不切实际或几乎不可能的。
本文的公开内容可提供用于针对拓扑优化中的设计域的主动区域适应的系统、方法、装置和逻辑。如以下更详细描述的,本文公开的主动区域适应特征可使设计域演进为使得设计域的被特别选定的部分可改变设计变量值(而设计域的其余部分的设计变量值,例如,非主动区域,在优化或有限元分析迭代期间保持恒定)。在这方面,设计域的主动区域可描绘(delineate)对象设计的具体设计元素以集中优化资源,这可减少用以修改对象以执行仿真、有限元分析(FEA)或其他优化计算和过程以便对对象进行拓扑地优化的时间和所需的资源。
所描述的主动区域适应对于大规模设计域(例如,数百万以及更多个设计元素)而言可能是特别有用的,尤其是当计算资源可被定向到设计域的专门确定的区域并且避免了对非主动区域进行仿真和优化时,所述非主动区域通过拓扑优化进行修改的可能性较小。因此,与传统的拓扑优化技术相比,本文描述的主动区域适应特征可提高计算效率并减少用以拓扑地优化对象的计算时间。
本文更详细地描述了这些和其他主动区域适应特征和技术益处。
图1示出了计算系统100的示例,该计算系统100支持针对拓扑优化中的设计域的主动区域适应。计算系统100可采用单个或多个计算装置的形式,计算装置为诸如应用服务器、计算节点、台式或膝上型计算机、智能电话或其他移动装置、平板装置、嵌入式控制器等。
如本文更详细地描述的,可确定设计域的主动区域,并且所确定的主动区域可在拓扑优化期间演进。特别地,针对设计域所确定的主动区域可在适应周期内演进,在此期间,识别和启用具有经由拓扑优化而增加的改变可能性的设计域的设计元素。可停用具有降低的改变可能性的设计元素,并且可专门针对设计域的主动区域执行拓扑优化迭代。通过这样做,本文所描述的主动区域适应特征可适应地启用和停用对象的设计元素(例如,3D空间中的体素或2D空间中的盒子(box)),以将拓扑优化集中在高可能性或高灵敏度区域上,从而这可提高拓扑优化的速度和效率。
作为支持本文描述的主动区域适应特征的任意组合的示例实施方式,图1中所示的计算系统100包括初始设计空间引擎108和主动区域适应引擎110。计算系统100可以以各种方式实现引擎108和引擎110(包括其部件),例如可实现为硬件和编程。用于引擎108和引擎110的编程可采用存储在非暂时性机器可读存储介质上的处理器可执行指令的形式,并且用于引擎108和引擎110的硬件可包括用以执行那些指令的处理器。处理器可采用单处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用相同的计算系统特征或硬件部件(例如,公共处理器或公共存储介质)来实现多个引擎。
在操作中,初始设计空间引擎108可基于目标函数来识别要为其优化拓扑的设计域,该设计域包括多个设计元素。初始设计空间引擎108可确定设计域的主动区域,该主动区域包括设计域中的选定的一组主动设计元素。初始设计空间引擎108对设计域和主动区域的初始确定可取决于用于拓扑优化过程的输入设计空间的各种参数和特性。
在操作中,主动区域适应引擎110可以对主动区域进行迭代适应(iterativelyadapt),包括通过在给定的适应周期内:扩展设计域以将分支设计元素包括在距主动区域中的主动设计元素为阈值元素距离之内;基于目标函数对经扩展的设计域执行FEA,包括基于目标函数针对经扩展的设计域的设计元素计算相应的灵敏度值;确定经适应的主动区域;以及将经适应的主动区域设定为针对后续的适应周期的主动区域。
可由主动区域适应引擎110通过将其中计算出的灵敏度值超过主动灵敏度阈值的任意分支设计元素启用为主动设计元素、并从主动区域停用其中设计变量值的改变小于来自先前的适应周期的阈值量的任意主动设计元素,来执行对经适应的主动区域的确定。主动区域适应引擎110可继续对主动区域进行迭代适应,直到满足优化结束标准为止,于是拓扑优化过程可完成。
接下来将更详细地描述根据本公开的这些和其他主动区域适应特征。图2和图3描述了与确定设计空间中的初始主动区域有关的各种特征。图4和图5描述了与在不同的适应周期中对主动区域进行适应有关的各种特征。经由二维(2D)设计空间、设计域和主动区域呈现了关于图2至图5所描述的多个示例。然而,本文公开的任意主动区域适应特征也可一致地应用于其他维度(例如,3D)中的拓扑优化。
转到主动区域确定,初始设计空间引擎108可识别初始设计域并确定初始主动区域。此外,初始设计空间引擎108可基于设计空间是包括已知起始拓扑还是未知起始拓扑来以不同的方式识别初始设计域并确定初始主动区域。
图2示出了由初始设计空间引擎108对未知起始拓扑进行设计域识别和初始主动区域确定的示例。在图2中,初始设计空间引擎108访问设计空间200,该设计空间200可采用对象的任意数字表示的形式,并且该对象可具有不同级别的复杂性和规模,例如作为零件、子系统、航空航天部件、整个航天飞机等。设计空间200可包括设计对象的任意数量的CAD文件、3D表面网格或几何文件,或任意其他合适的几何表示(其复杂度可能会大大不同,以包括大规模的拓扑优化设计空间)。
设计空间200可包括各种部分,诸如固定的设计区域212和214。这样的固定的设计区域212和214可指明用于对象的固定的设计、特征或部件(例如,不能经由拓扑优化改变的设计元素)。例如,固定的设计区域212和214可包括被配置为不因拓扑优化而改变的永久被动区域(实心的或空的),并且这样的区域可被称为“保持在内(keep-in)”或“(保持在外)keep-out”区域。在一些实施方式中,设计空间200还可指明适用于设计空间200或其部分的边界条件、约束或其他设计参数。
由初始设计空间引擎108访问的设计空间200可包括未知起始拓扑,以基于一个或多个目标函数经由拓扑优化来进行优化。未知起始拓扑可指设计空间200的如下部件:该部件的拓扑仅受到限制对象设计的尺寸的限制,而没有超出尺寸限制的任何特定设计。在图2中所示的特定示例中,设计空间200包括呈边界框216的形式的未知起始拓扑。边界框216可以是未知起始拓扑,因为边界框216由其中可存在用于设计空间200的对象设计的尺寸而被定义为盒子形状。然而,(例如,相比于先前的零件设计、测试设计或其他预定的起始设计)没有将边界框216内的任何起始设计指明为用于拓扑优化的起始点。
初始设计空间引擎108可将来自设计空间200的初始设计域识别为设计空间200的一部分,可经由拓扑优化对该部分进行修改(例如,优化)。针对包括未知起始拓扑的设计(例如,经由诸如边界框216的边界结构),初始设计空间引擎108可将用于拓扑优化的初始设计域识别为整个未知起始拓扑。为了通过图2进行说明,初始设计空间引擎108可将设计域220识别为用于未知拓扑的边界框216,并且可离散化设计域220以包括多个设计元素(在该情况下,为2D网格中的方格)。
通过初始设计域(例如,设计域220),初始设计空间引擎108可确定初始主动区域。初始主动区域的确定可被称为拓扑优化过程的自适应周期“0”。为了确定从未知起始拓扑识别出的用于设计域220的初始主动区域,初始设计空间引擎108可对整个设计域220执行可配置次数的拓扑优化迭代。该可配置次数可以是由初始设计空间引擎108基于预设或用户提供的值确定的过程参数(例如,对边界框216中所有设计元素进行的FEA的两(2)次迭代)。
在一些拓扑优化迭代示例中,初始设计空间引擎108可针对边界框216中的每个设计元素执行FEA,以计算用于拓扑优化过程的目标函数的值。由初始设计空间引擎108在适应周期“0”中执行的一个或多个拓扑优化迭代中设想到了任意的拓扑优化计算,诸如数值优化、锁定收敛的设计变量值、修改设计变量值、强制约束和边界条件等。如本文所使用的,FEA可涵盖或包括这样的拓扑优化操作的任意组合(例如,全部组合),并且初始设计空间引擎108(和主动区域适应引擎110)可实现FEA功能以执行任意拓扑优化过程或计算。
在对边界框216执行FEA时,初始设计空间引擎108可利用预先配置的设计变量值来初始化设计域220的设计元素,以执行FEA、调整设计变量值并执行FEA的各种计算操作。例如,初始设计空间引擎108可将边界框216视为要进行拓扑优化的实体结构,例如,将用于每个设计元素的密度值初始化为完全的实体值(诸如,在从0.0至1.0的归一化尺度上,密度值=1.0)
通过对整个边界框216(其可能是计算密集型的)执行FEA,初始设计空间引擎108可识别设计域220的特定区域,该特定区域具有用以改善针对(例如,经由目标函数而测得的)特定设计目标的设计的增加的可能性或影响力。为了测量这样的可能性,初始设计空间引擎108可计算针对边界框216中的设计元素的灵敏度值。初始设计空间引擎108可基于目标函数的导数和给定设计元素的设计变量值来计算针对给定设计元素的灵敏度值sens,例如sens表示为:
在该示例中,x可指给定设计元素的设计变量值,c可指目标函数(例如,顺应性)。特定设计元素的灵敏度值可测量目标函数的变化在多大程度上依赖于特定设计元素的设计变量值的变化。设计变量改变(以及在某些实施方式中,灵敏度计算)可作为所执行的用于拓扑优化的FEA迭代的一部分(或与之结合)来执行。
因此,初始设计空间引擎108可计算针对未知起始拓扑(诸如边界框216)中包括的设计元素的设计变量值和灵敏度值。在图2中,设计元素230描绘示例计算结果,包括设计元素230的针对设计变量x
通过计算出的灵敏度值,初始设计空间引擎108可确定用于设计域220的初始主动区域。特别地,初始设计空间引擎108可选定边界框216中的超过边界灵敏度阈值的任意设计元素来作为初始主动区域的主动设计元素。边界灵敏度阈值可以是用以控制对未知起始拓扑的初始主动区域的确定的预定的和/或可配置的参数。作为说明性示例,初始设计空间引擎108可将计算出的灵敏度值归一化(例如,归一化到0.0与1.0之间的归一化范围内),并且将边界灵敏度阈值设定为固定值(例如,为0.8)。作为其他示例,初始设计空间引擎108可基于与用于设计域220的灵敏度值集合的标准偏差(作为用以启用设计域220的阈值部分(例如75%)的计算值)或根据任意其他可配置的功能,将边界灵敏度阈值设定为计算出的值,例如,设定为边界框216中的设计元素的平均灵敏度。
在图2中所示的示例中,初始设计空间引擎108将用于设计域220的初始主动区域确定为主动区域240。包括在主动区域240中的设计元素可被称为主动设计元素,并且主动设计元素的设计变量值可在后续的FEA迭代和拓扑优化过程中改变。没有被包括在主动区域240中的设计域220的设计元素可在后续的FEA迭代期间使它们的设计变量值固定。
以本文描述的任意方式,初始设计空间引擎108可确定用于由未知起始拓扑组成的设计域220的初始主动区域。在其他示例中,初始设计空间引擎108可确定用于由已知起始拓扑组成的设计域的初始主动区域,如以下关于图3所论述的。
图3示出了由初始设计空间引擎108针对已知起始拓扑进行设计域识别和初始主动区域确定的示例。在图3中,初始设计空间引擎108访问用于对象设计的设计空间300。以与关于图2描述的设计空间200类似的方式,设计空间300可包括固定的设计部分,诸如图3中所示的固定的设计区域312和314。同样如图3中所示,设计空间300包括呈所选定的初始拓扑形状316的形式的已知起始拓扑。
可以以各种方式为设计空间300指明已知起始拓扑。例如,初始设计空间引擎108可支持各种用户输入功能,通过该用户输入功能,用户可指明、选定或以其他方式输入起始拓扑作为要进行拓扑优化的对象设计的一部分。在一些情况下,初始设计空间引擎108可被配置为将过去的零件设计识别为或确定为起始拓扑。在其他示例中,设计空间300包括作为起始拓扑的用户选定的或用户输入的设计。
通过利用起始拓扑支持拓扑优化,初始设计空间引擎108可提高拓扑优化收敛于针对设计空间300的优化解决方案的速度。与未知起始拓扑(例如,边界框216)相比,从已知拓扑开始,可减少为拓扑优化执行的主动区域适应的次数和FEA迭代的次数。换个方式来解释,与从未知拓扑开始相比,主动区域适应特征可以以较少的适应周期的个数、拓扑优化(例如,FEA)迭代的次数以及利用减少的计算资源消耗和较少的计算延迟,来支持向具有选定的初始拓扑形状316的拓扑地优化的设计的收敛。
在一些实施方式中,已知起始拓扑可允许初始设计空间引擎108将初始设计域限制到设计空间的已知为实心的特定部分,如在已知起始拓扑中所反映的。即,通过使用所选定的初始拓扑形状316,(例如,与边界框216相比)初始设计空间引擎108具有用以从设计空间300的减少的部分开始来进行优化的能力,从而这可改善性能。
如本文中所述,初始设计空间引擎108可将初始设计域识别为可经由拓扑优化来修改(例如,优化)的设计空间的一部分。对于包括已知起始拓扑的设计(例如,包括所选定的初始拓扑形状316的设计空间300),初始设计空间引擎108可将初始设计域识别为所选定的初始拓扑形状316的实心部分。如图3中所示,初始设计空间引擎108识别用于设计空间300的设计域320,并且设计域320包括所选定的初始拓扑形状316的每个设计元素。
通过初始设计域(例如,设计域320),初始设计空间引擎108可确定初始主动区域。这样的初始主动区域确定可以是拓扑优化过程的适应周期“0”的一部分。对于从已知起始拓扑识别的设计域320,初始设计空间引擎108可将初始主动区域识别为整个设计域320。如图3中看到的,初始设计空间引擎108通过将所选定的初始拓扑形状316(即,设计域320)中的每个设计元素选定为主动设计元素以包括主动区域330,来确定主动区域330作为初始主动区域。
在一些实施方式中,初始设计空间引擎108可对设计域320执行可配置次数的拓扑优化迭代(例如,与对用于未知起始拓扑的初始设计域执行的FEA迭代次数相同)。这样的FEA迭代可在确定主动区域330之前、确定主动区域330的同时或确定主动区域330之后由初始设计空间引擎108来执行。
如本文所述,初始设计空间引擎108可确定用于拓扑优化的初始主动区域和初始设计域,无论是针对已知起始拓扑还是未知起始拓扑。通过主动区域适应,可集中设计域的具体部分来进行拓扑优化。即,不是对对象设计的整个设计空间执行拓扑优化,而是拓扑优化可具体地受限于主动区域,这可导致更有效地使用计算资源。特别地,主动区域适应可集中于识别设计空间的具有较高可能性来改变或改善拓扑的部分(这因此可更有效地集中计算资源)。此外,可以可能地由初始设计空间引擎108或主动区域适应引擎110仅对主动区域执行FEA,与跨越整个设计空间执行FEA相比,这可改善性能并减少计算延迟。接下来,图4和图5描述了与在不同的适应周期中经适应的主动区域有关的各种特征。
注意的是,可作为拓扑优化的一部分或与拓扑优化相结合来执行由主动区域适应引擎110进行的主动区域适应。因此,主动区域适应引擎110可对主动区域进行适应作为拓扑优化过程的一部分,通过该拓扑优化过程,设计域的设计元素可在优化期间改变(例如,改变密度)。在拓扑优化中执行的FEA可包括拓扑优化操作,以修改和优化对象设计的拓扑,而本文所描述的主动区域适应可(经由主动区域)识别对象设计的具体部分,在该具体部分中将执行FEA和拓扑优化操作。如本文所描述的,可以将其中对主动区域进行适应的迭代过程称为适应周期,同时可以将拓扑优化迭代称为FEA迭代。
图4示出了由主动区域适应引擎110进行的设计元素启用和停用以适应所确定的主动区域的示例。图4中所示的示例使用在图3中确定的主动区域330作为要进行适应的初始主动区域的示例。图4中描述的其中一些特征或全部特征可包括用以对主动区域330进行适应的适应周期的一部分,作为拓扑优化过程的一部分。
在给定的适应周期中,主动区域适应引擎110可扩展设计域。通过扩展设计域,主动区域适应引擎110可确保(例如,在被确定为对目标函数具有高灵敏度的具体部分处)更大程度地考虑其中设计对象可被优化的设计空间。为了扩展设计域,主动区域适应引擎110可扩展设计域以包括在距主动区域330中的主动设计元素为阈值元素距离之内的分支设计元素。作为说明性示例,主动区域适应引擎110可扩展设计域以包括(例如,在任意方向上)距主动区域中的3D体素为两个3D体素距离以内的(尚未位于主动区域中的)任意3D体素。因此,主动区域适应引擎110可将分支设计元素识别为阈值元素距离或其他分支标准内(例如,在任意方向上的两个设计元素内或任意其他可配置距离值或标准内)的相邻设计元素。
在一些方面,可将由主动区域适应引擎110对设计域的扩展视为对主动区域的临时扩展,以便将候选启用考虑到主动区域中。此外,主动区域适应引擎110可使用目标函数的灵敏度值来选择性地扩展设计域,因为设计域扩展从主动区域中(该主动区域可由先前已被确定为具有相对较高精度/可能性来改善拓扑的主动设计元素组成)被专门关注。在这方面,本文所描述的主动区域适应特征可将主动区域适应集中于具有更高的灵敏度和较大的可能性来使对象设计优化的主动设计元素附近(例如,在设计元素距离之内)的对象部分。
在一些实施方式中,主动区域适应引擎110可限制设计域扩展。例如,主动区域适应引擎110可限制域设计扩展,使得没有域边界通过。域边界可提供对设计对象可扩展到其中的设计空间的部分的绝对限制。例如,域边界可被设定为使得设计域不扩展到固定设计部分(例如,固定设计区域312或314)中、不违反任何边界条件或其他设计限制、不扩展超过边界框或描绘的设计空间等。一些示例域边界在图4中被示出为竖直线(vertical line),这些竖直线限制了对象设计可水平地经扩展的程度。
在图4中,主动区域适应引擎110扩展来自主动区域330的设计域,以包括以虚线的周界线示出的分支设计元素。包括在经扩展的设计域中的这些分支设计元素中的一些被明确标记为分支设计元素412。如图4中所示,主动区域适应引擎110限制了设计域扩展,使得分支设计元素不能越过为设计对象设定的域边界。在一些实施方式中,主动区域适应引擎110可将经扩展的设计域中的任意识别出的分支设计元素添加到用来映射对象设计的设计元素的FEA域(field)中,以用于FEA操作。
主动区域适应引擎110可对经扩展的设计域执行FEA,基于为拓扑优化指明的任意数量的目标函数来对经扩展的设计域执行FEA。主动区域适应引擎110可以以本文所描述的任意方式,例如以与初始设计空间引擎108一致的方式,对经扩展的设计域的设计元素执行FEA迭代。因此,主动区域适应引擎110可实现本文所描述的任意FEA功能(包括支持任意数量的拓扑优化操作)。在执行FEA时,主动区域适应引擎110可基于目标函数针对经扩展的设计域的设计元素来计算相应的灵敏度值。
在一些实施方式中,主动区域适应引擎110可在给定的适应周期中执行多次FEA迭代。因此,对于给定的经扩展的设计域,主动区域适应引擎110可执行多次FEA迭代(其可包括用以修改和配置设计变量的各种拓扑优化操作),并且可在给定的适应周期中在对该主动区域进行适应之前执行多次FEA迭代。
在针对经扩展的设计域执行一次或多次FEA迭代后,主动区域适应引擎110可访问针对主动区域330中的主动设计元素、在给定的适应周期中针对经扩展的设计域所识别的分支设计元素或两者的组合计算出的灵敏度值。设计变量值也可经由FEA迭代来更新,主动区域适应引擎110也可访问这些FEA迭代。一个这样的示例(如图4中所示)是主动设计元素420,主动设计元素420的针对设计变量x
使用计算出的灵敏度值和/或设计变量值,主动区域适应引擎110可确定针对当前适应周期的经适应的主动区域。特别地,主动区域适应引擎110可通过将其中计算出的灵敏度值超过主动灵敏度阈值的任意分支设计元素启用作为主动设计元素,来确定针对当前适应周期的经适应的主动区域。主动区域适应引擎110可以以各种方式设定、配置或以其他方式确定主动灵敏度阈值。通过调整主动灵敏度阈值,主动区域适应引擎110可控制分支设计元素被启用的程度,例如,具有(相对)较小的主动灵敏度阈值用以支持更多地将分支设计元素启用到经适应的主动区域中,反之亦然。
在一些实施方式中,主动灵敏度阈值是针对先前适应周期的主动区域计算出的灵敏度值的函数。主动区域适应引擎110可将主动灵敏度阈值计算为例如针对主动区域330的灵敏度值的平均值,如在先前适应周期中计算出的(例如,通过在先前适应周期中执行FEA计算出的)。主动灵敏度阈值的其他示例计算可包括计算出的最小灵敏度值、计算出的最小灵敏度值的百分比(例如125%)、计算出的最小灵敏度值的百分比(例如65%)等。在一些实施方式中,主动区域适应引擎110可将主动灵敏度阈值设定为固定值(例如,针对从0.0到1.0的灵敏度值的归一化范围为0.5)。以任意这样的方式,主动区域适应引擎110可启用在给定的适应周期中识别出的任意数量的分支设计元素,例如基于在给定的适应周期中针对分支设计元素计算出的灵敏度值来启用在给定的适应周期中识别出的任意数量的分支设计元素。
主动区域适应引擎110还可通过停用设计元素来确定经适应的主动区域。为此,主动区域适应引擎110可从主动区域停用如下任意主动设计元素,持续给定的适应周期:该任意主动设计元素的设计变量值的改变小于来自先前的适应周期的阈值量。作为一个示例,如果满足以下收敛标准,则主动区域适应引擎110可停用主动区域330中的给定设计元素:
|x
在此示例中,值x
因此,主动区域适应引擎110可基于设计变量值的收敛来停用设计元素。在一些实施方式中,主动区域适应引擎110可冻结这样被停用的元素作为该设计的永久被动元素。例如,主动区域适应引擎110可冻结设计元素,使得(i)在拓扑优化期间被停用或冻结的设计元素的设计变量值不能再被改变;(ii)被停用或被冻结的设计元素不能再被启用或被识别为分支设计元素;(iii)将被停用或被冻结的设计元素的设计变量值设定为预定值(例如,设定为0.0以指示设计中的空白空间(void space)或设定为1.0以指示设计中的填充的空间);或其任何组合。
如本文所述,主动区域适应引擎110可在给定的适应周期中启用和/或停用来自主动区域的各种设计元素。在图4中所示的示例中,主动区域适应引擎110启用从主动区域330识别出的其中一些分支设计元素,该其中一些分支设计元素被显示为以黑色着色的设计元素,并被标记为启用的分支设计元素441。同样在图4中所示出的,主动区域适应引擎110停用主动区域330中的其中一些主动设计元素,该其中一些主动设计元素被显示为以竖直线图案化而示出的设计元素,并标记为被停用的设计元素442。通过这样的启用和停用,主动区域适应引擎110可对主动区域330进行适应,并确定针对主动区域330的经适应的主动区域。
图5示出了经适应的主动区域的示例,主动区域适应引擎110可确定所述经适应的主动区域并将所述经适应的主动区域设定为针对后续的适应周期的主动区域。在图5中所示的具体示例中,主动区域适应引擎110确定经适应的主动区域510,主动区域适应引擎110可对先前确定的主动区域(在该示例中,为主动区域330,如在图3和图4中所论述的)进行适应而得到所述经适应的主动区域510。
如本文所述,主动区域适应引擎110可通过在设计域中启用和停用设计元素来确定所述经适应的主动区域510。特别地,主动区域适应引擎110可通过添加被启用的分支设计元素441并去除被停用的设计元素442来对主动区域330进行适应而得到为所述经适应的主动区域510。然后,主动区域适应引擎110可将所述经适应的主动区域510设定为针对后续的适应周期的主动区域。
注意的是,本文描述的主动区域适应特征可支持主动区域适应而没有连接性限制。例如,主动区域适应引擎110可启用未直接链接到任意其他主动设计元素的分支设计元素。这样的未连接的启用的示例在图5中通过未连接的设计元素520来示出,主动区域适应引擎110可启用该未连接的设计元素520,即使未连接的设计元素520没有直接靠近或连接至所述经适应的主动区域510中的任一其他主动设计元素,主动区域适应引擎110也可启用该未连接的设计元素520(并因此将其添加到经适应的主动区域510)。通过支持这样的未连接的启用,由主动区域适应引擎110进行适应而得到的主动区域可自由地演进成具有增加的灵敏度的设计空间的区域,而没有连接性限制(例如,如果被FEA模拟器和基础物理学所支持的话)。
这样的未连接的主动区域特征可支持具有提高的效率或有效性的拓扑优化,因为在主动区域在设计空间的不同部分中演进之后,设计空间的多个未连接区域可在相同的适应周期或FEA迭代中被同时优化。在一些实施方式中,主动区域适应引擎110可维持针对FEA元素和主动区域的单独的域,从而跨越整个设计空间支持FEA操作,同时还允许主动区域基于由主动区域适应引擎100进行的适应而自由地演进。
如图4和图5中所示,主动区域适应引擎110可将主动区域330适应为所述经适应的主动区域510。这样的主动区域迭代可包括主动区域适应引擎110在对设计空间的拓扑优化期间可以执行的多个适应周期中的一个适应周期。在后续的适应周期中,主动区域适应引擎110可对所述经适应的主动区域510进行进一步适应,并且继续对主动区域进行迭代适应,直到满足优化结束标准为止。
主动区域适应引擎110可以以各种方式设定优化结束标准,并且可在设计收敛时满足优化结束标准。例如,当适应周期之间的目标函数的值之间的差异小于优化过程结束值时,可满足优化结束标准。在这样的示例中,目标函数的收敛可指示对象设计的拓扑已收敛并且已经确定优化的设计。例如,主动区域适应引擎110可将优化结束标准设定为如下:
在该示例中,值10
附加地或可替代地,主动区域适应引擎110可设定优化结束标准,使得当主动区域不包括任意主动设计元素时满足该优化结束标准。当在给定的适应周期中停用主动区域的所有设计元素时,可满足这种优化结束标准。
因此,主动区域适应引擎110可以对设计空间的主动区域进行适应。主动区域适应引擎110可继续对设计空间的主动区域进行迭代适应,直到满足优化结束标准为止,在满足优化结束标准时拓扑优化过程可以完成。
本文描述的主动区域适应特征可提供各种技术益处,包括通过使用灵敏度来适应地启用具有更大的可能性来改善拓扑的设计元素,同时还支持停用和冻结具有已收敛的设计变量值的设计元素。本文所述的主动区域适应特征也支持主动区域的未连接的演进。这样的特征可导致设计变量的数量更为减少,然后这可进一步减少了针对FEA迭代的计算要求或导致更快的设计收敛。此外,在每个适应周期对主动区域进行适应可支持在每个适应周期执行多次FEA迭代,这可能会更宽容并提高针对拓扑优化器实施方式的准确性,该准确性可能导致设计变量在FEA迭代之间波动。
通过本文所述的这些和其他技术益处,所描述的主动区域适应技术可减少拓扑优化的计算费用并提高效率,特别是对于大规模设计空间或当访问已知起始拓扑时。此外,可在没有强大(例如,高性能的)计算资源的情况下实现或执行主动区域适应特征。作为又一特征,适应周期可支持设计约束或制造约束的应用和适应,以进一步调整或提高拓扑优化的效率。
图6示出了逻辑600的示例,系统可以实施该逻辑600以支持针对拓扑优化中的设计域的主动区域适应。例如,计算系统100可将逻辑600实现为硬件,存储在机器可读介质上的可执行指令或实现为两者的组合。计算系统100可经由初始设计空间引擎108和主动区域适应引擎110来实施逻辑600,计算系统100可通过初始设计空间引擎108和主动区域适应引擎110来执行或实行逻辑600,作为用以在拓扑优化中支持主动区域适应的方法。使用初始设计空间引擎108和主动区域适应引擎110作为示例来提供对逻辑600的以下描述。然而,由系统进行的各种其他实施方式选项是可能的。
在实施逻辑600时,初始设计空间引擎108可识别设计域(602)并确定针对该设计域的主动区域(604)。如本文所述,初始设计空间引擎108可将初始主动区域确定为拓扑优化过程的适应周期“0”的一部分,并且初始设计空间引擎108可支持针对已知起始拓扑和未知起始拓扑进行的初始主动区域的确定。
在实施逻辑600时,主动区域适应引擎110可以对设计域的主动区域进行迭代适应,作为拓扑优化的一部分。在给定的适应周期中,主动区域适应引擎110可扩展设计域以包括在距主动区域中的主动设计元素为阈值元素距离之内的分支设计元素(606)。主动区域适应引擎110可模拟和优化主动区域中的设计元素,并且可通过基于指明用于拓扑优化的目标函数对经扩展的设计执行FEA来模拟和优化主动区域中的设计元素(608)。
由主动区域适应引擎110执行的FEA过程可包括针对经扩展的设计域(例如,经扩展的设计域可包括针对当前适应周期的主动区域以及在当前适应周期中识别出的分支设计元素)中的设计元素计算灵敏度值。主动区域适应引擎110可在给定适应周期中执行多次FEA迭代,在确定针对给定的适应周期的经适应的主动区域之前执行多次FEA迭代。在一些实施方式中,主动区域适应引擎110可在给定的适应周期中执行所配置次数的FEA迭代(例如,十(10)次FEA迭代)。附加地或可替代地,主动区域适应引擎110可执行FEA迭代,直到目标函数的值的改变小于FEA迭代之间的阈值量为止。作为这样的标准的组合,除非在给定的适应周期中执行预配置次数的FEA迭代之前,目标函数的值的改变小于FEA迭代之间的阈值量,否则主动区域适应引擎110可执行预配置次数的FEA迭代(例如,十(10)次迭代)。
在实施逻辑600时,主动区域适应引擎110还可确定经适应的主动区域(610)。主动区域适应引擎110可通过将其中计算出的灵敏度值超过主动灵敏度阈值的任意分支设计元素启用为主动设计元素(612),并从主动区域停用其中设计变量值的改变小于来自先前的适应周期的阈值量的任意主动设计元素(614),来确定经适应的主动区域。
主动区域适应引擎110可继续对主动区域进行迭代适应,直到满足优化结束标准为止(此时,拓扑优化过程也可结束)。因此,主动区域适应引擎110可确定是否满足优化结束标准(616)。如果是,则主动区域适应和拓扑优化过程可结束。如果否,则主动区域适应引擎110可继续对主动区域进行迭代适应并且拓扑地对设计空间进行优化。
在一些实施方式中,主动区域适应引擎110可在设计空间的拓扑优化中支持设计约束或制造约束的使用和适应。例如,初始设计空间引擎108、主动区域适应引擎110或两者都可应用Heaviside密度过滤器、悬垂约束(例如,比率)、固体各向同性微结构材料惩罚模型法(SIMP)惩罚参数等,作为FEA迭代或其他拓扑优化操作的一部分。此外,主动区域适应引擎110可例如在每个适应周期的基础上支持对任意所应用的参数或约束的适应。
在给定的适应周期中,主动区域适应引擎110可对任意数量的所应用的设计约束或设计参数/制造约束或制造参数进行适应(618)。由此,主动区域适应引擎110可调整参数或约束值、启用或停用用以在后续适应周期中应用的设计参数或设计约束/制造参数或制造约束,或两者的组合。例如,在每个适应周期中,主动区域适应引擎110可增加Heavisidebeta和SIMP惩罚参数,这可提高设计变量收敛的速度或减少针对中间设计变量值的拓扑优化停顿。通过在每个适应周期的基础上对这样的制造约束或制造参数进行适应,主动区域适应引擎110可支持在拓扑优化期间对这样的约束和参数的分级适应(与在每个FEA迭代的基础上(其可能由于拓扑优化中的噪声或尖峰而效率较低)相比)。
在确定不满足优化结束标准时或之后,主动区域适应引擎110可继续对主动区域进行迭代适应。因此,主动区域适应引擎110可将针对当前适应周期确定的经适应的主动区域设定为针对后续的适应周期的主动区域(620)。然后,主动区域适应引擎110可继续对主动区域进行迭代适应,直到满足优化结束标准为止。
图6中所示的逻辑600提供了说明性示例,通过这些说明性示例,计算系统100可支持针对拓扑优化中的设计域的主动区域适应。本文设想了逻辑600中的附加的或可替代的步骤,包括根据本文所述的针对初始设计空间引擎108、主动区域适应引擎110或其任意组合的任意特征。
图7示出了计算系统700的示例,该计算系统700支持针对拓扑优化中的设计域的主动区域适应。系统700可包括处理器710,处理器710可采用单个或多个处理器的形式。处理器710可包括中央处理器(CPU)、微处理器或适合于执行存储在机器可读介质上的指令的任意硬件装置。计算系统700可包括机器可读介质720。机器可读介质720可采用存储可执行指令的任意非暂时性电子、磁性、光学或其他物理存储装置的形式,所述可执行指令诸如为图7中所示的初始设计空间指令722和主动区域适应指令724。因此,机器可读介质720可以是例如随机存取存储器(RAM)(诸如动态RAM(DRAM)、闪存、自旋转移矩存储器)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。
计算系统700可通过处理器710执行存储在机器可读介质720上的指令。执行指令(例如,初始设计空间指令722和/或主动区域适应指令724)可使系统700执行本文所述的任意主动区域适应特征,包括根据关于初始设计空间引擎108、主动区域适应引擎110或两者的组合的任意特征。
例如,由处理器710执行初始设计空间指令722可使计算系统700基于目标函数来识别要为其优化拓扑的设计域,该设计域包括多个设计元素。由处理器710执行初始设计空间指令722还可使系统700确定针对设计域的主动区域,该主动区域包括设计域中的选定的一组主动设计元素。
由处理器710执行主动区域适应指令724可使计算系统700对主动区域进行迭代适应,包括通过针对给定的适应周期:扩展设计域以包括距主动区域中的主动设计元素为阈值元素距离之内的分支设计元素;基于目标函数对经扩展的设计域执行FEA,包括基于目标函数针对经扩展的设计域的设计元素计算相应的灵敏度值;确定经适应的主动区域;以及将所述经适应的主动区域设定为针对后续的适应周期的主动区域。
可由计算系统700通过以下方式来进行对经适应的主动区域的确定:将其中计算出的灵敏度值超过主动灵敏度阈值的任意分支设计元素启用为主动设计元素,并从主动区域停用其中设计变量值的改变小于来自先前的适应周期的阈值量的任意主动设计元素。由处理器710执行主动区域适应指令724可进一步使计算系统700继续对主动区域进行迭代适应,直到满足优化结束标准为止。
可经由初始设计空间指令722、主动区域适应指令724或两者的组合来实现如本文所述的任意附加的或可替代的特征。
上述的系统、方法、装置和逻辑,包括初始设计空间引擎108和主动区域适应引擎110,可以以硬件、逻辑、电路和存储在机器可读介质上的可执行指令的许多不同组合以许多不同方式来实现。例如,初始设计空间引擎108、主动区域适应引擎110或其组合可包括控制器、微处理器或专用集成电路(ASIC)中的电路,或者可利用组合在单个集成电路上或分布在多个集成电路之间的分立逻辑或部件或者其他类型的模拟或数字电路的组合来实现。诸如计算机程序产品的产品可包括存储介质和存储在该介质上的机器可读指令,当在端点、计算机系统或其他装置中执行该机器可读指令时,该机器可读指令使该装置执行根据以上任意描述的操作,包括根据初始设计空间引擎108、主动区域适应引擎110或其组合的任意特征的操作。
本文描述的系统、装置和引擎,包括初始设计空间引擎108和主动区域适应引擎110,其处理功能可分布在多个系统部件之间,诸如分布在可选地包括多个分布式处理系统或云/网络元素的多个处理器和存储器之间。可分别地存储和管理参数、数据库和其他数据结构,参数、数据库和其他数据结构可合并到单个存储器或数据库中,可在逻辑和物理上以许多不同的方式被组织,并且可以以包括诸如链表、哈希表或隐式存储机制的数据结构的许多方式来实现。程序可以是跨越多个存储器和处理器分布或以许多不同方式(诸如在库(例如,共享库)中)被实现的单个程序、单独的程序的一部分(例如,子例程)。
虽然以上已描述了各种示例,但是更多的实施方式是可能的。
- 针对拓扑优化中的设计域的主动区域适应
- 在生活小区中的同一区域内设置兼顾停车与绿化设计方案的使用方法