一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种提高三维结构的强度的装置及方法与流程

2022-11-16 15:18:11 来源:中国专利 TAG:


1.本发明涉及三维建模与结构优化领域,尤其是一种通过进行大规模最差情况的拓扑优化来提高三维结构抗外界载荷的能力,从而提高三维结构的强度的装置及方法。


背景技术:

2.拓扑优化是一种通过优化结构内部的材料分布来提高结构抗外界载荷能力的方法,经过拓扑优化过的结构往往可以使用更少的耗材而达到与原本实体结构相似甚至更好的性能,因而节省了成本,因此这一方法在制造业和建筑业中都有广泛的应用。当外界载荷不确定时,一种拓扑优化方法是优化其在最差的载荷分布下的应变能。为了进行数值计算,通常要对结构进行有限元离散,离散精度越高,问题规模也就越大。经过离散化后,求这个最差的载荷分布可以转化为一个矩阵的特征值问题,而这个矩阵的计算开销与受力点数相关,当问题规模或者受力面积比较大时,求取这个矩阵会面临非常大的计算开销。另外一种方法是将问题转化为半正定规划问题,而当问题规模变大时,半正定规划的时间和内存消耗也是非常高的。因而使得这个问题变得很困难。
3.目前还没有方法可以在大规模情况下显著减少处理上述问题的计算开销,其计算时间是难以接受的。比如对于一个普通的3d打印的玩具模型,模型表面的受力是不确定的,为了提高玩具的强度,防止被玩坏同时为了节省打印耗材,可以使用最差情况拓扑优化方法去优化模型内部的结构,从而加固模型脆弱的地方以抵抗不确定的载荷。因为模型全表面都有可能受外力,这样一个比较大的受力面积下利用已有的方法去做最差情况拓扑优化,以一般的家用计算机的算力可能需要几个星期甚至几个月,而这样的工作效率是难以接受的。


技术实现要素:

4.本发明的目的是提供一种新的大规模最差情况拓扑优化装置及方法,可以显著减少其计算开销,使得以普通的家用计算机的算力求解的计算时间依然可以接受,从而能够提高三维结构的强度。
5.本发明解决对应问题所采用的技术方案是:通过计算机软件对输入三维结构进行高精度的最差情况拓扑优化,并根据优化结果来对三维结构进行加固,主要包括以下步骤:读取三维模型、和包括受力区域的受力配置的数据;根据读取的数据,将所述三维模型进行高精度离散为多个体素,并对每个体素分配密度变量;利用多重网格法和幂法,对所述三维模型计算最差载荷和位移场;判断所述三维模型对所述最差载荷的应变能是否收敛;若收敛则根据密度变量生成三维模型的结果数据,否则根据所述最差载荷的分布和位移场来更新所述每个体素的密度变量,并返回计算的步骤再次计算。
6.根据本发明提供的技术方案可以看出,本发明通过使用一种新的幂法,高效地求解出最差载荷的分布,有效避免了以往的方法中时间和算力开销大的缺点,并且不需要使用者具有相关的专业知识。与现有技术相比,有时可以将相同精度下的优化过程的计算时
间从几个星期甚至几个月减少到几个小时内。例如,用户只需要提供三维模型以及填充模型的材料参数和受力配置,通过本发明的算法就可以在普通家用电脑上对模型进行高精度的最差情况拓扑优化,使用方便,尤其适用于制造设计和工业建筑。该方法容易集成到cad/cae软件中,或者单独做成软件给设计人员或者工程师使用,在有需求时可以以家用计算机的算力在数小时内完成对设计好外形的模型进行内部结构的优化,从而提高模型对外界不确定载荷的承载能力。本专利可以应用于玩具等制造业以及桥梁等建筑业中。
7.本专利所述的提高三维结构的强度包括但不限于:通过改变三维结构的材料分布来增强三维结构本身的强度;通过更少的材料来实现与原三维结构相同强度的其他三维结构等各种本领域普通技术人员能够想到的情形。
附图说明
8.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
9.图1为本发明实施例提供的大规模最差情况拓扑优化的算法流程图;
10.图2和图3为本发明实施例提供的输入模型和受力配置以及最后的优化结果示意图;左图是模型的外形,实心箭头框住或者实心箭头指向的区域是用户提供的受力区域,而空心三角形指向的区域则是用户给定的固定边界;中图是优化后的密度场图;右图是最后优化完成后从密度场中生成的实体模型的截面图。
具体实施方式
11.下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,但应该理解,可以以各种形式实现本公开而不被本文说明的实施例所限制。相反,提供这些实施例是为了使本领域技术人员更加清楚彻和完整地理解本公开。
12.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象,仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。下文还可能包括其他明确的和隐含的定义。
13.本文记载的方法步骤的先后顺序不一定表示方法必须以该出现的先后顺序进行。只有本领域普通技术人员(例如程序员)在阅读本文后直接明确地认为该技术步骤应当按照特定顺序实施时,该步骤顺序才具有限定作用。在现代计算机系统中,方法步骤根据需要可以是并行执行的、或者以不同于出现在文中的顺序执行。
14.根据计算机软件保护条例,软件包括计算机程序及其有关文档。而计算机程序是指为了得到某种结果而可以由计算机执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列;文档是指用来描述程序的内容、组成、
设计、功能规格、开发情况、测试结果及使用方法的文字资料和图表等。
15.不同于上述法规中的严格区分,在本文中,软件和程序这两个用语可以是互换使用的,具体要结合上下文进行判断。而本文所述的代码则是以离散形式表示信息的字符串,可以构成软件的一部分,也可以不构成。代码可以独立运行,也可能无法独立运行。代码的长度和复杂度一般要小于软件或程序。
16.本实施例拆解了部分步骤来更加清楚地描述技术方案。
17.在读取步骤中,由计算机装置的读取单元读取用户输入的三维模型和受力配置、以及用户可选的离散精度、使用的材料参数e,v和期望的材料用量v
*
∈[0,1]。
[0018]
此处,e,v代表填充材料的弹性模量和泊松比。例如,如果优化的是3d打印的树脂模型,这个两个参数指的就是树脂的弹性模量和泊松比。v
*
代表用户需要的填充比,即模型内部的填充材料的体积比上模型外表体积。如果想要实体模型,这个参数就是1,如果是完全空心的就是0,其他参数下,本技术的算法会优化出相应的内部结构使得填充比恰好是用户指定的。
[0019]
受力配置一般包括:受力区域、以及用户可选的固定边界和外力是否约束为表面法向。
[0020]
此处,若用户不输入离散精度、材料参数、材料用量、固定边界或约束等时,则可以使用算法默认的值。这些参数在接下来的处理中会使用到。另外,虽然受力区域一般由用户输入,但是受力区域也可以由计算机生成。受力区域虽然一般是用户指定的,但生成受力区域可以不在算法内,不过如果用户不提供受力区域的话,可以指定模型全表面为受力区域默认值。
[0021]
例如,用户可以向计算机输入一个结构的三维模型,通常是一个网格文件,并可以给出模型的受力区域和固定边界。如图2、图3的左图所示。
[0022]
在离散步骤中,由计算机的离散单元对三维模型进行高精度离散。此处所述的高精度离散一般是指将三维模型离散为2000-3000万个体素单元,对于本领域所述的高精度而言,普通技术人员可以理解其一般是指千万级别以上的精度。
[0023]
计算机的离散单元将对上述三维模型按照用户给定的精度进行离散,网格中每个体素将会分配一个密度变量ρe∈[0.001,1],初始化每个密度变量为v;并按照多重网格法的要求从离散化得到的网格开始再生成一系列粗化的网格。
[0024]
此处,ρe代表将模型进行有限元离散后,每个体素单元指定的一个密度变量,这个变量代表着体素填充材料的程度,1代表该体素填充实体,0代表该体素为空心。为了防止出现数值问题,一般指定下界为0.001,而不是0。
[0025]
在计算步骤中,由计算机的计算单元解决三维模型的优化问题。
[0026]
在离散化后的网格上,受力配置描述了外力会出现的节点以及受力方向。根据这些信息可以把外力f满足的约束写为nf=0。一个载荷的好坏可以用其产生的应变能f
t
k-1
f来描述,应变能大意味着三维结构在该载荷下的刚度小,反之亦然。为了平等地比较不同的载荷分布,需要限定他们具有相同的大小,所以约束外力的二模为1,也就是‖f‖=1,这样,最差载荷可以通过解下面的问题求得:
[0027][0028]
s.t.‖f‖=1,
[0029]
nf=0。
[0030]
此处,k代表体素化后,模型的整体刚度矩阵。这个整体的刚度阵是由每个体素的刚度阵装配而成的,每个体素的刚度阵可以计算为其中p一般为3,而k0是实心单元(ρe=1时)的单元刚度矩阵。体素化后,每个体素的顶点就是一个节点,每个节点上都有一个外力,f代表三维模型表面的受力经过离散化后的结果,这些点上的外力组成了整体的外力向量f。n代表离散后化后的三维模型,只有用户指定的受力区域受力,而且受力方向可能也确定。该矩阵和f构成的线性约束nf=0,描述的就是这些用户给定的条件。
[0031]
令ker n的一组标准正交基组成矩阵h,则上述问题可以转化为一个问题:
[0032][0033][0034]
此处,ker n,h分别指的是矩阵n的零空间和其对应的一组正交基。
[0035]
这等价于求矩阵的最大特征值,此时需要优化结构在给定材料用量下最差载荷下的应变能,即求解问题:
[0036][0037]
s.t.∑eρe≤v
*
∑e1,
[0038]
其中λ
max
表示最大特征值。
[0039]
在计算步骤中,具体而言,可以利用修改过的幂法求出最差载荷分布以及位移场。
[0040]
可以通过幂法求得:
[0041]
1.随机生成一个φ0,并归一化φ0:=φ0/‖φ0‖
[0042]
2.令并归一化φ
i 1
=φ
i 1
/||φ
i 1
||
[0043]
3.判断收敛,如果收敛则退出并返回φ
i 1
;否则令i:=i 1并回到2.
[0044]
此处,φ,x,y代表幂法迭代中使用的中间向量。
[0045]
为了避免计算h,本发明引入了新变量yi=hφi,这样可以将迭代变为y
i 1
=hh
t
k-1
yi,由于hh
t
恰好是到空间kern的投影,记为p。它可以表示为p=i-n
t
n,这样每次迭代中本技术只需要执行矩阵n及其转置与向量的乘法和一次向量减法运算,省去了h。同时为了高效计算k-1
yi,本发明使用了多重网格方法,可以与显卡进行并行计算。并且每次只做一次v-cycle得到k-1
yi的近似,就进入下一次幂法迭代。经过实践发现这样可以大大减少时间开销并且同样可以收敛。
[0046]
本发明的幂法步骤如下:
[0047]
1.在最细的网格上生成随机的初始力y0,投影到可行域并进行归一化。初始化位移场x0=0,并令i=0。
[0048]
2.以当前位移场xi计算残差ri=||y
i-kxi||,并以xi作为初始在网格序列上进行一次多重网格法的v-cycle,得到更新的位移场:
[0049]
x
i 1
=xi v-1
(ri),
[0050]
3.将更新后的位移场x
i 1
投影到可行域空间并归一化得到更新的力场为:
[0051][0052]
4.判断ri《∈r和||y
i 1-yi||《∈f是否同时成立,如果成立则退出并返回f
worst
=y
i 1
作为最差的载荷分布和u
worst
=x
i 1
作为最差载荷分布下的位移场。如果不同时成立,则令i:=i 1并返回2。
[0053]
此处,v-1
代表一次多重网格法的v-cycle过程。f
worst
,u
worst
分别对应最差情况下的外力和位移向量,最差情况即产生最大应变能的情况。
[0054]
在判断步骤中,计算机的判断单元判断计算出的最差载荷下的应变能是否收敛,如果收敛则退出,否则进入更新步骤。退出后,可以根据优化后的密度变量由计算机的生成单元生成三维模型的结果数据,如图2、图3的中图所示。此处的三维模型可以利用3d打印机根据结果数据打印出来,如图2、图3的右图所示,也可以在工厂用水泥根据结果数据进行浇筑等,还可以通过其他已知或将来开发的方式生成。
[0055]
幂法中有变量x,y分别对应位移和载荷,当算法收敛时,y收敛到最差载荷f
worst
,x收敛到在该载荷下对应的最差位移u
worst
,最差的位移场就是模型在受到最差载荷下产生的变形位移。他们的关系是f
worst
=ku
worst
[0056]
在更新步骤中,计算机的更新单元根据求出的最差载荷下的位移场来更新密度变量。
[0057]
按照最优准则法更新密度变量。
[0058]
首先计算每个体素对应的灵敏度:
[0059]
此处,ge代表每个体素上定义的灵敏度,这个值的意义是该体素中密度变量ρe的变化对最差情况应变能的影响大小,ge越大说明最差应变能对ρe的变化越敏感。
[0060]
然后对灵敏度进行滤波:
[0061][0062]
其中,
[0063][0064]
pi是第i个体素的中心坐标。
[0065]
密度的更新准则如下:
[0066][0067]
其中clamp(x,l,u)是钳住函数,当x》u时返回u,当x《l时返回l,否则返回x。是经过二分法搜索得到的一个乘子,搜索的目的是使得当密度按上式更新后,体积比v
new
=∑eρe/∑e1与用户给定的体积用量v接近:|v
new-v|《10-4
。δρ是每次更新密度变量的最大步长,通常设置为0.02~0.08。
[0068]
密度变量更新后返回计算步骤。
[0069]
本文公开的可以是方法、设备、系统、存储介质和程序产品。程序产品可以存储在可读存储介质中,具有用于执行本公开的各个方面的计算机指令。这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或
多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0070]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算处理设备中的计算机可读存储介质中。无线传输可以使用诸如无线保真(wi-fi)网络的无线局域网(wlan)、蓝牙(bt)、全球导航卫星系统(gnss)、调频(fm)、近距离无线通信技术(nfc)、红外技术(ir)等无线通信的解决方案。
[0071]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如c语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0072]
这里参照根据本公开实施例的方法、设备、系统、存储介质和程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0073]
在本文描述的实施例中,应该理解到,所公开的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0074]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0075]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0076]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器执行本技术各个实施例方法的全部或部分步骤。
[0077]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献