小齿轮模块程序清单Word格式.docx
- 文档编号:19054268
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:40
- 大小:22.18KB
小齿轮模块程序清单Word格式.docx
《小齿轮模块程序清单Word格式.docx》由会员分享,可在线阅读,更多相关《小齿轮模块程序清单Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
高速级大齿轮热处理
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小齿轮 模块 程序 清单
![提示](https://static.bdocx.com/images/bang_tan.gif)