哈工大机械设计V带传动电算设计说明书---Matlab-GUI版.docx_第1页
哈工大机械设计V带传动电算设计说明书---Matlab-GUI版.docx_第2页
哈工大机械设计V带传动电算设计说明书---Matlab-GUI版.docx_第3页
哈工大机械设计V带传动电算设计说明书---Matlab-GUI版.docx_第4页
哈工大机械设计V带传动电算设计说明书---Matlab-GUI版.docx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

Harbin Institute of Technology上机电算设计说明书课程名称: 机械设计 设计题目: V带传动设计 院 系: 机电工程学院 班 级: 设 计 者: pyx 学 号: * 指导教师: 设计时间: 2015年10月30日 哈尔滨工业大学目录1.设计方案21.1设计要求21.2设计思路21.3设计程序框图22.程序源码42.1开始界面42.2设计界面52.3导入表格182.4清除界面193.变量说明204.程序运行结果214.1不同带型不同直径结果214.2 多组可选的值264.3特殊工作情况274.4容错功能275.参考文献281.设计方案1.1设计要求(1)程序中的变量名应尽可能与使用教材或标准相一致。(2)程序中的变量名应给以适当的注释,如名称、单位等,增加程序易读性和易用性。(3)程序头部应给出程序的适用范围。(4)程序输出结果应完整给出机械零部件设计需要的几何及结构参数。1.2设计思路考虑到设计中需要许多表格数据,所以采用Matlab进行编程,这样的话将书中的表格键入.mat文件中,方便编程计算的时候调用,大大简化了编程的工作量,同时也提高了软件的计算效率。要让软件智能就要让人的参与度越少越好,软件在内部对数据进行处理,只给出一些存在范围的参数供用户选择输入,比如带的型号,基准直径,预估中心距等等。而其余的相关系数在用户输入相关的原始数据之后便通过程序自动确定了。输入所要设计的V带的原始数据之后,通过查看选型图确定V带的型号,对于不同的型号V带在满足传动比误差以及带速度的条件的前提下,经计算有若干基准直径可供设计选用,或者没有满足条件的,则说明没有符合条件的设计。假设存在符合条件,选择完基准直径,由于预估中心距满足以下的不等式:,由此预估中心距存在一个范围,用户需要自己选择合适的,这一点很好的体现了人机交互,在这之后以用户确定的参数为基准进行后续的计算,并输出最终的设计结果,至此整个设计过程结束。当然用户可以通过选择不同的基准直径以及输入合理范围内不同的预估中心距来比较设计的结果,最终选择合适的设计方案。1.3设计程序框图开始输入选择工作机载荷情况,原动机的类型,一天工作时间输出设计功率查看带型图,选择带型号,确定相关系数查看可选值,选择的值根据的取值范围:,输入的值输出设计结果:结束 N Y NY Y N Y Y2.程序源码本软件是基于Matlab R2014a编制的,总共有4个.m文件,下面是个文件的源代码,及相关的说明。2.1开始界面文件名为V_Belt_Design_Welcome.m,该文件为程序的开始界面。%-%-机械设计电算V带传动设计-开始界面%- function varargout = V_Belt_Design_Welcome(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, V_Belt_Design_Welcome_OpeningFcn, . gui_OutputFcn, V_Belt_Design_Welcome_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% 以上为初始化语句,勿修改! function V_Belt_Design_Welcome_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;guidata(hObject, handles); function varargout = V_Belt_Design_Welcome_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles)close(V_Belt_Design_Welcome);run(V_Belt_Design); function pushbutton2_Callback(hObject, eventdata, handles)open( Readme.html);2.2设计界面文件名为V_Belt_Design.m,该文件为程序的设计计算界面。%-%-机械设计电算V带传动设计-设计界面%-function varargout = V_Belt_Design(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, V_Belt_Design_OpeningFcn, . gui_OutputFcn, V_Belt_Design_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% 以上为初始化语句,勿修改! function V_Belt_Design_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;guidata(hObject, handles); function varargout = V_Belt_Design_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; %-%- function PrimeMotor_Callback(hObject, eventdata, handles)function PrimeMotor_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function WorkingHours_Callback(hObject, eventdata, handles)function WorkingHours_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end %-设计计算按钮-function pushbutton1_Callback(hObject, eventdata, handles) clc;Load_Table; %导入相关表格global Pd;global dd1;global dd2;global a0min;global a0max;i=str2double(get(handles.edit3,String);%传动比n1=str2double(get(handles.edit2,String);%小带轮转速(r/min)a0=str2double(get(handles.edit17,String); %-%-图5.17带型选取表,5.1查m(kg/m)-%-TYPE=get(handles.BeltType,value);switch TYPE case 2 BeltType=2;%Z; m=0.06;%质量 ddMIN=dd_for_Z;%重新统一命名 rang_dd=length(ddMIN);%可供选择直径的数目 case 3 BeltType=3;%A; m=0.1; ddMIN=dd_for_A; rang_dd=length(ddMIN); case 4 BeltType=4;%B; m=0.17; ddMIN=dd_for_B; rang_dd=length(ddMIN)-3;%去掉表格中的0 case 5 BeltType=5;%C; m=0.3; ddMIN=dd_for_C; rang_dd=length(ddMIN)-7; case 6 BeltType=6;%D; m=0.6; ddMIN=dd_for_D; rang_dd=length(ddMIN)-10; case 7 BeltType=7;%E; m=0.9; ddMIN=dd_for_E; rang_dd=length(ddMIN)-13; otherwise errordlg( 请查图选择带型,错误提示); end %-%-表5.4带轮基准直径的确定-%-num_of_dd1=0;dd_choice=Table5_4P0(:,1);%将表5.4中的dd作为供选择的基准直径dd2for index_for_dd=1:1:rang_dd dd2_temp=i*ddMIN(index_for_dd); delta_dd2=abs(dd_choice-dd2_temp); dd2_m,index_dd2=min(delta_dd2); dd2_middle=dd_choice(index_dd2);%dd2_middle为选择dd2的一个国标中间变量 error=abs(dd2_middle-dd2_temp)/ddMIN(index_for_dd)/i);%误差 if (error= VMAX Clear_All; errordlg( 带速不符合要求,请重新输入,错误提示);end %判断用户是否已经输入a0 if (a0=0|a0a0max)&user_selection_value=1 errordlg( 请输入正确的a0,错误提示);end %由表5.2选择基准长度LdLdBasic=2*a0+pi*(dd1+dd2)/2+(dd2-dd1)2/(4*a0);delta_Ld=abs(Table5_2KL(:,1)-LdBasic);Ld_m,index_Ld=min(delta_Ld);Ld=Table5_2KL(index_Ld,1); a=a0+(Ld-LdBasic)/2;%实际中心距 %小轮包角计算(度)ALF1=180-(dd2-dd1)/a)*57.3; %-%-V带根数确定-%- Kb=Table5_5Kb(BeltType);if i=1 & i=1.02 &i=1.05 & i=1.09 & i=1.13 & i=1.19 & i=1.25 & i=1.35 & i=1.52 & i2 i_serial=9; else i_serial=10; end end end end end end end endend %由大作业指导书P39表5.6计算P0K1=Table_P0factor(1,BeltType-1); K2=Table_P0factor(2,BeltType-1);K3=Table_P0factor(3,BeltType-1);P0=(K1*V(-0.09)-K2/dd1-K3*V2)*V; Kb=Table5_5Kb(BeltType);%由表5.5查得Ki=Table5_6Ki(i_serial);%由表5.6查得DIFP0=Kb*n1*(1-1/Ki);%功率增量%由表5.9确定包角修正系数KALFdelta_ALF1=abs(Table5_9Kalpha(1,:)-ALF1);ALF1_m,index_ALF1=min(delta_ALF1);KALF=Table5_9Kalpha(2,index_ALF1); %由表5.2确定长度系KLLd_row=Table5_2KL(:,1);Ld_serial=find(Ld_row=Ld);KL=Table5_2KL(Ld_serial,BeltType+1);%暂不考虑Y型带 %计算带的根数Z=round(Pd/(P0+DIFP0)*KALF*KL) %-%-初拉力的计算,作用在轴上的力计算-%-F0=500*Pd*(2.5-KALF)/(Z*V*KALF)+m*V2; FQ=2*Z*F0*sin(ALF1*pi/360);%ALF1得先转成弧度制 %-%-数据输出-%-Pdstr=num2str(Pd);dd1str=num2str(dd1);dd2str=num2str(dd2);Ldstr=num2str(Ld);astr=num2str(a);ALF1str=num2str(ALF1);Zstr=num2str(Z);F0str=num2str(F0);FQstr=num2str(FQ);set(handles.edit4,String,Pdstr);set(handles.edit5,String,dd1str);set(handles.edit6,String,dd2str);set(handles.edit7,String,Ldstr);set(handles.edit8,String,astr);set(handles.edit9,String,ALF1str);set(handles.edit10,String,Zstr);set(handles.edit11,String,F0str);set(handles.edit12,String,FQstr);%-%-选择工作机,表5.7工作情况系数KA的确定-%-function LoadChoose_SelectionChangeFcn(hObject, eventdata, handles)global loading;loading=0;Load_State=get(eventdata.NewValue,Tag);switch Load_State case steady%载荷平稳 loading=1; set(handles.WokingExample,String,液体搅拌机;离心式水泵;通风机和鼓风机(P7.5kW);离心式压缩机;轻型输送机); case smallchange%载荷变动小 loading=2; set(handles.WokingExample,String,带式运输机;发电机;旋转式水泵;金属切削机床;剪床;压力机;印刷机;振动筛通风机(7.5kW); case bigchange%载荷变动较大 loading=3; set(handles.WokingExample,String,螺旋式运输机;斗式提升机;往复式水泵和压缩机;锻锤;磨粉机;锯木机和木工机械;纺织机械); case superchange%载荷变动很大 loading=4; set(handles.WokingExample,String,破碎机(旋转式、鄂式等);球磨机;棒磨机;起重机;挖掘机;橡胶辊压机); otherwise errordlg( 请选择工作机工作情况,错误提示); end function pushbutton2_Callback(hObject, eventdata, handles)global loading;global Pd;Load_Table;P=str2double(get(handles.edit1,String);%额定功率(kW) %-%-表5.7工作情况系数KA的确定-%-设计功率的确定-%- %选择一天工作时间Hours=get(handles.WorkingHours,value);switch Hours case 2 TimeLength=1;% 16 otherwise errordlg( 请选择一天工作时间,错误提示); end %选择原动机工作类型MotorType=get(handles.PrimeMotor,value);switch MotorType %表5.7工作情况系数KA的确定 case 2 KA=Table5_7KA(loading,TimeLength); case 3 KA=Table5_7KA(loading,TimeLength+3); otherwise errordlg( 请选择原动机工作类型,错误提示); end%反复启动、正反转频繁、工作条件恶劣if get(handles.special_situation,Value)=1 KA=1.1*KA;End%设计功率确定Pd=KA*P;Pdstr=num2str(Pd);set(handles.edit4,String,Pdstr); %输出设计功率V_type=imread(V_Type.jpg); axes(handles.axes1);imshow(V_type); %选型图显示%-%-V带中心距和长度确定-%-function dd1_user_selection_Callback(hObject, eventdata, handles)global dd1;global dd2;global a0min;global a0max;a0min=0.7*(dd1+dd2);a0max=2*(dd1+dd2);a0minstr=num2str(a0min);a0maxstr=num2str(a0max);set(handles.edit15,String,a0minstr);set(handles.edit16,String,a0maxstr);user_selection_value=get(handles.dd1_user_selection,value)pushbtstr1=查看设计值;if user_selection_value=1 set(handles.pushbutton1,String,pushbtstr1);end function BeltType_Callback(hObject, eventdata, handles) TYPE=get(handles.BeltType,value)pushbtstr=查看dd1的值;if TYPE=1 set(handles.pushbutton1,String,pushbtstr);endfunction pushbutton3_Callback(hObject, eventdata, handles)Clear_All; %清除界面 function pushbutton4_Callback(hObject, eventdata, handles)%跳转至开始界面close(V_Belt_Design); run(V_Belt_Design_Welcome);%-%-相关控件的库函数-%-function BeltType_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit3_Callback(hObject, eventdata, handles)function edit3_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit4_Callback(hObject, eventdata, handles)function edit4_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit5_Callback(hObject, eventdata, handles)function edit5_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit6_Callback(hObject, eventdata, handles)function edit6_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit7_Callback(hObject, eventdata, handles)function edit7_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit8_Callback(hObject, eventdata, handles)function edit8_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit9_Callback(hObject, eventdata, handles)function edit9_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit10_Callback(hObject, eventdata, handles)function edit10_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit11_Callback(hObject, eventdata, handles)function edit11_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit12_Callback(hObject, eventdata, handles)function edit12_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function dd1_user_selection_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function special_situation_Callback(hObject, eventdata, handles) function figure1_ResizeFcn(hObject, eventdata, handles) function edit15_Callback(hObject, eventdata, handles)function edit15_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit16_Callback(hObject, eventdata, handles)function edit16_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function edit17_Callback(hObject, eventdata, handles)function edit17_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end function axes1_CreateFcn(hObject, eventdata, handles)2.3导入表格 文件名为Load_Table.m,该文件负责将设计中用到的.mat文件以变量形式导入到工作区中备用,其中所有的.mat表

温馨提示

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

评论

0/150

提交评论