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

下载本文档

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

文档简介

高等流体力学

班级:机设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的证明、一维搜索程序作业

①关于幺=0.618的证明

黄金分割法规定插入点4的位置相对于区间伍,例两端具有对称性,即

%=b-Mb-a)

a2=a+A(b-a)

其中2为待定常数。

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

10functiony=f(x)

y=(x-2『2+3;

end

11functiony=f(x)

y=cosx

end

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

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

fun函数表达对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

函数NO.1运算结果:

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

#inc1ude<stdio.h>

^defineK0.618

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

voidmain(void)

{

doublea,b,size;。

doubleal,a2;

®intI;

»printf(”请输入区间两端点(端点值应大于0);

®scanf(o%lf,&b);/*****输入端点值*****/

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

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

printf("区间为(%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)/*****川精度控制循环次数*****/

(

<»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)/*****函数值计算函数*火火**/

odoublef;

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

•return(f);

)

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

倒数第三行函数改为尸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)/.・・•.为数值计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入区间两端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甲叠我>结第工现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构造的矩阵最是简便,由于自身就有一个单位矩阵的函数。

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

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

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

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

①连杆机构问题

(1)连杆机构问题描述

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

动规律:“F二%+丁(8-四)2且/尸1,/4二5,%为极位角,其传动角允许在45°4/0135°范

3兀

围内变化。

(2)数学模型的建立

设计变量:这里有两个独立参数’2和’3。因此设计变量为入=[%出F二[/2/31

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

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

输入数据如下:

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)可执行程序的生成

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;回车,即生成可执行程序l001.exe。

⑥从t001.dat文献中加载数据,运营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>

操作环节

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

评论

0/150

提交评论