机械设计普通V带设计电算程序.docx
- 文档编号:30642031
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:18
- 大小:472.21KB
机械设计普通V带设计电算程序.docx
《机械设计普通V带设计电算程序.docx》由会员分享,可在线阅读,更多相关《机械设计普通V带设计电算程序.docx(18页珍藏版)》请在冰豆网上搜索。
机械设计普通V带设计电算程序
普通V带传动GUI设计说明书
题目:
V带传动GUI设计
系别:
机电工程学院
班号:
1008102
学号:
1100800418
姓名:
陈丁
日期:
2012年10月16
一、普通V带传动设计内容和任务
1、普通V带传动设计内容
给定原始数据:
传递的功率P,小带轮转速n1,传动比i,工作条件。
设计内容:
带型号,基准长度Ld,根数Z,传动中心距a,小带轮基准直径dd1、大带轮基准直径dd2,初拉力F0,和压轴力Q,带轮轮缘宽度B。
2、电算的任务:
(1)编制V带传动设计程序框图。
(2)编制V带传动设计原程序。
(3)按习题或作业中数据运行程序,进行计算并输出所有结果。
二、变量标识符
序号
名称
代号
标识符
单位
1
名义功率
P
P
kw
2
设计功率
Pd
Pd
kw
3
工作情况系数
KA
KA
4
小带轮转速
n1
n1
r/min
5
工作机载荷特性
GZJ
6
原动机类型
YDJ
7
工作时间
TMIE
8
带型号
Z、A…E
TYPE
9
小带轮基准直径
dd1
dd1
mm
10
大带论基准直径
dd2
dd2
mm
11
带速
v
V
m/s
12
最大带速
vmax
VMAX
m/s
13
预估中心距
a0
a0
mm
14
实际中心距
a
a
mm
15
基准长度
Ld
Ld
mm
16
小带轮包角
α1
ALF1
度
17
V带根数
Z
Z
18
基本额定功率
P0
P0
kw
19
功率增量
ΔP0
DIFP0
kw
20
传动比系数
Ki
Ki
21
长度系数
KL
KL
22
包角系数
Kα
KALF
23
弯曲影响系数
Kb
Kb
24
初拉力
F0
F0
N
25
压轴力
Q
Q
N
26
轮缘宽度
B
B
mm
27
圆周率
π
PAI
28
环境判断
X
X
29
功能变量
C、E…
C、E…
三、程序框图
四、使用说明
本程序应该在matlab2012Ra中运行
本程序使用很简单,可以对普通V带进行简单的设计,实现了自动化,使用者只需根据用户界面提示信息进行数据输入后按确定键就可进行相应的V带设计。
根据计算,程序会提醒用户在若干推荐值中选取小带轮直径,并自动提示用户获取与理论大带轮值接近的值,提供中心距初始范围,即可算出所需结果,若不合格则可进行重复计算,也可进行在相同初始条件下地带轮重新计算。
特殊功能:
界面简洁,不用频繁切换即可完成,所有参数均显示在界面上,可以清楚的显示计算结果的,自动查找各种必要的修正系数。
五、结果比较
三种带型各三种直径共九个计算结果如下:
根据计算结果可以看到,九组结果中,A型带的F0值偏小,FQ值随型号增加而减小,Z值也随型号和小带轮直径增加而减小,到C型带时,Z已接近于1。
综合小带轮大小和受力大小,选择A型带中小带轮直径为125mm,中心距为500mm为设计尺寸。
计算过程截图显示:
程序可以显示错误和提醒
六、程序源代码(matlab语言GUI编写)
由于GUI界面编程自动生成函数较多,下面代码为核心代码。
functionpushbutton1_Callback(hObject,eventdata,handles)
%使用密码进入界面
val1=get(handles.edit1,'string');
val2=get(handles.edit2,'string');
h=gcf;
set(h,'resize','on')
if(strcmp(val1,'陈丁')&&strcmp(val2,'1100800418'))
jxsj_v4;
set(h,'visible','off');
else
errordlg('错误!
密码:
陈丁、1100800418');
end
functionjxsj_v4_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
globalKP0Kl
set(handles.tip,'String','请输入已知数据','Fontsize',12);
Kl=xlsread('机械设计用.xlsx',1);
KP0=xlsread('机械设计用.xlsx',2);
set(gcf,'resize','on');
guidata(hObject,handles);
functionvarargout=jxsj_v4_OutputFcn(hObject,eventdata,handles)
functionP_Callback(hObject,eventdata,handles)%传递功率回调函数
globalP
P=str2double(get(hObject,'String'));%传递(名义)功率
functionn_Callback(hObject,eventdata,handles)%电机转速回调函数
globaln1
n1=str2double(get(hObject,'String'));%电机(小带轮)转速
functionI_Callback(hObject,eventdata,handles)%传动比回调函数
globali
i=str2double(get(hObject,'String'));%传动比
functionsure3_Callback(hObject,eventdata,handles)
globalKaPPd;
%%工作情况系数
a(1,:
:
)=[11.11.2;1.11.21.3;1.21.31.4;1.31.41.5];
a(2,:
:
)=[1.11.21.3;1.21.31.4;1.41.51.6;1.51.61.8];
x=get(handles.YDJ,'Value');%工作机工作情况
y=get(handles.GZJ,'Value');%原动机类别
z=get(handles.TIME,'Value');%一天工作时间(h)
Ka=a(x,y,z);%工作系数Ka
x1=get(handles.rbt1,'value');%是否反复启动
x2=get(handles.rbt2,'value');%是否正反转频繁
x3=get(handles.rbt3,'value');%工作条件是否恶劣
if(x1+x2+x3)>0
Ka=1.1*Ka;
end
Pd=Ka*P;%设计功率
set(handles.Pd,'string',num2str(Pd));%显示设计功率的值
set(handles.n1,'string',get(handles.n,'string'));%显示带轮转速的值
set(handles.tip,'string','请根据设计功率Pd和带轮转速n,通过普通V带选型图选择V带带型','Fontsize',12);
axis(handles.axes1);
I=imread('普通V带选型图.png');
imshow(I);%显示V带选型图
functionTYPE_Callback(hObject,eventdata,handles)
globaltype
type1=get(hObject,'Value');
TypeStr=get(hObject,'string');
type=TypeStr(type1);%工作机类型
switch(type1)
case1%Y型带的小带轮直径
set(handles.DD1,'String',[202835.540]);
case2%Z型带的小带轮直径
set(handles.DD1,'String',[50637180]);
case3%A型带的小带轮直径
set(handles.DD1,'String',[7590100125]);
case4%B型带的小带轮直径
set(handles.DD1,'String',[125140160180]);
case5%C型带的小带轮直径
set(handles.DD1,'String',[200250315400]);
case6%D型带的小带轮直径
set(handles.DD1,'String',[355400450500]);
otherwise%E型带的小带轮直径
set(handles.DD1,'String',[500560630710]);
end
functionTIME_Callback(hObject,eventdata,handles)
TIME=get(hObject,'Value');%一天的工作时间(h)
functionYDJ_Callback(hObject,eventdata,handles)
YDJ=get(hObject,'Value');%原动机类型
functionsure2_Callback(hObject,eventdata,handles)
set(handles.tip,'String','请设置原动机参数','Fontsize',12);
functionsure1_Callback(hObject,eventdata,handles)
set(handles.tip,'String','请设置工作机参数','Fontsize',12);
functionsure4_Callback(hObject,eventdata,handles)
%%确定键后边运行的代码
globalVMAXdd1idd2vmn
m=get(handles.TYPE,'Value');
n=get(handles.DD1,'Value');
if(m==6)||(m==7)
VMAX=30;
else
VMAX=25;
end
all_dd1=str2num(get(handles.DD1,'string'));
dd1=all_dd1(n);%小带轮直径
v=pi*dd1*str2double(get(handles.n1,'string'))/(60*1000);%带的速度
if(v dd2=i*dd1;%计算的大带轮直径 str1={'请合理选择大带轮直径','小带轮直径: dd1='num2str(dd1),'理论大带轮直径: dd2='num2str(dd2)}; set(handles.tip,'String',str1); else errordlg('减小直径','错误'); end rd2=[20;28;31.5;35.5;40;45;50; 56;63;71;80;90;100;112;125; 140;150;160;180;200;224;250; 280;315;355;400;425;450;500; 560;600;630;710;800];%标准供选择的大带轮直径 set(handles.DD2,'string',rd2); %%代码 functionsure5_Callback(hObject,eventdata,handles) globaldd1dd2rdd2min1PdnvLdza0BF0FQKlKP0 rdd2_index=get(handles.DD2,'value'); all_rdd2=get(handles.DD2,'string'); b=str2num(all_rdd2); rdd2=b(rdd2_index);%大带轮直径 flag=1; if(abs(rdd2/dd2-1)<0.05)%传动比误差不小于5,否则弹出出错对话框 a1=0.7*(dd1+dd2); a2=2*(dd1+dd2); set(handles.tip,'string',{'初估中心距a0范围',[num2str(a1)'<=''a0''<='num2str(a2)]},'fontsize',12); else errordlg('传动比误差不小于5%,请重新选择','错误'); flag=0; a1=0.7*(dd1+dd2); a2=2*(dd1+dd2); end if(flag==1) %弹出输入初估的中心距a0,计算带的基准长度Ld0;再查表确定Ld a0=inputdlg([num2str(a1)'<=''a0''<='num2str(a2)],'请输入初估计的中心距a0'); a0=str2num(a0{1});%初估计的中心距a0 Ld0=2*a0+pi/2*(dd1+rdd2)+(rdd2-dd1).^2/(4*a0);%计算的V带基准长度 Ld1=[200,224,250,280,315,355,400,450,500,560,630,710,800,900,1000,... 1120,1250,1400,1600,1800,2000,2240,2500,2800,3150,3550,4000,4500,5000];%V带基准长度数据 [~,idex]=min(abs((Ld1-Ld0))); Ld=Ld1(idex);%V带基准长度 KL=Kl(idex,m+1);%基准长度系数 a=a0+(Ld-Ld0)/2;%实际中心距a ALF1=180-(dd2-dd1)/a*57.3;%包角 KALF=[90100110120130140150160170180190200210220;... 0.680.730.780.820.860.890.920.950.9811.051.11.151.2]; [~,idex2]=min(abs(KALF(1,: )-ALF1)); Kalf=KALF(2,idex2);%包角系数 KB=[10.2925*1e-30.7725*1e-31.9875*1e-35.625*1e-319.95*1e-337.35*1e-3]; Kb=KB(m);%弯曲影响系数 Ki1=[11.01361.02761.04191.05671.07191.08751.10361.12021.1373]; if(i>=2) flag=10; elseif(i>=1.52) flag=9; elseif(i>=1.35) flag=8; elseif(i>=1.25) flag=7; elseif(i>=1.19) flag=6; elseif(i>=1.13) flag=5; elseif(i>=1.09) flag=4; elseif(i>=1.05) flag=3; elseif(i>=1.02) flag=2; else flag=1; end Ki=Ki1(flag);%传动比系数 DIFP0=Kb*n1*(1-1/Ki);%功率增量 HKP0=[1002004007008009501200145016002000240028003200360040004500500055006000]; [~,IDEX]=min(abs(HKP0-n1)); P0=KP0((m-1)*4+n+1,IDEX+1);%实际功率 z1=Pd/((DIFP0+P0)*KL*Kalf);%实际计算带的根数 z=ceil(z1);%对带的根数向上取整 e=[812151925.53744.5];%普通V带轮槽剖面尺寸e数据 f=[781012.5172329];%普通V带轮槽剖面尺寸f数据 B=(z-1)*e(m)+2*f(m);%普通V带轮缘宽度 M1=[0.020.060.10.170.30.60.9];%普通V单位质量数据 M=M1(m);%V带单位质量 if(z<10) F0=500*Pd/(z*v*Kalf)*(2.5-Kalf)+M*v.^2;%初拉力 FQ=2*z*F0*sin(ALF1/360*pi);%轴压力 else errordlg('带轮的根数不小于10') sure3_Callback(hObject,eventdata,handles); end end functionjsjg_Callback(hObject,eventdata,handles) globaltypeLdza0dd1rdd2BF0FQraw raw=[raw;[typeLdza0dd1rdd2BF0FQ]]; set(handles.uitable4,'data',raw);%计算结果显示按钮 functionnextd_Callback(hObject,eventdata,handles) helpdlg('请重新选择带轮直径','计算下一直径带轮') set(handles.tip,'string','请重新选择带轮直径'); sure4_Callback(hObject,eventdata,handles); functionnextv_Callback(hObject,eventdata,handles) helpdlg('请重新选择下一型号带','计算下一型号带') set(handles.tip,'string','请重新选择型号带'); sure3_Callback(hObject,eventdata,handles) functionqcjg_Callback(hObject,eventdata,handles) globalraw raw=[]; set(handles.uitable4,'Data',raw);%清空按钮 functionclose_Callback(hObject,eventdata,handles) closereq;%关闭按钮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械设计 普通 设计 电算 程序