
简介一份机械原理内燃机课程设计报告面向机械类专业学生及从事机构设计分析的工程师完整呈现内燃机机构设计及其运动分析过程。资源包仅含1个doc文档整体大小约613KB内容紧凑、重点突出。报告按设计流程组织涵盖齿轮机构传动设计、连杆机构设计与运动分析、凸轮机构设计三大模块详细讨论了传动比确定、齿轮变位系数选择、杆件尺寸计算、解析法与图解法对比分析、凸轮理论及实际轮廓曲线求解等核心内容并附有MATLAB电算源程序、图解法分析连杆机构与凸轮轮廓的完整过程便于读者对照理解。该设计报告覆盖了从原始数据到电算实现的全链条方法既有理论推导又有实操支撑可作为课程设计参考模板或机械原理综合复习资料。目前已有107人浏览学习对需要完成类似设计的同学具有较强借鉴价值。1. 为什么课程设计总拿内燃机开刀一个项目串起三大经典机构机械原理课程设计里“内燃机机构设计及其运动分析”出镜率很高原因不是题目简单而是它把三门课的核心内容一次问完齿轮机构负责把曲柄轴的旋转准确传给凸轮轴连杆机构决定了活塞的位移速度和加速度特性凸轮机构则直接控制气阀推杆的升程和回程。这份课程设计报告对应的算例很清晰活塞冲程 215 mm曲柄转速 650 r/min配气凸轮升程 10 mm四个运动角分配合理。手头这份 doc 资源把齿轮变位、曲柄滑块解析、凸轮廓线求解和 MATLAB 电算程序都写在了一起适合正在做课程设计、准备答辩或想复习机构运动分析的人逐段对照复算。2. 齿轮机构传动设计从传动比到变位系数的完整验算2.1 传动比计算中间齿轮不改变总传动比机构布置为曲柄轴上固联齿轮 1z120通过齿轮 2z215带动与凸轮同轴的齿轮 3z340模数 m4。齿轮 1 的转速就是曲柄转速 n1650 r/min。这里不需要把两级传动拆开相乘因为齿轮 2 起着惰轮作用只改变转向和中间轴转速不改变总传动比z1 20; z2 15; z3 40; i13 z3 / z1; % 总传动比 40/20 2 n3 650 / i13; % 凸轮轴转速 325 r/min omega_cam 2*pi*n3/60; % 凸轮角速度 ≈ 34.03 rad/s逻辑上惰轮齿数 15 只影响中间轮自转转速齿轮 2 转速为 n2 n1*z1/z2 866.7 r/min比输入轴还高。这一点容易被忽略中间轮虽然不改变传动比但转速高、动平衡和噪声问题不能轻视。上段代码先算总传动比再算凸轮轴转速和角速度后面凸轮运动分析和轮廓曲线计算都直接使用omega_cam这个变量。2.2 齿轮变位系数选择齿数 15 躲开根切的硬条件齿轮 2 的齿数 15 小于标准直齿圆柱齿轮不发生根切的最少齿数 17因此必须变位。最小变位系数的计算方法是x_min h_a·(z_min - z)/z_min (17 - 15)/17 0.11765报告实际取 x2 在这个值附近。为了让中心距仍保持标准值总变位系数必须为零所以齿轮 1 和齿轮 3 取对应的负变位x1 x3 -0.1176x2 0.1176注意这里最容易踩的坑是负变位齿轮的齿顶厚会变薄必须校核齿顶厚是否小于常用限值 0.25m。报告中专门计算了小齿轮齿轮 2的齿顶厚就是这个原因。如果齿顶厚太薄说明变位系数绝对值取大了可以把变位系数从最小值 0.1176 往下调或重新调整齿轮齿数。2.3 齿轮基本参数计算中心距先从标准值核对模数 m4压力角 α20°齿顶高系数 h_a1顶隙系数 c0.25。先按标准中心距核对原始数据a12 m·(z1z2)/2 4 × (2015)/2 70 mma23 m·(z2z3)/2 4 × (1540)/2 110 mm这两项正好等于原始数据里给出的中心距 70 mm 和 110 mm。因为总变位系数为 0属于高度变位啮合角仍为分度圆压力角 20°中心距变动系数和齿高变动系数都为 0。因此齿顶圆和齿根圆半径比角度变位的情况简单ra m·(z/2 h_a x)rf m·(z/2 - h_a - c x)rb m·z·cos(α)/2s m·(π/2 2·x·tan(α))下面这个函数一次返回四个参数主脚本里分别调用三次function [ra, rf, rb, s] gear_params(z, x, m, ha, c, alpha_deg) alpha alpha_deg*pi/180; ra m*(z/2 ha x); rf m*(z/2 - ha - c x); rb m*z*cos(alpha)/2; s m*(pi/2 2*x*tan(alpha)); end m 4; ha 1; c 0.25; alpha_deg 20; [ra1, rf1, rb1, s1] gear_params(20, -0.1176, m, ha, c, alpha_deg); [ra2, rf2, rb2, s2] gear_params(15, 0.1176, m, ha, c, alpha_deg); [ra3, rf3, rb3, s3] gear_params(40, -0.1176, m, ha, c, alpha_deg); fprintf(齿轮2ra%.2f rf%.2f rb%.2f s%.2f\n, ra2, rf2, rb2, s2);代码逻辑说明ra计算时 x 为正则齿顶升高负则齿顶降低rf里 x 是加号因为正变位会让齿根加厚分度圆弧齿厚s中 2x·tan(α) 就是变位带来的齿厚增量。调用三次分别得到三个齿轮的参数便于打印成表。计算后的主要参数如下表。齿轮 2 的齿顶圆半径约 34.47 mm与报告结果表中的 34.46 mm 基本吻合说明变位系数确实按最小变位系数附近处理。参数齿轮1 z20 x-0.1176齿轮2 z15 x0.1176齿轮3 z40 x-0.1176分度圆半径 (mm)40.0030.0080.00基圆半径 (mm)37.5928.1975.18齿顶圆半径 (mm)43.5334.4783.53齿根圆半径 (mm)34.5325.4774.53分度圆弧齿厚 (mm)5.946.635.942.4 重合度与齿顶厚校核重合度按啮合角 α20° 计算εα [z1·(tanαa1 - tanα) z2·(tanαa2 - tanα)] / (2π)齿顶圆压力角用基圆半径和齿顶圆半径反算αa arccos(rb/ra)。算得齿轮 1 的 αa1 约 30.3°齿轮 2 的 αa2 约 35.1°代入后重合度约 1.51满足直齿圆柱齿轮 ε≥1.3 的常用工程指标。齿顶厚 Sa 用分度圆弧齿厚换算Sa s·ra/r - 2·ra·(invαa - invα)其中 invα tanα - α。负变位的齿轮 1、3 齿顶厚偏薄但 x 绝对值只有 0.1176Sa 仍大于 0.25m 1 mm可以接受。如果算出的 Sa 接近临界值应把变位系数朝零方向收或改用齿数 16/17 再做一轮。3. 连杆机构运动分析曲柄滑块位移速度加速度的解析与图解3.1 杆件尺寸确定活塞冲程决定曲柄半径对心曲柄滑块机构中活塞冲程 H 等于曲柄销两极限位置之间的距离即 H2r。原始数据 H215 mm所以曲柄半径 r107.5 mm偏心距 e0。连杆长度在报告原稿中残缺按常规设计取连杆与曲柄长度比 λr/l≈1/4我一般取 l430 mm。这样滑块运动学中的连杆二次谐波分量比例适中连杆取太长会使机构高度增加取太短则加速度峰值变大内燃机设计里会让活塞侧推力明显增加。3.2 解析法建模用符号微分代替手推展开式以曲轴中心为原点、活塞运动方向为 x 轴曲柄转角 φ 从气缸上止点位置开始度量滑块位置x(φ) r·cosφ sqrt(l² - r²·sin²φ)很多人在位移式子能写对但速度加速度求导时开始丢项常见错误是把 sqrt 项当常数或者忘记内层 sin²φ 的链式求导。我一般用 MATLAB 符号求导算完再matlabFunction转成数值函数避免手推展开式出错r 107.5; % 曲柄半径 mm l 430; % 连杆长度 mm omega 2*pi*650/60; % 曲柄角速度 rad/s syms phi real x r*cos(phi) sqrt(l^2 - r^2*sin(phi)^2); v diff(x, phi) * omega; a diff(x, phi, 2) * omega^2; theta [0 90 180 270]*pi/180; X_val double(subs(x, phi, theta)); V_val double(subs(v, phi, theta)); A_val double(subs(a, phi, theta));代码逻辑说明diff(x, phi)是 x 对 φ 的一阶导数乘角速度就得到滑块速度diff(x, phi, 2)是二阶导再乘角速度平方得到加速度因为 ω 是常量不需要再对时间复合求导。符号计算的好处是整个推导过程由程序完成不容易漏根号内层的导数项。计算出的 x 是从曲轴中心到活塞销的距离更直观的活塞行程 S x - (l-r)这样 φ0° 对应 S215 mm 上止点φ180° 对应 S0 下止点。3.3 解析结果与图解法的三个瞬时位置报告附录用图解法做了三个瞬时位置的速度多边形和加速度多边形。图解法最容易出错的地方不是作图本身而是比例尺速度图里 1 mm 代表多少 m/s加速度图里 1 mm 代表多少 m/s²反推回实际值时经常差一个量级。下面这张解析结果表可以直接用来核对图解法数据选任意三个角度都能对得上。曲柄转角 (°)活塞位移 S (mm)滑块速度 v (m/s)滑块加速度 a (m/s²)0215.00-622.69093.87.32128.618000373.627093.8-7.32128.6注意加速度符号与坐标轴定义相关φ0° 时活塞在上止点加速度为负值表示活塞受到指向下方的减速力φ90° 附近加速度为正且数值较小。图解法验证一般选曲柄转角 30°、120°、240° 这类非对称角度更能暴露公式或作图错误。画速度图时速度矢量方向必须与曲柄转向、连杆方向一致否则方向和大小都会出错。3.4 结果曲线怎么检查解析结果出来后用几个边界条件自检第一位移在 0° 和 180° 取极值速度在这两点必须为零。第二加速度在上下止点附近符号翻转但加速度过零点不会正好在 90°而是略偏后这是连杆二阶运动分量的正常表现。第三滑块平均速度按 v_avg2Hn/60 计算650 r/min 时约为 4.66 m/s表格中 90° 处峰值 7.32 m/s两者比约 1.57接近 π/2符合简谐近似的规律。如果输出差异很大优先检查曲柄转角单位是否混用了度和弧度这是 MATLAB 脚本里最隐蔽的坑。4. 凸轮机构设计简谐运动规律下的轮廓曲线求解4.1 凸轮运动参数与角速度换算凸轮由齿轮 3 驱动转速 n3 325 r/min角速度 ω 34.03 rad/s。原始数据给出升程角 Φ55°远休止角 Φs5°回程角 Φ55°近休止角 Φ245°四角之和为 360°。推杆冲程 h10 mm基圆半径 r035 mm。升程和回程都是简谐运动规律即余弦加速度运动。近休止角 245° 很大说明凸轮大部分时间停留在最低位置只在很短的窗口期推杆完成升程和回程。改动任何一个角度另外三个角必须同步调整始终保持总和 360°。4.2 简谐运动规律的位移、速度和加速度简谐运动规律的标准写法是升程段φ ∈ [0, Φ] s h/2 · [1 - cos(πφ/Φ)] ds/dφ πh/(2Φ) · sin(πφ/Φ)回程段设 φ φ - (ΦΦs)φ ∈ [0, Φ] s h/2 · [1 cos(πφ/Φ)] ds/dφ -πh/(2Φ) · sin(πφ/Φ)用 MATLAB 分段实现时最容易出错的是阶段边界判断。尤其是远休止段只有 5°一个写错就会少一段数据h 10; r0 35; % 推杆冲程 mm基圆半径 mm Phi 55*pi/180; Phi_s 5*pi/180; Phi_r 55*pi/180; phi linspace(0, 2*pi, 7201); s_phi zeros(size(phi)); ds_phi zeros(size(phi)); for i 1:length(phi) if phi(i) Phi s_phi(i) h/2*(1 - cos(pi*phi(i)/Phi)); ds_phi(i) pi*h/(2*Phi)*sin(pi*phi(i)/Phi); elseif phi(i) Phi Phi_s s_phi(i) h; ds_phi(i) 0; elseif phi(i) Phi Phi_s Phi_r phi_r phi(i) - Phi - Phi_s; s_phi(i) h/2*(1 cos(pi*phi_r/Phi_r)); ds_phi(i) -pi*h/(2*Phi_r)*sin(pi*phi_r/Phi_r); else s_phi(i) 0; ds_phi(i) 0; end end代码逻辑说明s_phi记录每个凸轮转角对应的推杆位移ds_phi记录 ds/dφ它对 φ弧度求导单位是 mm/rad后面求压力角和实际轮廓曲线都要用这个量。7201 个采样点对应步长 0.05°足够让轮廓曲线平滑。注意远休止段只持续 5°相位判断用PhiPhi_s收住近休止段持续 245°位移必须清零不能把上一阶段的残留带进来。4.3 凸轮理论轮廓曲线极径加位移再投影对心直动从动件不考虑偏距时理论轮廓就是把基圆半径 r0 加上推杆位移 s再按转角 φ 投影到坐标方向。设凸轮逆时针旋转推杆导路沿 y 轴则理论轮廓坐标为X (r0 s)·sinφY (r0 s)·cosφ这个式子和常见的 (r0s)·cosφ、(r0s)·sinφ 差一个 90° 坐标旋转画出来形状相同但后续导入 CAD 时对齐基准会更麻烦。建议统一从推程起点开始定义 φ并保持坐标顺序一致。4.4 实际轮廓曲线理论轮廓等距线与法向偏置报告第 4.3 节里的“实际轮廓”对应滚子从动件的情形。实际轮廓是理论轮廓沿法线方向偏置一个滚子半径 rT 得到的等距线。报告原稿没有直接给滚子半径常见做法是取基圆半径的 0.10.2 倍这里取 rT8 mm。计算时先求理论轮廓的切线方向导数dX/dφ ds/dφ·sinφ (r0s)·cosφdY/dφ ds/dφ·cosφ - (r0s)·sinφ然后取切向量的垂直方向作为法线向凸轮内侧偏置滚子半径rT 8; X_t (r0 s_phi).*sin(phi); Y_t (r0 s_phi).*cos(phi); dX ds_phi.*sin(phi) (r0 s_phi).*cos(phi); dY ds_phi.*cos(phi) - (r0 s_phi).*sin(phi); denom sqrt(dX.^2 dY.^2); X_a X_t - rT .* dY ./ denom; Y_a Y_t rT .* dX ./ denom; plot(X_a, Y_a, LineWidth, 1.5); axis equal;代码逻辑说明dX和dY是理论轮廓的切向分量denom是切向量模长(-dY/denom, dX/denom)是把切向量逆时针旋转 90° 得到的内侧法向量。乘滚子半径后从理论轮廓减掉得到实际轮廓。如果作图发现实际轮廓跑到了理论轮廓外侧说明坐标方向或凸轮旋转方向定义相反把减号改为加号即可。这是等距线偏置中唯一的符号坑。4.5 各阶段关键点数值核对用几个手工可算的关键点来核对分段程序是否正确。下表是各阶段节点处的推杆位移和位移导数其中 ds/dφ 单位是 mm/rad。凸轮转角 φ (°)所处阶段s (mm)ds/dφ (mm/rad)0升程起点0027.5升程中点5.0016.3755升程终点/远休止起点10.00060远休止终点10.00087.5回程中点5.00-16.37115回程终点/近休止起点00360近休止终点00检查表中 55° 和 60° 两个点它们相差 5°但位移都必须是 10 mm速度都为 0。如果程序里远休止段的判断漏掉边界曲线会在 60° 处出现尖角。近休止段很长从 115° 到 360°这段位移恒为 0轮廓曲线在该段就是基圆的一段圆弧半径 35 mm图解法量轮廓时可以用这个半径反推图纸比例。5. MATLAB 源程序整理与三个瞬时位置的验证技巧课程设计报告附录里的 MATLAB 电算源程序往往是打印版变量名连续缺少分节。我拿到这类资源后的习惯是把它拆成三个独立脚本gear_design.m跑齿轮参数crank_slider.m跑连杆运动分析cam_profile.m跑凸轮廓线。这样改任何一个参数不需要把整个程序重跑一遍答辩被问到中间结果时也能单独展示某段曲线。验证解析法结果最直接的办法是图解法。选曲柄三个转角比如 30°、150°、270°按 1:1 比例画出曲柄和连杆位置用速度图法得到活塞速度再与第三节的解析表对比。速度比例尺要选成能整除主比例尺的数例如位移图 1 mm 代表 10 mm速度图取 1 mm 代表 0.2 m/s量完直接乘比例尺减少换算错误。加速度图同理先按量纲标定好每毫米对应的加速度值再量长度。凸轮部分容易漏掉的是压力角校核。对心直动从动件压力角公式为tanα_p (ds/dφ) / (r0 s)用第四节里的ds_phi和s_phi直接算最大压力角。该算例中最大压力角发生在升程和回程中点约 22.3°小于常用的 30° 推荐值基圆半径 35 mm 是合理的。如果算出超过 30°优先增大基圆半径其次再加大升程角不要先动滚子半径。这里插入一个短代码做全圆周压力角检查alpha_p atan(abs(ds_phi) ./ (r0 s_phi)) * 180 / pi; fprintf(最大压力角 %.2f°\n, max(alpha_p));最后可以把凸轮实际轮廓坐标导出成文本文件方便导入 CAD 检查封闭性和过渡圆角writematrix([((0:length(X_a)-1)*0.05) X_a(:) Y_a(:)], cam_outline.dat);第一列是凸轮转角后两列是 X/Y 坐标。导入 CAD 后把首尾点连起来检查曲线是否闭环、实际轮廓与理论轮廓之间的最小间隙是否等于滚子半径 8 mm。间隙在 7.98.1 mm 以内说明法线方向和采样步长没问题如果间隙偏差大先查回程段phi_r是否写成了phi如果曲线局部内凹则要回到第四节检查阶段判断边界。以上几步做完齿轮、连杆、凸轮三部分的数据就能相互印证。本文还有配套的精品资源点击获取