CN117807813B - 一种二维拓扑收敛的针织物样式仿真实现方法 - Google Patents
一种二维拓扑收敛的针织物样式仿真实现方法 Download PDFInfo
- Publication number
- CN117807813B CN117807813B CN202410224105.9A CN202410224105A CN117807813B CN 117807813 B CN117807813 B CN 117807813B CN 202410224105 A CN202410224105 A CN 202410224105A CN 117807813 B CN117807813 B CN 117807813B
- Authority
- CN
- China
- Prior art keywords
- node
- matrix
- nodes
- dimensional
- convergence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000004744 fabric Substances 0.000 title claims abstract description 33
- 238000004088 simulation Methods 0.000 title claims abstract description 20
- 239000011159 matrix material Substances 0.000 claims abstract description 98
- 238000005381 potential energy Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims abstract description 27
- 238000005457 optimization Methods 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 claims abstract description 8
- 238000009877 rendering Methods 0.000 claims abstract description 8
- 238000004458 analytical method Methods 0.000 claims abstract description 6
- 239000013598 vector Substances 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 abstract description 4
- 238000009940 knitting Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 239000004753 textile Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010417 needlework Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/12—Cloth
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种二维拓扑收敛的针织物样式仿真实现方法,包括:解析记载针织物样式针法信息的二维数据表得到一张二维链表,并根据链表生成力导向图,所述二维链表采用C++语言中8位的数据结构存储针法信息;基于力导向图建立KK模型,同时采用Eigen矩阵库记录KK模型;基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,结点收敛优化结束后进行渲染,这样通过设计解析过程实现表‑链‑图的转换,通过设计特定运行逻辑和数据结构来实现二维拓扑收敛的针织物样式仿真,拓扑收敛结果符合预期,可以处理复杂样式,算力表现良好,时间复杂度低。
Description
技术领域
本发明属于纺织工业计算机仿真技术领域,具体涉及一种二维拓扑收敛的针织物样式仿真实现方法。
背景技术
现有的针织物仿真技术专注于模拟纱线几何结构及其图形渲染。纱线的行针方向有weft和warp两个方向,同一条纱线从一个针脚连续织向下一个针脚即为weft方向(一般为横向),同一个针脚上方不断织入新的一行纱线即为warp方向(一般为纵向)。两个方向互相正交的特性,使得针织物衣片适合用二维表数据结构来模拟,如公开号为CN117188024A的专利申请公开的一种仿真苗族数纱绣数码针织物及其编织方法中,附图二维表中的每个单元格可以表示一个针法。
针织物的纱线模型不仅具有上述几何结构,也具有拓扑结构,即针法结点的无向图结构。拓扑结构可以指示针法结点之间的绕线关系,一般是非二维的。以减针针法“二针并一针”为例,针脚数在下一个wrap行自减1个;以加针针法“一针放三针”为例,针脚数在下一个warp行自增2个;复杂的拓扑如扭针等,则会产生更多自由度的无向图结构。这些拓扑结构的增加,会使得衣片样式失去原本的二维方正结构,如附图1所示,图1中数字代表行数,这个花样是用数字1234表示的四行为一组,现有技术难以适应并解决这个问题。
由于大部分针织场景所用到的针法是平针,产出平整的衣片样式,所以二维数据表结构可以满足一般的织机需求。但是,对于富含精细拓扑设计的场景,二维数据表并不能满足自由设计的功能。在完全的拓扑设计中,针脚数会自由地增加或减少,无向图结构渐趋复杂。不仅如此,由于针脚数的突然增加或减少,纱线的受力会不均匀,造成布料局部紧绷或松弛的状态,经过收敛后,这块布料会丧失正则二维形状,形成不规则形状的样式。在这种情况下,二维数据表难以对真实的布料样式进行仿真,很多时候甚至差异巨大。
这个问题的困难之处,在于难以寻求一个合适的抽象建模。行业从事者更多地关注计算机图形学以及渲染方面的应用。然而,现今计算机可视化方法、数值计算与优化算法等都比较成熟,却鲜有应用于纺织行业计算机仿真。研究发现将拓扑结构模拟为无向图之后,图中的每一条边都代表了针法结点之间的拓扑关系,而这种关系又以受力关系为主,所以也可以视为力导向图。所有弹簧经过自由伸缩后,形成一个整体势能最小的局面,这就是力导向图的收敛,是图模型自发地形变的过程。现有建立的Kamada-Kawai模型,并应用Barzilai-Borwein梯度下降算法(简称KK模型与BB算法,合称KKBB算法),完成了力导向图的收敛过程,但未提供具体实现,工业上也没有大规模应用的案例。
目前将KKBB算法实现并落地的困难,首先在于KK模型图结构中各结点之间的耦合度很强,无法直接应用于高效的GPU多核并行计算,导致算力瓶颈;其次在于“表-链-图”模型的转换困难,即针织物拓扑结构的原始设计是二维数据表,需要先解析形成一个指示拓扑结构信息的链表,然后转化为一张力导向图。
基于这些困难,在面对复杂的精细结构设计、花样丰富的针织场景时,计算机无法提供成熟可靠的设计辅助。现阶段,样式设计师们仍主要靠手工针织试样的方式,来测试并展现自己的创造。
发明内容
鉴于上述,本发明的目的是提供一种二维拓扑收敛的针织物样式仿真实现方法,通过设计解析过程实现表-链-图的转换,通过设计特定运行逻辑和数据结构来实现二维拓扑收敛的针织物样式仿真。
为实现上述发明目的,本发明实施例提供的一种二维拓扑收敛的针织物样式仿真实现方法,包括以下步骤:
解析记载针织物样式针法信息的二维数据表得到一张二维链表,并根据链表生成力导向图,所述二维链表采用C++语言中8位的数据结构存储针法信息;
基于力导向图建立KK模型,同时采用Eigen矩阵库记录KK模型;
基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,结点收敛优化结束后进行渲染。
优选地,所述二维链表采用的8位的数据结构表示为data[8],其中,data[0和1]这两位元素共16字节,存储若干原始数据和控制信息,包括针法名,是否因为加减针拓扑、针脚增加或减少而导致的结点被弃用信息,是否与相邻结点同属于一个针法信息;
data[2和3]这两位元素共16字节,前8字节指向二维数据表中的横向方向的下一个结点,后8字节指向二维数据表中的纵向方向的下一个结点;
data[4,5,6,和7]这四位元素共32字节,逐8字节分别指向拓扑结构的横向方向的下一个结点、拓扑的纵向方向的下一个结点、拓扑的横向方向的上一个结点、拓扑的纵向方向的上一个结点。
优选地,所述力导向图为无向图,存储每个结点的位置坐标和结点对之间的链长度,该链长度表示结点之间弹簧信息。
优选地,所述Eigen矩阵库包括初始结点坐标矩阵、收敛结点坐标矩阵、边矩阵、最短路径矩阵、三个KK参数矩阵;
结点在二维数据表中的原始位置对应的行标与列标视为浮点数,设为横、纵坐标的初值,设总共有r行c列,则共有N=r*c个初始结点,2×N维度的初始结点坐标矩阵存储这N个结点的初始坐标;
将解析过程中识别为拓扑上无效且需要被剔除的结点,剔除后剩余M个结点的坐标存储于收敛结点坐标矩阵;
M×M维度的边矩阵存储结点之间边对应的弹簧信息,若拓扑的结点之间存在弹簧设为1,否则设为负的INF;
M×M维度的最短路径矩阵存储M个结点之间的最短路径;
第一个KK参数矩阵存储dij值,其中,dij为最短路径矩阵中每个元素表示的第i个结点与第j个结点之间的最短路径;
第二个KK参数矩阵存储lij值,其计算过程为:设L0为显示区域的边长,代表收敛长度的上限,L0除以最短路径矩阵中最大值得到L值,dij值乘以L值得到lij值;
第三个KK参数矩阵存储kij值,其计算过程为:kij=K/dij2,K为预设值,优选为标准值1。
优选地,采用Floyd算法计算第i个结点与第j个结点之间的最短路径。
优选地,所述基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,包括:
建立2×M维度的梯度矩阵,存储每个结点的势能函数梯度grad;
建立1×M的中间矩阵用于存储参数alpha,第一次迭代alpha值为梯度矩阵中每一列的模倒数;
迭代时,收敛结点坐标矩阵中结点的坐标迭代步进一次,步进值为逐列相乘的负的grad*alpha,得到新收敛结点坐标矩阵,新收敛结点坐标矩阵与上一次收敛结点坐标矩阵中结点位置相减,得到变化量delta_v;
根据新收敛结点坐标矩阵计算每个结点的新grad,该新grad与上一次的grad相减,得到变化量delta_g;
根据两个变化量delta_v和delta_g计算下一次迭代所需要的新中间矩阵,具体中间矩阵中其每一列的新alpha值,设为delta_v和delta_g对应列的列向量的点积,再除以delta_g对应列的列向量的平方;
根据新grad和新alpha,进行下一次迭代与步进,直到结点收敛优化结束。
优选地,通过以下公式计算每个结点的势能函数梯度grad:
势能函数公式:
;
势能函数在第i个结点处的梯度:
;
;
其中,表示势能,i和j表示结点索引,/>分别表示结点i和结点j的横坐标,表示分别表示结点i和结点j的纵坐标,/>表示第i个结点在x方向的梯度,表示第i个结点在y方向的梯度。
优选地,在计算第i个和第j个结点各自的梯度时,梯度公式有一个共同的子项被各自计算了一次,设置一个M×M辅助矩阵aux,用来存储一次计算的子项:
;
表示辅助矩阵aux中位置(i,j)对应的元素值,这样对于每次迭代开始时的收敛结点坐标矩阵,先计算辅助矩阵aux,以降低求grad的计算量,进而被Eigen矩阵库组件和GPU并行模块加速计算。
优选地,结点收敛优化结束后通过OpenGL管线进行渲染。
与现有技术相比,本发明具有的有益效果至少包括:
通过设计解析过程实现表-链-图的转换,通过设计特定运行逻辑和数据结构来实现二维拓扑收敛的针织物样式仿真,拓扑收敛结果符合预期,可以处理复杂样式,算力表现良好,时间复杂度为O((m*n)3),m为织行数,n为针脚数(织列数),对于100x100规模(m=100,n=100)的二维原始输入,视计算机CPU主频可以即时显示或需要数秒不等,这个数值在合理范围内。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的非正则二维(局部变形)的针法拓扑无向图;
图2是实施例提供的二维拓扑收敛的针织物样式仿真实现方法的流程框图;
图3是实施例提供的二维拓扑收敛的针织物样式仿真实现方法的流程示意图,其中,蓝色为横向边,棕色为纵向边。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
实施例提供的一种二维拓扑收敛的针织物样式仿真实现方法,使用C++语言、Eigen矩阵库、OpenGL组件来实现,在64位机器上运行。使用的输入是展现针法初始设计的二维数据表,最终产出收敛了的、尽可能贴近真实形变拓扑的非正则二维布料形状。如附图3所示。具体的,如图2所示,包括以下步骤:
步骤1,解析记载针织物样式针法信息的二维数据表得到一张二维链表,并根据链表生成力导向图,所述二维链表采用C++语言中8位的数据结构存储针法信息。
实施例中,解析记载针织物样式针法信息的二维数据表获取每个结点处的针法信息,对针法信息进行处理,得到一张二维链表,包含每条纱线所贯穿的weft链,以及每个针脚走向的warp链。该二维链表采用C++语言中结构体为:struct Linked2DNode { void*data[8]; }。
其中,8位的数据结构data[8]用于存储针法信息,其中,data[0和1]这两位元素共16字节,存储若干原始数据和控制信息,包括针法名,是否因为加减针拓扑、针脚增加或减少而导致的结点被弃用信息,是否与相邻结点同属于一个针法信息等;
data[2和3]这两位元素共16字节,前8字节指向二维数据表中的横向(weft)方向的下一个结点(一般是横向向右,即next),后8字节指向二维数据表中的纵向(warp)方向的下一个结点(一般是纵向向上,即above);
data[4,5,6,和7]这四位元素共32字节,逐8字节分别指向拓扑结构的横向(weft)方向的下一个结点、拓扑的纵向(warp)方向的下一个结点、拓扑的横向(weft)方向的上一个结点、拓扑的纵向(warp)方向的上一个结点。
data[4,5,6,和7]体现的拓扑链条是双向的,即不仅存储weft、warp方向的下一个结点,还要存储上一个结点。这是因为加、减针的拓扑链是互为反向的,比如减针(多针并一针),多个结点指向了同一个结点,表示合并关系;如果是加针(一针放多针),也同样是多个结点指向同一结点,但是方向不同。
依据二维链表生成的力导向图为无向图,存储每个结点的位置坐标和结点对之间的链长度,该链长度表示结点之间弹簧信息,该力导向图为收敛前的力导向图数据。
步骤2,基于力导向图建立KK模型,同时采用Eigen矩阵库记录KK模型。
实施例中使用Eigen矩阵库进行存储,其声明与设置如下所示:
struct Undirected_Graph
{
scalar K, L, L0; // KK全局参数
Eigen::Matrix(矩阵)<scalar(标量), 2, Eigen::Dynamic(动态的)>vertices;// 2×N的初始结点坐标矩阵vertices,存储结点坐标;
Eigen::Matrix<scalar, 2, Eigen::Dynamic>vertices_topo; //收敛结点坐标矩阵vertices_topo,存储收敛后的结点坐标;
// 边矩阵edges存储弹簧信息,最短路径矩阵shortest_dist存储Floyd最短路径信息,用于计算KK参数;
Eigen::Matrix<scalar, Eigen::Dynamic, Eigen::Dynamic>edges, shortest_dist;
// KK参数信息
Eigen::Matrix<scalar, Eigen::Dynamic, Eigen::Dynamic>kij, lij, dij;
};
基于上述Eigen矩阵库中为力导向图的设置,构建的KK模型采用Eigen矩阵库记录,包括:
结点在二维数据表中的原始位置对应的行标与列标视为浮点数,设为横、纵坐标的初值,设总共有r行c列,则共有N=r*c个初始结点,2×N维度的初始结点坐标矩阵vertices存储这N个结点的初始坐标;
将解析过程中识别为拓扑上无效且需要被剔除的结点,剔除后剩余M(M≤N)个结点的坐标存储于收敛结点坐标矩阵vertices_topo,具体如二针并一针,合并后必定有一个针脚无效,二维顺序表无法体现这种拓扑关系,但由于该结点周围没有拓扑链条,所以它在拓扑上被识别为无效,依次来实现无效且需要被剔除的结点的判断。
M×M维度的边矩阵edges存储结点之间边对应的弹簧信息,若拓扑的结点之间存在弹簧设为1,否则设为负的INF(infinite,无穷大);
M×M维度的最短路径矩阵shortest_dist存储M个结点之间的最短路径,其中,最短路径可以采用Floyd算法计算;
第一个KK参数矩阵存储dij值,其中,dij为最短路径矩阵中每个元素表示的第i个结点与第j个结点之间的最短路径,对于没有弹簧连接导致最短路径被设为INF的情况,需要在dij中设为0,即不参与势能计算;
第二个KK参数矩阵存储lij值,其计算过程为:设L0为显示区域的边长,代表收敛长度的上限,L0除以最短路径矩阵中最大值得到L值,dij值乘以L值得到lij值;
第三个KK参数矩阵存储kij值,其计算过程为:kij=K/dij2,K为预设值,优选为标准值1。
步骤3,基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,结点收敛优化结束后进行渲染。
实施例中,应用BB算法逐结点计算势能函数梯度,判断每对弹簧在当前时刻的最宜收敛方向(伸长或压缩),这一步是算力瓶颈,通过操控矩阵模式与行为,做算力优化;确定收敛方向后,所有结点按照各自计算好的方向,步进一个小值,从而离开当前位置,也改变了弹簧的受力状态,与此同时监测弹簧势能变化;多次迭代后,直到总势能达到一个极小值,即步进多次后势能已不再明显变小,或者设置一个最大迭代次数,如1000次,则迭代结束,结点收敛优化完成,记录所有结点的最终位置坐标,交给OpenGL管线渲染其形变效果,结果作为输出呈现给用户。
具体地,迭代优化过程为:
(a)建立2×M维度的梯度矩阵,存储每个结点的势能函数梯度grad,势能函数梯度grad为势能函数对结点两个方向的偏导数,具体计算过程为:
势能函数公式:
;
势能函数在第i个结点处的梯度:
;
;
其中,表示势能,i和j表示结点索引,/>分别表示结点i和结点j的横坐标,表示分别表示结点i和结点j的纵坐标,/>表示第i个结点在x方向的梯度,表示第i个结点在y方向的梯度。
(b)建立1×M的中间矩阵用于存储参数alpha,第一次迭代alpha值为梯度矩阵中每一列的模倒数,即标准化系数。
(c)设置迭代次数(如1000),以及最小梯度阈值(如1e-6),开始迭代,迭代时,收敛结点坐标矩阵vertices_topo中结点的坐标迭代步进一次,步进值为逐列相乘的负的grad*alpha,得到新收敛结点坐标矩阵vertices_topo,新收敛结点坐标矩阵vertices_topo与上一次收敛结点坐标矩阵中结点位置相减,得到变化量delta_v;
根据新收敛结点坐标矩阵vertices_topo计算每个结点的新grad,该新grad与上一次的grad相减,得到变化量delta_g;
根据两个变化量delta_v和delta_g计算下一次迭代所需要的新中间矩阵,具体中间矩阵中其每一列的新alpha值,设为delta_v和delta_g对应列的列向量的点积,再除以delta_g对应列的列向量的平方;
根据新grad和新alpha,进行下一次迭代与步进,直到达到迭代次数,或者是grad的模已经比最小阈值还要小,即收敛过程已无明显变化,即告完成收敛。
在迭代优化过程中,只需要使势能达到极小值点,故而不需要计算势能本身,而是需要逐结点计算梯度。计算梯度时,每个结点又需要逐结点计算上述所有列子项并求和,所以,迭代一次的时间复杂度是O(M2)。由于计算梯度涉及到大量的浮点数运算,优化方法中点在于减少这一部分的浮点计算量。注意到它多余付出了一倍的计算量,因为在计算第i个和第j个结点各自的梯度时,上述势能公式有一个共同的子项被各自计算了一次,设置一个M×M辅助矩阵aux,用来存储一次计算的子项:
;
表示辅助矩阵aux中位置(i,j)对应的元素值,这样对于每次迭代开始时的收敛结点坐标矩阵,先计算辅助矩阵aux,以降低求grad的计算量,进而被Eigen矩阵库组件和GPU并行模块加速计算。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种二维拓扑收敛的针织物样式仿真实现方法,其特征在于,包括以下步骤:
解析记载针织物样式针法信息的二维数据表得到一张二维链表,并根据链表生成力导向图,所述二维链表采用C++语言中8位的数据结构存储针法信息;
基于力导向图建立KK模型,同时采用Eigen矩阵库记录KK模型;
基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,结点收敛优化结束后进行渲染;
所述二维链表采用的8位的数据结构表示为data[8],其中,data[0和1]这两位元素共16字节,存储若干原始数据和控制信息,包括针法名,是否因为加减针拓扑、针脚增加或减少而导致的结点被弃用信息,是否与相邻结点同属于一个针法信息;
data[2和3]这两位元素共16字节,前8字节指向二维数据表中的横向方向的下一个结点,后8字节指向二维数据表中的纵向方向的下一个结点;
data[4,5,6,和7]这四位元素共32字节,逐8字节分别指向拓扑结构的横向方向的下一个结点、拓扑的纵向方向的下一个结点、拓扑的横向方向的上一个结点、拓扑的纵向方向的上一个结点;
所述力导向图为无向图,存储每个结点的位置坐标和结点对之间的链长度,该链长度表示结点之间弹簧信息;
所述Eigen矩阵库包括初始结点坐标矩阵、收敛结点坐标矩阵、边矩阵、最短路径矩阵、三个KK参数矩阵;
结点在二维数据表中的原始位置对应的行标与列标视为浮点数,设为横、纵坐标的初值,设总共有r行c列,则共有N=r*c个初始结点,2×N维度的初始结点坐标矩阵存储这N个结点的初始坐标;
将解析过程中识别为拓扑上无效且需要被剔除的结点,剔除后剩余M个结点的坐标存储于收敛结点坐标矩阵;
M×M维度的边矩阵存储结点之间边对应的弹簧信息,若拓扑的结点之间存在弹簧设为1,否则设为负的INF;
M×M维度的最短路径矩阵存储M个结点之间的最短路径;
第一个KK参数矩阵存储dij值,其中,dij为最短路径矩阵中每个元素表示的第i个结点与第j个结点之间的最短路径;
第二个KK参数矩阵存储lij值,其计算过程为:设L0为显示区域的边长,代表收敛长度的上限,L0除以最短路径矩阵中最大值得到L值,dij值乘以L值得到lij值;
第三个KK参数矩阵存储kij值,其计算过程为:kij=K/dij2,K为预设值.。
2.根据权利要求1所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,K为标准值1。
3.根据权利要求1所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,采用Floyd算法计算第i个结点与第j个结点之间的最短路径。
4.根据权利要求1所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,基于KK模型应用BB算法计算结点的势能函数梯度,并依据势能函数梯度进行结点收敛优化,包括:
建立2×M维度的梯度矩阵,存储每个结点的势能函数梯度grad;
建立1×M的中间矩阵用于存储参数alpha,第一次迭代alpha值为梯度矩阵中每一列的模倒数;
迭代时,收敛结点坐标矩阵中结点的坐标迭代步进一次,步进值为逐列相乘的负的grad*alpha,得到新收敛结点坐标矩阵,新收敛结点坐标矩阵与上一次收敛结点坐标矩阵中结点位置相减,得到变化量delta_v;
根据新收敛结点坐标矩阵计算每个结点的新grad,该新grad与上一次的grad相减,得到变化量delta_g;
根据两个变化量delta_v和delta_g计算下一次迭代所需要的新中间矩阵,具体中间矩阵中每一列的新alpha值,设为delta_v和delta_g对应列的列向量的点积,再除以delta_g对应列的列向量的平方;
根据新grad和新alpha,进行下一次迭代与步进,直到结点收敛优化结束。
5.根据权利要求3所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,通过以下公式计算每个结点的势能函数梯度grad:
势能函数公式:
;
势能函数在第i个结点处的梯度:
;
;
其中,表示势能,i和j表示结点索引,/>分别表示结点i和结点j的横坐标,/>表示分别表示结点i和结点j的纵坐标,/>表示第i个结点在x方向的梯度,/>表示第i个结点在y方向的梯度。
6.根据权利要求3所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,在计算第i个和第j个结点各自的梯度时,梯度公式有一个共同的子项被各自计算了一次,设置一个M×M辅助矩阵aux,用来存储一次计算的子项:
;
表示辅助矩阵aux中位置(i,j)对应的元素值,这样对于每次迭代开始时的收敛结点坐标矩阵,先计算辅助矩阵aux。
7.根据权利要求1所述的二维拓扑收敛的针织物样式仿真实现方法,其特征在于,结点收敛优化结束后通过OpenGL管线进行渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410224105.9A CN117807813B (zh) | 2024-02-29 | 2024-02-29 | 一种二维拓扑收敛的针织物样式仿真实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410224105.9A CN117807813B (zh) | 2024-02-29 | 2024-02-29 | 一种二维拓扑收敛的针织物样式仿真实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807813A CN117807813A (zh) | 2024-04-02 |
CN117807813B true CN117807813B (zh) | 2024-05-17 |
Family
ID=90434859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410224105.9A Active CN117807813B (zh) | 2024-02-29 | 2024-02-29 | 一种二维拓扑收敛的针织物样式仿真实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807813B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875132A (zh) * | 2018-05-07 | 2018-11-23 | 华侨大学 | 一种多工况下应力约束类桁架连续体结构的拓扑优化方法 |
CN110660129A (zh) * | 2019-09-23 | 2020-01-07 | 重庆邮电大学 | 一种基于数字单元法的三维正交织物微观几何结构建模方法 |
WO2020215533A1 (zh) * | 2019-04-26 | 2020-10-29 | 大连理工大学 | 一种基于材料场缩减级数展开的结构拓扑优化方法 |
CN116227275A (zh) * | 2023-01-14 | 2023-06-06 | 中国科学院光电技术研究所 | 基于时域伴随拓扑优化的光谱调控超表面设计方法 |
CN116644634A (zh) * | 2023-06-01 | 2023-08-25 | 长沙理工大学 | 一种基于sdofr和预处理回收共轭梯度法的结构拓扑优化方法 |
CN117497108A (zh) * | 2023-11-17 | 2024-02-02 | 北京工业大学 | 基于主应力方向改进的连续纤维复合材料多尺度优化方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852011B (zh) * | 2019-11-08 | 2022-09-20 | 大连理工大学 | 一种基于序列Kriging代理模型的结构非梯度拓扑优化方法 |
CN111859693B (zh) * | 2020-07-28 | 2021-07-02 | 大连理工大学 | 一种高效的多孔结构表示和优化方法 |
-
2024
- 2024-02-29 CN CN202410224105.9A patent/CN117807813B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875132A (zh) * | 2018-05-07 | 2018-11-23 | 华侨大学 | 一种多工况下应力约束类桁架连续体结构的拓扑优化方法 |
WO2020215533A1 (zh) * | 2019-04-26 | 2020-10-29 | 大连理工大学 | 一种基于材料场缩减级数展开的结构拓扑优化方法 |
CN110660129A (zh) * | 2019-09-23 | 2020-01-07 | 重庆邮电大学 | 一种基于数字单元法的三维正交织物微观几何结构建模方法 |
CN116227275A (zh) * | 2023-01-14 | 2023-06-06 | 中国科学院光电技术研究所 | 基于时域伴随拓扑优化的光谱调控超表面设计方法 |
CN116644634A (zh) * | 2023-06-01 | 2023-08-25 | 长沙理工大学 | 一种基于sdofr和预处理回收共轭梯度法的结构拓扑优化方法 |
CN117497108A (zh) * | 2023-11-17 | 2024-02-02 | 北京工业大学 | 基于主应力方向改进的连续纤维复合材料多尺度优化方法 |
Non-Patent Citations (2)
Title |
---|
李炜龙 ; 徐赐军 ; 李远慧 ; .面向机械结构形态的三维模型拓扑信息存储方法.机械设计.2020,(第08期),全文. * |
面向机械结构形态的三维模型拓扑信息存储方法;李炜龙;徐赐军;李远慧;;机械设计;20200820(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117807813A (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leaf et al. | Interactive design of periodic yarn-level cloth patterns | |
Tang et al. | I-Cloth: Incremental collision handling for GPU-based interactive cloth simulation | |
CN110110413B (zh) | 一种基于材料场缩减级数展开的结构拓扑优化方法 | |
Wu et al. | Knittable stitch meshes | |
CN107357567A (zh) | 一种可视化脚本编辑器的设计系统和方法 | |
CN105427360A (zh) | 一种动态网格的误差可控cage序列表示算法 | |
CN117807813B (zh) | 一种二维拓扑收敛的针织物样式仿真实现方法 | |
CN107357954B (zh) | 一种基于有限元法的经编金属丝网力学特性分析 | |
EP4202792A1 (en) | Method and system for determining many-body localization, and storage medium and program product | |
CN115017773A (zh) | 一种三维网格模型的降维方法、电子设备和介质 | |
CN113890042A (zh) | 基于有源配电网的潮流计算方法 | |
CN116776427A (zh) | 一种钢箱梁桥空间曲面板纵向加劲肋bim模型参数化建模方法和系统 | |
CN107437265B (zh) | 基于相似度量与权重衡量的彩色提花cad中的配色方法 | |
Kyosev | Modelling approaches for constructing the geometry of textiles at the mesoscale level | |
CN111859268B (zh) | 一种基于网格点格架的磁张量异常空间域快速正演方法 | |
WO2022104826A1 (zh) | 鞋面网布的参数化制作方法、鞋面网布及鞋 | |
CN112199921A (zh) | 一种基于解析布局算法的数据路径布局方法 | |
CN114638111B (zh) | 一种基于三维网格采样的袜品辅助设计系统 | |
Oghazian et al. | A simulation process for implementation of knitted textiles in developing architectural tension structures | |
CN118194663B (zh) | 一种基于位置动力学的针织物模拟仿真方法 | |
CN115861030B (zh) | 图形处理器及其系统变量生成方法、介质 | |
Kapllani et al. | Topological, Manufacturability and Stability Analysis of Weft-Knitted Textiles | |
CN117435308B (zh) | 一种基于并行计算算法的Modelica模型仿真方法及系统 | |
Dietricha et al. | Adaptive building of truss network for deformation analysis of 3D-knitted technical-textiles | |
CN118069312A (zh) | 面向异构平台的代数多重网格的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |