哈工大机械设计电算实验(matlab2010)

合集下载

哈工大 机电产品现代设计方法实验报告

哈工大 机电产品现代设计方法实验报告

1 实验目的(1)掌握典型机电产品多学科协同优化设计软件环境组成,包括建模软件、分析软件、协同平台;(2)自主设计产品模型、分析过程、优化目标;(3) 对得到的优化结果进行定性分析,解释结果的合理性,编写上机实验报告。

2 实验内容(1) 轴或负载台的有限元分析(2) 基于Adams的运动学分析与仿真3实验相关情况介绍(包含使用软件或实验设备等情况)网络协同设计环境,如图1所示:包括产品CAD建模、有限元分析FEM、动力学仿真ADAMS和控制仿真MATLAB。

计算机网络硬件环境和相应软件环境。

图形工作站和路由器,安装协同设计仿真软件。

型图1 协同设计仿真平台组成典型机电产品协同设计仿真工作流程如下图2所示。

1)利用CAD建模工具,建立产品模型;2)利用ADAMS建立产品运动学模型;3)根据CAD和ADAMS传过来的结构模型和边界条件分析零件应力场和应变场;4)用ADAMS分析得到的运动参数(位移、速度)。

图2 协同设计仿真平台组成SysML语言是UML语言(Unified Modeling Language,统一建模语言,一种面向对象的标准建模语言,用于软件系统的可视化建模)在系统工程应用领域的延续和扩展,是近年提出的用于系统体系结构设计的多用途建模语言,用于对由软硬件、数据和人综合而成的复杂系统的集成体系结构进行可视化的说明、分析、设计及校验。

在这里我们绘制参数图如下。

在下面的参数图中,我们确定了系统中各部件的相互约束情况。

图4产品初步结构与SysML图4实验结果(含操作过程说明、结果记录及分析和实验总结等,可附页)(一)底座转台关键件有限元分析:1,在CAD中打开零件的三维模型图,导出为IGES格式模型文件(*.igs),在Ansys中运行file->import->IGSE...导入该模型; 或者按照以下步骤创建零件模型。

运行Preprocessor->Modeling->V olumns->Cylinder->Solide Cylinder,弹出如下对话框,在对话框中输入相应数值,。

哈尔滨工业大学机械设计大作业_带传动电算

哈尔滨工业大学机械设计大作业_带传动电算

H a r b i n I n s t i t u t e o f T e c h n o l o g y上机电算说明书课程名称:机械设计电算题目:普通V带传动院系:机电工程学院班级:设计者:学号:指导教师:设计时间:2015.11.11-2015.12.1哈尔滨工业大学目录一、普通V带传动的内容 (1)二、变量标识符 (1)三、程序框图 (2)四、V带设计C程序 (3)五、程序运行截图 (10)参考文献 (11)一、普通V带传动的内容给定原始数据:传递的功率P,小带轮转速n1 传动比i及工作条件设计内容:带型号,基准长度Ld,根数Z,传动中心距a,带轮基准直径dd1、dd2,带轮轮缘宽度B,初拉力F0和压轴力Q。

二、变量标识符为了使程序具有较好的可读性易用性,应采用统一的变量标识符,如表1所示。

表1变量标识符表。

表1 变量标识符表三、程序框图四、V带设计c程序#include<stdio.h>#include<math.h>#include<string.h>#define PAI 3.14int TYPE_TO_NUM(char type); /*将输入的字符(不论大小写)转换为数字方便使用*/float Select_Ki(float i); /*查表选择Ki的程序*/float Select_KA(float H,int GZJ,int YDJ); /*查表选择KA的程序*/float Select_KL(float Ld,int TYPE); /*查表选择KL的程序*/float Select_M(int TYPE); /*查表选择m的程序*/float Select_dd1(int TYPE); /*查表选择小轮基准直径dd1的程序*/ float Select_dd2(int dd1,float i); /*查表选择大轮直径dd2的程序*/ float Compute_P0(float V,int TYPE,float dd1); /*计算P0的程序*/float Compute_DIFP0(int TYPE,float Ki,int n1); /*计算DIFP0的程序*/float Compute_VMAX(int TYPE); /*计算VMAX的程序*/float Compute_KALF(float ALF1); /*计算KALF的程序*/float Compute_B(int TYPE,int z); /*计算带宽B的程序*/float* Compute_LAK(float dd1,float dd2,int TYPE); /*计算Ld,a,KL的程序*/ main(){floatP,H,i,n1,KA,Ki,dd1,dd2,V,P0,DIFP0,Pd,VMAX,*LAK,m,Ld,KALF,a,KL,z,F0,ALF1, Q,B;int YDJ,GZJ,TYPE,ANS;char type,ans;printf(" V带传动设计程序\n");printf(" 程序设计人:×××\n 班号:123456678\n 学号:1234567896\n"); START: printf("请输入原始参数:\n");printf("传递功率P(KW):");scanf("%f",&P);printf("小带轮转速n1(r/min):");scanf("%f",&n1);printf("传动比i:");scanf("%f",&i);printf("每天工作时间H(h):");scanf("%f",&H);printf("原动机类型(1或2):");scanf("%d",&YDJ);printf("工作机载荷类型:\n1,载荷平稳\n2,载荷变动较小\n3,载荷变动较大\n4,载荷变动很大\n");scanf("%d",&GZJ);DX: printf("带型:");scanf(" %c",&type);TYPE=TYPE_TO_NUM(type);KA= Select_KA(H,GZJ,YDJ);Pd=KA*P;VMAX=Compute_VMAX(TYPE);DD1:dd1=Select_dd1(TYPE);V=PAI*dd1*n1/60000;while(V>VMAX){printf("所选小轮基准直径过小!请重新选择!\n");dd1=Select_dd1(TYPE);V=PAI*dd1*n1/60000;}dd2=Select_dd2(dd1,i);P0=Compute_P0(V,TYPE,dd1);Ki=Select_Ki(i);DIFP0=Compute_DIFP0(TYPE,Ki,n1);LAK=Compute_LAK(dd1,dd2,TYPE);Ld=LAK[0];a=LAK[1];KL=LAK[2];ALF1=180-57.3*(dd2-dd1)/a;KALF=Compute_KALF(ALF1);z=ceil(Pd/(KALF*KL*(P0+DIFP0)));if(z>=10)goto DX;m=Select_M(TYPE);F0=500*Pd*(2.5-KALF)/(z*V*KALF)+m*V*V;Q=2*z*F0*sin(ALF1*PAI/360);B= Compute_B(TYPE,z);printf(" 计算结果\n");printf("小轮直径:%f mm\n大轮直径:%f mm\n中心距:%f mm\n带长:%f mm\n带宽:%f mm\n带的根数:%f\n初拉力:%f N\n轴压力:%f N\n",dd1,dd2,a,Ld,B,z,F0,Q); X: printf("计算下一组带轮直径按'Y',重新开始按'S',结束按'N':");scanf(" %c",&ans);ANS=TYPE_TO_NUM(ans);if(ANS==6)goto DD1;else if(ANS==7)goto START;else if(ANS==8)printf("程序结束");else{printf("输入错误,请重新输入");goto X;}}float Select_KA(float H,int GZJ,int YDJ){float ka1[4][3]={{1.0,1.1,1.2},{1.1,1.2,1.3},{1.2,1.3,1.4},{1.3,1.4,1.5}};float ka2[4][3]={{1.1,1.2,1.3},{1.2,1.3,1.4},{1.4,1.5,1.6},{1.5,1.6,1.8}};float KA;if(YDJ==1){if(H<10)KA=ka1[GZJ-1][0];else if(H>16)KA=ka1[GZJ-1][2];elseKA=ka1[GZJ-1][1];}if(YDJ==2){if(H<10)KA=ka2[GZJ-1][0];else if(H>16)KA=ka2[GZJ-1][2];elseKA=ka2[GZJ-1][1];}return KA;}float Select_Ki(float i){float m;floatKi[10]={1.0000,1.0136,1.0276,1.0419,1.0567,1.0719,1.0875,1.1036,1.1202,1.1 373};float I[10]={1.00,1.02,1.05,1.09,1.13,1.19,1.25,1.35,1.52,2.00};int j=9;for(j=9;j>=0;j--){m=i-I[j];if(m>=0)break;}return Ki[j];}int TYPE_TO_NUM(char type){int x;if(type<91)type+=32;switch(type){case 'z':x=0;break;case 'a':x=1;break;case 'b':x=2;break;case 'c':x=3;break;case 'd':x=4;break;case 'e':x=5;break;case 'y':x=6;break;case 's':x=7;break;case 'n':x=8;break;}return x;}float Compute_P0(float V,int TYPE,float dd1){float P0;float K1[6]={0.246,0.449,0.794,1.48,3.15,4.57};float K2[6]={7.44,19.02,50.6,143.2,507.3,951.5};float K3[6]={0.441e-4,0.765e-4,1.31e-4,2.34e-4,4.77e-4,7.06e-4};P0=(K1[TYPE]*pow(V,-0.09)-K2[TYPE]/dd1-K3[TYPE]*V*V)*V;return P0;}float Compute_DIFP0(int TYPE,float Ki,int n1){float Kb,DIFP0;float KB[6]={0.2925e-3,0.7725e-3,1.9875e-3,5.625e-3,19.95e-3,37.35e-3};Kb=KB[TYPE];DIFP0=Kb*n1*(1-1/Ki);return DIFP0;}float Select_dd1(int TYPE){int i;float dd1;float DD1[6][4]={{50,63,71,80},{75,90,100,125},{125,140,160,180},{200,250,315,400},{355,400,450,500},{500,560,630,710}};printf("该带型推荐的小带轮基准直径有(mm):\n");for(i=0;i<4;i++){printf("%.2f ",DD1[TYPE][i]);}printf("\n请选择小带轮直径dd1:");scanf("%f",&dd1);return dd1;}float Select_dd2(int dd1,float i){float DD2[]={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};float dd2,temp,t;int j=0;temp=i*dd1;for(j=0;j<28;j++){t=temp-DD2[j];if(t<=0)break;}if((DD2[j]-temp)<(temp-DD2[j-1]))dd2=DD2[j];elsedd2=DD2[j-1];return dd2;}float* Compute_LAK(float dd1,float dd2,int TYPE){int j=0;float a1,a2,a0,Ld0,temp,KALF,Ld,a,KL;float LAK[3];float kl[23][6]={{400,0.87},{450,0.89},{500,0.91},{560,0.94},{630,0.96,0.81},{710,0.99,0.83},{800,1.00,0.85,0.82},{900,1.03,0.8 7,0.84,0.83},{1000,1.06,0.89,0.86,0.86,0.83},{1120,1.08,0.91,0.88,0.88,0.86},{1250,1.10,0.93,0.90,0.91,0.89},{1400,1.14, 0.96,0.92,0.93,0.91},{1600,1.16,0.99,0.95,0.95,0.93},{1800,1.18,1.01,0.98,0.97,0.96},{2000,0,1.03,1.00,0.99,0.98},{2240,0,1.06,1 .03,1.02,1.00},{2500,0,1.09,1.05,1.04,1.03},{2800,0,1.11,1.07,1.07,1.06},{3150,0,1.13,1.09,1.09,1.08},{3550,0,1.17,1.13 ,1.12,1.11},{4000,0,1.19,1.15,1.15,1.14},{4500,0,0,1.18,1.18,1.17},{5000,0,0,0,1. 21,1.20}};a1=0.7*(dd1+dd2);a2=2*(dd1+dd2);printf("请输入初估中心距a0(范围为%.2fmm~%.2fmm):",a1,a2);scanf("%f",&a0);Ld0=2*a0+(dd1+dd2)*PAI/2+(dd2-dd1)*(dd2-dd1)/a0/4;for(j=0;j<23;j++){temp=Ld0-kl[j][0];if(temp<=0)break;}if((Ld0-kl[j-1][0])>(kl[j][0]-Ld0)){ Ld=kl[j][0];KL=kl[j][TYPE+1];}else{ Ld=kl[j-1][0];KL=kl[j-1][TYPE+1];}a=a0+(Ld-Ld0)/2;LAK[0]=Ld;LAK[1]=a;LAK[2]=KL;return LAK;}float Compute_VMAX(int TYPE){float VMAX;switch(TYPE){case 0:case 1:case 2:case 3:VMAX=25;break;case 4:case 5:VMAX=30;break;}return VMAX;}float Select_M(int TYPE){float m;float M[6]={0.06,0.1,0.17,0.3,0.6,0.9};m=M[TYPE];return m;}float Compute_B(int TYPE,int z){float f[6]={8,10,12.5,17,23,29};float e[6]={12,15,19,25.5,37,44.5};float B;B=(z-1)*e[TYPE]+2*f[TYPE];return B;}float Compute_KALF(float ALF1){floatkalf[2][14]={220,210,200,190,180,170,160,150,140,130,120,110,100,90,1.20,1. 15,1.10,1.05,1.00,0.98,0.95,0.92,0.89,0.86,0.82,0.78,0.73,0.68},KALF;int i;for(i=0;i<14;i++){if(ALF1<kalf[0][i]&&ALF1>kalf[0][i+1]){KALF=kalf[1][i]+(kalf[1][i]-kalf[1][i+1])*(ALF1-kalf[0][i])/10;break;}}return KALF;}五、程序运行截图电动机功率4kw,,转速960r/min,传动比2,工作时间24h。

机械设计matlab课程设计

机械设计matlab课程设计

机械设计matlab课程设计一、课程目标知识目标:1. 理解并掌握机械设计中常用的MATLAB命令和功能;2. 学会运用MATLAB进行机械系统建模、仿真和优化;3. 掌握运用MATLAB解决机械设计中的实际问题的方法和步骤。

技能目标:1. 能够运用MATLAB进行数据分析和处理,提高数据处理能力;2. 能够熟练使用MATLAB进行机械设计绘图,提高绘图技能;3. 能够独立完成机械设计相关MATLAB程序编写和调试,提升编程能力。

情感态度价值观目标:1. 培养学生对机械设计MATLAB课程的学习兴趣,激发学习热情;2. 培养学生严谨的科学态度,强调实际操作与理论知识的相结合;3. 增强学生的团队协作意识,培养合作解决问题的能力。

课程性质:本课程为实践性较强的学科,结合机械设计与MATLAB软件应用,注重培养学生的实际操作能力和解决问题的能力。

学生特点:学生具备一定的机械设计基础知识,对MATLAB软件有一定了解,但实际操作能力有待提高。

教学要求:结合课程性质和学生特点,采用任务驱动、案例教学等方法,使学生在实践中掌握知识,提高技能,培养情感态度价值观。

通过分解课程目标为具体学习成果,为教学设计和评估提供明确依据。

二、教学内容1. MATLAB基础命令与操作:介绍MATLAB的基本命令、数据类型、矩阵运算等,为学生后续学习打下基础。

(对应教材第一章)2. MATLAB绘图与可视化:讲解MATLAB绘图功能,如二维、三维图形绘制,让学生能够将机械设计结果可视化。

(对应教材第二章)3. 机械系统建模与仿真:结合教材第三章内容,教授学生如何使用MATLAB 进行机械系统的建模、仿真和结果分析。

4. 机械设计优化方法:介绍教材第四章内容,使学生掌握运用MATLAB进行机械设计优化的基本方法。

5. MATLAB在机械设计中的应用案例:分析教材第五章案例,让学生了解MATLAB在机械设计领域的实际应用。

6. 实践操作与项目实战:组织学生进行实践操作,结合教材内容开展项目实战,巩固所学知识,提高实际操作能力。

哈工大《电子系统》实验报告模板

哈工大《电子系统》实验报告模板

H a r b i n I n s t i t u t e o f T e c h n o l o g y《电子系统》实验报告院系:电信学院班级:设计者:学号:指导教师:孙思博实验一连续波雷达测速实验一、实验目的:1、掌握雷达测速原理。

2、了解连续波雷达测速实验仪器原理及其使用。

3、使用Matlab对实验数据进行分析,得到回波多普勒频率和目标速度。

二、实验原理:1、多普勒测速原理:由于运动目标相对辐射源的运动而引起发射信号的中心频率发生多普勒频移的现象称为多普勒效应。

目标运动方向的不同决定了多普勒频移的正负。

(如图1所示)图1.多普勒效应假设发射的是重复频率为错误!未找到引用源。

的脉冲串,雷达发射信号的波长为错误!未找到引用源。

时,设目标的速度为错误!未找到引用源。

,多普勒频率为错误!未找到引用源。

,以目标接近雷达为例,错误!未找到引用源。

错误!未找到引用源。

为接收脉冲串频率新频率错误!未找到引用源。

错误!未找到引用源。

为雷达发射信号的载频则:错误!未找到引用源。

,当|错误!未找到引用源。

|<<c时(1)2、多普勒信息的提取:在连续波工作状态时,利用相干检波器可以得到和错误!未找到引用源。

相关的一系列频谱分量,回波分量中的错误!未找到引用源。

、错误!未找到引用源。

、2错误!未找到引用源。

等高频分量被多普勒滤波器滤除,则最后获得就是多普勒分量,利用公式(1) 可以求得目标的速度。

本实验中发射波长为3cm,采样率是2048HZ。

三、实验仪器:实验装置如下:5402DSP测速传感器混频器连续波发射机传感器输出信号放大滤波AD 串行接口PC 机FFT图3-2 连续波雷达测速实验仪器原理框图图3. 测速雷达传感器三、 实验内容与步骤:1、 利用给定装置,使用一挡光板作为目标物体,移动该物体,则通过测速雷达传感器(如图3)能够获得回波数据,并被DSP 芯片采样,采样频率为2048HZ 。

2、 通过示波器观察波形,选择一高频干扰少的波形,利用软件获得其2048个数据,并存储在计算机中。

哈工大机械设计电算实验(matlab2010)

哈工大机械设计电算实验(matlab2010)

机械设计电算实验一:普通V带传动设计内容和任务1、普通V带传动设计内容给定原始数据:传递的功率P,小带轮转速n,传动比i及工作条件。

设计内容:带型号,基准长度Ld,根数Z,传动中心距a,带轮基准直径dd1、dd2,带轮轮缘宽度B,初拉力F0,和压轴力FQ。

2、CAD任务:(1)编制V带传动设计程序框图。

(2)编制V带传动设计原程序。

(3)按习题或作业中数据运行程序,要求对每一组数据各按三种V带型号计算,对每一种带型号选三种小带轮直径进行计算并输出所有结果。

二、变量标识符序号名称代号程序符号单位1 名义功率P p kwpd kw2 设计功率Pdkka3 工作情况系数KA4 小带轮转速nn r/min15 工作机载荷特性载荷类型6 原动机类型原动机类型7 工作年限a年b班8 带型号V带带型dd1 mm9 小带轮基准直径dd1dd2 mm10 大带论基准直径dd211 带速v v m/s12 最大带速vvmax m/smaxa0 mm13 预估中心距ald mm14 基准长度Ld15 实际中心距 a aa mmr 度16 小带轮包角α117 V带根数Z zpo kw18 基本额定功率P19 功率增量ΔPpp0 kwki20 传动比系数Ki21 长度系数KklLka22 包角系数Kαkb23 弯曲影响系数Kb24 初拉力Ff0 N25 压轴力Q fq N26 轮缘宽度 B bb mm三、程序框图开始输入原始数据P,n,i并选择电机计算设计功率由带型号确定最大带速,小带轮直径系,带的相关参数m,f,e 相关系数Kb确定带型号选择小带轮直径验算带速v<vmax?计算大带轮直径给定范围,预估中心距AA计算Ld并取标准值,计算实际中心距并圆整计算小带轮包角计算选择相关系数:Kα,Ki 。

插值计算P0,计算ΔP0计算带根数ZZ<10?计算相关参数结束下一型号带下一带轮直径B B四、源程序与其说明程序说明:本程序用Matlab2010b软件编制,主要针对机械设计大作业上的题型设计。

哈工大 电机学 MATLAB 仿真 实验报告

哈工大 电机学 MATLAB 仿真 实验报告

基于MATLAB的电机学计算机辅助分析与仿真实验报告班级:学号:姓名:完成时间:一、实验内容1.1单相变压器不同负载性质的相量图通过MATLAB 画出单相变压器带感性,阻性,容性三种不同性质负载的变压器向量图1.2感应电机的S T -曲线通过MATLAB 画出三相感应电动机的转矩转差率曲线二、实验要求2.1单相变压器不同负载性质的相量图根据给定的仿真实例画出负载相位角30,0,302-=j 三种情况下得向量图,观察电压大小与相位的关系,了解总结负载性质不同对向量图的影响2.2感应电机的S T -曲线根据给定的实例,画出3.1~3.1-=s 的S T -曲线,了解感应电机临界转差率的大小和稳定工作区间的大小,给出定性分析三、实验方法3.1单相变压器不同负载性质的相量图1.单相变压器不同负载性质的相量图 (1)先画出负载电压'2U 的相量;(2)根据负载的性质和阻抗角画出二次电流(规算值)的相量(3)在2U 上加上一个与电流方向相同的压降,其大小为二次电流规算值'2I 与二次漏电阻规算值'2R 之积;再加上一个超前电流方向︒90的压降,其大小为二次电流'2I 规算值与二次漏电抗规算值'2χ之积; (4)根据上一步结果连线,得出'2E ; (5)超前'2E 方向︒90画出m Φ;(6)根据励磁电阻与电抗的大小得出励磁阻抗角,并超前m Φ一个励磁阻抗角的大小得出m I 的方向;(7)根据平行四边形法则,做出'2I -与m I 的和,即为1I ; (8)根据'21E E =得出1E ,并得出1E -。

(9)在1E -上加上一个与电流方向相同的压降,其大小为一次电流1I 与一次漏电阻1R 之积;再加上一个超前电流方向︒90的压降,其大小为一次电流1I 与一次漏电抗1χ之积;(10) 根据上一步结果连线,得出1U ;3.2感应电机的S T -曲线实验采用matlab 对转矩转差率曲线进行仿真。

哈工大机械设计大作业三-V带传动电算编程-推荐下载

哈工大机械设计大作业三-V带传动电算编程-推荐下载

对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根保1据护过生高管产中线工资0不艺料仅高试可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时各卷,类调需管控要路试在习验最题;大到对限位设度。备内在进来管行确路调保敷整机设使组过其高程在中1正资中常料,工试要况卷加下安强与全看过,25度并52工且22作尽护下可1关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,卷.编工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术5写、卷交重电保底要气护。设设装管备备置线4高调、动敷中试电作设资高气,技料中课并术3试资件且、中卷料中拒管包试试调绝路含验卷试动敷线方技作设槽案术,技、以来术管及避架系免等统不多启必项动要方方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

matlab课程设计任务书2010测

matlab课程设计任务书2010测

课程设计任务书发布人:梁丽发布时间:2010年12月19日1、上机安排:(19周周一、三下午5,6节B307)注:按时到实验室上机,不得迟到早退2、课程设计说明书要求:1)写清楚整个设计过程,包括系统数学模型的分析、建立,控制器的设计、不同参数之间的控制效果比较,仿真过程等。

2)字数5000字左右;3)统一封皮,设计任务书放在最前面(封皮之后);4)按照教务网站上毕业设计说明书格式要求打印设计说明书;5)设计说明书如有雷同,两人都不及格;3、题目分配:一班:学号尾数1-12作第1题学号尾数13-23作第2题学号尾数24-33作第3题(必须到图书馆三楼借参考资料2,复印相关内容)学号尾数34-43作第4题另外有两个选做题,感兴趣的可选择内蒙古科技大学课程设计任务书6、完成5000字左右的课程设计报告(包括设计原理、设计过程及结果分析几部分),要求给出设计的模型图和仿真曲线图。

四、进度安排1、根据给定的参数或工程具体要求,收集和查阅资料(一天)2、Matlab/Simulink建模(一天)3、控制系统设计与优化(两天)4、编写课程设计说明书(一天)五、评分标准1)工作态度(占10%);2)基本技能的掌握程度(占20%);3)方案的设计是否可行和优化(40%);4)课程设计技术设计书编写水平(占30%)。

分为优、良、中、合格、不合格五个等级。

六、建议参考资料1、李国勇,控制系统数字仿真与CAD[M],北京:电子工业出版社,2003,92、王丹力,MATLAB控制系统设计仿真应用[M],北京:中国电力出版社,2007,92、薛定宇,控制系统仿真与计算机辅助设计[M],北京:机械工业出版社,2005,13、金以慧,过程控制[M],北京:清华大学出版社,2003,6内蒙古科技大学课程设计任务书课程名称控制系统仿真设计题目基于模糊控制器的自动着舰控制系统指导教师梁丽时间2010.12.27~2010.12.31一、教学要求1、学会收集和查阅资料,学会针对指定控制系统建立数学模型的方法;2、学会使用Matlab/Simulink建模和仿真的方法;3、掌握控制器的设计方法,以及控制器参数整定和优化的方法。

实验二《机械工程控制基础》Matlab仿真实验报告单

实验二《机械工程控制基础》Matlab仿真实验报告单

红河学院工学院实验报告单《机械工程控制基础》Matlab仿真实验报告单课程名称:机械工程控制基础姓名:徐海洋日期:2010-11-26 成绩:年级专业:07机械学号:5 实验场地:文514实验序号:实验二实验名称:二阶线性系统时间响应与时域性能指标的Matlab仿真实验一、实验内容。

1、二阶线性系统216 416s s++单位脉冲响应、单位阶跃响应、单位正弦输入响应的Matlab 仿真。

2、二阶线性系统2424s s++单位阶跃响应的时域性能指标。

3、二阶线性系统236 1236s sξ++,当0.1,0.2,0.4,0.7,1.0,2.0ξ=时,单位阶跃响应的Matlab仿真。

二、实验目的。

三、相关Matlab仿真程序。

程序一:>> clearnum=[16];den=[1 4 16];Gs=tf(num,den)t=0:0.1:20;figure(1);impulse(Gs,t)xlabel('时间')ylabel('输出')title('二阶系统单位脉冲响应') figure(2);step(Gs,t)xlabel('时间')ylabel('输出')title('二阶系统单位阶跃响应') figure(3);r=sin(t);lsim(Gs,r,t)xlabel('时间')ylabel('输出')title('二阶系统单位正弦输入响应')Transfer function:16--------------s^2 + 4 s + 16程序二:>> clearnum=[4];den=[1 2 4];disp('二阶系统传递函数')Gs=tf(num,den)disp('无阻尼固有频率与阻尼比')[Wn Xita ]=damp(Gs)Wn=Wn(1)Xita= Xita(1)disp('二阶系统性能指标如下')tr=(pi-atan(sqrt(1-Xita^2)/ Xita))/Wn/sqrt(1-Xita^2) tp=pi/Wn/sqrt(1-Xita^2)ts= 3.5/Xita/WnMp= exp(-pi*Xita/sqrt(1-Xita^2))*100二阶系统传递函数Transfer function:4-------------s^2 + 2 s + 4无阻尼固有频率与阻尼比Wn =2.00002.0000Xita =0.50000.5000Wn =2.0000Xita =0.5000二阶系统性能指标如下tr =1.2092tp =1.8138ts =3.5000Mp =16.3034程序三:clearclcnum=1;Wn=6;xita1=0.1;den1=[1/Wn^2 2*xita1/Wn 1]; xita2=0.2;den2=[1/Wn^2 2*xita2/Wn 1]; xita3=0.4;den3=[1/Wn^2 2*xita3/Wn 1]; xita4=0.7;den4=[1/Wn^2 2*xita4/Wn 1]; xita5=1.0;den5=[1/Wn^2 2*xita5/Wn 1]; xita6=2.0;den6=[1/Wn^2 2*xita6/Wn 1];t=0:0.05:4;[y1 x t]=step(num,den1,t); [y2 x t]=step(num,den2,t);[y3 x t]=step(num,den3,t);[y4 x t]=step(num,den4,t);[y5 x t]=step(num,den5,t);[y6 x t]=step(num,den6,t);figure(1)plot(t,y1,'b-',t,y2,'r--',t,y3,'k',t,y4,'g:',t,y5,'m-.',t,y6,'b.');xlabel('t(s)'),ylabel('y(t)');title('阻尼比 xita=0.1, 0.2, 0.4, 0.7, 1.0, 2.0')legend('xita1=0.1','xita2=0.2','xita3=0.4','xita4=0.7','xita5=1','xita6=2') 四、相关Matlab仿真图形。

哈工大电力系统分析短路及潮流计算实验上机程序

哈工大电力系统分析短路及潮流计算实验上机程序
elseif im>=0
fprintf(fid,'+%8.4fjn',im);
end
end
end end %%%============
fclose(fid);
%关闭文件
附:'node5.txt'
2、程序输出结果 节点导纳阵:
节点阻抗阵:
短路电流:
If= 0.0001+ 0.1082j 节点电压:
各支路电流:
for j=1:1:4
k=I(i,j);
re=real(k);
im=imag(k);
if(re~=0||im~=0)
fprintf(fid,'Branch%d--%d:I%d%d=',i,j,i,j);
fprintf(fid,'%8.4f',re);
if im<0
fprintf(fid,'%8.4fjn',im);
二、实验内容
1、编写数据输入、形成导纳阵程序
2、电力系统短路计算实用公式的计算程序及编制和调试
三、实验过程
1、程序代码及说明
%清屏 clear %读数据
fid=fopen('node5.txt','r');A=fscanf(fid,'%d',2);B=fscanf(fid,'%f',[5,A(2,1)]);fclose(fid);B=B';%求节点导纳矩阵
%===========================================
for j=1:1:A(1,1)-1
%===========================i~=j

哈工大机械V带传动电算报告共41页

哈工大机械V带传动电算报告共41页

H a r b i n I n s t i t u t e o f T e c h n o l o g y哈尔滨工业大学机械设计作业设计计算说明书设计题目: V带传动设计院系:英才学院哈尔滨工业大学一、程序框图二、V带设计程序function varargout = V_caculate(varargin)%本程序用于计算V带的各项数据%部分中文注释复制出来之后为乱码% V_CACULATE M-file for V_caculate.fig% V_CACULATE, by itself, creates a new V_CACULATE or raises the existing% singleton*.% H = V_CACULATE returns the handle to a new V_CACULATE or the handle to% the existing singleton*.% V_CACULATE('CALLBACK',hObject,eventData,handles,...)calls the local% function named CALLBACK in V_CACULATE.M with the given input arguments.% V_CACULATE('Property','Value',...) creates a newV_CACULATE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before V_caculate_OpeningFcn gets called. An% unrecognized property name or invalid value makes propertyapplication% stop. All inputs are passed to V_caculate_OpeningFcn via varargin.% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help V_caculate % Last Modified by GUIDE v2.5 06-Dec-2012 15:27:18% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @V_caculate_OpeningFcn, ... 'gui_OutputFcn', @V_caculate_OutputFcn, ... 'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before V_caculate is made visible.function V_caculate_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to V_caculate (see VARARGIN) global Pd yilei erlei chuandongbi zhuansu TYPE Dd1array Dd1 MINMAX P0array Narray Vmax Ldarray Dd1pos Kaarray Klarray Dd2array DSPcellarray CELLDSP TABLEPOS HEADMES;Vmax=25;%ZABCÐÍ´øµÄ×î´ó´øËÙ%ÒÔÏÂÊÇÆÕͨV´ø»ù±¾¶î¶¨¹¦ÂÊP0µÄ±í¸ñÊý¾ÝP0array=[0.000.04,0.06,0.09,0.10,0.12,0.14,0.16,0.17,0.20,0.22,0.26,0.28,0.3 0,0.32,0.33,0.34,0.33,0.31;0.000.05,0.08,0.13,0.15,0.18,0.22,0.25,0.27,0.32,0.37,0.41,0.45,0.4 7,0.49,0.50,0.50,0.49,0.48;0.000.06,0.09,0.17,0.20,0.23,0.27,0.30,0.33,0.39,0.46,0.50,0.54,0.5 8,0.61,0.62,0.62,0.61,0.58;0.000.10,0.14,0.20,0.22,0.26,0.30,0.35,0.39,0.44,0.50,0.56,0.61,0.6 4,0.67,0.67,0.66,0.64,0.00;0.000.15,0.26,0.40,0.45,0.51,0.60,0.68,0.73,0.84,0.92,1.00,1.04,1.0 8,1.09,1.07,1.02,0.96,0.80;0.000.22,0.39,0.61,0.68,0.77,0.93,1.07,1.05,1.34,1.50,1.64,1.73,1.8 3,1.87,1.88,1.82,0.00,0.00;0.000.26,0.47,0.74,0.83,0.95,1.14,1.32,1.42,1.66,1.87,2.05,2.19,2.2 8,2.34,2.33,0.00,0.00,0.00;0.00 0.37,0.67,1.07,1.19 1.37 1.66 1.92 2.07 2.44 2.74 2.98 3.16 3.26 0.00 0.00 0.00 0.00 0.00;0.00 0.48 0.84 1.30 1.44 1.64 1.93 2.19 2.33 2.64 2.85 2.96 2.94 2.80 0.00 0.00 0.00 0.00 0.00;0.00 0.59 1.05 1.64 1.82 2.08 2.47 2.82 3.00 3.42 3.70 3.85 3.830.00 0.00 0.00 0.00 0.00 0.00;0.00 0.74 1.32 2.09 2.32 2.66 3.17 3.62 3.86 4.40 4.75 4.89 0.00 0.00 0.00 0.00 0.00 0.00 0.00;0.00 0.88 1.59 2.53 2.81 3.22 3.85 4.39 4.68 5.30 5.67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;0.00 1.39 2.41 3.69 4.07 4.58 5.29 5.84 6.07 6.34 6.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;0.00 2.03 3.62 5.64 6.23 7.04 8.21 9.04 9.38 9.62 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;0.00 2.84 5.14 8.09 8.92 10.05 11.53 12.46 12.72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;0.00 3.91 7.06 11.02 12.10 13.48 15.04 0.0 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;3.01 5.31 9.24 13.70 14.83 16.15 17.25 16.77 15.63 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;3.66 6.52 11.45 17.07 18.46 20.06 21.20 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;4.37 7.90 13.85 20.63 22.25 24.01 24.84 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;5.08 9.21 16.20 23.99 25.76 27.50 0.000 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;6.21 10.86 18.55 26.21 27.57 28.32 0.00 0.00 0.000 0.00 0.00 0.000.00 0.00 0.00 0.00 0.00 0.00 0.00;7.32 13.09 22.49 31.59 33.03 33.40 0.00 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;8.75 15.65 26.95 37.26 38.62 0.000 0.00 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;10.31 18.52 31.83 42.87 43.52 0.00 0.00 0.00 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;MINMAX=[950,6000;800,6000;700,6000;700,6000;200,600;200,6000;20 0,6000;200,5500;200,6000;200,5000;200,4500;200,3600;200,3600;200,3200; 200,2800;200,2400;200,2400;200,2000;200,1600;200,1200;100,1600;100,1200;100,1200;100,950;100,950;100,950;100,800;100, 800;];Narray=[100,200,400,700,800,950,1200,1450,1600,2000,2400,2800,3 200,3600,4000,4500,5000,5500,6000];%ÒÔÏÂÊÇ´øµÄ»ù×¼³¤¶ÈLdϵÁÐLdarray=[200,224,250,280,315,355,400,450,500,560,630,710,800,90 0,1000,1120,1250,1400,1600,1800,2000,2240,2500,2800,3150,3550,4 000,4500,5000];Dd2array=[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];%ÒÔÏÂÊǹ¤×÷»·¾³µÄKa²é±íyilei=[1:0.1:1.2;1.1:0.1:1.3;1.2:0.1:1.4;1.3:0.1:1.5];erlei=[1.1:0.1:1.3;1.2:0.1:1.4;1.4:0.1:1.6;1.5,1.6,1.8];%°ü½ÇÐÞÕýϵÊý±íKaarray=[220,210,200,190,180,170,160,150,140,130,120,110,100,90 ;1.20,1.15,1.10,1.05,1.00,0.98,0.95,0.92,0.89,0.86,0.82,0.78,0.7 3,0.68];%´ø³¤ÐÞÕýϵÊý±íKlarray=[200 zeros(1,6);224 zeros(1,6);250 zeros(1,6);280 zeros(1,6);315 zeros(1,6);355 zeros(1,6);400 0.87 zeros(1,5);450 0.89 zeros(1,5);500 0.91 zeros(1,5);560 0.94 zeros(1,5);630 0.96 0.81 zeros(1,4);710 0.99 0.83 zeros(1,4);800 1.00 0.85 0.82 zeros(1,3);900 1.03 0.87 0.84 0.83 zeros(1,2);1000 1.06 0.89 0.86 0.86 0.83 0;1120 1.08 0.91 0.88 0.88 0.86 0;1250 1.10 0.93 0.90 0.91 0.89 0;1400 1.14 0.96 0.92 0.93 0.91 0;1600 1.16 0.99 0.95 0.95 0.93 0;1800 1.18 1.01 0.98 0.97 0.96 0;2000 0 1.03 1.00 0.99 0.98 0;2240 0 1.06 1.03 1.02 1.00 0;2500 0 1.09 1.05 1.04 1.03 0;2800 0 1.11 1.07 1.07 1.06 0;3150 0 1.13 1.09 1.09 1.08 0;3550 0 1.17 1.13 1.12 1.11 0;4000 0 1.19 1.15 1.15 1.14 0;4500 0 0 1.18 1.18 1.17 0;5000 0 0 0 1.21 1.20 0];%СÂÖÖ±¾¶ÏµÁÐÊý×éDd1array=[50 63 71 80 75 90 100 125 125 140 160 180 200 250 315 400355 400 450 500 500 560 630 710];%½çÃæ³õʼ»¯TYPE=get(handles.popupmenu11,'value');switch(TYPE)case 1set(handles.popup,'string','50|63|71|80');case 2set(handles.popup,'string','75|90|100|125');case 3set(handles.popup,'string','125|140|160|180');case 4set(handles.popup,'string','200|250|315|400');case 5set(handles.popup,'string','355|400|450|500');Vmax=30;case 6set(handles.popup,'string','500|560|630|710');Vmax=30;endDd1pos=get(handles.p opup,'value'); %È·¶¨popupÖÐDd1Ñ¡ÔñµÄλÖÃDd1=Dd1array((TYPE-1)*4+Dd1pos);TABLEPOS=1;changetabledsp(handles.uitable1,'deleteall',TABLEPOS,TYPE);set(handles.edit9,'string','');% Choose default command line output for V_caculatehandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes V_caculate wait for user response (see UIRESUME) % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = V_caculate_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;% --- Executes on selection change in popupmenu3.function popupmenu3_Callback(hObject, eventdata, handles)% hObject handle to popupmenu3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu3 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu3% --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu9.function popupmenu9_Callback(hObject, eventdata, handles)% hObject handle to popupmenu9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu9 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu9% --- Executes during object creation, after setting all properties.function popupmenu9_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu9 (see GCBO)% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu5.function popupmenu5_Callback(hObject, eventdata, handles)% hObject handle to popupmenu5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu5 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu5% --- Executes during object creation, after setting all properties. function popupmenu5_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu5 (see GCBO)% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu4.function popupmenu4_Callback(hObject, eventdata, handles)% hObject handle to popupmenu4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu4 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu4% --- Executes during object creation, after setting all properties. function popupmenu4_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu4 (see GCBO)% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu6.function popupmenu6_Callback(hObject, eventdata, handles)% hObject handle to popupmenu6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu6 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu6% --- Executes during object creation, after setting all properties. function popupmenu6_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu6 (see GCBO)% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu8.function popupmenu8_Callback(hObject, eventdata, handles)% hObject handle to popupmenu8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu8 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu8% --- Executes during object creation, after setting all properties. function popupmenu8_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in checkbox1.function checkbox1_Callback(hObject, eventdata, handles)% hObject handle to checkbox1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox1% --- Executes on button press in checkbox2.function checkbox2_Callback(hObject, eventdata, handles)% hObject handle to checkbox2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox2% --- Executes on button press in checkbox3.function checkbox3_Callback(hObject, eventdata, handles)% hObject handle to checkbox3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox3 % --- Executes during object creation, after setting all properties. function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Pd yilei erlei chuandongbi zhuansu TYPE Dd2array Dd1 Dd2 TABLEPOS HEADMES;for i=1:1p=get(handles.edit1,'string');n1=get(handles.edit2,'string');cd=get(handles.edit3,'string');gonglv=eval(p);%ÃûÒ幦ÂÊzhuansu=eval(n1);chuandongbi=eval(cd);%´«¶¯±ÈGZJ=get(handles.popupmenu3,'value');YDJ=get(handles.popupmenu5,'value');SJ=get(handles.popupmenu9,'value');if(YDJ==1||YDJ==3||YDJ==4||YDJ==6)leibie=1;elseleibie=2;endif(leibie==1)Ka=yilei(GZJ,SJ);elseKa=erlei(GZJ,SJ);end;check1=get(handles.checkbox1,'value'); check2=get(handles.checkbox2,'value'); check3=get(handles.checkbox3,'value'); gongzuochanghe=check1|check2|check3;if(gongzuochanghe==1)Ka=Ka*1.1;endPd=Ka*gonglv;xianshi=sprintf('%0.3f %s',Pd,'KW'); set(handles.text23,'string',xianshi); Dd22=chuandongbi*Dd1;Dd2=nearest(Dd22,Dd2array);a01=0.7*(Dd1+Dd2);a02=2*(Dd1+Dd2);pa1=num2str(a01);pa2=num2str(a02);set(handles.edit6,'string',pa1);set(handles.edit8,'string',pa2);end% --- Executes on selection change in popupmenu11.function popupmenu11_Callback(hObject, eventdata, handles)% hObject handle to popupmenu11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu11 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu11global TYPE Dd1pos Dd1array Dd1 Dd2 Dd2array chuandongbi;TYPE=get(handles.popupmenu11,'value');switch(TYPE)case 1set(handles.popup,'string','50|63|71|80');case 2set(handles.popup,'string','75|90|100|125');case 3set(handles.popup,'string','125|140|160|180');case 4set(handles.popup,'string','200|250|315|400');case 5set(handles.popup,'string','355|400|450|500');Vmax=30;case 6set(handles.popup,'string','500|560|630|710');Vmax=30;endDd1pos=get(handles.popup,'value'); %È·¶¨popupÖÐDd1Ñ¡ÔñµÄλÖÃDd1=Dd1array((TYPE-1)*4+Dd1pos);Dd22=chuandongbi*Dd1;Dd2=nearest(Dd22,Dd2array);a01=0.7*(Dd1+Dd2);a02=2*(Dd1+Dd2);pa1=num2str(a01);pa2=num2str(a02);set(handles.edit6,'string',pa1);set(handles.edit8,'string',pa2);% --- Executes during object creation, after setting all properties. function popupmenu11_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global Pd yilei erlei chuandongbi zhuansu TYPE Dd1 Dd2 MINMAXP0array Narray Vmax Ldarray Dd1pos Kaarray Dd2array KlarrayTABLEPOS data datafront;clc;for i=1:1Dd22=chuandongbi*Dd1;Dd2=nearest(Dd22,Dd2array);V=pi*Dd1*zhuansu/(60*1000);%´øËÙ a0=str2double(get(handles.edit9,'string'));%³õÑ¡ÖÐÐľàLdpie=2*a0+1.57*(Dd1+Dd2)+(Dd2-Dd1)^2/(4*a0);%³õÑ¡»ù×¼³¤¶ÈLd=nearest(Ldpie,Ldarray);%»ù×¼³¤¶Èa=round(a0+(Ld-Ldpie)/2); %ÖÐÐľàalf1=180-(Dd2-Dd1)/a*57.3; %СÂÖ°ü½Ç£¬µ¥Î»£º¶ÈP0=P0func(zhuansu,MINMAX,P0array,Narray,TYPE,Dd1pos);%²é±í£¬ÕÒµ½¾Í·µ»Ø¶î¶¨¹¦ÂÊKa=baojiao(alf1,Kaarray);%²éÕÒ°ü½ÇÐÞÕýϵÊýKl=daichangxiuzheng(Ld,TYPE,Klarray);%²éÕÒ´ø³¤ÐÞÕýϵÊý Kb=wanquyingxiang(TYPE);%ÍäÇúÓ°ÏìϵÊýKi=chuandongbixishu(chuandongbi);%´«¶¯±ÈϵÊýdietaP0=Kb*zhuansu*(1-1/Ki);Zfront=Pd/(P0+dietaP0)/Ka/Kl;%Ƥ´ø¸ùÊý Z=ceil(Zfront);m=mass(TYPE);%¼ÆËã´øµÄÖÊÁ¿if(Z<1)Z=1;endF0=500*Pd/(V*Z)*((2.5-Ka)/Ka)+m*V^2;%È·¶¨³õÀ­Á¦´óСFq=2*F0*Z*sin(alf1/360*pi);%¼ÆËã×÷ÓÃÔÚÖáÉϵÄѹÁ¦%ÏÔʾÊý¾Ýdata={Z,Ld,a,alf1,V,Dd2,F0,Fq};changetabledsp(handles.uitable1,'write',TABLEPOS,TYPE,data);TABLEPOS=TABLEPOS+1;endfunction popup_Callback(hObject, eventdata, handles)% hObject handle to popup (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of popup as text% str2double(get(hObject,'String')) returns contents ofpopup as a doubleglobal Dd1 TYPE Dd1array Dd1pos Dd2 Dd2array chuandongbi;Dd1pos=get(handles.popup,'value'); %È·¶¨popupÖÐDd1Ñ¡ÔñµÄλÖÃDd1=Dd1array((TYPE-1)*4+Dd1pos);Dd22=chuandongbi*Dd1;Dd2=nearest(Dd22,Dd2array);a01=0.7*(Dd1+Dd2);a02=2*(Dd1+Dd2);pa1=num2str(a01);pa2=num2str(a02);set(handles.edit6,'string',pa1);set(handles.edit8,'string',pa2);% --- Executes during object creation, after setting all properties. function popup_CreateFcn(hObject, eventdata, handles)% hObject handle to popup (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes when entered data in editable cell(s) in uitable1.function uitable1_CellEditCallback(hObject, eventdata, handles)% hObject handle to uitable1 (see GCBO)% eventdata structure with the following fields (see UITABLE)% Indices: row and column indices of the cell(s) edited% PreviousData: previous data for the cell(s) edited% EditData: string(s) entered by the user% NewData: EditData or its converted form set on the Data property. Empty if Data was not changed% Error: error string when failed to convert EditData to appropriate value for Data% handles structure with handles and user data (see GUIDATA) % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles)% hObject handle to edit8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns。

哈工大机械设计大作业V带电算

哈工大机械设计大作业V带电算

Harbin Institute of Technology哈尔滨工业大学机械设计作业设计计算说明书课程名称:机械设计设计题目:带式运输机中的V带轮部件电算设计院系:能源科学与工程学院班级: 1602404班设计者:钟学号: 11602004指导教师:王黎钦设计时间: 2019.4.22哈尔滨工业大学哈尔滨工业大学机械设计作业任务书题目:带式运输机中的V带轮部件电算设计题号:5.1.5设计原始数据:机器工作平稳、单向回转、成批生产,其他数据如下表所示。

方案电动机工作功率Pd/kW电动机满载转速n m/(r/min)工作机的转速n w/(r/min)第一级传动比i1轴承座中心高度H/mm最短工作年限工作环境5.1.5 3 710 80 2 1703年3班室内清洁目录一、电算设计思路 (4)二、标量标识符 (4)三、V带设计程序框图 (5)四、设计源程序 (6)五、计算结果及分析 (16)一、电算设计思路本次V带电算采用C语言进行设计计算。

通过输入小带轮转速n1,名义功率P 以及传动比i,再按照一定的顺序,便可以计算出多种直径和型号的V带轮设计结果。

二、标量标识符为了使程序具有较好的可读性、易用性,先将变量标识符规定列表如表2-1所示:三、V带设计程序框图在编写代码前,编写程序框图如图3-1所示。

图3-1 V带设计程序框图四、设计源程序#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<ctype.h>#include "process.h"#define Pi 3.1415926doubleP,Pd,n1,aMIN,aMAX,V,a,a0,Ld0,ALF1,z,P0,DIFP0,Kb,Ki,KL,KALF,F0,Q,j,m0,K1,K2,K3,e, fB,Bl;char TYPE,q;int Ld,dd1,dd20,dd2,i,reply,w,f,g,a2,a3,a4,VMAX,s,s1;char Z,A,B,C,D,E;char c[9];float DD2[]= {50,56,63,71,75,80,90,100,112,125,140,150,160,180,200,224,250,280,315,355,400,425,450,500,560,600,630,710,800};float LD[33][7]= {{400,0.87},{450,0.89},{500,0.91},{560,0.94},{630,0.96,0.81},{710,0.99,0.83},{800,1.00,0.85},{900,1.03,0.87,0. 82},{1000,1.06,0.89,0.84},{1120,1.08,0.91,0.86},{1250,1.10,0.93,0.88},{1400,1.14,0.96,0.90},{1600,1.16 ,0.99,0.92,0.83},{1800,1.18,1.01,0.95,0.86},{2000,0,1.03,0.98,0.88},{2240,0,1.06,1.00,0.91},{ 2500,0,1.09,1.03,0.93},{2800,0,1.11,1.05,0.95,0.83},{3150,0,1.13,1.07,0.97,0.86},{3550,0,1.17,1.09, 0.99,0.89},{4000,0,1.19,1.13,1.02,0.91},{4500,0,0,1.15,1.04,0.93,0.90},{5000,0,0 ,1.18,1.07,0.96,0.92},{5600,0,0,0,1.09,0.98,0.95},{6300,0,0,0,1.12,1.00,0.97},{7100,0,0,0,1.15,1.0 3,1.00},{8000,0,0,0,1.18,1.06,1.02},{9000,0,0,0,1.21,1.08,1.05},{10000,0,0,0,1.2 3,1.11,1.07},{11200,0,0,0,0,1.14,1.10},{12500,0,0,0,0,1.17,1.12},{14000,0,0,0,0,1.20,1.15},{16000,0,0,0,0,1.22,1.18} };float ka1[4][3]= {{1.0,1.1,1.2},{1.1,1.2,1.3},{1.2,1.3,1.4},{1.3,1.4,1.5}};float ka2[4][3]= {{1.1,1.2,1.3},{1.2,1.3,1.4},{1.4,1.5,1.6},{1.5,1.6,1.8}};float jg[9][7];float temp1,t1,temp2,t2,KA;int jd=0,jk=0;main(){printf("请输入传递功率P<单位kW>:");scanf("%lf",&P);printf("小带轮转速n1<单位r/min>:");scanf("%lf",&n1);printf("传动比i:");scanf("%d",&i);printf("请输入原动机类型YDJ<Ⅰ或Ⅱ>:");scanf("%d",&w);printf("载荷类型:\n");printf("1:载荷平稳\n");printf("2:载荷变动小\n");printf("3:载荷变动大\n");printf("4:载荷变动很大\n");scanf("%d",&f);printf("请输入每天的工作时间:\n");printf("0:<10h\n");printf("1:<10h~16h\n");printf("2:>16h\n");scanf("%d",&g);if(w==1){if(g==0)KA=ka1[f-1][0];else if(g==2)KA=ka1[f-1][2];elseKA=ka1[f-1][1];}if(w==2){if(g==0)KA=ka2[f-1][0];else if(g==2)KA=ka2[f-1][2];elseKA=ka2[f-1][1];}printf("是否在启动频繁、经常正反转、工作环境恶劣等场合运转?n/y\n"); scanf(" %c",&q);switch(q){case 'n':Pd=P*KA;printf("名义功率Pd为:%.3fkW\n",Pd);break;case 'y':Pd=P*1.2*KA;printf("名义功率Pd为:%.3fkW\n",Pd);break;}if((i>=1.00)&&(i<=1.01)) {Ki=1.0000;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.02)&&(i<=1.04)) {Ki=1.0136;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.05)&&(i<=1.08)) {Ki=1.0276;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.09)&&(i<=1.12)) {Ki=1.0419;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.13)&&(i<=1.18)) {Ki=1.0567;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.19)&&(i<=1.24)) {Ki=1.0719;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.25)&&(i<=1.34)) {Ki=1.0875;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.35)&&(i<=1.51)) {Ki=1.1036;printf("传动比系数Ki=");printf("%lf\n",Ki);}if((i>=1.52)&&(i<=1.99)) {Ki=1.1202;printf("传动比系数Ki=");printf("%lf\n",Ki);}if(i>=2) {Ki=1.1373;printf("传动比系数Ki=");printf("%lf\n",Ki);}s=0;do{printf("\n输入带型号:");scanf(" %c",&TYPE);switch(TYPE){case 'Z':printf("带轮最小基准直径是50mm\n");Kb=0.0002925;VMAX=25;K1=0.246;K2=7.44;K3=0.441*pow(10,-4);m0=0.06;e=12;fB=8;printf("Z型带轮基准直径分别是50、56、63、71、75、80mm\n");break;case 'A':printf("带轮最小基准直径是75mm\n");Kb=0.0007725;VMAX=25;K1=0.449;K2=19.02;K3=0.765*pow(10,-4);m0=0.1;e=15;fB=10;printf("A型带轮基准直径分别是75、80、90、100、112、125mm\n");break;case 'B':printf("带轮最小基准直径是125mm\n");Kb=0.0019875;VMAX=25;K1=0.794;K2=50.6;K3=1.31*pow(10,-4);m0=0.17;e=19;fB=12.5;printf("B型带轮基准直径分别是125、140、150、160、180mm\n");break;case 'C':printf("带轮最小基准直径是200mm\n");Kb=0.005625;VMAX=25;K1=1.48;K2=143.2;K3=2.34*pow(10,-4);m0=0.3;e=25.5;fB=17;printf("C型带轮基准直径分别是200、224、250、280、315、400mm\n");break;case 'D':printf("带轮最小基准直径是355mm\n");Kb=0.01995;VMAX=30;K1=3.15;K2=507.3;K3=4.77*pow(10,-4);m0=0.6;e=37;fB=23;printf("D型带轮基准直径分别是355、400、425、450、500mm\n");break;case 'E':printf("带轮最小基准直径是500mm\n");Kb=0.03735;VMAX=30;K1=4.57;K2=951.5;K3=7.06*pow(10,-4);m0=0.8;e=44.5;fB=29;printf("E型带轮基准直径分别是500、560、600、630、710mm\n");break;}do {printf("请选择合适小带轮直径dd1(mm):");begin1:scanf("%d",&dd1);V=Pi*dd1*n1/60000;if(V>VMAX){printf("带速过大,请重新选择更小的小带轮直径:");goto begin1; /*判断带速是否超过最大带速*/}printf("小带轮直径dd1(mm):%d",dd1);temp1=i*dd1;for(jd=0; jd<29; jd++){t1=temp1-DD2[jd];if(t1<=0)break; /*判断大带轮直径*/}if((DD2[jd]-temp1)<(temp1-DD2[jd-1]))dd2=DD2[jd];elsedd2=DD2[jd-1]; /*选择大带轮直径为接近的那个优选数*/ printf("大带轮直径dd2(mm):%d",dd2);if (fabs((dd2/dd1-i)/i)>=0.05)printf("传动比误差过大,不可用!请重新选择小带轮直径:"); goto begin1;}printf("\n传动比误差小于0.05,可用\n");aMIN=0.7*(dd1+dd2);aMAX=2*(dd1+dd2);printf("请初步确定中心距(mm),并使%.3fmm<a0<%.3fmm:",aMIN,aMAX);scanf("%lf",&a0);Ld0=2*a0+Pi/2*(dd1+dd2)+pow(dd2-dd1,2)/(4*a);switch(TYPE) {case 'Z':a4=1;break;case 'A':a4=2;break;case 'B':a4=3;break;case 'C':a4=4;break;case 'D':a4=5;break;case 'E':a4=6;}for(jk=0; jk<33; jk++){temp2=Ld0-LD[jk][0];if(temp2<=0)break;}if((Ld0-LD[jk-1][0])>(LD[jk][0]-Ld0)){Ld=LD[jk][0];KL=LD[jk][a4];Ld=LD[jk-1][0];KL=LD[jk-1][a4];} /*选择合适的带基准长度*/ a=a0+(Ld-Ld0)/2;ALF1=180-(dd2-dd1)/a*57.3;printf("小带轮包角为α1=%.5f°\n",ALF1);if(ALF1<=90){KALF=0.69;printf("包角修正系数KALF为:");printf("%lf\n",KALF);}if((ALF1>90)&&(ALF1<=100)){KALF=(0.74-0.69)/10*(ALF1-90)+0.69;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>100)&&(ALF1<=110)){KALF=(0.78-0.74)/10*(ALF1-100)+0.74;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>110)&&(ALF1<=120)){KALF=(0.82-0.78)/10*(ALF1-110)+0.78;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>120)&&(ALF1<=130)){KALF=(0.86-0.82)/10*(ALF1-120)+0.82;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>130)&&(ALF1<=140)){KALF=(0.89-0.86)/10*(ALF1-130)+0.86;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>140)&&(ALF1<=150)){KALF=(0.92-0.89)/10*(ALF1-140)+0.89;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>150)&&(ALF1<=160)){KALF=(0.95-0.92)/10*(ALF1-150)+0.92;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>160)&&(ALF1<=170)){KALF=(0.98-0.95)/10*(ALF1-160)+0.95;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>170)&&(ALF1<=180)){KALF=(1.00-0.98)/10*(ALF1-170)+0.98;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>180)&&(ALF1<=190)){KALF=(1.05-1.00)/10*(ALF1-180)+1.00;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>190)&&(ALF1<=200)){KALF=(1.10-1.05)/10*(ALF1-190)+1.05;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>200)&&(ALF1<=210)){KALF=(1.15-1.10)/10*(ALF1-200)+1.10;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if((ALF1>210)&&(ALF1<=220)){KALF=(1.20-1.15)/10*(ALF1-210)+1.15;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}if(ALF1>200){KALF=1.20;printf("包角修正系数KALF为:");printf("%.2f\n",KALF);}P0=V*(K1*pow(V,-0.09)-K2/dd1-K3*pow(V,2));printf("单根带的基本额定功率P0:%.3fkW\n",P0);printf("%c",TYPE);printf("型带的弯曲影响系数Kb=");printf("%lf\n",Kb);DIFP0=Kb*n1*(1-1/Ki);printf("功率增量△P0= %lf\n",DIFP0);printf("V带基准长度为%.3dmm\n",Ld);//**************************z=Pd/((P0+DIFP0)*KALF*KL);printf("V带的根数为:%.2f ,圆整后的结果为:z=%d\n",z,(int)z+1);if((int)z+1>=10){printf("带数过多,请重新选择小带轮直径:"); goto begin1;}printf("单位长度所选带的质量(kg/m):");printf("%lf",m0);F0=500*Pd/z/V*(2.5-KALF)/KALF+m0*V*V;Q=2*z*F0*sin(ALF1/2*Pi/180);Bl=(int)z*e+2*fB;printf("\n下面是计算的最后结果:\n");printf("带型为%c\n设计功率Pd=%.3fkW\n小带轮直径dd1=%dmm\n大带轮直径dd2=%dmm\nV带基准长度Ld=%.3dmm\n实际轴间距a=%.3fmm\n单根V带额定功率P0=%.3fkW\n 额定功率增量DIFPP0=%.3fkW\n",TYPE,Pd,dd1,dd2,Ld,a,P0,DIFP0);printf("带速V=%.3fm/s\n小带轮包角ALF1=%.5f°\nV带根数z=%d\nV带单位长度的质量m0=%.3fkg/m\n单根V带的预紧力F0=%.3fN\n作用在轴上的力FQ=%.3fN\n轮缘宽度B=%d\n",V,ALF1,(int)z+1,m0,F0,Q,(int)Bl+1);c[s]=TYPE;jg[s][0]=dd1;jg[s][1]=dd2;jg[s][2]=a;jg[s][3]=(int)z+1;jg[s][4]=F0;jg[s][5]= Q;jg[s][6]=(int)Bl+1;s=s+1;printf("\n是否计算下一种带轮直径?0(no)/1(yes)\n");scanf("%d",&a2);} while(a2==1&&s<=8);printf("\n计算下一型号带?0(no)/1(yes)\n");scanf("%d",&a3);} while(a3==1&&s<=8);printf("程序最多储存9次运算数据,运算结束。

机械工程实验——matlab实验报告

机械工程实验——matlab实验报告

机械工程实验——matlab实验报告1. 引言机械工程是一个涵盖广泛的领域,其实验课程可以帮助学生理解和应用机械原理、设计和制造等方面的知识。

本实验报告将介绍一个基于Matlab软件的机械工程实验,在实验中我们将使用Matlab进行数据分析和建模。

通过这个实验,我们可以深入理解机械工程中的一些重要概念,并学习如何使用Matlab软件进行相关分析。

2. 实验目标本实验旨在通过使用Matlab软件来深入了解机械工程中的一些基本概念,包括数据分析、建模和仿真。

具体目标如下:•学习如何使用Matlab进行数据分析,包括数据的导入、处理和可视化。

•掌握Matlab中常用的数据建模和仿真方法。

•理解机械工程中的一些基本原理,并应用到实验中。

•分析实验结果并提出相应的结论。

3. 实验方法本实验主要分为四个步骤,分别是数据导入与处理、数据可视化、数据建模与仿真以及结果分析。

具体的实验方法如下:3.1 数据导入与处理首先,我们需要收集实验数据,并将数据导入到Matlab软件中。

可以使用Matlab的csvread函数将CSV格式的数据文件导入到Matlab。

然后,我们需要对数据进行预处理,例如去除异常数据和补充缺失数据等。

3.2 数据可视化在数据导入和处理完毕后,我们可以使用Matlab的数据可视化工具对数据进行可视化分析。

例如,可以使用Matlab的plot函数绘制数据的折线图,或者使用scatter函数绘制数据的散点图。

通过可视化分析,我们可以更清晰地了解数据的分布规律。

3.3 数据建模与仿真在数据可视化之后,我们可以使用Matlab的数据建模工具对数据进行建模和仿真。

例如,可以使用Matlab的回归分析工具对数据进行回归分析,并得到拟合的曲线。

此外,还可以使用Matlab的仿真工具对数据进行仿真实验,以验证建立的模型的准确性和有效性。

3.4 结果分析最后,我们需要对实验结果进行分析,并提出相应的结论。

可以比较实验结果与理论预期结果的差异,并对差异进行分析。

机械控制工程基础MATLAB仿真实验上机仿真试验

机械控制工程基础MATLAB仿真实验上机仿真试验

仿真模型—无PID
Sine Wave Step
Scope1
1 Gain1
2 0.8s+1 Transfer Fcn
Scope
Transfer Fcn1 1 s+1
仿真模型—有PI
Sine Wave Step
1.25 Gain1
1 Gain
1 Gain2
1 s
Integrator
2 0.8s+1 Transfer Fcn
Scope
Scope1
1 s+1 Transfer Fcn1
仿真模型—有PID
Step
0.53 Gain1
Scope1
1 Gain
-K-
1
s
Gain2 Integrator
-K-
du/dt
Gain3 Derivative
1 s+1 Transfer Fcn1
2 0.8s+1 Transfer Fcn
Scope
机械控制工程基础MATLAB 仿真实验上机仿真试验
内容提要
一、MATLAB基本知识与操作 二、MATLAB的 Simulink工具箱简介 三、MATLAB的频率特性分析
实验二 频率特性仿真实验 实验三 闭环控制系统设计与仿真实验
•一、 MATLAB 基本知识与操作
基本界面 M文件 执行命令
MATLAB基本练习
MATLAB基本练习
num=[1 20 50]; den=[1 15 84 223 309 240 100]; t=(0:0.1:20); figure(1); impulse(num,den,t); figure(2); step(num,den,t); figure(3); u1=(t); hold on; plot(t,u1); lsim(num,den,u1,t); figure(4) u2=sin(t) hold on; plot(t,u2) lsim(num,den,u2,t)

《科学分析工具MATLAB实验》实验指导书2013实验报告-哈工大完整版绝对很完整

《科学分析工具MATLAB实验》实验指导书2013实验报告-哈工大完整版绝对很完整

《科学分析工具MATLAB实验》实验报告(18学时系列课程实验)指导教师:学生:班级:学号:哈尔滨工业大学机电工程学院机械制造及自动化系2012年4月实验一最小二乘法数据处理实验一、实验目的通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法二、实验内容1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y 为磨失质量,单位为克g。

要求:(1)编写一个M文件,对该数据进行合理的最小二乘法数据拟合;(2)绘出原始数据点和拟合的数据曲线。

表1 风机叶片耐磨实验2.对ln(1+x)在[0,1]内的采样数据进行多项式拟合;3.对指数函数在[0,1]内的采样数据进行多项式拟合。

三、实验报告内容1)编写出M文件,对该数据进行合理的最小二乘法数据拟合;2)绘出原始数据点和拟合的数据曲线。

1)1.clcclearxlabel('h')ylabel('g')x=10000:1000:23000;y=[24.0 26.5 29.8 32.4 34.7 37.7 41.1 42.8 44.6 47.3 65.3 87.5 137.8 174.2];p=polyfit(x,y,4)y1=polyval(p,x);plot(x,y,'+',x,y1,'-r')2clcclearx=0:0.05:1;y=log10(1+x);p=polyfit(x,y,3)y1=polyval(p,x);plot(x,y,'+',x,y1,'-r')3clcclearx=0.05:0.05:1;y=1-sqrt(x);p=polyfit(x,y,3)y1=polyval(p,x);plot(x,y,'+',x,y1,'-r')实验二 Matlab 程序设计实验一、实验目的通过Matlab 上机编程,掌握利用Matlab 软件进行多项式运算、方程求解的方法,掌握命令型M 文件和函数型文件的操作方法及这两种M 文件的区别与联系。

哈工大机械设计带传动设计电算大作业vb和c语言程序代码

哈工大机械设计带传动设计电算大作业vb和c语言程序代码

哈工大机械设计带传动设计电算大作业vb和c语言程序代码课程名称, 机械设计电算题目, V带传动设计院系, 机电控制学院班级, 1308102班设计者, 尤开灵学号, 1130810222 设计时间, 2015.10.17 部分变量说明(所有说明见程序部分变量定义)ka 工作情况系数 p 输入功率 kwpd 工作功率 kw i 传动比n1 输入小轮转速 r/min d1 小带轮直径 mmd2 大带轮直径 mm v 皮带速度 m/sjiao 输出包容角度 ? ff0 初拉力 Nff1 轴间力 N ld 带的长度 mmz 皮带代数根 m 质量 kg程序运行截图判断语句:包括速度判断选择小轮直径,输入数据判断小轮直径输出结果及其函数界面'运行程序程序代码Private Sub Command5_Click() '条件输入确定 Dim ka1 As Double '工作情况系数变量 Call f0Dim ka As Double '工作情况系数 Call f1Dim p As Double '输入功率 Text5.Text = n1 & "r/min" Dim pi As Double 'pi的定义 Text4.Text = pd & "kw" Dim pd As Double '工作功率 End Sub Dim i As Double '传动比 Private Sub Command2_Click() '小轮直径选择与确定 Dim n1 As Double '输入小轮转速 d1 = Val(Text7.Text) Dim d1 As Double '小带轮直径 Call f2Dim d2 As Double '大带轮直径 Call f3Dim k As Double '循环变量 Call f4Dim a() As Variant '小轮直径选择序列 End SubDim b() As Variant '皮带的长度选择序列 Private Sub Command3_Click() '中心距离输入 Dim nn() As Variant '转速的选择序列 aa = Val(Text16.Text) Dim mm() As Variant '包容修正系数列表 Call f5Dim v As Double '皮带速度 End SubDim aa As Double '输入中心距离 Private Sub Command4_Click() '计算Dim aaa As Double '输出实际中心距 Call f6Dim jiao As Double '输出包容角度 Call f7Dim ff0 As Double '初拉力 Call f8Dim ff1 As Double '轴间力 Text6.Text = d1 & "mm" Dim ld As Double '带的长度 Text9.Text = d2 & "mm" Dim shunxu As Double '基本额定功率顺序Text10.Text = z & "根"Dim shunxu1 As Double '长度顺序 Text12.Text = aaa & "mm" Dim pnum() As Variant '基本功率序列 Text11.Text = jiao & "度" Dim lxishu() As Variant 'c长度系数 Text13.Text = ff0 & "N" Dim p0 As Double '基本功率Text14.Text = ff1 & "N" Dim dp0 As Double '增加功率 End SubDim z As Double '皮带数 Private Sub Command1_Click() Dim kaa As Double '包容修正系数 EndDim kl As Double '长度系数 End SubDim ki As Double '传动比系数 Private Sub f0() '参数赋值函数 Dim kbAs Double '弯曲系数 pi = 3.14159Dim m As Double '质量 p = Val(Text1.Text)i = Val(Text2.Text)n1 = Val(Text3.Text) If dianjileixing.Text = "I类" And zaihe.Text = "a() = Array(20, 28, 31.5, 35.5, 40, 45, 50, 56, 63, 载荷变动较大" And workhour.Text = "10-16h/天" Then 71, 75, 80, 90, 100, 112, 125, 140, 150, 160, 180, ka1 = 1.3200, 224, 250, 280, 315, 355, 400, 425, 450, 500, Ifdianjileixing.Text = "I类" And zaihe.Text = "560, 600, 630, 710, 800, 0) 载荷变动较大" And workhour.Text = ">16h/天" Then b() = Array(200, 224, 250, 280, 315, 355, 400, 450, ka1 = 1.4500, 560, 630, 710, 800, 900, 1000, 1120, 1250, 1400, Ifdianjileixing.Text = "I类" And zaihe.Text = "1600, 1800, 2000, 2240, 2500, 2800, 3150, 3550, 4000, 载荷变动很大" And workhour.Text = "<10h/天" Then 4500, 5000, 0) ka1 = 1.3nn() = Array(100, 200, 400, 700, 800, 950, 1200, 1450, If dianjileixing.Text = "I类" And zaihe.Text = "1600, 2000, 2400, 2800, 3200, 3600, 4000, 4500, 5000, 载荷变动很大" And workhour.Text = "10-16h/天" Then 5500, 6000, 0) ka1 = 1.4mm() = Array(0.68, 0.73, 0.78, 0.82, 0.86, 0.89, Ifdianjileixing.Text = "I类" And zaihe.Text = "0.92, 0.95, 0.98, 1, 1.05, 1.1, 1.15, 1.2, 0) 载荷变动很大" And workhour.Text = ">16h/天" Then End Sub ka1 = 1.5Private Sub f1() '选择ka1 计算pd If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" And workhour.Text = "<10h/天" Then ka1 = 载荷平稳" And workhour.Text = "<10h/天" Then ka1 = 1.11 If dianjileixing.Text = "II类" And zaihe.Text = "Ifdianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" Andworkhour.Text = "10-16h/天" Then ka1 载荷平稳" And workhour.Text = "10-16h/天" Then ka1 = 1.2= 1.1 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" Andworkhour.Text = ">16h/天" Then ka1 = 载荷平稳" And workhour.Text =">16h/天" Then ka1 = 1.31.2 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = "<10h/天" Then ka1 载荷变动小" And workhour.Text ="<10h/天" Then ka1 = 1.2= 1.1 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = "10-16h/天" Then 载荷变动小" And workhour.Text = "10-16h/天" Then ka1 = 1.3ka1 = 1.2 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = ">16h/天" Then ka1 载荷变动小" And workhour.Text =">16h/天" Then ka1 = 1.4= 1.3 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动较大" And workhour.Text = "<10h/天" Then 载荷变动较大" And workhour.Text = "<10h/天" Then ka1 = 1.4ka1 = 1.2 If dianjileixing.Text = "II类" And zaihe.Text = "载荷变动较大" And workhour.Text = "10-16h/天" Then Exit Subka1 = 1.5 End IfIf dianjileixing.Text = "II类 " And zaihe.Text = "载荷变动较大" And workhour.Text = ">16h/天" Then End Subka1 = 1.6 Private Sub f3() '判断速度If dianjileixing.Text = "II类" And zaihe.Text = "v = pi * d1 * n1 / 60 / 1000 载荷变动很大" And workhour.Text = "<10h/天" Thenka1 = 1.5 If v > 20 Then If dianjileixing.Text = "II类 " And zaihe.Text = "MsgBox "小带轮直径过大~,重新输入直径" 载荷变动很大" And workhour.Text = "10-16h/天" Then Exit Subka1 = 1.6 End IfIf dianjileixing.Text = "II类" And zaihe.Text = "载荷变动很大" And workhour.Text = ">16h/天" Then If v < 5 Thenka1 = 1.8 MsgBox "小带轮直径过小~,重新输入直径" If Check1.Value = 0 Then ka = ka1 Exit SubIf Check1.Value = 1 Then ka = ka1 * 1.1 End Ifpd = p * kaEnd Sub End SubPrivate Sub f2() '计算带轮直径 Private Sub f4() '估计中心距离 d1 =Val(Text7.Text)d2 = 0 Dim aa0 As DoubleDim aa1 As Double For k = 0 To 50 Step 1If a(k) = 0 Then aa0 = 0.7 * (d1 + d2)Exit For aa1 = 2 * (d1 + d2)End If Text15.Text = aa0 & "-" & aa1If Abs((a(k) / d1 - i) / i) <= 0.05 Then End Subd2 = a(k) Private Sub f5() '确定带长和中心距和角度Exit For Dim ll As DoubleEnd If Dim c1 As DoubleDim c2 As Double Next kIf Text8.Text = "Y" Then lxishu = Array(0.81, 0.82,If d2 = 0 Then 0.84, 0.87, 0.9, 0.92, 0.96, 1, 1.02, 0, 0, 0, 0,MsgBox "小带轮直径和带型选择不合适~,重新输入0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,直径" 0, 0, 0, 0, 0, 0, 0, 0, 0)If Text8.Text = "Z" Then lxishu = Array(0, 0, 0, 0,0, 0, 0.87, 0.89, 0.91, 0.94, 0.96, 0.99, 1, 1.03, If b(k) = 0 Then1.06, 1.08, 1.1, 1.14, 1.16, 1.18, 0, 0, 0, 0, 0, Exit For0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) End IfIf Text8.Text = "A" Then lxishu = Array(0, 0, 0, 0, Next k0, 0, 0, 0, 0, 0, 0.81, 0.83, 0.85, 0.87, 0.89, 0.91,0.93, 0.96, 0.99, 1.01, 1.03, 1.06, 1.09, 1.11, 1.13, kl =lxishu(shunxu1)1.17, 1.19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) aaa = aa + (ld - ll) / 2If Text8.Text = "B" Then lxishu = Array(0, 0, 0, 0, jiao = 180 -((d2 - d1) / aaa * 57.3) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.82, 0.84, 0.86,0.88, End Sub0.9, 0.92, 0.95, 0.98, 1, 1.03, 1.05, 1.07, 1.09,1.13, 1.15, 1.18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) Private Sub f6() '确定根数If Text8.Text = "C" Then lxishu = Array(0, 0, 0, 0, Dim c1 As Double 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.83, 0.86, Dim c2 As Double0.88, 0.91, 0.93, 0.95, 0.97, 0.99, 1.02, 1.04, 1.07, c2 = 50001.09, 1.12, 1.15, 1.18, 1.21, 1.23, 0, 0, 0, 0)If Text8.Text = "D" Then lxishu = Array(0, 0, 0, 0, If Text8.Text = "Y" And Text7.Text = "20" Then pnum 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, = Array(0, 0, 0, 0, 0, 0.01, 0.02, 0.02, 0.03, 0.03, 0, 0, 0.83, 0.86, 0.89, 0.91, 0.93, 0.96, 0.98, 1, 0.04, 0.04, 0.06, 0.06,0.07, 0.08, 0.09, 0.1) 1.03, 1.06, 1.08, 1.11, 1.14, 1.17, 1.2, 1.22) If Text8.Text = "Y" And Text7.Text = "28" Then pnum If Text8.Text = "E" Then lxishu = Array(0, 0, 0, 0, = Array(0, 0, 0, 0, 0.03, 0.04, 0.04,0.05, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.06,0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0, 0, 0, 0, 0, 0, 0.9,0.92, 0.96, 0.97, 1, 1.02, 0.15)1.05, 1.07, 1.1, 1.12, 1.15, 1.18) If Text8.Text = "Y" AndText7.Text = "35.5" Then pnum= Array(0, 0, 0, 0.04, 0.05, 0.05, 0.06, 0.06, 0.07, ll = 2 * aa +pi / 2 * (d1 + d2) + (d1 - d2) ^ 2 / 0.08, 0.09, 0.11, 0.12, 0.13, 0.14, 0.16, 0.18, 0.19, (4 * aa) 0.2)c2 = 5000 If Text8.Text = "Y" And Text7.Text = "40" Then pnum= Array(0, 0, 0, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, For k = 0 To 100 Step 1 0.11, 0.12, 0.14, 0.15, 0.16, 0.18, 0.19, 0.2, 0.22, c1 = Abs(b(k) - ll) 0.24)If c1 < c2 Then If Text8.Text = "Z" And Text7.Text = "50" Then pnum c2 = c1 = Array(0, 0.04, 0.06, 0.09, 0.1, 0.12, 0.14, 0.16,ld = b(k) 0.17, 0.2, 0.22, 0.26, 0.28, 0.3, 0.32, 0.33, 0.34,shunxu1 = k 0.33, 0.31)End If If Text8.Text = "Z" And Text7.Text = "63" Then pnum= Array(0, 0.05, 0.08, 0.13, 0.15, 0.18, 0.22, 0.25, If Text8.Text = "B" And Text7.Text = "180" Then pnum 0.27, 0.32, 0.37, 0.41, 0.45, 0.47, 0.49, 0.5, 0.5, = Array(0, 0.88, 1.59, 2.53, 2.81, 3.22, 3.85, 4.39,0.49, 0.48) 4.68, 5.3, 5.67, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "Z" And Text7.Text = "71" Then pnum= Array(0, 0.06, 0.09, 0.17, 0.2, 0.23, 0.27, 0.3, If Text8.Text = "C" And Text7.Text = "200" Then pnum 0.33, 0.39, 0.46, 0.5, 0.54, 0.58,0.61, 0.62, 0.62, = Array(0, 1.39, 2.41, 3.69, 4.07, 4.58, 5.29, 5.84, 0.61, 0.58) 6.07, 6.34, 6.02, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "Z" And Text7.Text = "80" Then pnum If Text8.Text = "C" And Text7.Text = "250" Then pnum = Array(0, 0.1, 0.14, 0.2, 0.22, 0.26, 0.3, 0.35, =Array(0, 2.03, 3.62, 5.64, 6.23, 7.04, 8.21, 9.04, 0.39, 0.44, 0.5, 0.56, 0.61, 0.64, 0.67, 0.67, 0.66, 9.38, 9.62, 0, 0, 0, 0, 0, 0, 0, 0, 0)0.64, 0) If Text8.Text = "C" And Text7.Text = "315" Then pnum= Array(0, 2.84, 5.14, 8.09, 8.92, 10.05, 11.53, If Text8.Text = "A" And Text7.Text = "75" Then pnum 12.46, 12.72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = Array(0, 0.15, 0.26, 0.4, 0.45, 0.51, 0.6, 0.68, If Text8.Text = "C" And Text7.Text = "400" Then pnum 0.73, 0.84, 0.92, 1, 1.04, 1.08,1.09, 1.07, 1.02, = Array(0, 3.91, 7.06, 11.02, 12.1, 13.48, 15.04, 0.96, 0.8) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)If Text8.Text = "A" And Text7.Text = "90" Then pnum= Array(0, 0.22, 0.39, 0.61, 0.68, 0.77, 0.93, 1.07, If Text8.Text = "D" And Text7.Text = "355" Then pnum 1.15, 1.34, 1.5, 1.64, 1.73, 1.83, 1.87, 1.88, 1.82, = Array(3.01, 5.31, 9.24, 13.7, 14.83, 16.15, 17.25, 0, 0) 16.77, 15.63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "A" And Text7.Text = "100" Then pnum If Text8.Text = "D" And Text7.Text = "400" Then pnum = Array(0, 0.26, 0.47, 0.74, 0.83, 0.95, 1.14, 1.32, =Array(3.66, 6.52, 11.45, 17.07, 18.46, 20.06, 21.2, 1.42, 1.66, 1.87,2.05, 2.19, 2.28, 2.34, 2.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)0, 0) If Text8.Text = "D" And Text7.Text = "450" Then pnum IfText8.Text = "A" And Text7.Text = "125" Then pnum = Array(4.37, 7.9,13.85, 20.63, 22.25, 24.01, 24.84, = Array(0, 0.37, 0.67, 1.07, 1.19,1.37, 1.66, 1.92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)2.07, 2.44, 2.74, 2.98,3.16, 3.26, 0, 0, 0, 0, 0) If Text8.Text = "D" And Text7.Text = "500" Then pnum= Array(5.08, 9.21, 16.2, 23#, 25.76, 27.5, 0, 0, If Text8.Text = "B" And Text7.Text = "125" Then pnum 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = Array(0, 0.48, 0.84, 1.3, 1.44, 1.64, 1.93, 2.19,2.33, 2.64, 2.85, 2.96, 2.94, 2.8, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "500" Then pnum If Text8.Text = "B" And Text7.Text = "140" Then pnum = Array(6.21, 10.86, 18.55, 26.21, 27.57, 28.32, 0, = Array(0, 0.59, 1.05, 1.64, 1.82, 2.08, 2.47, 2.82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)3, 3.42, 3.7, 3.85, 3.83, 0, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "560" Then pnum If Text8.Text = "B" And Text7.Text = "160" Then pnum = Array(7.32, 13.09, 22.49, 31.59, 33.03, 33.4, 0, = Array(0, 0.74, 1.32, 2.09, 2.32, 2.66, 3.17, 3.62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)3.86,4.4, 4.75, 4.89, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "630" Then pnum= Array(8.75, 15.65, 26.95, 37.26, 38.62, 0, 0, 0, ElseIf i >= 1.05 And i <= 1.08 Then 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ki = 1.0276 If Text8.Text = "E" And Text7.Text = "710" Then pnum ElseIf i >=1.09 And i <= 1.12 Then = Array(10.31, 18.52, 31.83, 42.87, 43.52, 0, 0, 0, ki = 1.04190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ElseIf i >= 1.13 And i <= 1.18 Then ki = 1.0567For k = 0 To 20 Step 1 ElseIf i >= 1.19 And i <= 1.24 Thenc1 = Abs(nn(k) - n1) ki = 1.0719If c1 < c2 Then ElseIf i >= 1.25 And i <= 1.34 Thenc2 = c1 ki = 1.0875shunxu = k ElseIf i >= 1.35 And i <= 1.51 ThenEnd If ki = 1.1036If nn(k) = 0 Then ElseIf i >= 1.52 And i <= 1.99 ThenExit For ki = 1.1202End If ElseIf i >= 2 ThenNext k ki = 1.1373End Ifp0 = pnum(shunxu)For k = 0 To 21 Step 1If Text8.Text = "Z" Then jiao) c1 = Abs(100 + k * 10 - kb =0.0002925 If c1 <= 5 ThenElseIf Text8.Text = "A" Then kaa = mm(k)kb = 0.0007725 End IfElseIf Text8.Text = "B" Then Next kkb = 0.0019785ElseIf Text8.Text = "C" Then dp0 = kb * n1 * (1 - 1 / ki) kb =0.005625 z = pd / (p0 + dp0) / kaa / kl ElseIf Text8.Text = "D" Then z = Round(z, 0)kb = 0.01995ElseIf Text8.Text = "E" Then If z >= 10 Thenkb = 0.03735 MsgBox "小带轮直径和带型选择不合适~,重新输入End If 直径和选择带型"Exit SubIf i >= 1 And i <= 1.01 Then End Ifki = 1 End SubElseIf i >= 1.02 And i <= 1.04 Then Private Sub f7() '选择质量函数ki = 1.0136 If Text8.Text = "Z" Thenm = 0.06 ElseIf Text8.Text = "A" Then m = 0.1 ElseIf Text8.Text = "B" Then m = 0.17 ElseIf Text8.Text = "C" Then m = 0.3 ElseIf Text8.Text = "D" Then m = 0.6 ElseIf Text8.Text = "E" Then m = 0.9 End If End Sub Private Sub f8() '计算初拉力和轴向力 ff0 = 500 * pd / z / v * (2.5 - kaa) / kaa + m * v * vff1 = 2 * z * ff0 * Sin(jiao * pi / 2 / 180)ff0 = Round(ff0, 3)ff1 = Round(ff1, 3)aaa = Round(aaa, 3)jiao = Round(jiao, 3) End Subdd2=DD2[j];else #include<stdio.h>dd2=DD2[j-1]; #include<math.h>return dd2; #include<string.h>} #define PAI 3.14float* Compute_LAK(float dd1,float dd2,int TYPE) #include<windows.h> {int j=0;float a1,a2,a0,Ld0,temp,KALF,Ld,a,KL; float Select_dd1(int TYPE) float LAK[3]; {float int i;kl[23][6]={{400,0.87},{450,0.89},{500,0.91}, float dd1;{560,0.94},{630,0.96,0.81},{710,0.99,0.83},{ float800,1.00,0.85,0.82},{900,1.03,0.87,0.84,0.83},{1DD1[6][4]={{50,63,71 ,80},{75,90,100,125},{125,14000,1.06,0.89,0.86,0.86,0.83}, 0,160,180},{1120,1.08,0.91,0.88,0.88,0.86},{1250,1.10,0.93,0.90,0.91,0.89},{1400,1.14,0.96,0.92,0.93,0.{200,250,315,400},{355,400,450,500},{500,56091},{1600,1.16,0.99,0.95,0.95,0.93}, ,630,710}};{1800,1.18,1.01,0.98,0.97,0.96},{2000,0,1.03 printf("该带型推荐的小带轮基准直径有,1.00,0.99,0.98},{2240,0,1.06,1.03,1.02,1.00},{2(mm):\n");500,0,1.09,1.05,1.04,1.03}, for(i=0;i<4;i++){2800,0,1.11,1.07,1.07,1.06},{3150,0,1.13,1. {09,1.09,1.08},{3550,0,1.17,1.13,1.12,1.11},{4000 printf("%.2f",DD1[TYPE][i]);,0,1.19,1.15,1.15,1.14},{4500,0,0,1.18,1.18,1.17 }},{5000,0,0,0,1.21,1.20}}; printf("\n请选择小带轮基准直径dd1:");a1=0.7*(dd1+dd2); scanf("%f",&dd1);a2=2*(dd1+dd2); return dd1;printf("请选择输入初估中心距a0(范围}为%.2fmm~%.2fmm):",a1,a2); float Select_dd2(int dd1,float i) scanf("%f",&a0); {Ld0=2*a0+(dd1+dd2)*PAI/2+(dd2-dd1)*(dd2-dd1) float/a0/4; DD2[]={50,56,63,71,80,90,100,112,125,140,150,160for(j=0;j<23;j++) ,180,200,224,{temp=Ld0-kl[j][0]; 250,280,315,355,400,425,450,500,560,600,630, if(temp<=0) 710,800};break; float dd2,temp,t;} int j=0;if((Ld0-kl[j-1][0])>(kl[j][0]-Ld0)) temp=i*dd1;{ Ld=kl[j][0]; for(j=0;j<28;j++)KL=kl[j][TYPE+1]; {} t=temp-DD2[j];else if(t<=0){ Ld=kl[j-1][0]; break;KL=kl[j-1][TYPE+1]; }} if((DD2[j]-temp)<(temp-DD2[j-1]))a=a0+(Ld-Ld0)/2;LAK[0]=Ld; printf("电机额定功率P(KW):");LAK[1]=a; scanf("%f",&P);LAK[2]=KL; printf("小带轮/电动机转速n1(r/min):");return LAK; scanf("%f",&n1); } printf("传动比i:");scanf("%f",&i);printf("每天工作时间H(h):"); int main() scanf("%f",&H); { printf("原动机类型(1或):");float scanf("%d",&YDJ);ka1[4][3]={{1.0,1.1,1.2},{1.1,1.2,1.3},{1.2,1.3, printf("工作机载荷类型:\n1,载荷平稳\n2,载荷 1.4},{1.3,1.4,1.5}}; 变动较小\n3,载荷变动较大\n4,载荷变动很大\n");float scanf("%d",&GZJ);ka2[4][3]={{1.1,1.2,1.3},{1.2,1.3,1.4},{1.4,1.5,DX: printf("选择V带带型:"); 1.6},{1.5,1.6,1.8}}; scanf(" %c",&type);float if(type<91) K1[6]={0.246,0.449,0.794,1.48,3.15,4.57}; type+=32;float switch(type) KI[10]={1.0000,1.0136,1.0276,1.0419,1.0567,1.071 {9,1.0875,1.1036,1.1202,1.1373}; case 'z':float TYPE=0; I[10]={1.00,1.02,1.05,1.09,1.13,1.19,1.25,1.35,1break; .52,2.00}; case 'a':float TYPE=1; K2[6]={7.44,19.02,50.6,143.2,507.3,951.5}; break;float case 'b': K3[6]={0.441e-4,0.765e-4,1.31e-4,2.34e-4,4.77e-4TYPE=2; ,7.06e-4}; break;float case 'c': KB[6]={0.2925e-3,0.7725e-3,1.9875e-3,5.625e-3,19TYPE=3; .95e-3,37.35e-3}; break;float case 'd': kalf[2][14]={220,210,200,190,180,170,160,150,140 TYPE=4; ,130,120,110,100,90,1.20,1.15,1.10,1.05,1.00,0.9 break;8,0.95,0.92, case 'e':0.89,0.86,0.82,0.78,0.73,0.68}; TYPE=5;float M[6]={0.06,0.1,0.17,0.3,0.6,0.9}; break;float f[6]={8,10,12.5,17,23,29}; case 'y':float e[6]={12,15,19,25.5,37,44.5}; TYPE=6;float break; P,H,i,n1,KA,Ki,dd1,dd2,V,P0,DIFP0,Pd,VMAX,*LAK,m case 's': ,Ld,KALF,a,KL,z,F0,ALF1,Q,B,Kb; TYPE=7;int YDJ,GZJ,TYPE,ANS,j; break;char type,ans; case 'n':printf(" V带传动 TYPE=8; 设计程序\n"); }START: printf("请输入初始参数:\n"); if(YDJ==1){ break;if(H<10) }Ki=KI[j]; KA=ka1[GZJ-1][0];Kb=KB[TYPE]; else if(H>16)KA=ka1[GZJ-1][2]; DIFP0=Kb*n1*(1-1/Ki);else LAK=Compute_LAK(dd1,dd2,TYPE);KA=ka1[GZJ-1][1]; Ld=LAK[0];} a=LAK[1];if(YDJ==2) KL=LAK[2];{ ALF1=180-57.3*(dd2-dd1)/a;if(H<10) for(j=0;j<14;j++)KA=ka2[GZJ-1][0]; {else if(H>16) if(ALF1<kalf[0][j]&&ALF1>kalf[0][j+1])KA=ka2[GZJ-1][2]; {elseKA=ka2[GZJ-1][1]; KALF=kalf[1][j]+(kalf[1][j]-kalf[1][j+1])*(ALF1- } kalf[0][j])/10;Pd=KA*P; break;switch(TYPE) }{ }case 0: z=ceil(Pd/(KALF*KL*(P0+DIFP0)));case 1: if(z>=10)case 2: goto DX;case 3: m=M[TYPE];VMAX=25; F0=500*Pd*(2.5-KALF)/(z*V*KALF)+m*V*V;Q=2*z*F0*sin(ALF1*PAI/360); break;case 4: B=(z-1)*e[TYPE]+2*f[TYPE];case 5:VMAX=30; printf("小带轮基准直径dd1:%.3f mm\n大带轮基准直径break; dd2:%.3f mm\n中心距a:%.3f mm\n带长L:%.3f mm\n带宽} B:%.3f mm\n带的根数Z:%.3f\n初拉力F0:%.3f N\n轴压DD1:dd1=Select_dd1(TYPE); 力FQ:%.3f N\n",dd1,dd2,a,Ld,B,z,F0,Q);V=PAI*dd1*n1/60000; X: printf("计算下一组带轮直径按'Y',重新开始按while(V>VMAX) 'S',结束按'N':");{ scanf(" %c",&ans);printf("V带速度验算不符!小带轮基准直径过小!请重新选择!\n"); if(ans=='y')dd1=Select_dd1(TYPE); goto DD1;V=PAI*dd1*n1/60000; else if(ans=='s')} goto START;dd2=Select_dd2(dd1,i); else if(ans=='n')P0=(K1[TYPE]*pow(V,-0.09)-K2[TYPE]/dd1-K3[TY printf("程序结束"); PE]*V*V)*V; elsefor(j=9;j>=0;j--) {{ printf("输入错误,请重新输入");m=i-I[j]; goto X;if(m>=0) }return 0;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈工大机械设计电算实验(matlab2010)机械设计电算实验一:普通V带传动设计内容和任务1、普通V带传动设计内容给定原始数据:传递的功率P,小带轮转速n,传动比i及工作条件。

设计内容:带型号,基准长度Ld,根数Z,传动中心距a,带轮基准直径dd1、dd2,带轮轮缘宽度B,初拉力F0,和压轴力FQ。

2、CAD任务:(1)编制V带传动设计程序框图。

(2)编制V带传动设计原程序。

(3)按习题或作业中数据运行程序,要求对每一组数据各按三种V带型号计算,对每一种带型号选三种小带轮直径进行计算并输出所有结果。

二、变量标识符kka3 工作情况系数KAn r/min4 小带轮转速n15 工作机载荷特性载荷类型6 原动机类型原动机类型7 工作年限a年b班8 带型号V带带型dd1 mm9 小带轮基准直径dd1dd2 mm10 大带论基准直径dd211 带速v v m/svmax m/s12 最大带速vmaxa0 mm13 预估中心距ald mm14 基准长度Ld15 实际中心距 a aa mmr 度16 小带轮包角α117 V带根数Z z18 基本额定功率Ppo kwpp0 kw19 功率增量ΔPki20 传动比系数Ki三、程序框图四、源程序与其说明程序说明:本程序用Matlab2010b软件编制,主要针对机械设计大作业上的题型设计。

使用时只要打开m 文件,并点击运行,按照提示进行即可。

首先输入原始数据,然后根据自己的需要选择带型,中心距即可得到设计结果,无需再查找资料,方便高效,计算过程如有错误会进行提示,并返回到输入处进行改正。

而且该程序可以直接计算下一带轮直径或者计算下一带型,比较方便。

源程序如下(先复制到记事本,再新建一个m文件,粘贴)clear all;disp('欢迎使用本程序,请输入V带传动设计的原始数据');p=input('电动机工作功率(kw) P=');n=input('电动机满载转速(r/min) nm=');i=input('第一级传动比 i1=');a=input('请输入最短工作工作年限 a年b班 a=');b=input(' b=');disp('是否反复起动、正反转频繁或工作条件恶劣');ka1=input('是请输入1,否请输入0。

请输入:');disp('原动机类型:');disp('I类原动机包括普通笼型交流电动机,同步电动机,');disp(' 直流电动机(并激),n>=600r/min的内燃机')disp('II类原动机包括交流电动机(双笼型、滑环式、单相、大转差率),');disp(' 直流电动机(复激、串激),单缸发动机,n<=600r/min的内燃机')d1=input('请选择原动机的类型,输入1或2。

请输入:');disp('载荷类型:');disp('1、载荷平稳;2、载荷变动小;3、载荷变动较大;4、载荷变动很大。

');e1=input('请选择载荷类型请输入:');c=[3 710 38 80;2.2 940 28 60;3 960 38 80;4 960 38 80];if p==3&&n==710d=38;e=80;disp('根据您的数据为您选择的电动机为 Y132M-8'); elseif p==2.2&&n==940d=28;e=60;disp('根据您的数据为您选择的电动机为 Y112M-6'); elseif p==3&&n==960d=38;e=80;disp('根据您的数据为您选择的电动机为 Y132S-6'); elseif p==4&&n==960d=38;e=80;disp('根据您的数据为您选择的电动机为 Y132M1-8'); elsedisp('欢迎继续使用本程序');endka2=[1.0 1.1 1.2;1.1 1.2 1.3;1.2 1.3 1.4;1.3 1.4 1.5]; ka3=[1.1 1.2 1.3;1.2 1.3 1.4;1.4 1.5 1.6;1.5 1.6 1.8]; if d1<=1k=ka2;elsek=ka3;endif ka1>=1kka=1.1*k(e1,b);elsekka=k(e1,b);endpd=kka*p;t2=1;while t2==1z=10;while z>=10disp('V带带型:1、Z型:dd1min=50mm;2、A型:dd1min=75mm;3、B型:dd1min=125mm'); x=input('请输入(1、2、3)来选择带型。

请选择:');x1=[0.246 0.449 0.794;7.44 19.02 50.6;0.441 0.765 1.31;0.2925 0.7725 1.9875]; k1=x1(1,x);k2=x1(2,x);k3=(10^(-4))*x1(3,x);kb=10^(-3)*x1(4,x);vmax=25;disp('优选带轮直径系列: 50 56 63 71 80 90 100')disp(' 112 125 140 150 160 180 200')disp(' 224 250 280 315 355 400 425')disp(' 450 500 560 600 630 710 800')dd1=input('请参考dd1min以及优选系列,输入小带轮基准直径(mm) dd1=');v=pi*dd1*n/60/1000;while v>=vmaxdisp('请减小小带轮基准直径dd1');dd1=input('请参考dd1min,重新输入小带轮基准直径(mm) dd1=');v=pi*dd1*n/60/1000;enddd2=round(i*dd1);a1=0.7*(dd1+dd2);a2=2*(dd1+dd2);disp('a1=');disp(a1);disp('a2=');disp(a2);a0=input('已知中心距a1<=a0<=a2,请输入a0的值(尽量为整数)。

a0=');while a0<a1||a0>a2disp('wrong!您输入的数值不在a1-a2之间,请重新输入');a0=input('请重新输入a0的值(尽量为整数)。

a0=');endld=2*a0+pi/2*(dd1+dd2)+(dd1-dd2)^2/4/a0;kk=[400 0.87 0 0;450 0.89 0 0;500 0.91 0 0;560 0.94 0 0;630 0.96...0.81 0;710 0.9 0.83 0;800 1.00 0.85 0.82;900 1.03 0.87 0.84;...1000 1.06 0.89 0.86;1120 1.08 0.91 0.88;1250 1.10 0.93 0.90;...1400 1.14 0.96 0.92;1600 1.16 0.99 0.95;1800 1.18 1.01 0.98;...2000 0 1.03 1.00;2240 0 1.06 1.03;2500 0 1.09 1.05;2800 0 ...1.11 1.07;3150 0 1.13 1.09;3550 0 1.17 1.13;4000 0 1.19 1.15;... 4500 0 0 1.18];for g=1:22if ld>=kk(g,1)&&ld<=kk(g+1,1)if (ld-kk(g,1))>=(kk(g+1,1)-ld)ld1=kk(g+1,1);elseld1=kk(g,1);endbreakendendkl=kk(g,x+1);aa=round(a0+(ld-ld1)/2);r=180-(dd2-dd1)/aa*57.3;rr=[220 1.20;210 1.15;200 1.10;190 1.05;180 1.00;170 0.98;160 0.95;... 150 0.92;140 0.89;130 0.86;120 0.82;110 0.78;100 0.73;90 0.68];for ii=1:13if r<=rr(ii,1)&&r>=rr(ii+1,1)ka=rr(ii+1,2)+(r-rr(ii+1,1))/10*(rr(ii,2)-rr(ii+1,2));breakendendp0=(k1*v^(-0.09)-k2/dd1-k3*v^2)*v;if i==1.8ki=1.1202;elseif i>=2ki=1.1372;endm=[0.06 0.1 0.17];pp0=kb*n*(1-1/ki);z=ceil(pd/(p0+pp0)/kl/ka);if z<10f0=500*pd/z/v*(2.5-ka)/ka+m(x)*v^2; fq=2*z*f0*sin(r/2/180*pi);bb=round((z-1)*15+20);disp('所选原动机种类:')if d1==1disp('I类原动机');elsedisp('II类原动机');enddisp('所选带型为:');if x==1disp('Z型V带');elseif x==2disp('A型V带');elsedisp('B型V带');enddisp('小带轮直径(mm) dd1=')disp(dd1);disp('大带轮直径(mm) dd2=')disp(dd2);disp('实际中心距(mm) a0=');disp(aa);disp('小带轮包角(角度)α=');disp(r);disp('V带根数 Z=');disp(z);disp('V带的基准长度(mm) Ld=');disp(ld);disp('初拉力(N) F0=');disp(f0);disp('作用在轴上的压力(N) FQ=');disp(fq);disp('带轮轮缘宽度(mm) B=');disp(bb);endendt1=input('是否计算下一种带轮直径? 1、yes;2、no。

相关文档
最新文档