Ⅰ 機械優化設計
非常有挑戰性的工作,使用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測不準關系相類似的計算不確定性原理