- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
%%%% MMA%%%%functiontopMMA(nelx,nely,volfrac,penal,rmin)%% MATERIAL PROPERTIESE0 = 1;Emin = 1e-9;nu = 0.3;%% PREPARE FINITE ELEMENT ANALYSISA11 = [12 3 -6 -3; 3 12 3 0; -6 3 12 -3; -3 0 -3 12];A12 = [-6 -3 0 3; -3 -6 -3 -6; 0 -3 -6 3; 3 -6 3 -6];B11 = [-4 3 -2 9; 3 -4 -9 4; -2 -9 -4 -3; 9 4 -3 -4];B12 = [ 2 -3 4 -9; -3 2 9 -2; 4 9 2 3; -9 -2 3 2];KE = 1/(1-nu^2)/24*([A11 A12;A12 A11]+nu*[B11 B12;B12 B11]);nodenrs = reshape(1:(1+nelx)*(1+nely),1+nely,1+nelx);edofVec = reshape(2*nodenrs(1:end-1,1:end-1)+1,nelx*nely,1);edofMat = repmat(edofVec,1,8)+repmat([0 1 2*nely+[2 3 0 1] -2 -1],nelx*nely,1);iK = reshape(kron(edofMat,ones(8,1)),64*nelx*nely,1);jK = reshape(kron(edofMat,ones(1,8)),64*nelx*nely,1);% DEFINE LOADS AND SUPPORTS (HALF MBB-BEAM)%F = sparse(2,1,-1,2*(nely+1)*(nelx+1),1);%fixeddofs = union([1:2:2*(nely+1)],[2*(nelx+1)*(nely+1)]);%F = sparse(2*(nelx*(nely+1)+fix(nely/2)+1),1,-1,2*(nely+1)*(nelx+1),1);%fixeddofs = 1:2*(nely+1);F = sparse(2*(fix(nely/2)+1)-1,1,1,2*(nely+1)*(nelx+1),1);fixeddofs = [1 2 2*nely+1 2*nely+2];U = zeros(2*(nely+1)*(nelx+1),1);alldofs = 1:2*(nely+1)*(nelx+1);freedofs = setdiff(alldofs,fixeddofs);%% PREPARE FILTERiH = ones(nelx*nely*(2*(ceil(rmin)-1)+1)^2,1);jH = ones(size(iH));sH = zeros(size(iH));k = 0;for i1 = 1:nelxfor j1 = 1:nely e1 = (i1-1)*nely+j1;for i2 = max(i1-(ceil(rmin)-1),1):min(i1+(ceil(rmin)-1),nelx)for j2 = max(j1-(ceil(rmin)-1),1):min(j1+(ceil(rmin)-1),nely) e2 = (i2-1)*nely+j2; k = k+1;iH(k) = e1;jH(k) = e2;sH(k) = max(0,rmin-sqrt((i1-i2)^2+(j1-j2)^2));endendendendH = sparse(iH,jH,sH);Hs = sum(H,2);%% INITIALIZE ITERATIONx = repmat(volfrac,nely,nelx);n = nelx*nely;xold1 = repmat(0,n,1);xold2 = xold1; low = repmat(0,n,1);upp = repmat(1,n,1);loop = 0;change = 1;%% START ITERATIONwhile change 0.01loop = loop + 1; %% FE-ANALYSISsK = reshape(KE(:)*(Emin+x(:).^penal*(E0-Emin)),64*nelx*nely,1); K = sparse(iK,jK,sK); K = (K+K)/2;U(freedofs) = K(freedofs,freedofs)\F(freedofs); %
文档评论(0)