2023年机械优化设计大作业_第1页
2023年机械优化设计大作业_第2页
2023年机械优化设计大作业_第3页
2023年机械优化设计大作业_第4页
2023年机械优化设计大作业_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高等流体力学

班级:机设15学硕班

学号:_____________

姓名:张湘楠

授课老师:毕新胜

日期:2023年7月1日

£一、研究报告内容:

1、入=0.618的证明、一维搜索程序作业;

2、单位矩阵程序作业;

3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;

(1)分析优化对象,根据设计问题的规定,选择设计变量,确立约束条

件,建立目的函数,建立优化设计的数学模型并编制问题程序;

(2)选择适当的优化方法,简述方法原理,进行优化计算;

(3)进行结果分析,并加以说明。

4、写出课程实践心得体会,附列程序文本。

5、为响应学校2023年度教学工作会议的改革规定,探索新的课程考

核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。

试用您自己认为合适的方式(书面)表达您在本门课程学习方面的

努力、进步与收获。(考评将重点关注您的独创性、简洁性与可验证性)。

二、研究报告规定

1、报告命名规则:学号-姓名一《机械优化设计》课程实践报告.doc

2、报告提交邮址:(收到回复,可视为提交成功)。

追求:问题的工程性,格式的完美性,报告的完整性。

不追求:问题的复杂性,方法的惟一性。

评判准则:独一是好,先交为好;切勿拷贝。

目录:

A=0.618的证明、一维搜索程序作业

①关于2=0.618的证明...........................4

②一维搜索的作业

采用matlab进行编程............................5

采用C语言进行编程.............................7

单位矩阵程序作业

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

②采用c语言进行编程..............................9

机械优化工程实例

①连杆机构........................................11

②自选机构........................................16

课程实践心得............................................20

附列程序文

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

进步,努力,建议......................................25

一、人=0.618的证明、一维搜索程序作业

①关于彳=。618的证明

黄金分割法规定插入点a,,a2的位置相对于区间[a,。]两端具有对称性,即

%=b—九(b—d)

a2=。+几(人一a)

其中4为待定常数。

此外,黄金分割法还规定在保存下来的区间内再插入一点所形成的区间新三段,与本来的区间三

段具有相同的比例分布。

黄金分割法还规定在保存下来的区间内再插一点所形成的区间新三段,与本来的区间三段有相同

的比例分布。

设原区间[凡句的长度为1,如图一所示,保存下来的区间[四,长度为几,区间缩短率为4。为

了保持相同的分别比例。插入新点/应在丸(LX)位置上,/在原区间的1-丸1位置应相称于

在保存区间的矛位置。

故有:

1-A=22

A2+4-1=0

解得力=避二lx0.618

2图一

图二

褊写0.618的程序,并计算下列问

NOA:a=()b=2兀/(x)=cosx

NO.2:a=0ft=10/(x)=(x-2)2+3

(1)采用MATLAB进行编程

%%

%fun.m:黄金分割法求极值点

%输入数据

%a-搜索区间下限

%b-搜索区间上限

%e-精度

%输出数据:

%x-极小值点

%其他常量:

%cl,c2,c3-区间

%r-黄金分割比例0.618

%%

%定义函数

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=cl;cl=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函数的确立

10funotiony=f(x)

y=(x-2)八2+3;

end

11functiony=f(x)

y=cosx

end

假如要计算y=(x-2»2+3;的黄金分割法,则需要将图所示的f脚本中的函数写成如①所示

假如要计算y=cosx;黄金分割法,则需要将图所示的f脚本中的函数写成如②所示

fun函数表达对matIab的主程序语言。

Editor-D:\matiab\bin\futun|CQT)4S.

FileEditTextGoCellToolsDebugDesktopWindowHelp'•X

■*Xi万石.•““♦心》•€i幻・ITini«S3*A田tn曰日回

-io+<O.____________________________________________________________________

①Thisfileu$«tCellMod*Forinformation.s«ethe,ao;dcode“Etionvideo,theoublkhingvideo,orMidX

2主分制选求炎值0

3MA人做错:

4*a—搂索区日下编

SKb-桢索区可上用

6»e—

74蝌出我据:

8kX—银小信直

9kMfesa:

10kcl,c2,c3一区同

11、r一■金外界比倒0.618

12**

13'定义由故:

14functionx=fun<a>b,e)

15-r=0.618.

1ft-cl»b-t»(b-a).c2»a+r»(b-a>

17-yi=f(cl):)r2=f(c2).

IS-Sale<abs<(b-a)/b)>e>U(«b»(<y2-yl)/y2)>•)

19-ifyl>=y2

20-a=clci=c2.yl=y2:

2t-c2«a*i*(b-a);y2af(c2);

22-else

23-b»c2.e2«cl.y2^rl.

24—cl=b-r«(b-»);yl=f(cl);

2$-«nd

26-end

27-x=0.;

28-end

P中J3.E3«>OVR-

Editor-D:\madab\bic\fm

FileEditTextGoCellToolsDebugDesktopWindowHelp

「UJ,.刁①、N,***拒fej;©刷・•加・■SuctaB^-A田[D曰占回

:G值I-旧口+1+向*|由由IQ

functiony=f(x>

jr=(x-2)-2+3.

◎中J,四W>',二

L-*二-二而段

函数N0.2运算结果:CommandWindow

»fun(0,2*pi,le-10)

»fund,10,le-10)ans=

ans=3.1416|

2.0000A»l

函数NO.1运算结果:

(2)采用C语言进行编程

#inc1ude<stdio.h>

#defineK0.618

doub1ef(double);/*****函数值计算函数声明*火***/

voidmain(void)

doublea,b,size;。

doubleal,a2;

ntI;

oprintf(“请输入区间两端点(端点值应大于0)

oscanf(w%lf,%1f“,&a,&b);/*****输入端点值*****/

printf("请输入精度:”);

oscanf(“%1f”,&size);/*****输入精度*****/

printf(“区间为(%1f精度为f\n",a,b,size);

printf("序号\ta1\t\ta2\t\tf(al)\t\tf(a2)\nv;

ofor(i=0;i<64;i++)

printf("-“);

printf("\n”);

oi=0;

while((b-a)>size)/*****用精度控制循环次数*****/

(

五++;

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

阳2=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(al),f(a2)

的值****文/

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

。a=al;

geIse

b=a2;

printf(“所求极小值点为:x=%lf\t极小值f(x)=%f\n”,a,f(b));

}

doublef(doub1ex)/*****函数值计算函数*****/

»doublef;

«f=(x—2)*(x-2)+3;

•return(f);

}

对于y=cosx,须在程序中加一个#inelude(math.h)头程序,以示我要调用函数语句.再将

倒数第三行函数改为y=cos(x),再次编译运算即可。

69functionZ•MicrosoftVisu»lJ♦0:®1S|

文件正)«S(£)麦配)插入①IS®3®IHd)«Q(W)

由ca;Q0Efe®»口围岩铁IJ«

|[Globals]HlfAIIglobalmembe"三]&▼,合住11

0正菽cpp

i-0;

while((b-a)>size)■用精度控制循环次数,

a1«b-K«(b-a);/..........号机618法插入两息

a2-a»K«(b-a);

八出每式计茸后aM

if(f(a1)>>F(a2))

a»a1;

else

b-a2;

>

printf(“所求极小值点为:x=%lf\t极小值f(x)Cf\n”,a,

doubleF(doublex)/*"■”附数值计算函数***1…

<

doublef;

f«(x-2)*(x-2)«3;

return(F);

II"I

-Function2.exe-0error(s).0uarning(s)

组建/调试入在文件1中宣我\在文件2单查找土结果工8LDebusing/~~B«lI帛

行37,列1,

&】.3国,7•⑤词•»仆15J6

运营如图所示

我们可以看出,大约在X=2处取到极值。与理论相符。

Sfunction2•Microsoft5s3C*.

文件(D«i(i)ss(y)插入①工程®第建⑥UKD■口必«riHi

国%ea-0强音快———3M

|[Globals]:||阳1globalinembe”/口三]遇,‘口⑤曲¥(陋g

♦function?classes

aSR.cpp

ltinclude<nath.h>

-一-092502

Sinclude<stdio.h>5;7312

a3-TU984995

KdefineK0.618W

/啕数值计算函效用a3-T999208

doublef(double);a3--B995875

voidnain(uoid)a3H-R999208

a3099966

-T9

doublea,b,size;:a3099994

1M--7

doublea1,a2;a3U999966

a3-T

inti;W

a3--B

printfC请输入区间两端点(端点1值,应大于©):,,);

a3--1

M…端入端素值"■”・

scanf(Uf.tlf.Ra.6b);a3--0

p”ntf(”请输入精度:“);a3-T1

scanf(-t;)f,fisize);/“・・•嘲人精度,a3-

a3-B

printf(“近回为Clf,21f),精度为初八n”.a,b,size);;-1

«3-

print"”序号\ta1\t\ta2\t\tf(a3-1

for(i-a;i<64;i»«)A3--1

-

printFC'-0);a3--1

printFCXn");a3-1

a3--1

a3-1

uhile((b-a)>size),用精度控制循环次彳A3-

--1

a3-1

-1

,按。.618法插入西-

a1=b-K*(b-j);--1

a2=a*K»(b-a);-1

printF(,(Vd:\ttF\ta%F\tlF\t%F\n",i.a1,a2.f(-

八"”嗡出在次计算后,

■:ClassV…mFileView|11"1

Function2.exe-0error(s),0wjrning(s)

TEA组建9调试X在文件1中查找X在文件2中Jg找)结果XSQLDebu«ing/

酣1・

运营如图所示

我们可以看出,大约在口处取到极值。与理论相符。

用简朴的语句写一个单位矩阵

①采用matlab构造:

.MATLABR2012aI

FileEditDebugParallelDesktopWindowHelp

-3?/QCurrentFold«nD:\matlab\bin

Mat1ab构造的矩阵最是简便,由于自身就有一个单位矩阵的函数。

由于matlab是基于C语言而设立的一个数学运用软件,所以他的集成度非常高,并且具有很好的开

放性,于是我们得知eye函数,将其构造。

Eg:

若要构造一个3维的单位矩阵,则输入eye(3)

若要构造一个n为的单位矩阵,这输入eye(n)

②用C语言构造

程序如图所示:

#include<stdio.h>

intmain(){

int工,j,n;

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

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

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

printf(f<%d'[==j);

printf(rf\nw);

)

)

return0;

)

Smartrix-MicrosoftVisualC-»

文侬DKBGO超人0)(89(6)UKD■口业)»«NtD

国&。O物SB6,口⑻古,[3H

^Globals)^£][(A1Iglobalmember?2Jl♦main三]W,/时,!"冷

:4目

martrixclasses

三、机械优化设计工程实例

①连杆机构问题

(1)连杆机构问题描述

设计一曲柄连杆摇杆机构,规定曲柄L从%=/+90°时,摇杆。的转角最佳再现已知的运

动规律:,£=〃o+—(夕-死尸且/1=1,4=5,%为极位角,其传动角允许在45°4”135°范

围内变化。

(2)数学模型的建立

设计变量:这里有两个独立参数(和4。因此设计变量为“=[西々『=[/2/3]/

目的函数:将输入角提成30等分,并用近似公式计算,可得目的函数的表达式

30

/W=E[fe-%丫3-%)]

/=1

约束条件:

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

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

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

•GX(4)=-(X(2)+4.0)+X(1)WO

«GX(5)=-(4.0+X(1))+X(2)<0

«GX(6)=-(l.4142*X(1)*X(2)-X(1)**2-X(2)**2)-16.040

GX(7)=-(X(1)**2+X(2)**2+1.4142*X⑴*X⑵)+36.0«0

(3)程序编制

C

SUBROUTINEFFX(N,X,FX)

C__________________________

oDIMENSIONX(N)

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

oNFX=NFX+1

PO=ACOS(((1.0+X(1))**2・X(2)**2+25.0)/(10.0*(1.0+X(l))))

oQ0=ACOS(((1.0+X(l))**2—X(2)**2-25.0)/(l0.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-PO)**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)T

ELSE

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

ENDIF

12CONTINUE

RETURN

oEND

^—

oSUBROUTINEGGX(N,KG,X,GX)

C<>=========================

oDIMENSIONX(N),GX(KG)

GX(1)=-X(1)

GX(2)=-X(2)

oGX(3)=-(X(l)+X(2))+6.0

GX(4)=-(X(2)+4.0)+X(l)

oGX(5)=-(4.0+X(l))+X(2)

oGX(6)=-(l.4142*X(1)*X(2)-X(l)**2-X(2)**2)-16.0

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

^RETURN

oEND

oSUBROUTINEHHX(N,KH,X,HX)

DIMENSIONX(N),HX(KH)

X(1)=X(1)

^RETURN

END

输入数据如下:

2,7,0

4.3,3.2

2.,0.2,0.01,0.00001,0.00001

0,1,0

3.5,2.8,5.5,4.5

(4)可执行程序的生成

13将程序文本保存成文献tOO1.txt,存放在OPT_EXAM\FORTRAN\0-fortran目录

下。

14使用口05操作界面,<2^1'_£*人1'4卜01?T区八1\1\0101「211目录下,输入命令

asumt.for+tOOl.txttOO1.for回车。生成tOOl.for文献。

15fori1001;回车;

@for2回车;

⑤linktOOl;回车,即生成可执行程序tOOl.exe。

⑥从tOOl.dat文献中加载数据,运营tO01.exe。

tOOKtOOI.dat>tO0l.rtf回车得到结果。

操作过程如图:

操作环节

(5)结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论