代码和使用方法

代码和使用方法

ID:20118808

大小:30.50 KB

页数:3页

时间:2018-10-08

代码和使用方法_第1页
代码和使用方法_第2页
代码和使用方法_第3页
资源描述:

《代码和使用方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、代码及使用方法.txt我这人从不记仇,一般有仇当场我就报了。没什么事不要找我,有事更不用找我!就算是believe中间也藏了一个lie!我那么喜欢你,你喜欢我一下会死啊?我又不是人民币,怎么能让人人都喜欢我?程序执行方法:(justformatlabnewusers)7.1以上版本打开matlab,点开newM-file,将上述源程序复制粘贴到M-文件中,修改蓝色部分的格式,保存。按F5即可执行~%%%%A99LINETOPOLOGYOPTIMIZATIONCODEBYOLESIGMUND,JANUARY2000%%%%%%%CODEMODI

2、FIEDFORINCREASEDSPEED,September2002,BYOLESIGMUND%%%functiontop(nelx,nely,volfrac,penal,rmin);nelx=80;%x轴向单元数目nely=20;%y轴向单元数据volfrac=0.4;%体积比penal=3;%材料插值的惩罚因子rmin=2;%敏度过滤的半径%INITIALIZE初始化x(1:nely,1:nelx)=volfrac;%x是设计变量loop=0;%存放迭代次数的变量change=1.;%每次迭代目标函数的改变值,用来判断何时收敛%STAR

3、TITERATION开始迭代whilechange>0.01%当两次目标函数的迭代的差小于0.01时候,停止迭代loop=loop+1;%迭代次数加1xold=x;%将前一次的设计变量付给xold%FE-ANALYSIS有限元分析[U]=FE(nelx,nely,x,penal);%OBJECTIVEFUNCTIONANDSENSITIVITYANALYSIS目标函数和灵敏度很细[KE]=lk;%单元刚度矩阵c=0.;%用来存放目标函数的变量,这里目标函数是刚度最大,也就是柔度最小forely=1:nelyforelx=1:nelxn1=(n

4、ely+1)*(elx-1)+ely;n2=(nely+1)*elx+ely;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);c=c+x(ely,elx)^penal*Ue'*KE*Ue;%计算目标函数柔度的值dc(ely,elx)=-penal*x(ely,elx)^(penal-1)*Ue'*KE*Ue;%灵敏度分析的结果,参考文献公式endend%FILTERINGOFSENSITIVITIES[dc]=check(nelx,nely,rmin,x,dc);%灵

5、敏度过滤,为了边界光顺%DESIGNUPDATEBYTHEOPTIMALITYCRITERIAMETHOD[x]=OC(nelx,nely,x,volfrac,dc);%优化准则法更新设计变量%PRINTRESULTSchange=max(max(abs(x-xold)));%计算目标函数的该变量disp(['It.:'sprintf('%4i',loop)'Obj.:'sprintf('%10.4f',c)...'Vol.:'sprintf('%6.3f',sum(sum(x))/(nelx*nely))...'ch.:'sprintf('

6、%6.3f',change)])%屏幕显示迭代信息%PLOTDENSITIEScolormap(gray);imagesc(-x);axisequal;axistight;axisoff;pause(1e-6);end%%%%%%%%%%OPTIMALITYCRITERIAUPDATE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[xnew]=OC(nelx,nely,x,volfrac,dc)%oc算法子程序l1=0;l2=100000;move=0.2;%l1、l2用于体积约束的拉格朗日乘子w

7、hile(l2-l1>1e-4)lmid=0.5*(l2+l1);xnew=max(0.001,max(x-move,min(1.,min(x+move,x.*sqrt(-dc./lmid)))));%核心部分参见林文ifsum(sum(xnew))-volfrac*nelx*nely>0;%采用了二乘法更新拉格朗日乘子l1=lmid;elsel2=lmid;endend%%%%%%%%%%MESH-INDEPENDENCYFILTER%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[dcn]=

8、check(nelx,nely,rmin,x,dc)%敏度过滤技术子程序dcn=zeros(nely,nelx);fori=1:nelxforj=1:nelysum

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。