基于ESO方法位移约束下的拓扑优化.rar

  • 爱老虎油
    了解作者
  • matlab
    开发工具
  • 3KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 28
    下载次数
  • 2018-05-22 16:15
    上传日期
实现可靠性拓扑优化设计,添加到其他拓扑优化程序前面来实现优化设计。
基于ESO方法位移约束下的拓扑优化.rar
  • 基于ESO方法位移约束下的拓扑优化
  • reddistrib.m
    1KB
  • ESO.m
    2.1KB
  • OC.m
    1.4KB
  • lk.m
    837B
  • FE.m
    1.3KB
内容介绍
%------------------------------------------------------------------------------------- % Ex.8.1.4 % one side with fixly-supported condition for rectangular plate with individual % displacement and frequency constraints %------------------------------------------------------------------------------------- % INITIALIZE nelx=20; % the numbers of elements of x direction nely=48; % the numbers of elements of y direction x(1:nely,1:nelx) = 0.006*ones(nely,nelx); % initialization of thickness of elements a=0.0025; % length of element along x direction b=0.0025; % length of element along y direction p=1e4; % density of material loop = 0; % iteration variable h=0.2; % relaxation factor U44=-0.00015; % constrained displacement change =0.01; q=0.21; % parameter1 % START ITERATION while change>0.0001 loop = loop + 1; xold = x; % FE-ANALYSIS [U,U2]=FE(nelx,nely,xold); % OBJECTIVE FUNCTION AND SENSITIVITY ANALYSIS [KE] = lk; c = 0.; for ely = 1:nely for elx = 1:nelx n1 = (nely+1)*(elx-1)+ely; n2 = (nely+1)* elx +ely; edof = [2*n1-1; 2*n1; 2*n2-1; 2*n2; 2*n2+1; 2*n2+2; 2*n1+1; 2*n1+2]; c = c + 4*((xold(ely,elx)))*p*a*b; dc(ely,elx) = 4*p*a*b; Ue = U([2*n1-1; 2*n1; 2*n2-1; 2*n2; 2*n2+1; 2*n2+2; 2*n1+1; 2*n1+2],1); F2(edof,:)=xold(ely,elx)*KE*Ue; dU(ely,elx)=F2(edof,:)'*U2([edof],2*(nelx+0.5)*(nely+1)+1); end end % Lagrange multiplier lamda=c/(3*abs(U44)); % COMPUTATION OF DISPLACEMENT SENSITIVITIES [U5]=reddistrib(nelx,nely,x,dU,lamda,p,a,b,h); % DESIGN UPDATE BY THE OPTIMALITY CRITERIA METHOD [x]=OC(nelx,nely,x,h,U5,q); % iterated objective function y(loop)=c; % PRINT RESULTS change = abs(4*p*a*b*sum(sum(x))-4*p*a*b*sum(sum(xold)))/abs(4*p*a*b*sum(sum(x))); disp([' It.: ' sprintf('%4i',loop) ' Obj.: ' sprintf('%10.4f',4*p*a*b*sum(sum(x))) ... ' Vol.: ' sprintf('%6.3f',4*sum(sum(x))*a*b)]) % PLOT DENSITIES figure(1) colormap(gray); imagesc(-x); axis equal; axis tight; axis off;pause(1e-6); grid on; figure(2) plot(y) end
评论
  • czyyy 2019-02-20 17:39:20
    拿着别人之前的程序冒充可靠性拓扑优化,你不觉得厚颜无耻吗,为了一点分一点底线都没有
  • OEwfer-2061 2018-05-30 04:02:47
    就是想知道那一部分涉及可靠性了?
相关推荐