哈工大机械设计V带传动电算设计说明书MatlabGUI版.docx
《哈工大机械设计V带传动电算设计说明书MatlabGUI版.docx》由会员分享,可在线阅读,更多相关《哈工大机械设计V带传动电算设计说明书MatlabGUI版.docx(29页珍藏版)》请在咨信网上搜索。
哈工大机械设计V带传动电算设计说明书MatlabGUI版 27 2020年4月19日 文档仅供参考 Harbin Institute of Technology 上机电算设计说明书 课程名称: 机械设计 设计题目: V带传动设计 院 系: 机电工程学院 班 级: 设 计 者: pyx 学 号: ******* 指导教师: 设计时间: 2015年10月30日 哈尔滨工业大学 目录 1.设计方案 2 1.1设计要求 2 1.2设计思路 2 1.3设计程序框图 2 2.程序源码 4 2.1开始界面 4 2.2设计界面 5 2.3导入表格 18 2.4清除界面 19 3.变量说明 20 4.程序运行结果 21 4.1不同带型不同直径结果 21 4.2 多组可选的值 26 4.3特殊工作情况 27 4.4容错功能 27 5.参考文献 28 1.设计方案 1.1设计要求 (1)程序中的变量名应尽可能与使用教材或标准相一致。 (2)程序中的变量名应给以适当的注释,如名称、单位等,增加程序易读性和易用性。 (3)程序头部应给出程序的适用范围。 (4)程序输出结果应完整给出机械零部件设计需要的几何及结构参数。 1.2设计思路 考虑到设计中需要许多表格数据,所以采用Matlab进行编程,这样的话将书中的表格键入.mat文件中,方便编程计算的时候调用,大大简化了编程的工作量,同时也提高了软件的计算效率。要让软件智能就要让人的参与度越少越好,软件在内部对数据进行处理,只给出一些存在范围的参数供用户选择输入,比如带的型号,基准直径,预估中心距等等。而其余的相关系数在用户输入相关的原始数据之后便通过程序自动确定了。 输入所要设计的V带的原始数据之后,通过查看选型图确定V带的型号,对于不同的型号V带在满足传动比误差以及带速度的条件的前提下,经计算有若干基准直径可供设计选用,或者没有满足条件的,则说明没有符合条件的设计。假设存在符合条件,选择完基准直径,由于预估中心距满足以下的不等式:,由此预估中心距存在一个范围,用户需要自己选择合适的,这一点很好的体现了人机交互,在这之后以用户确定的参数为基准进行后续的计算,并输出最终的设计结果,至此整个设计过程结束。 当然用户可以通过选择不同的基准直径以及输入合理范围内不同的预估中心距来比较设计的结果,最终选择合适的设计方案。 1.3设计程序框图 开始 输入 选择工作机载荷情况,原动机的类型,一天工作时间 输出设计功率 查看带型图,选择带型号,确定相关系数 查看可选值,选择的值 根据的取值范围:,输入的值 输出设计结果: 结束 N Y N Y Y N Y Y 2.程序源码 本软件是基于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(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1: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) varargout{1} = 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(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1: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) varargout{1} = 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作为供选择的基准直径dd2 for 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<=0.05) num_of_dd1=num_of_dd1+1; dd1(num_of_dd1)=ddMIN(index_for_dd); dd2(num_of_dd1)=dd2_middle; end end %为用户提供可选择的值 dd1=num2str(dd1'); set(handles.dd1_user_selection,'string',dd1); %由用户选择的dd1的值计算dd2 user_selection_value=get(handles.dd1_user_selection,'value'); dd1=str2num(dd1); dd1=dd1(user_selection_value) dd2=dd2(user_selection_value) %容错性,提示没有符合设计者要求dd1 if num_of_dd1==0&&index_for_dd==rang_dd errordlg(' 没有满足设计要求dd1','错误提示'); str_0='没有满足设计要求dd1' set(handles.dd1_user_selection,'String',str_0);%避免出现不符合要求的dd1 end %-------------------------------------------------- %-----------------速度验算------------------------- %-------------------------------------------------- V=(pi*dd1*n1)/60000; VMAX=25; if V>= VMAX Clear_All; errordlg(' 带速不符合要求,请重新输入','错误提示'); end %判断用户是否已经输入a0 if (a0==0||a0<a0min||a0>a0max)&&user_selection_value~=1 errordlg(' 请输入正确的a0','错误提示'); end %由表5.2选择基准长度Ld LdBasic=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_serial=1; else if i>=1.02 &&i<1.05 i_serial=2; else if i>=1.05 && i<1.09 i_serial=3; else if i>=1.09 && i<1.13 i_serial=4; else if i>=1.13 && i<1.19 i_serial=5; else if i>=1.19 && i<1.25 i_serial=6; else if i>=1.25 && i<1.35 i_serial=7; else if i>=1.35 && i<1.52 i_serial=8; else if i>=1.52 && i<2 i_serial=9; else i_serial=10; end end end end end end end end end %由大作业指导书P39表5.6计算P0 K1=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*V^2)*V; Kb=Table5_5Kb(BeltType);%由表5.5查得 Ki=Table5_6Ki(i_serial);%由表5.6查得 DIFP0=Kb*n1*(1-1/Ki);%功率增量 %由表5.9确定包角修正系数KALF delta_ALF1=abs(Table5_9Kalpha(1,:)-ALF1); [ALF1_m,index_ALF1]=min(delta_ALF1); KALF=Table5_9Kalpha(2,index_ALF1); %由表5.2确定长度系KL Ld_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*V^2; 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','液体搅拌机;离心式水泵;通风机和鼓风机(P≤7.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;% <10 case 3 TimeLength=2;% 10~16 case 4 TimeLength=3;% >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); end function 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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 机械设计 传动 电算 设计 说明书 MatlabGUI
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文