小齿轮模块程序清单Word格式.docx

上传人:b****6 文档编号:19054268 上传时间:2023-01-03 格式:DOCX 页数:40 大小:22.18KB
下载 相关 举报
小齿轮模块程序清单Word格式.docx_第1页
第1页 / 共40页
小齿轮模块程序清单Word格式.docx_第2页
第2页 / 共40页
小齿轮模块程序清单Word格式.docx_第3页
第3页 / 共40页
小齿轮模块程序清单Word格式.docx_第4页
第4页 / 共40页
小齿轮模块程序清单Word格式.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

小齿轮模块程序清单Word格式.docx

《小齿轮模块程序清单Word格式.docx》由会员分享,可在线阅读,更多相关《小齿轮模块程序清单Word格式.docx(40页珍藏版)》请在冰豆网上搜索。

小齿轮模块程序清单Word格式.docx

高速级大齿轮热处理

mh(3):

低速级小齿轮热处理

mh(4):

低速级大齿轮热处理

hb(4)AsInteger'

hb

(1):

高速级小齿轮硬度布氏硬度

hb

(2):

高速级大齿轮硬度

hb(3):

低速级小齿轮硬度

hb(4):

低速级大齿轮硬度

rc(4)AsInteger'

rc

(1):

高速级小齿轮硬度洛氏硬度

rc

(2):

rc(3):

rc(4):

EndType

优化的数据和通过优化计算出的基本数据

Typeyh_data

mn1AsSingle'

优化数据之1x1

mn2AsSingle'

优化数据之3x3

z1AsSingle'

优化数据之2x2

z2AsSingle

z3AsSingle'

优化数据之4x4

z4AsSingle

u1AsSingle'

优化数据之5x5

u2AsSingle

btAsSingle'

优化数据之6x6

n2AsSingle

EndType

Typeyfys

yfAsSingle'

齿形系数

ysAsSingle'

应力集中系数

Typeerkr

erAsSingle'

端面重合度

krAsSingle'

齿间载荷分配系数

全局变量

Publicmy_gear_dataAsgear_data'

存放初始参数

Publicdaa(4)AsSingle,dff(4)AsSingle'

scr文件引用齿顶圆齿根圆直径

Publicb1AsSingle,b2AsSingle,b3AsSingle,b4AsSingle'

最终的齿宽

Publicd1AsSingle,d2AsSingle,d3AsSingle,d4AsSingle'

最终的分度圆直径

Publicm1AsSingle,m2AsSingle'

圆整后的模数

Publicxp(21,10)AsSingle'

复合型法的顶点数组

Publica(10)AsSingle,b(10)AsSingle'

边界条件数组

Publicm(21)AsSingle,h(21)AsInteger'

选取最坏点数组

Publicc(13)AsSingle'

约束条件数组

Publicf(21)AsSingle'

f(x)目标函数

PublicrecAsInteger'

记录变量

PublicnAsInteger,mm1AsInteger'

初始参数

PubliceAsSingle,gAsSingle'

复合形法子程序

PublicSubfhx_optimum()

DimjAsInteger,kAsInteger'

循环变量

DimsAsInteger'

记数变量

DimqAsBoolean'

判定tj_pd子程序的返回值的临时变量

DimmmAsInteger,hhAsInteger'

最坏点

DimbbAsBoolean'

收敛准则判定变量

DimaaAsSingle'

反射系数

DimtempAsSingle'

临时交换变量

DimwAsSingle'

临时变量

DimuAsSingle'

Dimzxd1AsBoolean'

DimiiAsInteger

Dimv1AsSingle,v2AsSingle,v3AsSingle'

求f(x)的临时变量

DimpiAsSingle

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

读入初始数据

添加代码

n=6:

e=0.1:

g=0.5:

mm1=7:

pi=3.14159265358

边界条件

a

(1)=2:

b

(1)=5

a

(2)=17:

b

(2)=30

a(3)=2.5:

b(3)=4

a(4)=17:

b(4)=30

a(5)=2.8:

b(5)=4.5

a(6)=8*pi/180:

b(6)=15*pi/180

Do

Do

Forii=1To2*n

Callqd_cs_kxd(ii)'

产生初始点

q=tj_pd(ii)'

判定

LoopWhileq=False

Nextii

s=2*n

Callqd_xx(s)'

求形心

s=0

q=tj_pd(s)

rec=1

ppqq:

zxd1=True

DoWhilezxd1=True

Callqd_fx'

求f(x)

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

bb=True

Fork=1To2*n'

收敛准则

IfAbs(f(0)-f(k))>

0.01Then

bb=False

EndIf

Nextk

Ifbb=TrueThen'

##########################

Callqd_result'

出口,打印优化结果

ExitSub

Else'

Forj=1To2*n'

确定最坏点,最好点,次坏点

m(j)=f(j)

Nextj

Forj=1To2*n

h(j)=j

Forj=1To2*n-1

Fork=j+1To2*n

Ifm(j)>

m(k)Then

ExitFor

Else

temp=m(j):

m(j)=m(k):

m(k)=temp

temp=h(j):

h(j)=h(k):

h(k)=temp

mm=1:

hh=h(mm)'

找出最坏点位置

Forj=1Ton'

去除最坏点xp(h,j)求形心

xp(0,j)=(xp(0,j)*2*n-xp(hh,j))/(2*n-1)

ii=0'

?

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

q=tj_pd(ii)

Ifq=FalseThen

w=h(2*n)

Forj=1Ton

a(j)=xp(w,j):

b(j)=xp(0,j)

zxd1=False'

上下界重新调整,重新确定初始可行点

aa=1.3

Callqd_fs1(aa,hh)

ii=2*n+1

Ifq=TrueThen

f(2*n+1)=qd_every_fx(2*n+1)

Iff(2*n+1)<

f(hh)Then

ExitDo

Ifaa<

=gThen

Ifmm>

2Then

Callqd_fs(j)'

缩边生成新复合形

q=tj_pd(j)'

Callqd_xx(s)

GoToppqq

mm=mm+1

hh=h(mm)

aa=aa/2

Loop

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

xp(hh,j)=xp(2*n+1,j)

rec=rec+1

u=0

Fork=1To2*n

u=u+xp(k,j)

xp(0,j)=u/(2*n)

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

Loop

EndSub

条件判断

PublicFunctiontj_pd(iiiAsInteger)AsBoolean

DimjAsInteger,kAsInteger'

Forj=1Ton'

边界条件判断

Ifxp(iii,j)<

a(j)Then

tj_pd=False

ExitFunction

Ifxp(iii,j)>

b(j)Then

Nextj

Callcm_jc_plqd_sj(iii)'

接触疲劳强度、弯曲疲劳强度计算

Forj=1Tomm1'

约束条件判断

Ifc(j)<

0Then

tj_pd=True

Debug.Print"

f("

;

0;

"

)="

Int(f(0)*1000+0.5)/1000,"

rec="

rec'

显示每回结果

EndFunction

PublicSubqd_cs_kxd(iiAsInteger)

DimjAsSingle

Forj=1Ton

xp(ii,j)=a(j)+Rnd

(1)*(b(j)-a(j))

产生其余点

PublicSubqd_qt_kxd()

DimjAsInteger

DimkAsInteger

Forj=2To2*n

Fork=1Ton

xp(j,k)=a(k)+Rnd

(1)*(b(k)-a(k))

PublicSubqd_xx(ssAsInteger)

DimtAsSingle

t=0

Fork=1Toss

t=t+xp(k,j)

xp(0,j)=t/ss

向形心移动

PublicSubqd_fs(ssAsInteger)

xp(ss+1,j)=xp(0,j)+(xp(ss+1,j)-xp(0,j))/2

求f(x),2*n个

PublicSubqd_fx()

Fork=0To2*n

f(k)=qd_every_fx(k)

Nextk

求每个f(x)

PublicFunctionqd_every_fx(iAsInteger)AsSingle

Dimy1AsSingle,y2AsSingle,y3AsSingle

y1=xp(i,1)*xp(i,2)*(1+xp(i,5))

y2=xp(i,3)*xp(i,4)*(1+my_gear_data.uu/xp(i,5))

y3=2*Cos(xp(i,6))

qd_every_fx=(y1+y2)/y3

再次反射

PublicSubqd_fs1(aaaAsSingle,hhhAsInteger)

xp(2*n+1,j)=xp(0,j)+aaa*(xp(0,j)-xp(hhh,j))'

反射

输出优化结果

PublicSubqd_result()

DimjAsInteger,kAsInteger

Form2.Visible=True

Form2.Print"

no.ofiteration="

rec

Forj=0To2*n

Form2.PrintInt(1000*xp(j,k)+0.5)/1000;

Tab(k*10);

Form2.Printf(j)

斜齿圆柱齿轮(软、硬齿面)传动计算程序

PublicSubcm_jc_plqd_sj(iiiiAsInteger)

Dimaa1AsSingle,aa2AsSingle,aa3AsSingle,aa4AsSingle,aa5AsSingle,aa6AsSingle'

中间变量

Dimbb1AsSingle,bb2AsSingle'

Dimc7AsInteger'

Dimtemp_yh_dataAsyh_data

Dimt1AsSingle,t3AsSingle'

扭矩

Dimsn(4)AsSingle'

应力循环次数

Dimze1AsSingle,ze2AsSingle'

弹性影响系数

Dimer1AsSingle,er2AsSingle'

Dimkr1AsSingle,kr2AsSingle'

DimbbAsSingle'

基圆螺旋角

DimrAsSingle'

齿轮分度圆压力角的角度数

DimrtAsSingle'

端面压力角

DimzhAsSingle'

节点区域系数

Dimkh(4)AsSingle'

齿轮接触疲劳寿命系数

Dimkf(4)AsSingle'

齿轮弯曲疲劳寿命系数

Dimho(4)AsSingle'

齿轮材料接触疲劳极限

Dimfo(4)AsSingle'

齿轮材料弯曲疲劳极限

Dimhp(4)AsSingle'

齿轮材料接触疲劳许用应力

Dimfp(4)AsSingle'

齿轮材料弯曲疲劳许用应力

Dimzv(4)AsSingle'

当量齿数

Dimyf(4)AsSingle'

Dimys(4)AsSingle'

DimssAsSingle'

安全系数

Dimeb1AsSingle,eb2AsSingle'

轴向重合度

Dimtb1AsSingle,tb2AsSingle'

temp_yh_data.bt的角度数

Dimbe1AsSingle,be2AsSingle

Dimyb1AsSingle,yb2AsSingle'

螺旋角影响系数

按齿面接触疲劳强度设计相关参数

temp_yh_data.z1=xp(iiii,2)'

每次的优化结果

temp_yh_data.z3=xp(iiii,4)

temp_yh_data.u1=xp(iiii,5)

temp_yh_data.bt=xp(iiii,6)

temp_yh_data.u2=my_gear_data.uu/temp_yh_data.u1

temp_yh_data.z2=Int(temp_yh_data.z1*temp_yh_data.u1)

temp_yh_data.z4=Int(temp_yh_data.z3*temp_yh_data.u2)

temp_yh_data.n2=my_gear_data.n1/temp_yh_data.u1

t1=9550000!

*my_gear_data.p/my_gear_data.n1'

t3=9550000!

*my_gear_data.p*my_gear_data.np/temp_yh_data.n2

sn

(1)=my_gear_data.n1*my_gear_data.ly*my_gear_data.wn*144000!

工作周数

sn

(2)=sn

(1)/temp_yh_data.u1

sn(3)=60*temp_yh_data.n2*1*(my_gear_data.wn*8*300*my_gear_data.ly)

sn(4)=sn(3)/temp_yh_data.u2

ze1=jh_ze(my_gear_data.gm

(1),my_gear_data.gm

(2))

ze2=jh_ze(my_gear_data.gm(3),my_gear_data.gm(4))

er1=jh_er_kr(temp_yh_data.z1,temp_yh_data.z2,temp_yh_data.bt).er'

重合度

kr1=jh_er_kr(temp_yh_data.z1,temp_yh_data.z2,temp_yh_data.bt).kr'

载荷分配系数

er2=jh_er_kr(temp_yh_data.z3,temp_yh_data.z4,temp_yh_data.bt).er

kr2=jh_er_kr(temp_yh_data.z3,temp_yh_data.z4,temp_yh_data.bt).kr

r=20*0.017453'

压力角

rt=Atn(Tan(r)/Cos(temp_yh_data.bt))'

bb=Atn(Tan(temp_yh_data.bt)*Cos(rt))'

zh=Sqr(2*Cos(bb)/Sin(rt)/Cos(rt))

kh

(1)=jh_khn(my_gear_data.gm

(1),my_gear_data.mh

(1),sn

(1))'

kh(3)=jh_khn(my_gear_data.gm(3),my_gear_data.mh(3),sn(3))

ho

(1)=jh_ho(my_gear_data.gm

(1),my_gear_data.mh

(1),my_gear_data.hb

(1),my_gear_data.rc

(1))'

接触疲劳极限

ho(3)=jh_ho(my_gear_data.gm(3),my_gear_data.mh(3),my_gear_data.hb(3),my_gear_data.rc(3))

hp

(1)=kh

(1)*ho

(1)'

接触强度极限

hp(3)=kh(3)*ho(3)

按齿跟弯曲疲劳强度设计相关参数

zv

(1)=temp_yh_data.z1/(Cos(temp_yh_data.bt))^3'

zv

(2)=temp_yh_data.z2/(Cos(temp_yh_data.bt))^3

zv(3)=temp_yh_data.z3/(Cos(temp_yh_data.bt))^3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1