设计域离散化初始化,有限元分析,灵敏度分析,网格过滤,OC优化准则设计变量
1 %%%% A 99 LINE TOPOLOGY OPTIMIZATION CODE BY OLESIGMUND, OCTOBER 1999 %%% 99行程序代码
2 function top(nelx,nely,volfrac,penal,rmin);水平方向上的离散单元,竖直方向的离散单元,材料体积与设计域体积之比,惩罚因子,灵敏度过滤半径
3 % INITIALIZE初始化
4 x(1:nely,1:nelx) = volfrac; x为设计变量,给设计域内单元一个初始相对密度
5 loop = 0;迭代次数
6 change = 1.; change是储存迭代之后目标函数的改变值,判断是否收敛。
7 % START ITERATION开始迭代
8 while change > 0.01 改变量小于等于0.01时结束迭代
9 loop = loop + 1;迭代次数加1
10 xold = x; 前一次的设计变量赋值给xold
11 % FE-ANALYSIS有限元分析
12 [U]=FE(nelx,nely,x,penal); 对每次迭代都进行有限元分析,计算节点位移,储存在全局位移U中
13 % OBJECTIVE FUNCTION AND SENSITIVITY ANALYSIS目标函数和灵敏度分析
14 [KE] = lk;计算单元刚度矩阵
15 c = 0.; 储存目标函数变量
16 for ely = 1:nely
17 for elx = 1:nelx
18 n1 = (nely+1)*(elx-1)+ely; 左上角节点编号
19 n2 = (nely+1)* elx +ely; 右上角节点编号