现代设计理论及方法优化设计实验报告

合集下载

现代设计方法---优化设计

现代设计方法---优化设计

E=2×105MPa。现要求在满足使用要求的条件下,试设计一个用
料最省的方案。
优化目标
用料最省
V 1 d 2L
4
d
F M
L
强度条件
max
FL 0.1d 3
w
M
0.2d 3
条件 刚度条件
f
FL3 3EJ
64FL3
3Ed 4
f
边界条件 L Lmin 8c14m
例3 设某车间生产A和B两种产品,每种产品各有两道工序,分 别由两台机器完成这两道工序,其工时列于表中。若每台机器每 周至多工作40小时。产品A的单价为200元,产品B的单价为500 元。问每周A、B产品应各生产多少件,可使总产值为最高。 (这是生产规划的最优化问题)
F —弹簧在负荷P作用下所产生的变形量
n —弹簧的有效圈数
d —弹簧材料的直径
G —弹簧材料的切变模量
3
• 根据上式,如己知或先预定 D2、n、d、G 各参数,通过多次试算、
修改,就有可能得到压簧刚度等于或接近于 的设P计参数。
• 刚度公式也可以写成一般的多元函数表达式,即
• 式中 代表性y能指f 标(xi ) , 是i 设 1计,2参,量,,N分别代 表 、y 、 、 ,所以P xi 。
0 x L
x b
图1-2
这一优化设计问题是具有两个设计变 量(即x和α)的非线性规划问题。
13
例2:有一圆形等截面的销轴,一端固定,一端作用着集中载荷
F=1000N和扭矩M=100N·m。由于结构需要,轴的长度L不得小于
8cm,已知销轴材料的许用弯曲应力[σW]=120MPa,许用扭转切 应力[τ]=80MPa,允许挠度[f]=0.01cm,密度ρ=7.8t/m3,弹性模量

现代设计黄金分割法、复合形法实验报告

现代设计黄金分割法、复合形法实验报告

《现代设计理论与方法》实验报告一、实验目的机械优化设计是一门实践性较强的课程,学生通过实际上机计算可以达到以下目的:1.加深对机械优化设计方法的基本理论和算法步骤的理解;2.培养学生独立编制或调试计算机程序的能力;3.掌握常用优化方法程序的使用方法;4.培养学生灵活运用优化设计方法解决工程实际问题的能力。

二、实验项目、学时分配及对每个实验项目的要求序号实验项目学时实验要求1 黄金分割法2 1.明确黄金分割法基本原理、计算步骤及程序框图;2.编制或调试黄金分割法应用程序;3.用测试题对所编程序进行测试;4.撰写实验报告。

2 复合形法41.明确复合形法基本原理、计算步骤及程序框图等;2.编制或调试复合形法应用程序;3.用测试题对所编程序进行测试;4.撰写实验报告。

三、测试题1.黄金分割法程序测试题1) ,取,,程序如下:#include<stdio.h>#include<conio.h>#include<math.h>#define e 0.00001#define tt 0.01float function(float x){float y=pow(x,2)-10*x+36;//求解的一维函数 return(y);}void finding(float a[3],float f[3]){float t=tt,a1,f1,ia;int i;a[0]=0;//初始区间的下界值f[0]=function(a[0]);for(i=0;;i++){a[1]=a[0]+t;f[1]=function(a[1]);if(f[1]<f[0]) break;if(fabs(f[1]-f[0])>=e){t=-t;a[0]=a[1];f[0]=f[1];}else{if(ia==1) return;t=t/2;ia=1;}}for(i=0;;i++){a[2]=a[1]+t;f[2]=function(a[2]);if(f[2]>f[1]) break;t=2*t;a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];}if(a[0]>a[2]){a1=a[0];f1=f[0];a[0]=a[2];f[0]=f[2];a[2]=a1;f[2]=f1;}return;}float gold(float *ff){float a1[3],f1[3],a[4],f[4];float aa;int i;finding(a1,f1);a[0]=a1[0];f[0]=f1[0];a[3]=a1[2];f[3]=f1[2];a[1]=a[0]+0.382*(a[3]-a[0]);a[2]=a[0]+0.618*(a[3]-a[0]);f[1]=function(a[1]);f[2]=function(a[2]);for(i=0;;i++){if(f[1]>=f[2]){a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];a[2]=a[0]+0.618*(a[3]-a[0]);f[2]=function(a[2]);}else{a[3]=a[2];f[3]=f[2];a[2]=a[1];f[2]=f[1];a[1]=a[0]+0.382*(a[3]-a[0]);f[1]=function(a[1]);}if((a[3]-a[0])<e){aa=(a[1]+a[2])/2;*ff=function(aa);break;}}return(aa);}void main(){float xx, ff;xx=gold(&ff);printf("\n The Optimal Design Result Is:\n"); printf("\n\tx*=%f\n\tf*=%f", xx, ff);getch();}运行结果:2) ,取,,程序如下:#include<stdio.h>#include<conio.h>#include<math.h>#define e 0.00001#define tt 0.01float function(float x){float y=pow(x,4)-5*pow(x,3)+4*pow(x,2)-6*x+60;//求解的一维函数 return(y);}void finding(float a[3],float f[3]){float t=tt,a1,f1,ia;int i;a[0]=0;//初始区间的下界值f[0]=function(a[0]);for(i=0;;i++){a[1]=a[0]+t;f[1]=function(a[1]);if(f[1]<f[0]) break;if(fabs(f[1]-f[0])>=e){t=-t;a[0]=a[1];f[0]=f[1];}else{if(ia==1) return;t=t/2;ia=1;}}for(i=0;;i++){a[2]=a[1]+t;f[2]=function(a[2]); if(f[2]>f[1]) break;t=2*t;a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];}if(a[0]>a[2]){a1=a[0];f1=f[0];a[0]=a[2];f[0]=f[2];a[2]=a1;f[2]=f1;}return;}float gold(float *ff){float a1[3],f1[3],a[4],f[4];float aa;int i;finding(a1,f1);a[0]=a1[0];f[0]=f1[0];a[3]=a1[2];f[3]=f1[2];a[1]=a[0]+0.382*(a[3]-a[0]);a[2]=a[0]+0.618*(a[3]-a[0]);f[1]=function(a[1]);f[2]=function(a[2]);for(i=0;;i++){if(f[1]>=f[2]){a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];a[2]=a[0]+0.618*(a[3]-a[0]);f[2]=function(a[2]);}else{a[3]=a[2];f[3]=f[2];a[2]=a[1];f[2]=f[1];a[1]=a[0]+0.382*(a[3]-a[0]);f[1]=function(a[1]);}if((a[3]-a[0])<e){aa=(a[1]+a[2])/2;*ff=function(aa);break;}}return(aa);}void main(){float xx, ff;xx=gold(&ff);printf("\n The Optimal Design Result Is:\n");printf("\n\tx*=%f\n\tf*=%f", xx, ff);getch();}运行结果如下:3) ,其中,取,,程序如下:#include<stdio.h>#include<conio.h>#include<math.h>#define e 0.00001#define tt 0.01float function(float x){float y=(x+1)*pow((x-2),2);//求解的一维函数return(y);}void finding(float a[3],float f[3]){float t=tt,a1,f1,ia;int i;a[0]=0;//初始区间的下界值f[0]=function(a[0]);for(i=0;;i++){a[1]=a[0]+t;f[1]=function(a[1]); if(f[1]<f[0]) break;if(fabs(f[1]-f[0])>=e){t=-t;a[0]=a[1];f[0]=f[1];}else{if(ia==1) return;t=t/2;ia=1;}}for(i=0;;i++){a[2]=a[1]+t;f[2]=function(a[2]); if(f[2]>f[1]) break;t=2*t;a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];}if(a[0]>a[2]){a1=a[0];f1=f[0];a[0]=a[2];f[0]=f[2];a[2]=a1;f[2]=f1;}return;}float gold(float *ff){float a1[3],f1[3],a[4],f[4];float aa;int i;finding(a1,f1);a[0]=a1[0];f[0]=f1[0];a[3]=a1[2];f[3]=f1[2];a[1]=a[0]+0.382*(a[3]-a[0]);a[2]=a[0]+0.618*(a[3]-a[0]);f[1]=function(a[1]);f[2]=function(a[2]);for(i=0;;i++){if(f[1]>=f[2]){a[0]=a[1];f[0]=f[1];a[1]=a[2];f[1]=f[2];a[2]=a[0]+0.618*(a[3]-a[0]);f[2]=function(a[2]);}else{a[3]=a[2];f[3]=f[2];a[2]=a[1];f[2]=f[1];a[1]=a[0]+0.382*(a[3]-a[0]);f[1]=function(a[1]);}if((a[3]-a[0])<e){aa=(a[1]+a[2])/2;*ff=function(aa);break;}}return(aa);}void main(){float xx, ff;xx=gold(&ff);printf("\n The Optimal Design Result Is:\n"); printf("\n\tx*=%f\n\tf*=%f", xx, ff);getch();}运行结果如下:2.复合形法程序测试题1)取:程序如下:#include "math.h"#include "stdio.h"#include "stdlib.h"#define E1 0.001#define ep 0.00001#define n 2#define k 4double af;int i,j;double X0[n],XX[n],X[k][n],FF[k];double a[n],b[n];double rm=2657863.0;double F(double C[n]){double F;F=pow(C[0]-2,2)+pow(C[1]-1,2);return F;}int cons(double D[n]){if((D[1]-pow(D[0],2)>=0)&&((2-D[0]-D[1])>=0)) return 1;elsereturn 0;}void bou(){a[0]=-5,b[0]=6;a[1]=-5,b[1]=8;}double r(){double r1,r2,r3,rr;r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm; if(rm>=r3){rm=rm-r3;}if(rm>=r2){rm=rm-r2;}if(rm>=r1){rm=rm-r1;}rr=rm/r1;return rr;}void produce(double A[n],double B[n]){int jj;double S;s1: for(i=0;i<n;i++){S=r();XX[i]=A[i]+S*(B[i]-A[i]);}if(cons(XX)==0){goto s1;}for(i=0;i<n;i++){X[0][i]=XX[i];}for(j=1;j<k;j++){for(i=0;i<n;i++){S=r();X[j][i]=A[i]+S*(B[i]-A[i]);}}for(j=1;j<k;j++){for(i=0;i<n;i++){X0[i]=0;for(jj=1;jj<j+1;jj++){X0[i]+=X[jj][i];}X0[i]=(1/j)*(X0[i]);}if(cons(X0)==0){goto s1;}for(i=0;i<n;i++){XX[i]=X[j][i];}while(cons(XX)==0){for(i=0;i<n;i++){X[j][i]=X0[i]+0.5*(X[j][i]-X0[i]); XX[i]=X[j][i];}}}}main(){double EE,Xc[n],Xh[n],Xg[n],Xl[n],Xr[n],Xs[n],w; int l,lp,lp1;bou();s111:produce(a,b);s222:for(j=0;j<k;j++){for(i=0;i<n;i++){XX[i]=X[j][i];}FF[j]=F(XX);}for(l=0;l<k-1;l++){for(lp=0;lp<k-1;lp++){lp1=lp+1;if(FF[lp]<FF[lp1]){w=FF[lp];FF[lp]=FF[lp1];FF[lp1]=w;for(i=0;i<n;i++){XX[i]=X[lp][i];X[lp][i]=X[lp1][i];X[lp1][i]=XX[i]; }}}}for(i=0;i<n;i++){Xh[i]=X[0][i];Xg[i]=X[l][i];Xl[i]=X[k-1][i];}for(i=0;i<n;i++){Xs[i]=0;for(j=0;j<k;j++){Xs[i]+=X[j][i];}Xs[i]=1/(k+0.0)*Xs[i];}EE=0;for(j=0;j<k;j++){EE+=pow((FF[j]-F(Xs)),2); }EE=pow((1/(k+0.0)*EE),0.5); if(EE<=E1){goto s333;}for(i=0;i<n;i++){Xc[i]=0;for(j=1;j<k;j++){Xc[i]+=X[j][i];}Xc[i]=1/(k-1.0)*Xc[i]; }if(cons(Xc)==1){af=1.3;ss:for(i=0;i<n;i++){Xr[i]=Xc[i]+af*(Xc[i]-Xh[i]); }if(cons(Xr)==1){if(F(Xr)>=F(Xh)){if(af<=ep){for(i=0;i<n;i++){Xh[i]=Xg[i];}af=1.3;goto ss;}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){X[0][i]=Xr[i];}goto s222;}}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){if(Xl[i]<Xc[i]){a[i]=Xl[i];b[i]=Xc[i];}else{a[i]=Xc[i];b[i]=Xl[i];}}goto s111;}s333:printf("F(Xmin)=%f\n",F(Xl));for(i=0;i<n;i++){printf("\n The X%d is %f.",i,Xl[i]); }}运行结果如下:2)取:程序如下:#include "math.h"#include "stdio.h"#include "stdlib.h"#define E1 0.001#define ep 0.00001#define n 4#define k 6double af;int i,j;double X0[n],XX[n],X[k][n],FF[k];double a[n],b[n];double rm=2657863.0;double F(double C[n]){double F;F=100*pow(C[1]-C[0],2)+pow(1-C[0],2)+90*pow(C[3]-(pow(C[2],2)),2)+pow(1-C[2],2)+10*(pow(C[0]-1,2)+pow(C[3]-1,2))+19.8*(C[1]-1)*(C[3]-1);return F;}int cons(double D[n]){if((D[0]>=-10)&&(D[1]>=-10)&&(D[2]>=-10)&&(D[3]>=-10)&&(D[0]<=10)&&(D[1]<=10)&&(D[2]<=10)&&(D[3]<=10))return 1;elsereturn 0;}void bou(){a[0]=-10,b[0]=10;a[1]=-10,b[1]=10;a[2]=-10,b[2]=10;a[3]=-10,b[3]=10;}double r(){double r1,r2,r3,rr;r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm;if(rm>=r3){rm=rm-r3;}if(rm>=r2){rm=rm-r2;}if(rm>=r1){rm=rm-r1;}rr=rm/r1;return rr;}void produce(double A[n],double B[n]){int jj;double S;s1: for(i=0;i<n;i++){S=r();XX[i]=A[i]+S*(B[i]-A[i]);}if(cons(XX)==0){goto s1;}for(i=0;i<n;i++){X[0][i]=XX[i];}for(j=1;j<k;j++){for(i=0;i<n;i++){S=r();X[j][i]=A[i]+S*(B[i]-A[i]); }}for(j=1;j<k;j++){for(i=0;i<n;i++){X0[i]=0;for(jj=1;jj<j+1;jj++){X0[i]+=X[jj][i];}X0[i]=(1/j)*(X0[i]);}if(cons(X0)==0){goto s1;}for(i=0;i<n;i++){XX[i]=X[j][i];}while(cons(XX)==0){for(i=0;i<n;i++){X[j][i]=X0[i]+0.5*(X[j][i]-X0[i]);XX[i]=X[j][i];}}}}main(){double EE,Xc[n],Xh[n],Xg[n],Xl[n],Xr[n],Xs[n],w; int l,lp,lp1;bou();s111:produce(a,b);s222:for(j=0;j<k;j++){for(i=0;i<n;i++){XX[i]=X[j][i];}FF[j]=F(XX);}for(l=0;l<k-1;l++){for(lp=0;lp<k-1;lp++){lp1=lp+1;if(FF[lp]<FF[lp1]){w=FF[lp];FF[lp]=FF[lp1];FF[lp1]=w;for(i=0;i<n;i++){XX[i]=X[lp][i];X[lp][i]=X[lp1][i];X[lp1][i]=XX[i]; }}}}for(i=0;i<n;i++){Xh[i]=X[0][i];Xg[i]=X[l][i];Xl[i]=X[k-1][i];}for(i=0;i<n;i++){Xs[i]=0;for(j=0;j<k;j++){Xs[i]+=X[j][i];}Xs[i]=1/(k+0.0)*Xs[i];}EE=0;for(j=0;j<k;j++){EE+=pow((FF[j]-F(Xs)),2);}EE=pow((1/(k+0.0)*EE),0.5);if(EE<=E1){goto s333;}for(i=0;i<n;i++){Xc[i]=0;for(j=1;j<k;j++){Xc[i]+=X[j][i];}Xc[i]=1/(k-1.0)*Xc[i];}if(cons(Xc)==1){af=1.3;ss:for(i=0;i<n;i++){Xr[i]=Xc[i]+af*(Xc[i]-Xh[i]); }if(cons(Xr)==1){if(F(Xr)>=F(Xh)){if(af<=ep){for(i=0;i<n;i++){Xh[i]=Xg[i];}af=1.3;goto ss;}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){X[0][i]=Xr[i];}goto s222;}}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){if(Xl[i]<Xc[i]){a[i]=Xl[i];b[i]=Xc[i];}else{a[i]=Xc[i];b[i]=Xl[i];}}goto s111;}s333:printf("F(Xmin)=%f\n",F(Xl));for(i=0;i<n;i++){printf("\n The X%d is %f.",i,Xl[i]); }}运行结果下:3)取:程序如下:#include "math.h"#include "stdio.h"#include "stdlib.h"#define E1 0.001#define ep 0.00001#define n 2#define k 4double af;int i,j;double X0[n],XX[n],X[k][n],FF[k];double a[n],b[n];double rm=2657863.0;double F(double C[n]){double F;F=pow(C[0],2)+pow(C[1],2)-C[0]*C[1]-10*C[0]-4*C[1]+60; return F;}int cons(double D[n]){if((D[0]>=0)&&(D[1]>=0)&&(6-D[0]>=0)&&(8-D[1]>=0)) return 1;elsereturn 0;}void bou(){a[0]=0,b[0]=6;a[1]=0,b[1]=8;}double r(){double r1,r2,r3,rr;r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm;if(rm>=r3){rm=rm-r3;}if(rm>=r2){rm=rm-r2;}if(rm>=r1){rm=rm-r1;}rr=rm/r1;return rr;void produce(double A[n],double B[n]) {int jj;double S;s1: for(i=0;i<n;i++){S=r();XX[i]=A[i]+S*(B[i]-A[i]);}if(cons(XX)==0){goto s1;}for(i=0;i<n;i++){X[0][i]=XX[i];}for(j=1;j<k;j++){for(i=0;i<n;i++){S=r();X[j][i]=A[i]+S*(B[i]-A[i]);}}for(j=1;j<k;j++){for(i=0;i<n;i++){X0[i]=0;for(jj=1;jj<j+1;jj++){X0[i]+=X[jj][i];X0[i]=(1/j)*(X0[i]);}if(cons(X0)==0){goto s1;}for(i=0;i<n;i++){XX[i]=X[j][i];}while(cons(XX)==0){for(i=0;i<n;i++){X[j][i]=X0[i]+0.5*(X[j][i]-X0[i]);XX[i]=X[j][i];}}}}main(){double EE,Xc[n],Xh[n],Xg[n],Xl[n],Xr[n],Xs[n],w; int l,lp,lp1;bou();s111:produce(a,b);s222:for(j=0;j<k;j++){for(i=0;i<n;i++){XX[i]=X[j][i];FF[j]=F(XX);}for(l=0;l<k-1;l++){for(lp=0;lp<k-1;lp++){lp1=lp+1;if(FF[lp]<FF[lp1]){w=FF[lp];FF[lp]=FF[lp1];FF[lp1]=w;for(i=0;i<n;i++){XX[i]=X[lp][i];X[lp][i]=X[lp1][i];X[lp1][i]=XX[i]; }}}}for(i=0;i<n;i++){Xh[i]=X[0][i];Xg[i]=X[l][i];Xl[i]=X[k-1][i];}for(i=0;i<n;i++){Xs[i]=0;for(j=0;j<k;j++){Xs[i]+=X[j][i];}Xs[i]=1/(k+0.0)*Xs[i];}EE=0;for(j=0;j<k;j++){EE+=pow((FF[j]-F(Xs)),2);}EE=pow((1/(k+0.0)*EE),0.5);if(EE<=E1){goto s333;}for(i=0;i<n;i++){Xc[i]=0;for(j=1;j<k;j++){Xc[i]+=X[j][i];}Xc[i]=1/(k-1.0)*Xc[i];}if(cons(Xc)==1){af=1.3;ss:for(i=0;i<n;i++){Xr[i]=Xc[i]+af*(Xc[i]-Xh[i]); }if(cons(Xr)==1){if(F(Xr)>=F(Xh)){if(af<=ep){for(i=0;i<n;i++){Xh[i]=Xg[i];}af=1.3;goto ss;}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){X[0][i]=Xr[i];}goto s222;}}else{af=1/2.0*af;goto ss;}}else{for(i=0;i<n;i++){if(Xl[i]<Xc[i]){a[i]=Xl[i];b[i]=Xc[i];} else{a[i]=Xc[i];b[i]=Xl[i];}}goto s111;}s333:printf("F(Xmin)=%f\n",F(Xl));for(i=0;i<n;i++){printf("\n The X%d is %f.",i,Xl[i]);}}运行结果如下:四、实验心得与体会1.通过本次实验熟悉了黄金分割法与复合形法上机步骤。

现代设计理论与方法(优化设计第二章)

现代设计理论与方法(优化设计第二章)
证明:作变换 X Y Q b 式中: (Y ) f (Y Q 1b)
1
致 1 结论:Q为正定矩阵的二次型 Y QY 的等值面是以 Y 0知 2 的同心椭球面族。原二次函数就是以 X Q b 为中 力 行 心的同心椭球面族,椭圆中心为极小值点。
0
f x2
f xn x
T
0
明 德x0
f i 1 xi
n
cos i f ( x0 )T d f ( x0 ) cos(f , d )
x0
多元函数的梯度的模:
f 1/ 2 f ( x0 ) [ ( ) ] i 1 xi x0
x2 1
该方向上的单位向量为
4 2 2 5 0 5 f ( x ) e 0 2 2 1 f ( x ) 4 (2) 5 5
2 2 1 0 5 5 5 5 新点 x x1 x 0 e 1 1 1 5 1 5 5 5
明 德 任 责
Q为对称矩阵,f ( X ) X T QX
二次型
f ( X ) 致 2QX
知 力 行
第二节 多元函数的泰勒展开
1、一元函数
f x 在
x x0
点处的泰勒展开为:
1 x0 x f x0 x 2 f x f x0 f 2
f x1 x x2 x 2 0
2 f x1x2 x1 2 x f 2 致 2 知 x2 x
0
明 德 任 责
力 行
2 f x12 令 G ( x0 ) 2 f x x 2 1

结构优化设计理论与方法研究

结构优化设计理论与方法研究

结构优化设计理论与方法研究随着现代工程技术的不断发展和进步,结构优化设计已成为了工程领域中的一个重要问题。

无论是大型建筑、航空航天、交通运输还是能源领域,都离不开结构优化设计的理论和方法。

在这个领域中,设计者需要通过分析和优化结构的形态和材料,来确定最佳的设计方案。

一、优化设计的基本原理优化设计的基本原理是通过对结构进行多种参数优化,以达到最佳设计方案。

在设计过程中,要考虑到各种限制条件,并确定问题的最优解。

将这个过程数学化,可以得到一个最小值问题。

这个问题的解决就需要使用优化算法。

例如,最常使用的方法是全局优化方法,如遗传算法、模拟退火法、差分进化算法等。

对于多目标优化问题,则需根据不同的目标设定权重,将问题转化为单一目标优化问题。

在这一过程中,必须考虑到多种重要因素,例如结构的重量、安全、经济和环保等等。

二、常见的优化设计方法1. 拓扑优化拓扑优化是指在不改变结构物体积的情况下,寻找最优形态的过程。

这种优化方法主要基于有限元分析(finite element analysis,FEA),对设计中的有限元进行重新分区,以改善其力学性能。

在拓扑优化中,通过选择优化变量,对结构的所有点进行重分布,以寻找最优解。

2. 几何形状优化几何形状优化是基于有限元分析的三维几何模型进行优化,通过优化材料的位置来改进结构的性能。

这种优化方法通常是基于梁、板和壳体的理论模型,并考虑到材料的特性,设计出最优的结构形态。

3. 材料优化材料优化是指通过改变结构的材料类型、厚度和比例来优化其性能。

这种优化方法通常需要进行复杂的有限元分析,以确定结构所需的最佳材料和厚度。

在材料优化中,通常需要考虑材料的拉伸、压缩、剪切力学和疲劳破坏等因素。

4. 多目标优化多目标优化是指在结构中考虑多种因素的优化问题。

在多目标优化中,设计者需要将不同的优化目标进行权重分配,并确定最佳的综合方案。

例如,设计者需要同时考虑结构的造价、稳定性和安全性等重要因素。

现代设计理论与方法-优化设计

现代设计理论与方法-优化设计
(4)遗传算法使用概率搜索技术。遗传算法的选 择、交叉、变异等运算都是以一种概率的方式来 进行的,因而遗传算法的搜索过程具有很好的灵 活性。随着进化过程的进行,遗传算法新的群体 会更多地产生出许多新的优良的个体
第二十页,共57页。
传统搜索方法
第二十一页,共57页。
遗传算法简介
遗传算法简称GA(Genetic Algorithm),最 早 由 美 国 Michigan 大 学 的 J. Holland 教 授 提 出 (于上世纪60-70年代,以1975年出版的一本著作 为代表),模拟自然界遗传机制和生物进化论而成 的一种并行随机搜索最优化方法。
设计常量:可以根据客观规律或具体条件预先确定 的参数,如材料的力学性能,机器的工况系数等。
设计变量:在设计过程中不断变化,需要在设计过 程中进行选择的基本参数,称为设计变量,如几何尺 寸、速度、加速度、温度等。
第二页,共57页。
优化设计实例
设计一密闭矩形容器,其容积为3m3,容器的宽度 不小于1.5m,以便于装卸车搬运,为使成本最低, 要求用料最省。
第二十八页,共57页。
若只有选择和交叉,而没有变异,则无法在初 始基因组合以外的空间进行搜索,使进化过程在 早期就陷入局部解而进入终止过程,从而影响解 的质量。为了在尽可能大的空间中获得质量较高 的优化解,必须采用变异操作。
第二十九页,共57页。
遗传算法的特点
(1)遗传算法是对参数的编码进行操作,而非对 参数本身,这就是使得我们在优化计算过程中可 以借鉴生物学中染色体和基因等概念,模仿自然 界中生物的遗传和进化等机理
第十页,共57页。
3)分类 按约束条件,又可分为性能约束和边界约束。 (1)性能约束 是针对设计对象的某种性能或指标而给出

现代设计方法-优化设计

现代设计方法-优化设计

x2
g(X) 0 g(X) 0
x2
h(X ) 0 h(X ) 0
g(X) 0
h(X ) 0
x1
x1
在一个优化设计问题的设计空间中,满足所有
约束条件的点构成的子空间,称为可行域。
➢ 满足所有约束条件的点称为可行点(内点和边界点) ➢ 不满足所有约束条件的点称为非可行点(外点)
约束条件:
g1( X ) x12 x22 16 0 g2 ( X ) 2 x2 0
由n个设计变量 x1, x2 ,, xn 为坐标所组成的实空间称作
设计空间。一个“设计”,可用设计空间中的一点表示。
设计变量所组成的设计空间
x2
x3
X =[x1 x2]T
X=[ x1 x2 x3 ]T
x1
x2
二维设计空间
x1
三维设计空间
思考:四维空间、五维空间、……,n维空间怎么表示?
设计空间的维数表征设计的自由度,设计变量越多, 则设计的自由度越大、可供选择的方案越多,设计越 灵活,但难度也越大、求解也越复杂。
规格 1080 1040
970
方案
根数

0
1
2

0
0
3

2
0
0
每根棒料料头长度
3000-1×1040-2×970 = 20 3000-3×970 = 90
3000-2×1080 = 840
设每一种下料方案中下料根数为 x1, x2 , x3 ,则下料料
头最少的目标函数为:
min f ( X ) 20x1 90x2 840x3
约束条件
一个可行设计必须满足某些设计限制条件,这些 限制条件称作约束条件,简称约束。

优化设计的实验报告

优化设计的实验报告

优化设计的实验报告一、设计目的和背景现代工程设计中,优化设计是提高产品性能和降低成本的重要手段之一、优化设计的目标是通过合理的设计改进产品的形状、结构、材料和工艺等方面,使得产品在给定的约束条件下达到最优性能。

本实验旨在通过优化设计的方法,提高一个结构件的刚度。

二、实验内容实验采用有限元分析软件对原始结构件进行建模和分析,确定初始的结构刚度。

然后,在对初始结构进行可行性分析的基础上,采用一种优化算法,按照给定的约束条件进行优化设计,得到改进后的结构。

最后,再次使用有限元分析软件对改进后的结构进行分析,得到新的结构刚度。

三、实验步骤1.建立原始结构件的有限元模型。

首先,使用有限元分析软件将原始结构件的几何形状转换为一个虚拟三维模型。

然后,在模型上划分网格,并设置结构件材料的力学参数,以及边界条件等。

2.进行有限元分析。

对于原始结构件的有限元模型,进行静态或动态分析,得到相应的位移和应力场。

3.可行性分析。

根据分析结果,评估是否存在结构刚度不足问题,以及可能的改进方向。

4.优化设计。

根据可行性分析的结果,选择一种适当的优化算法进行设计优化。

将原始结构件的有限元模型作为初始解,通过迭代更新模型参数,直到满足约束条件。

5.进行新结构的有限元分析。

在得到优化后的结构模型后,使用有限元分析软件进行新结构的分析,得到新的位移和应力场。

6.结果分析和比较。

对比优化前后的分析结果,分析改进的效果,验证优化设计的可行性和有效性。

四、实验结果和分析根据实验中的步骤,首先对原始结构进行有限元分析,得到其初始的位移和应力场。

然后,根据初始分析结果进行可行性分析,发现结构刚度不足的问题。

在优化设计过程中,采用遗传算法对结构进行优化,设置约束条件为使结构刚度提高20%。

经过多次迭代后,得到优化后的结构。

最后,再次进行有限元分析,得到新的位移和应力场。

通过对比优化前后的分析结果,发现新结构在刚度方面有了显著的提高,并且在位移和应力方面也有所改善。

现代设计理论与方法优化设计法和创造性设计法

现代设计理论与方法优化设计法和创造性设计法

现代设计理论与方法优化设计法和创造性设计法优化设计法是一种通过系统分析、建模和优化算法,以寻求最佳设计或最优解的方法。

它的主要思想是将设计问题转化为一个数学模型,通过对模型进行优化,找到最佳解决方案。

优化设计法以效率和效果最大化为目标,可以应用于各个领域的设计中。

优化设计法的基本步骤主要包括:定义设计目标和限制条件,建立数学模型,选择适当的优化算法,进行优化计算,评估结果并进行调整。

在现代工程设计中,优化设计法被广泛应用于各种领域,如结构设计、产品设计、系统设计等。

通过优化设计法,可以提高设计效率、降低成本、增加产品性能等。

与优化设计法相对应的是创造性设计法。

创造性设计法是一种通过创新和想象来解决设计问题的方法。

它的核心思想是鼓励设计师发散思维,跳出传统思维模式,寻找创新的解决方案。

创造性设计法的基本步骤主要包括:明确设计问题,收集相关信息,进行头脑风暴和联想,生成创意解决方案,评估和改进。

创造性设计法强调灵感、想象和创新,它可以激发设计师的创造力,帮助他们找到具有差异化和独特性的设计方案。

在现代设计中,创造性设计法被广泛应用于各种领域,如艺术设计、工业设计、交互设计等。

优化设计法和创造性设计法在实践中常常相互结合。

优化设计法通过算法和数学模型提供了一种系统化的方法来解决设计问题,而创造性设计法则提供了一种创新的思维方式来激发创造力。

综上所述,现代设计理论与方法包括了优化设计法和创造性设计法。

优化设计法强调效率和效果的最优化,创造性设计法则强调创新和想象力的发扬。

两者可以相互配合,为设计师提供全面的解决方案,提高设计效率和设计品质。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学实验报告课程名称:现代设计理论与方法实验名称:优化设计上机实验学院:实验日期:班级:姓名:学号:一、实验要求1. 采用MA TLAB等编程语言,编写优化程序,计算优化结果;2. 完成大作业书面报告,对每个题目进行分析建模,包括:①设计变量的选择;②优化目标函数的确定;③约束条件的确定。

二、优化分析1. 镗刀杆(销轴)结构参数优化①设计变量的选择题目要求“试在满足强度、刚度条件下,设计一个用料最省的方案”,即在满足性能要求的前提下,使设计方案的质量(体积)最小。

最直接的思路为,控制长度L和直径d最小。

而根据条件分析,亦可通过改变截面形状(改变轮廓形状、使截面空心等)、改变不同L处截面形状等复杂的空间质量分布模式等,来到达最优的目的。

为便于分析,此处选择设计变量为刀杆直径d、长度L(实际可直接取最小值)为设计变量。

②优化目标函数的确定刀杆用料最省,即体积最小:V=14πd2L→min设x1=d,x2=L 则目标函数为min f X=V=1πd2l=1πx12x2=0.785x12x2③约束条件的确定根据材料力学知识,应有:σmax<στmax<τf max<f 带入已知条件,则有:σmax=32πd3M Z2+0.75M n2≤[σ]τmax=16M nπd3≤[τ]f max=PL3≤[f]L≥802. 梯形截面管道参数优化①设计变量的选择题目要求设计管道的参数,即取管道截面的高度h、底边长度c、底边与侧边所夹锐角θ为设计变量。

②优化目标函数的确定已知管道内液体的流速与管道截面的周长S的倒数成正比例关系,当液体流速最大时,则管道截面周长最小:S=2h+2c+2h→min③约束条件的确定管道的截面面积一定,则有:A=h c+h=64516管道截面为梯形,则有:0<θ<πh>0c>03. 厂址选择问题①设计变量的选择设位于i地的工厂从j地购买的原材料质量为B ij,位于i地的工厂向j地销售的产品质量为S ij。

即设计变量为B ij ,S ij (i,j=A,B,C)②优化目标函数的确定记i、j两地距离为L ij(i,j=A,B,C),记i地生产费用为P i(i=A,B,C)题目要求总费用最小:C=5000B ij L ij+5000S ij L ij+S i P i→min③约束条件的确定从各地购买的原材料总和小于等于其产量在各地销售的产品总和小于等于其销售量(S ij−1 3jB ij)<0S ijj−5<04.桁架结构优化①设计变量的选择题目要求“对该桁架优化设计使其质量最轻”,题目给出的限制条件较少。

同样可认为优化算法中,可以改变每根杆的截面形状、改变每根杆上不同位置处的截面形状,或者仅改变每根杆的直径,使得体积最小,即质量最轻。

所以,取每根杆的直径d i(i=1,2,3,…,10)为设计变量。

②优化目标函数的确定桁架质量最轻,即总体积最小。

忽略连接处体积变化,则有:V=1πL i d i2→min 10i=1③约束条件的确定各根杆在同一节点处位移相等相应杆在节点1、6处位移为零σi max<σ (i=1,2,3, (10)5.半圆弧拱结构截面优化①设计变量的选择题目要求“求截面应力小于20MPa的最优设计”。

认为最优设计为用料最少,假定各处截面形状一致,即求截面面积最小。

同时,假定截面形状固定为题目所示的“口”字形,则可以取设计变量为高度H、宽度B、壁厚T。

②优化目标函数的确定用料最少,即截面面积最小:S=BH−B−2T H−2T=2TB+2TH−4T2→min③约束条件的确定截面应力小于20MPa,即:σmax<20 MPa截面为“口”字形:B>0,H>0,T>0B>2T,H>2T6. 正方形板拓扑优化①设计变量的选择题目要求“试用拓扑优化对其体积进行优化,使其质量最小,刚度最大”。

则设计变量应为正方形板的质量在体积上的分布。

考虑到其厚度相对宽度极小,可认为设计变量为其质量在面积上的分布X。

②优化目标函数的确定设正方形板的质量为f M X,正方形板的刚度f S X,则有:f M X→min−f S X→min所以优化目标函数可为两个函数的加权函数:g f M,f S→min③约束条件的确定正方形板左边的变形为0质量在边界范围内连续分布σmax<[σ]附:参考程序1. 镗刀杆(销轴)结构参数优化①优化目标函数:function f=taget(x)f=pi/4*x(1)^2*x(2);②约束条件:function[c,ceq]=mycon(x)c(1)=((10000*x(2))^2+(0.75*100000)^2)^0.5/(pi*x(1)^3/32)-120;c(2)=100000/(pi*x(1)^3/16)-80;c(3)=10000*x(2)^3/(3*200000*pi*x(1)^4/32)-0.1;ceq=[];③主程序:A=[0 -1];b=[-80];Aeq=[];beq=[];lb=[0;0];ub=[inf;inf];x0=[1;80];options=optimset('LargeScale','off','display','iter');[x,fval]=fmincon(@taget1,x0,A,b,[],[],lb,ub,@mycon1,options)④计算求解:2. 梯形截面管道参数优化①主程序:lb=[0;0;0];A=[0 0 1];b=[pi/2];ub=[inf;inf;inf];x0=[64516^0.5;64516^0.5;pi/2];[x,fval]=fmincon(@taget2,x0,A,b,[],[],lb,ub,@mycon2)②优化目标函数:function f=taget2(x)f=-1/(x(1)+2*x(2)/sin(x(3))+x(1)+2*x(2)/tan(x(3)));③约束条件:function[c,ceq]=mycon2(x)ceq=(x(1)+x(1)+2*x(2)/tan(x(3)))*x(2)/2-64516;c=[];④计算求解:3. 厂址选择问题①优化目标函数:function f=fun01(x)f=75*x(1)+50*x(2)+75*x(3)+100*x(4)+50*x(5)+100*x(6)+150*x(7)+240*x(8)+210*x(9)+1 20*x(10)+160*x(11)+220*x(12);②约束函数:function[c,ceq]=con01(x)c(1)=x(1)+x(2)+3*x(7)+3*x(8)-x(3)-x(5)-20; %A地的原料不能超过20万tc(2)=x(3)+x(4)+3*x(9)+3*x(10)-x(1)-x(6)-16; %B地的原料不能超过16万tc(3)=x(5)+x(6)+3*x(11)+3*x(12)-x(2)-x(4)-24; %C地的原料不能超过24万tc(4)=x(9)+x(10)-5; %B地建厂规模不能超过5万tceq(1)=x(7)+x(9)+x(11)-7; %A地年消产品7万tceq(2)=x(8)+x(10)+x(12)-13; %B地年消产品13万t③主程序:x0=[0,0,0,0,0,0,0,0,0,0,0,0,] %初值lb=[0,0,0,0,0,0,0,0,0,0,0,0,] %下限ub=[Inf,Inf,Inf,Inf,Inf,Inf,Inf,Inf,Inf,Inf,Inf,Inf,] %上限[x,fval]=fmincon(@fun01,x0,[],[],[],[],lb,ub,@con01) %调用函数fmincon,最优求解④计算求解:4.桁架结构优化①空间转置矩阵function T=TransformMatrix(ie)global gElementgNodegElement=[5 6;4 5;1 2;2 3;2 5;3 4;2 6;1 5;3 5;2 4];gNode=[0 0;1 0;2 0;2 1;1 1;0 1];xi = gNode( gElement ( ie, 1 ), 1 ) ;yi = gNode( gElement ( ie, 1 ), 2 ) ;xj = gNode( gElement ( ie, 2 ), 1 ) ;yj = gNode( gElement ( ie, 2 ), 2 ) ;L = sqrt( (xj -xi )^2 + (yj -yi )^2 ) ;c = (xj -xi )/ L ;s = (yj -yi )/ L ;T=[ c -s 0 0;s c 0 0;0 0 c -s;0 0 s c ];return②求解单刚阵function k=StiffnessMatrix( ie )syms A1A2A3A4A5A6A7A8A9A10;gMaterial=[A1 A2 A3 A4 A5 A6 A7 A8 A9 A10];global gNodegElementk=zeros( 4,4 ) ;E = 1 ;A = gMaterial(ie);xi = gNode(gElement (ie, 1 ), 1 ) ;yi = gNode(gElement (ie, 1 ), 2 ) ;xj = gNode(gElement (ie, 2 ), 1 ) ;yj = gNode(gElement (ie, 2 ), 2 ) ;L = ( (xj -xi )^2 + (yj -yi )^2 )^(1/ 2) ;k=[ E*A/ L 0 -E*A/ L 0 ;0 0 0 0;-E*A/ L 0 E*A/ L 0;0 0 0 0] ; T = TransformMatrix(ie ) ;k = T*k*transpose(T);return③合成总刚阵求解clear;gK=sym('gK',[12 12]);for i =1:1:12for j =1:1:12gK(i,j)=0;endendfor ie=1:10T=TransformMatrix(ie);k=StiffnessMatrix(ie);global gElementfor i =1:1:2for j =1:1:2for p=1:1:2for q =1:1:2m = (i -1)*2+p ;n = (j -1)*2+q ;M = (gElement (ie,i)-1)*2+p ;N = (gElement (ie,j)-1)*2+q ;k = StiffnessMatrix(ie);gK(M,N) = gK(M,N)+ k(m,n);endendendendendgKK=gK(3:10,3:10)F=[0;-4000;0;-4000;0;0;0;0];Q=K^-1U=Q*Fsyms A1A2A3A4A5A6A7A8A9A10;ang=[180 180 0 0 90 90 135 45 135 45]*pi/180;P(1,1)=[cos(ang(1)) sin(ang(1))]*[-U(7);-U(8)]*1/A1P(2,1)=[cos(ang(2)) sin(ang(2))]*[U(7)-U(5);U(8)-U(6)]*1/A2;P(3,1)=[cos(ang(3)) sin(ang(3))]*[U(1);U(2)]*1/A3;P(4,1)=[cos(ang(4)) sin(ang(4))]*[U(3)-U(1);U(4)-U(2)]*1/A4;P(5,1)=[cos(ang(5)) sin(ang(5))]*[U(7)-U(1);U(8)-U(2)]*1/A5;P(6,1)=[cos(ang(6)) sin(ang(6))]*[U(5)-U(3);U(6)-U(4)]*1/A6;P(7,1)=[cos(ang(7)) sin(ang(7))]*[-U(1);-U(2)]*1.414/A7;P(8,1)=[cos(ang(8)) sin(ang(8))]*[U(7);U(8)]*1.414/A8;P(9,1)=[cos(ang(9)) sin(ang(9))]*[U(7)-U(3);U(8)-U(4)]*1.414/A9;P(10,1)=[cos(ang(10)) sin(ang(10))]*[U(5)-U(1);U(6)-U(2)]*1.414/A10;PI=[A1;A2;A3;A4;A5;A6;A7;A8;A9;A10]*200;P=P-I④优化目标函数:function f=taget3(x)f=x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+1.414*x(7)+1.414*x(8)+1.414*x(9)+1.414*x(10);⑤计算求解:5. 半圆弧拱结构截面优化①主程序:finish/clearl=0.3 !截面长度h=0.3 !截面宽度t=0.04 !截面壁厚/PREP7et,1,188 !定义单元类型beam188!定义材料参数mp,ex,1,3e11 !弹性模量mp,nuxy,1,0.17 !泊松比mp,dens,1,2500 !密度!定义截面类型(回字形)SECTYPE, 1, BEAM,hrec,,0 SECOFFSET, CENTSECDATA,l,h,t,t,t,t!建立模型k,1,0,20,0k,2,20,0,0k,3,-20,0,0larc,2,3,1,20!划分网格lsel,alllesize,all,0.1mat,1type,1secn,1lmesh,1allsfini!求解/SOLUANTYPE,0!加约束d,1,alld,2,all!加节点集中载荷nf=NODE(0,20,0)f,nf,fy,-2e5solvefini!后处理,观察应力云图/post1/eshape,1plesol,s,EQV,0,1②计算求解:6. 正方形板拓扑优化①材料设定:②划分网格:③添加约束条件:④添加载荷:⑤计算求解:(版权归上传者所有)。

相关文档
最新文档