2023年機械優(yōu)化設計大作業(yè)_第1頁
2023年機械優(yōu)化設計大作業(yè)_第2頁
2023年機械優(yōu)化設計大作業(yè)_第3頁
2023年機械優(yōu)化設計大作業(yè)_第4頁
2023年機械優(yōu)化設計大作業(yè)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

高等流體力學

班級:機設15學碩班

學號:_____________

姓名:___________張湘楠

授課老師:畢新勝

日期:2023年7月1日

虹一、研究報告內容:

1、入二0.618的證明、一維搜索程序作業(yè);

2、單位矩陣程序作業(yè);

3、連桿機構問題+自行選擇小型機械設計問題或其他工程優(yōu)化問題;

(1)分析優(yōu)化對缸根據(jù)設計問題的規(guī)定,選擇設計變量,確立約束條

件,建立目的函數(shù),建立優(yōu)化設計的數(shù)學模型并編制問題程序;

(2)選擇適當?shù)膬?yōu)化方法,簡述方法原理,進行優(yōu)化計算;

(3)進行結果分析,并加以說明。

4、寫出課程實踐心得體會,附列程序文本。

5、為響應學校2023年度教學工作會議的改革規(guī)定,探索新的課程考

核評價方法,特探索性設立一開放式考核項目,占總成績的5%。

試用您自己認為合適的方式(書面)表達您在本門課程學習方面的

努力、進步與收獲。(考評將重點關注您的獨創(chuàng)性、簡潔性與可驗證性)。

二、研究報告規(guī)定

1、報告命名規(guī)則:學號-姓名一《機械優(yōu)化設計》課程實踐報告.doc

2、報告提交郵址:(收到回復,可視為提交成功)。

追求:問題的工程性,格式的完美性,報告的完整性。

不追求:問題的復雜性,方法的惟一性。

評判準則:獨一是好,先交為好;切勿拷貝。

目錄:

A=0.618的證明、一維搜索程序作業(yè)

①關于2=0.618的證明................................4

②一維搜索的作業(yè)

采用matlab進行編程.......................5

采用C語言進行編程...............................7

單位矩陣程序作業(yè)

①采用matlab的編程...............................9

②采用c語言進行編程..............................9

機械優(yōu)化工程實例

①連桿機構........................................11

②自選機構........................................16

課程實踐心得............................................20

附列程序文

本............................................................21

進步,努力,建議......................................25

一、入=0.618的證明、一維搜索程序作業(yè)

①關于幺=0.618的證明

黃金分割法規(guī)定插入點4的位置相對于區(qū)間伍,例兩端具有對稱性,即

%=b-Mb-a)

a2=a+A(b-a)

其中2為待定常數(shù)。

%b-搜索區(qū)間上限

%e-精度

%輸出數(shù)據(jù):

%x-極小值點

%其他常量:

%cl,c2,c3-區(qū)間

%r-黃金分割比例0.618

%%

%定義函數(shù)

functionx=fun(a.b?e)

r=0.618;

c1=b-r*(b-a);c2=a+r*(b-a);

yl=f(cl);y2=f(c2);

while(abs((b—a)/b)>e)&&(abs((y2-yl)/y2)>e)

ifyl>=y2

a=cI;cI=c2;y1=y2;

c2=a+r*(b-a);y2=f(c2);

else

b=c2;c2=c1;y2=y1;

cl=b-r*(b-a);yl=f(cl);

end

end

x=0.5*(a+b);

end

對f函數(shù)的確立

10functiony=f(x)

y=(x-2『2+3;

end

11functiony=f(x)

y=cosx

end

假如要計算y=(x-2A2+3;的黃金分割法,則需要將圖所示的f腳本中的函數(shù)寫成如①所示

假如要計算y=cosx;黃金分害ij法,則需要將圖所示的「腳本中的函數(shù)寫成如②所示

fun函數(shù)表達對mat1ab的主程序語言。

,主分界造常B?盛

■?入CH;

、?一BTErtT*

、b—酢旦日上陽

、。一?范

UktGH;

、x—B小?盛

tKlt-MV;

、cl,c2,c3-E4

?1

■宣義(BII:

jrl?f<eli.y2*f<e2l.

while(?bf<(V-a>/b>>?>U<?bt<(r2-yl)/)r2>>e>

ify17r2

1=cl.€l?c2.yl?y2.

C2?E?吁(0.

else

b>?2.e2Mi

cl?b-r?<b-?><cl);

tni

x-0.5?

電“”

Ed.!o<D\2.bA叭H

MeEd*TertGo€<?TooHDebugDesktop'MxlowM?ip

f:■)?"??/??€)粕■■sudcB?A田(D曰<90

,a4-J£?+11_X9£Q

Ifurvetian)Ff<*>

2-y?(M-2)'2*3:

3-?nd

函數(shù)NO.1運算結果:

(2)采用C語言進行編程

#inc1ude<stdio.h>

^defineK0.618

doub1ef(double);/*****函數(shù)值計算函數(shù)聲明*****/

voidmain(void)

{

doublea,b,size;。

doubleal,a2;

?intI;

?printf(”請輸入?yún)^(qū)間兩端點(端點值應大于0);

?scanf(o%lf,&b);/*****輸入端點值*****/

printf("請輸入精度:");

?scanf((i%1fw,&size);/*****輸入精度*****/

printf("區(qū)間為(%1f精度為$1f\n”,a,b,size);

printf("序號\ta1\t\ta2\t\tf(al)\t\tf(a2)\n"1;

吁or(i=0;i<64:i++)

printf("-“);

printf(°\nn);

?i=0;

while((b-a)>size)/*****川精度控制循環(huán)次數(shù)*****/

(

<?i++;

al=b-K*(b-a);/*****按0.618法插入兩點*****/

0a2=a+K*(b—a);

printf("%2d:\t%f\ta%f\t%f\t%f\n",I,al,a2,f(a1),f(a2));

/**才大水輸出每次“算后a1,a2,f(a1),f(a2)

的值*****/

?if(f(al)>=f(a2))

。a=al;

geIse

b=a2:

printf("所求極小值點為:x=%lf\t極小值f(x)=%f\n”,a,f(b));

)

doublef(doublex)/*****函數(shù)值計算函數(shù)*火火**/

odoublef;

?f=(x-2)*(x-2)+3;

?return(f);

)

對于y=cosx,須在程序中加一個#include(math.h)頭程序,以示我要調用函數(shù)語句。再將

倒數(shù)第三行函數(shù)改為尸cos(x),再次編譯運算即可。

?^lundion?classes

~1

while(<b-j|>size),用精度拄制彷外次故,

1??;

,按?.618法插入兩百

print-<-Vd:\t%f\tA?\ttf\t%F\nM.i.j1,42.f<4l

/”??琳出每次計修后“1.

*a1;

else

b-a2;

prle”(?你求極小值點為:極小值“D-XfMT.a.

doublef(doublex)/.???.為數(shù)值計n劭斂??.,

doubleF;

f-(x-2)?(x-2)*3:

return(F);

IkiI

Iunctien2.exe-Berror(s).etMrning(s)

J

,’

運營如圖所示

我們可以看出,大約在X=2處取到極值。與理論相符。

SKncticoJ-Microw4t€??

文QDMDH9AMD工30T?ZJKD.匚3)W(H)

6300Q如智■1M

[|Gk>bals|二)(Allglobalmemku二][F習X”①匕!"6

3W

Sinclu<lr<iMth.ti>

■include<5tdio.h>3.315111*3.531296984983925H52

MefineMe.61S3.18X39a3.315B4i9992869?W5

doublefCdoub>);“”??訕敢值計算由就J3f833a3.181396V?VW6

voidRain(uoi4)).181422?9.2)244099928?wsrs

3/4fs72c3?l,14A6999%6?592W

double3.138374*3.149862999937””,6

dotible?l.a2;3.W868a3.i&1912“9966“97M

inti;3.142421”9八6

p"n”(RHfi入?yún)^(qū)間兩端6?3.142419“9”3

(X3.14*420?3.145263“9%3

輸入精度:“);3.14M63*3.142419

“SA'QU”);3.1424219*3.143506

“in",忑?為度為21八n”.a.b.TzS:1.14i74td14242。

print"”序號\t4l\t\t^2\t\t?(3.141334*3.141748

,or《I;H6E??)3.14174??3.142BBS

pri?t("1);3.141S90a3.141748

printF("\f);3.141492a3.1415t0

1-?;1.144.9VIQ.141⑸

用精度控制藺3砍j1.141SS3?3.14159B

3.141590a3.141613

3.141S74

,????哦???1噬18人兩3.14159。?3.1415”

3.141S8S?3.141590

priN,<?*Vdg八t"VT.iQ1.32?〃3.14159?*3.141593

/??Ti出怎次計It后d

?:CUsW-fjnieYMw]

fvnctl9n2.exe-6error(s),?wdrninq(s)

7nA田編/清武又在文件!中直找\在文件2甲疊我>結第工現(xiàn)Zbuc”n<7

ftU

運營如圖所示

我們可以看出,大約在。處取到極值。與理論相符。

二、用簡樸的語句寫一個單位矩陣

①采用matlab構造:

MATLABR20U-

MeW<DebugOeskBopWndowx”

:▲■■〈。?干工VCWCM

5>erttutl9HgtoAdd£JNew

,O,xWndw*

■■,:2■%Q?Wectdatatopi..▼

Njme*Vake

?4>4doubted

??y?(2>

?ey?<5>

CommandH^ory

r-ir^ut<pl?a<?xip*,amabtxI

?eye??

eyed)

ele

b⑴

?y?<2)

b⑴

不⑷

0美H曰"4市

Matlab構造的矩陣最是簡便,由于自身就有一個單位矩陣的函數(shù)。

由于matlab是基于C語言而設立的一個數(shù)學運用軟件,所以他的集成度非常高,并且具有很好的開

放性,于是我們得知eye函數(shù),將其構造。

Eg:

若要構造一個3維的單位矩陣,則輸入eye(3)

若要構造一個n為的單位矩陣,這輸入eye(n)

②用C語言構造

程序如圖所示:

#include<stdio.h>

Intmain(){

intI,j,n;

whi1e(scanf("%d",&n)==1){

for(I=0;I<n;++i){

for(j=0;j<n;++j)

printf(“%d<f,I==j);

printf(r,\nw);

)

)

return0;

}

q2

JI

(S)6uiV4rAD?<5)404^4o--"?XX/lJe

[RIB.(Dirr⑻g@出工(DYVGOWHIM麗N

??□IfAW?2S

三、機械優(yōu)化設計工程實例

①連桿機構問題

(1)連桿機構問題描述

設計一曲柄連桿搖桿機構,規(guī)定曲柄從%=%+90°時,搖桿,3的轉角最佳再現(xiàn)已知的運

動規(guī)律:“F二%+丁(8-四)2且/尸1,/4二5,%為極位角,其傳動角允許在45°4/0135°范

3兀

圍內變化。

(2)數(shù)學模型的建立

設計變量:這里有兩個獨立參數(shù)’2和’3。因此設計變量為入=[%出F二[/2/31

目的函數(shù):將輸入角提成30等分,并用近似公式計算,可得目的函數(shù)的表達式

30

J血-%)]

/=1

約束條件:

GX(1)=-X(l)^0

GX(2)=-X(2)<0

<JX(3)=-(X(1)+X(2))+6.0^0

<;X(4)=-(X(2)+4.0)+X(1)<0

0Gx(5)=-(4.0+X(l))+X(2)<0

oGX(6)=-(l.4I42*X(1)*X(2)-X(1)**2-X(2)**2)-16.0^0

GX(7)=-(X(1)**2+X(2)**2+1.4142*X(l)*X(2))+36.0^0

(3)程序編制

C=====================

SUBROUTINEFFX(N,X,FX)

oDIMENSIONX(N)

COMMON/ONE/11,12,13,I4,NFX,I6

oNFX=NFX+1

P0=ACOS(((1,0+X(1))**2-X(2)**2+25.0)/(10.0*(1,0+X(l))))

oQOACOS(((1.0+X(l))**2-X(2)**2-25.0)/(10.0*X(2)))

T=90.0*3.1415926/(180.0*30.0)

FX=0.0

oDO10K=0,30

PI=P0+K*T

QE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926)

D=SQRT(26.0-10.0*COS(PI))

oAL=ACOS((D*D+X(2)*X(2)-X(l)*X(l))/(2.0*D*X(2)))

BT=ACOS((D*D+24.0)/(10.0*D))

IF(PI.GE.0.0.AND.PI.LT.3.1415926)THEN

QI=3.1415926-AL-BT

ELSE

QI=3.1415926-AL+BT

ENDIF

IF(K.NE.0.OR.K.NE.30)THEN

FX=FX+(QI-QE)**2*T

ELSE

FX=FX+(QLQE)**2*T/2.0

ENDIF

12CONTINUE

RETURN

,END

L---------———----------------------------———

6UBROUTINEGGX(N,KG,X,GX)

C?=========================

*DIMENSIONX(N),GX(KG)

GX(1)=-X(1)

GX(2)=-X(2)

<JX(3)=-(X(l)+X(2))+6.0

GX(4)=-(X(2)+4.O)+X(l)

<JX(5)=-(4.0+X(l))+X(2)

?GX(6)=-(1.4142*X(1)*X(2)-X⑴**2?X(2)**2)-16.0

GX(7)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0

^RETURN

正ND

C=========================

SUBROUTINEHHX(N,KH,X,HX)

-------------------------------------

DIMENSIONX(N),HX(KII)

X(1)=X(1)

^RETURN

END

輸入數(shù)據(jù)如下:

2.7.0

4.3,3.2

2.,0.2,0.01,0.00001,0.(X)001

0,1,0

3.5,2.8,5.5,4.5

(4)可執(zhí)行程序的生成

13將程序文本保存成文獻tOO1.txt,存放在OPT_EXAM\FORTRAN\0-fortran目錄

To

14使用口05操作界面,(^1_£X人乂正01^11<人1\1\0401「@11目錄下,輸入命令

asumt.for4-t001.txttOO1.for回車。生成tOOl.for文獻。

15fori1001;回車;

@for2回車;

⑤linktO01;回車,即生成可執(zhí)行程序l001.exe。

⑥從t001.dat文獻中加載數(shù)據(jù),運營tO01.exe。

t001<t001.dat>t00l.rtf回車得到結果。

操作過程如圖:

S9C:\windows\system32\cmdexe

MicrosoftWindows[????6.1.76013

????????<c>2009MicrosoftCorporation????????????????

C:\Users\ChenXJ>cd\

C:\>cdopt_exam\fortran\0-fortran

C:\OPT_£XAM\FORTRAN\0-fortran>copyasunt.£or+t001.txtt001.for

ftSUMT.FOR

t001.txt

C:\OPTJEXAM\FORTRAN\0-fortran>forlt001;

MicrosoftFORTRAN??U3.31August1985

<C>CopyrightMicrosoftCorp1982,1983,1984,1985

PassOneNoErrorsDetected

575SourceLines

:\OPT_BXAM\FORTRAN\0-FORT~1>for2

CodeAreaSize-U4412<17426)

ConsAreaSize=tt0198<408>

DataAreaSize=R3BEC<15340?

PassTwoNoErrorsDetected.

C:\OPTJEXAM\FORTRAN\0-FORT~l>linkt001;

Microsoft<R>8086ObjectLinkerVersion3.04

Copyright<C>MicrosoftCorp1983,1984,1985.Allrightsreserved.

C:\OPT_EXAM\FORTRAN\0-FORT~lX00Kt001.datX001.rtf

C:\OPTJEXAM\FORTRAN\0-FORT~1>

操作環(huán)節(jié)

(5)結果與分析

結果顯示如下:

:=============PRIMARYDATA==============

N=2KG=7KH=0

X:

.4300000E+01.3202300E+01

FX:

.7847605E-02

GX:

-.4300000E+01-.3202300E+01-.1500000E+01—.290000()E+01

-.5100000E+01

-.6729390E+01-.1218939E+02

X:

.4300000E+01.32O23OOE+01

FX:

.7847605E-02

GX:

-.4300000E+013202300E+01-.1500000E+0I-.2900000E+01-.5

1OOOOOE+Ol

-.672939OE+Ol-.1218939E+02

HX:

PEN=.3974390E+01

R—.20230OOE+O1C=.2023000E+00TO=.100(X)00E-01

EPS1=.1OOOiDOOE-04EPS2=.1000000E-04

==============ITERATIONCOMPUTE==============

*****IRC=1R=.2023000E+0IPEN=.3974390E+01

*****IRC=2R=.40000(X)E+00PEN=.3119361E+01

*****IRC=3R=.8000001E-01PEN=.6407908E+00

*****IRC=4R=.1600000E-01PEN=.1439420E+00

*****IRC=5R=.3202300E-02PEN=.3733451E-01

*****IRC=6R=.6400000E-03PEN=.8986510E-02

*****IRC=7R=.128OOOOE-03PEN=.2346609E-02

*****IRC=8R=.2560000E-04PEN=,9042178E-03

*****IRC=9R=.5120231E-05PEN=.5396702E-03

*****IRC=|0R=.1024000E-05PEN=.4410887E-03

*****IRC=11.20480OOE-06PEN=.412806IE-03

*****IRC=12R=.4096(X)1E-07PEN=4071001E-03

*****IRC=13R=.8192023E-08PEN=.4014154E-03

*****IRC=14R=.163?401E-OSPEN=.399279E-03

*****IRC=15R=.32768O1E-09PEN=.3987240E-03

*****IRC=16R=.6553602E-I0PEN=.3984505E-03

*****

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論