Ⅰ 机械优化设计
非常有挑战性的工作,使用solidworks simulation可以助你达到目标。
Ⅱ 机械优化设计问题 高手来 急
进行有限元分析。使用名叫ANSYS的有限元分析软件试一试。我们厂的工程部用这个。
Ⅲ 试述机械优化设计和传统机械设计有什么不同
我的理解是传统机械设计侧重于功能性;机械优化设计侧重于经济性、外观等
传统的相当于设计初稿或实验机,用以说服领导、客户。
优化是针对批量生产的,利于加工、省钱、美观!
对于产品性能没有太大变化。
Ⅳ 机械优化设计的相关问题,好的追分!谢谢!
刚解决了 愿你成功!!
Ⅳ 机械优化设计编程,高手来看看!!!!
//用二次插值法求极小值
//(以函数f(x)=8X*X-9X .为例,精确到m=0.001.)。
#include<stdio.h>
#include<math.h>
int main(void)
{
double a1,a2,a3,ap,y1,y2,y3,yp,c1,c2,m;
double j[3];
int i,h=1; //取正向搜索(h值为负则为反向搜索)。
void finding(double a[3]);//一维搜索确定区间。
finding(j);//返回所得的区间值a1,a2,a3。
a1=j[0]; //以数组j[3]为过渡,衔接搜索区间的值并赋值给主函数的a1,a2,a3。
a2=j[1]; //实际上是不会这么用的,此处是方便衔接一维搜索函数与主函数,以后可类似。
a3=j[2];
m=0.001; //**输入m值,以确定精确度**。
double f(double x); //方程函数说明。
y1=f(a1); //初始化。
y2=f(a2);
y3=f(a3);
for(i=1;1>=1;i++)
{
c1=(y3-y1)/(a3-a1);
c2=((y2-y1)/(a2-a1)-c1)/(a2-a3);
ap=0.5*(a1+a3-c1/c2);
yp=f(ap);
if(fabs((y2-yp)/y2)<m)
break;
else if((ap-a2)*h>0)
{
if(y2>=yp){
a1=a2;y1=y2;
a2=ap;y2=yp;}
else{
a3=ap;y3=yp;}
}
else if(y2>=yp){
a3=a2;y3=y2;
a2=ap;y2=yp;}
else{a1=ap;y1=yp;}
}
double x,y; //用x,y储存所得极值点。
if(y2<=yp){
x=a2;y=y2;}
else{
x=ap;y=yp;}
printf("a*=%f\n",x);
printf("y*=%f\n",y);
return 0;
}
//定义方程函数。
double f(double x)
{
double y;
y=8*x*x-9*x; //**输入方程**。
return y;
}
//确定区间的外推法(取步长h=1)。
void finding(double a[3])
{
int h,i;
double y[3];
a[0]=0; //**0周围开始搜索**
h=1; //**输入h值,以确定步长**。
a[1]=h;
y[0]=f(a[0]);y[1]=f(a[1]); //初始化。
if(y[1]>y[0]) //将逆方向寻找变向。
{
h=-h;
a[2]=a[0];y[2]=y[0];
do{
a[0]=a[1];a[1]=a[2];
y[0]=y[1];y[1]=y[2];
a[2]=a[1]+h;y[2]=f(a[2]);
h=2*h;
}while(y[2]<y[1]);
}
else{ //正方向寻找。
for(i=1;i>=1;i++){
a[2]=a[1]+h;y[2]=f(a[2]);
if(y[2]>=y[1])
break; //寻找成功,打印输出。
h=2*h;
a[0]=a[1];y[0]=y[1];
a[1]=a[2];y[1]=y[2];}
}
return;
}
运行结果:
a*=0.562500
y*=-2.531250
这与理论值9/16是一致的,我这学期刚学完机械优化设计,这是我自己编的程序,上面有注释,再结合课本就能比较容易看懂的,希望能帮上你。
Ⅵ 什么是最优步长
有效计算时间最大,因此这个步长就称为最优步长.由于方法误差(离散化误差)和舍入误差随步长的这种反向变化关系,就导致了与量子力学中著名的Heisenberg测不准关系相类似的计算不确定性原理