
简介一份机械原理内燃机课程设计完整报告适合机械类专业学生、课程设计者及机械工程师参考。资源共1个文件为Word文档约613KB方便直接阅读和修改已有107人学习适用于复习机械原理核心知识点或作为课程设计模板。报告覆盖内燃机机构设计全流程第1章给出设计题目、机构示意图及活塞冲程、齿轮转速、凸轮升程角等原始数据第2章讲解齿轮机构传动比、变位系数选择及参数计算第3章连杆机构尺寸确定并结合解析法与图解法进行运动分析第4章凸轮理论轮廓与实际轮廓的解析法求取。附录另附MATLAB电算源程序以及图解法分析连杆机构、凸轮轮廓曲线的操作步骤便于对照计算与验证读者可通过该报告理解内燃机中气缸、活塞、曲柄、齿轮、凸轮等组件的联动关系掌握课程设计报告的规范写法与工程分析方法。1. 基于ADAMS的发动机曲柄连杆机构动力学仿真能算准哪些量曲轴销、活塞销、连杆轴瓦上的动态载荷很难直接测准却是轴承疲劳计算和整机振动预测的关键输入。基于ADAMS的发动机曲柄连杆机构动力学仿真通常从理论机构简图出发将曲轴转角、爆发压力与几何参数映射为各铰点的约束反力和运动学曲线。反直觉的地方在于如果不加气体压力只让曲柄匀速旋转系统在动力学上接近纯几何运动把示功图数据作为强制载荷接入后方程变成高刚度微分代数系统很多仿真发散都是在这个阶段出现的。这套分析能解决什么直接给轴承设计提供峰值载荷谱给轴系扭振提供激励源也能在样机试制前对比不同连杆长度和活塞质量的NVH趋势。接下来我们按理论、建模、求解、后处理四个步骤讲透它。2. 曲柄连杆机构动力学方程与ADAMS建模仿真的理论准备2.1 曲柄连杆机构的运动学输入与动力学输出设曲柄半径 R连杆长度 L连杆比 λR/L曲轴转角为 α。活塞沿气缸轴线的位移可写成x R(1-cos α) L(1-√(1-λ^2 sin^2 α))在 λ0.3 时可用二阶近似 x ≈ R(1-cos α) (Rλ/2)(1-cos2α)。一次求导得到活塞速度近似 v ≈ Rω(sin α (λ/2) sin2α)。这两个表达式在 ADAMS 里没有直接计算但它们非常适合用来反向核对曲线如果模型里连杆长度输成别的值运行后活塞位移曲线峰值会明显偏出解析值如果曲柄半径大了速度曲线的对称性也会变化。ADAMS 求解曲柄连杆机构时并不按上面的闭式方程直接积分。它把每个刚体写成一个 6 自由度的笛卡尔坐标块再用运动副方程组把自由度约束到只剩曲轴转角一个。整个系统写成M(q) q″ Φ_q^T λ Q(q, q, t)Φ(q,t)0其中 M 是质量矩阵Φ 是约束方程λ 是拉格朗日乘子。这个 λ 在数值上正是转动副和移动副内部的约束反力也是后处理里所有“轴承载荷”数据的物理来源。所以你不需要在 ADAMS 里手工施加什么“连杆内力”但必须清楚地告诉求解器哪个零件是曲柄哪个零件是活塞它们之间的几何关系如何。给出一个建模前参数表如下参数符号典型值影响曲柄半径R45 mm决定活塞行程与惯性力幅值连杆长度L150 mm决定侧推力波形和二次谐波位置活塞组质量m_p0.8 kg主要影响往复惯性力连杆质量m_c1.2 kg影响连杆摆动引起的惯性矩连杆质心位置l_c60 mm影响大头与小头载荷分配活塞顶受力面积A_p50 cm²把气体压力转换为集中力这张表在建立 ADAMS 模型时必须逐项填入刚体的质量属性缺失任何一项都会让约束反力偏离真实值尤其是连杆质心位置几乎决定了活塞销和曲柄销载荷的比例关系。2.2 ADAMS中的力系处理重点在气压力与往复惯性力的合成动力学的最大载荷源来自缸内气体压力。给定示功图 p(α) 后活塞顶面的气压力为 F_g(α)p(α)·A_p。在 ADAMS 中p(α) 可以做成样条曲线然后用 AKISPL 函数插值函数表达式可以写成AKISPL( time*6*n , 0, SPLINE_1, 0 ) * AREA这里 n 是曲轴转速单位 r/min。time6n 把物理时间换算成曲轴转角度如果转速是 6000 r/min那么每秒转 100 圈每秒角度量是 36000°也就是 6*6000。AREA 是活塞顶受压面积单位按 ADAMS 中的基本单位传递。注意别把样条横坐标单位设成弧度否则插值结果会非常怪。往复惯性力不需要你额外施加。ADAMS 根据刚体质量属性自行计算只要给出了质心位置和转动惯量活塞的往复惯性力会作为惯性项自动计入平衡方程。你真正需要关心的是气体压力、阻力矩等“外部载荷”的方向和施加点。气体压力应作用在活塞顶面中心方向沿气缸轴向如果活塞顶面有斜度要在建模时把作用点放在活塞平均受力点否则会额外叠加一个倾倒力矩和真实受力不符。下列表格整理了本机构常见外载荷的施加方式载荷来源方向ADAMS 中的施加方式备注缸内气压力活塞轴向力函数 样条随曲轴转角变化活塞环摩擦力活塞侧壁轴向小力可暂忽略或加常数负载阻力矩曲轴输出端旋转力矩用于燃机输出特性分析重力竖直向下系统重力设置对低速大缸径机影响更大在正式仿真前建议先做一次“只有运动学驱动”的跑动把摩擦、气体压力都关掉确认几何和约束没有问题。然后再把气体压力样条挂上观察求解器是否出现高频振荡如果出现大概率是样条点数过少或数据突然跳变需要在样条编辑器里做平滑处理。3. 基于ADAMS从零构建曲柄连杆机构模型3.1 工作环境与几何定位打开 ADAMS/View 后先做单位设置。一般选 MMKS也就是长度用毫米、质量用千克、力用牛顿、时间用秒这样从机械设计软件导入几何时数值不用做量纲换算。重力方向要按发动机的摆放方向设置如果是立式发动机气缸轴线和重力方向一致活塞运动方向设为 Y重力设为 -Y如果是卧式发动机把气缸轴线设为 X重力方向不变。这个细节会影响气体压力与重力叠加后的合力方向后处理读取侧推力时尤其容易混淆。坐标定位方面我将曲柄中心放在原点 (0,0,0)曲轴旋转轴线设为 X 方向。活塞运动轴向设为 Y 方向这样活塞销中心在曲轴正上方。初始位置设定为曲柄转角 0°此时曲柄销在 Y 正方向活塞在上止点附近。所有部件的几何中心都按这个坐标关系摆放后续添加运动副时直接引用这些坐标点即可。3.2 用ADAMS命令创建零件与约束ADAMS/View 支持命令窗口输入下面这段命令在 Command Window 中执行即可完成前三个刚体的创建和质量属性定义。旧版本如果提示“create”语法不支持就把前两个单词顺序和参数大小写按帮助文件调整一下核心内容不变。! 曲柄曲柄半径45mm质量2.3kg质心在曲柄销方向中间位置 part create rigid_body name_and_position part_name.engine.crank adams_id1 location(0,0,0) marker create marker_name.engine.crank.cm adams_id10 location(0,22.5,0) part create rigid_body mass_properties part_name.engine.crank mass2.3 center_of_mass_marker.engine.crank.cm ixx0.0058 iyy0.0058 izz0.0009 ! 连杆长度150mm质心距离大头销60mm part create rigid_body name_and_position part_name.engine.rod adams_id2 location(0,22.5,0) marker create marker_name.engine.rod.cm adams_id20 location(0,60,0) part create rigid_body mass_properties part_name.engine.rod mass1.2 center_of_mass_marker.engine.rod.cm ixx0.0032 iyy0.0032 izz0.0001 ! 活塞简化为集中质量质心与活塞销重合 part create rigid_body name_and_position part_name.engine.piston adams_id3 location(0,150,0) part create rigid_body mass_properties part_name.engine.piston mass0.8解释一下参数part create rigid_body name_and_position 创建刚体并确定初始位置location 是该零件局部坐标系的原点位置。marker create 建立质心标记mass_properties 把质量、质心和三个转动惯量写进去。ixx iyy izz 是绕质心坐标系三个轴的转动惯量单位是 kg·mm²具体数值可通过三维软件的质心属性计算得到。活塞简化为质量点时不需要转动惯量因为活塞在平动约束下不绕自身轴线旋转。零件建好后下一步添加运动副。曲柄相对机架是旋转副曲柄和连杆之间是旋转副连杆和活塞之间是旋转副活塞与机架之间是平移副命令如下constraint create joint revolute joint_name.engine.j_ground_crank adams_id1 i_part_name.engine.ground j_part_name.engine.crank location(0,0,0) constraint create joint revolute joint_name.engine.j_crank_rod adams_id2 i_part_name.engine.crank j_part_name.engine.rod location(0,45,0) constraint create joint revolute joint_name.engine.j_rod_piston adams_id3 i_part_name.engine.rod j_part_name.engine.piston location(0,150,0) constraint create joint translational joint_name.engine.j_piston_ground adams_id4 i_part_name.engine.piston j_part_name.engine.ground location(0,150,0)注意第二个和第三个旋转副分别位于曲柄销和活塞销的中心。location 必须严格对应该坐标点否则模型上出现错位约束求解时会报“no perpendicular axis”之类的错误。完成约束后可以先把所有旋转副都加上 360d*time 的驱动运动做一次运动学仿真确认活塞在上下止点之间正常往复没有穿透或脱离。3.3 施加驱动转速恒定与活塞循环压力运动学跑通后把恒定旋转运动替换到真实工况。下面给出 600 r/min 转速下的驱动和气体压力示例! 曲轴角速度驱动每秒转10圈3600度/秒 constraint create motion motion_name.engine.motion_crank adams_id1 typerotational joint_name.engine.j_ground_crank function3600d*time ! 气体压力样条横坐标为曲轴转角(deg)纵坐标为压力(MPa) spline create spline_name.engine.pressure_spline ! 活塞顶面压力载荷取样条值乘以活塞面积 force create direct force force_name.engine.gas_force adams_id1 i_part_name.engine.piston j_part_name.engine.ground ref_marker.engine.piston.top function-AKISPL(time*3600,0,.engine.pressure_spline,0)*50从代码中看到驱动函数写为 3600dtime即 3600°/s如果转速是 n r/min就写 (n6)dtime。气体压力函数中的 time3600 实时算出当前曲轴转角交给样条插值*50 对应活塞面积 50 cm²。负号表示方向沿着活塞轴指向气缸盖方向。这里的活塞面积需要和压力单位保持一致压力样条用 MPa50 cm² 换成基本单位后要写成 5000 mm²所以函数末尾应写 *5000。上面命令里的 *50 是示意实际单位换算后要修正。如果曲轴转速有波动不能再用 time*3600 替代曲轴转角因为样条横坐标会失真。更稳妥的办法是直接读取曲柄上旋转副的角度函数。例如用测量表达式 AZ(.engine.j_ground_crank.joint_axis)再把它作为样条横坐标变量但这样求解器会多一步迭代建议在稳态分析时先用恒转速等模型稳定后再改用角速度驱动与压力闭环。4. 曲柄连杆机构动力学仿真前后的关键参数与结果提取4.1 仿真参数积分器、误差与步长设置模型导入气体压力后方程刚性会显著增强求解器参数直接影响收敛性。ADAMS 默认的 GSTIFF 积分器适合多数机构动力学问题但不同公式差异很大。下表是曲柄连杆机构仿真中的常用对照积分器公式曲柄连杆机构里的适用场景注意点GSTIFFI3快速检查运动学和基本动力学约束反力可能带高频噪声GSTIFFSI2需要干净约束反力的轴承力分析计算时间大约是 I3 的两倍WSTIFFI3带柔性体的大质量比模型积分步长过大易收敛失败HHTI3柔体模型高频振动衰减控制参数调不好会阻尼过大对于常规曲柄连杆机构我一般选择 GSTIFF SI2因为轴承反力最终要拿去做疲劳计算SI2 对拉格朗日乘子的数值平滑性更好。仿真截止时间设为两个完整工作循环如果转速为 600 r/min循环周期是 0.1 s两个循环设置 0.2 s每度转角至少设置 4 个输出步也就是 720×42880 步。求解误差保持 1e-3 即可更小不会带来明显改善反而容易让求解器在气体压力突变处反复迭代。如果仿真过程中提示 convergence failure先不要提高误差容限。第一步检查气体压力样条是否存在相邻点之间跳变过大尤其是爆发压力附近第二步检查转动副位置是否与几何点精确重合第三步才是把求解器步长从 1e-4 缩小到 1e-5。很多发散其实是约束奇异而不是积分精度问题。4.2 记录测量量用函数定义活塞侧推力与轴承反力ADAMS 后处理不是只能看位移速度还能直接提取运动副反力。下面的表达式可以在 PostProcessor 的 Function Builder 里直接输入! 活塞位移mm DZ( .engine.piston.cm, .engine.ground ) ! 活塞加速度mm/s^2 ACCY( .engine.piston.cm, .engine.ground ) ! 活塞与气缸侧壁的侧推力取活塞平移副X向反力(N) JOINT( .engine.j_piston_ground, 0, 1, .engine.piston.cm ) ! 活塞销处Y向支反力(N) JOINT( .engine.j_rod_piston, 0, 2, .engine.piston.cm )解释一下 JOINT 的参数第一个参数是运动副名称第二个参数 0 表示取运动副内力1 表示取构件作用在机架上的力第三个参数是分量编号1 对应 X 向2 对应 Y 向最后一个参数是参考坐标系标记。活塞侧推力在气缸径向也就是 X 方向因此取 1活塞销载荷主要沿轴向取 2。不同 ADAMS 版本中分量编号与方向的对应可能随坐标系变化运行前先输出一组已知工况的数据和手算值对比一下再批量提取。如果只关心幅值可以在后处理中直接右键曲线选择 MeasureADAMS 会计算出最大值、最小值、均方根和频谱。但不要忘了把原始曲线导出为 CSV 或 RPC 格式后面做轴承载荷谱的时候这些时间历程才是完整输入。4.3 后处理从曲线到轴承载荷谱得到活塞销和曲柄销支反力曲线后先看二到三个循环的曲线是否重合。如果不重合说明模型没有进入稳态需要再延长仿真时间如果重合则可以提取最大峰值和对应曲轴转角。把这些峰值按转速点整理成转速-峰值载荷曲线能直接看出共振转速的位置。更精细的做法是在后处理中做 FFT观察侧推力的主要频率分量一阶转频和二阶往复惯性力分量几乎必然存在如果出现高阶异常往往是运动副间隙或样条不平滑导致。把载荷谱和频率分析结果归档再利用 ADAMS 的 Export 功能输出为外部文件就可以交给轴承分析或结构强度计算。5. 进阶刚柔耦合与批量仿真的两个实战技巧5.1 用柔性体替换刚性曲轴看活塞销载荷变化高转速时曲轴扭转和弯曲变形不能忽略。常规做法是在有限元软件中生成曲轴的 MNF 文件然后替换刚体曲轴。替换前要保证模态截断频率高于激励频率的 5 倍以上否则柔性体反而会在高频段产生虚假应力。替换后重新跑一遍 4.2 里的活塞销力测量和刚性体模型对比你会发现侧推力峰值出现几毫秒量级的相位差这正是曲轴扭转带来的激励传递滞后。如果以轴承疲劳为目标这个差值值得关注。常见做法是把曲轴分两段处理曲柄销和主轴颈保留为刚性中间连接部分做成柔性体。这种混合建模方式能把模态数控制在 15 阶以内计算时间增加不到 50%但结果对扭转振动的灵敏度大幅提升。注意ADAMS/Flex 中导入 MNF 时要检查单位制是否与模型一致导入后还要重新约束运动副位置柔性体节点坐标和原刚体坐标一旦错位仿真会很快发散。5.2 用ADAMS/Insight批量扫描曲柄半径和连杆长度在曲柄连杆机构优化中经常想知道 R 和 L 的变化对侧推力峰值的影响。常见的做法是把 R 和 L 设成设计变量然后在 ADAMS/Insight 中建立扫描表。如果不想打开完整界面也可以直接运行脚本批处理下面是一个 Linux/bash 下的示意for r in 40 45 50; do sed s/CRANK_RADIUS/$r/ engine.adm engine_$r.adm adams2021 ru-standard engine_$r.adm engine_$r.acf done脚本先通过文本替换生成不同曲柄半径的模型文件再逐个调用 ADAMS 求解器engine_$r.acf 里保存了仿真时长和后处理导出命令。扫描完成后把每个 R 对应的侧推力曲线拼在一起就能画出一张以 R 为参数的响应图。用这个结果反推设计点比在 ADAMS/View 里手动改一个参数、跑一次仿真省力得多而且能暴露参数在边界处是否出现奇异性。导入 ADAMS/Insight 做响应面时建议把目标定义为活塞侧推力的绝对值峰值这样优化方向更利于减小活塞和缸套之间的磨损。把最终得到的载荷谱导出为 CSV后续轴承动力学分析就能直接使用这套数据。本文还有配套的精品资源点击获取