材料力学&理论力学教学案例

一、适用课程

本案例库面向以下高校工科课程:

课程 涵盖章节
材料力学 压杆稳定、圆轴扭转、平面应力状态、梁弯曲、组合变形强度校核
理论力学 平面力系平衡、刚体平面运动、振动系统分析、摩擦与自锁、桁架内力、科氏加速度
工程力学 将上述两门课程的核心知识点整合为一学期的教学案例集
数值计算与编程 作为工科编程实践课程的力学计算案例,培养学生使用 Julia 语言解决工程问题的能力

适用于机械工程、土木工程、航空航天工程、力学等相关专业的本科二至三年级教学。

二、案例库简介

本案例库包含 5 个材料力学和 6 个理论力学共 11 个独立教学案例,全部基于 MWORKS.Syslab 平台,使用 Julia 语言编写,绘图采用 TyPlot 库。每个案例均为独立脚本,运行时自动完成数值计算并生成图形,无需额外配置。

案例设计理念是将公式推导、数值计算和图形观察三者联动——教师在课堂演示时,可以先用默认参数展示典型结果,再修改关键参数,让学生即时观察曲线形状、极值位置和响应幅值的变化,从而建立力学直觉。

三、软件环境

项目 要求
平台 MWORKS.Syslab 2026b(或更高版本)
编程语言 Julia 1.10.10
绘图库 TyPlot(Syslab 内置)
额外依赖 LinearAlgebra(Julia 标准库)

四、运行方法

  1. 在 MWORKS.Syslab 中打开任意一个 .jl 脚本文件
  2. 无需安装额外依赖包,脚本会自动加载 TyPlot
  3. 直接运行(F5),控制台将输出关键计算结果,图窗自动弹出
  4. 如需修改参数,编辑每个脚本 main() 函数开头的 参数设置区,重新运行即可

以 beam_bending_analysis.jl 为例,参数设置区如下:

# ---------------- 参数设置区 ----------------
L = 6.0        # 梁长,单位 m
E = 2.1e11     # 弹性模量,单位 Pa,默认取钢材
I = 8.0e-6     # 截面惯性矩,单位 m^4
P = 10000.0    # 集中力,单位 N,向下为正载荷
a = 3.0        # 集中力距左支座位置,单位 m
q = 2000.0     # 均布载荷集度,单位 N/m,向下为正载荷
# --------------------------------------------

若当前环境未加载 TyPlot(如在标准 Julia REPL 中运行),脚本仍会完成数值计算并输出结果,同时提示用户在 Syslab 中运行以查看图形。

五、案例目录与实测结果

5.1 材料力学(5 个案例)

① 压杆稳定分析

  • 脚本:材料力学/压杆稳定分析/column_buckling_analysis.jl
  • 知识点:欧拉临界载荷 Pcr=π²EI/(μL)²,四种端部约束(两端铰支、一端固定一端自由、两端固定、一端固定一端铰支)的长度系数 μ 对稳定性的影响
  • 实测输出:
压杆(L=2.0m, E=2.1e11Pa, I=1.2e-6m⁴, 轴力F=50kN)
两端铰支         Pcr = 621,785.08 N  安全系数 12.44
一端固定一端自由  Pcr = 155,446.27 N
两端固定         Pcr = 2,487,140.31 N
一端固定一端铰支  Pcr = 1,268,949.14 N
  • 图形输出:屈曲模态曲线(四种约束对比)、杆长与临界载荷关系图

② 圆轴扭转分析

  • 脚本:材料力学/圆轴扭转分析/circular_shaft_torsion.jl
  • 知识点:圆轴扭转满足 τ=Tρ/J,扭转角 φ=TL/GJ;极惯性矩 J 计算;空心轴与实心轴刚度/质量对比
  • 实测输出:
圆轴(L=1.2m, D=60mm, d=30mm, T=1200N·m)
最大切应力      = 30.18 MPa
扭转角          = 0.86°(deg)
质量            = 20.0 kg (空心)
同外径实心轴质量 = 26.6 kg
空心/实心刚度比  = 0.9375
  • 图形输出:切应力沿半径线性分布图、轴向扭矩图、截面切应力云图

③ 平面应力状态与莫尔圆

  • 脚本:材料力学/平面应力状态与莫尔圆/mohr_circle_analysis.jl
  • 知识点:应力变换公式、主应力与主方向、莫尔圆的几何意义、截面转角与正应力云图
  • 实测输出:
(σx=80MPa, σy=20MPa, τxy=30MPa, θ=30°)
斜截面正应力    = 90.981 MPa
斜截面切应力    = -10.981 MPa
第一主应力      = 92.426 MPa
第二主应力      = 7.574 MPa
主方向角        = 22.5°
最大切应力      = 42.426 MPa
  • 图形输出:莫尔应力圆(含关键点标注)、平面应力单元体示意、截面角-正应力云图

④ 梁弯曲剪力弯矩挠度分析

  • 脚本:材料力学/梁弯曲剪力弯矩挠度分析/beam_bending_analysis.jl
  • 知识点:静力平衡求解支座反力、载荷-剪力-弯矩微分关系、Euler-Bernoulli 梁挠度方程 EIw''=M、弯曲正应力云图
  • 实测输出:
简支梁(L=6m, P=10kN@跨中, q=2kN/m)
左支座反力 RA = 11000 N
右支座反力 RB = 11000 N
最大弯矩       = 24000 N·m
最大挠度       = -46.87 mm
  • 图形输出:梁-载荷示意图、剪力图、弯矩图、挠度曲线、弯曲正应力云图(2×2 子图布局 + 独立云图)

⑤ 组合变形强度校核

  • 脚本:材料力学/组合变形强度校核/combined_loading_check.jl
  • 知识点:轴向拉压+弯曲+扭转的应力叠加、危险点主应力计算、第三强度理论 σ_eq3=√(σ²+4τ²) 和第四强度理论 σ_eq4=√(σ²+3τ²)
  • 实测输出:
圆轴(D=50mm, N=20kN, M=800N·m, T=600N·m, [σ]=160MPa)
轴向应力        = 10.19 MPa
弯曲应力        = 65.19 MPa
扭转切应力      = 24.45 MPa
第一主应力      = 82.61 MPa
第三强度等效应力 = 89.84 MPa → 安全系数 1.78
第四强度等效应力 = 86.45 MPa → 安全系数 1.85
  • 图形输出:圆截面危险点示意、等效应力对比柱状图、组合变形截面正应力云图

5.2 理论力学(6 个案例)

⑥ 平面力系平衡

  • 脚本:理论力学/平面力系平衡/planar_force_equilibrium.jl
  • 知识点:力的正交分解、合力和合力矩、平面任意力系平衡条件 ΣFx=0/ΣFy=0/ΣMO=0
  • 实测输出:
三力系(F1=100N→, F2=150N∠120°, F3=80N↓)
合力   = 55.82 N
合力矩 = 179.81 N·m
状态   = 未平衡(可引导学生添加平衡力)
  • 图形输出:刚体受力示意图(箭头比例表示力的大小)

⑦ 刚体平面运动

  • 脚本:理论力学/刚体平面运动/rigid_body_planar_motion.jl
  • 知识点:速度合成 vP=vO+ω×rOP、加速度合成、瞬时速度中心、圆轮纯滚动条件
  • 实测输出:
圆轮(R=0.5m, ω=2rad/s, α=0.5rad/s²)纯滚动
圆心速度(1.0, 0) m/s  加速度(0.25, 0) m/s²
接地点速度(2.0, 0) m/s(瞬时速度中心在上方)
接地点加速度(0.5, 2.0) m/s²(向心+切向合成)
  • 图形输出:圆轮纯滚动示意、瞬时速度中心标注;支持纯滚动动画

⑧ 振动系统分析

  • 脚本:理论力学/振动系统分析/vibration_system_analysis.jl
  • 知识点:单自由度方程 mx''+cx'+kx=F₀sin(ωt)、固有频率 ωn=√(k/m)、阻尼比 ζ、受迫振动频率响应
  • 实测输出:
系统(m=1kg, k=100N/m, c=1.5N·s/m, F₀=5N, ωf=8rad/s)
固有频率 ωn = 10 rad/s
阻尼比  ζ   = 0.075
最大位移    = 0.166 m
  • 图形输出:2×2 布局——位移时间曲线、速度时间曲线、相图、频率响应曲线

⑨ 摩擦角与自锁

  • 脚本:理论力学/摩擦角与自锁/friction_self_locking.jl
  • 知识点:摩擦角 φ=arctan(μ)、最大静摩擦力、自锁条件(斜面角<摩擦角)
  • 实测输出:
(α=20°, μ=0.35, W=100N, F=20N)
法向反力        = 100.81 N
最大静摩擦力    = 35.28 N
驱动力          = 15.41 N
摩擦角          = 19.29°
状态            = 静止(驱动力 < 最大静摩擦力)
  • 图形输出:斜面受力示意、α-μ 自锁区域图(曲线以下为自锁区)

⑩ 桁架内力求解

  • 脚本:理论力学/桁架内力求解/truss_force_solver.jl
  • 知识点:节点法建立平衡方程组、杆件轴力符号约定(正=拉杆、负=压杆)、支座反力与零杆识别
  • 实测输出:
5节点7杆桁架(节点2载荷-8kN, 节点4载荷-6kN)
杆1: -13520.82 N (压杆)    杆5: +11250 N  (拉杆)
杆2:  -901.39 N (压杆)     杆6: +9750 N   (拉杆)
杆3:  +901.39 N (拉杆)     杆7: -10500 N  (零杆附近)
杆4: -11718.04 N (压杆)
  • 图形输出:桁架结构图(红色=拉杆、蓝色虚线=压杆、黑色点线=零杆)、节点载荷标注

⑪ 科氏加速度演示

  • 脚本:理论力学/科氏加速度演示/coriolis_acceleration_demo.jl
  • 知识点:合成运动速度与加速度分解、科氏加速度 ac=2ω×vr、滑块沿转动杆运动分析
  • 实测输出:
(ω=2rad/s, α=0.2rad/s², vr=0.3m/s, ar=0.1m/s², r₀=0.5m)
绝对速度     = (0.3, 1.0) m/s
牵连速度     = (0.0, 1.0) m/s
相对速度     = (0.3, 0.0) m/s
绝对加速度   = (-1.9, 1.3) m/s²
科氏加速度   = (0.0, 1.2) m/s²
  • 图形输出:滑块运动轨迹(螺旋线)、速度矢量分解图、加速度矢量分解图;支持运动动画

六、教学建议

  1. 课堂演示:教师先以默认参数运行,让学生观察标准工况下的曲线形态和数值量级
  2. 参数探究:修改关键参数(如梁的集中力位置、压杆端部约束、摩擦系数、阻尼比),引导对比分析
  3. 结果验证:鼓励学生将程序输出与手算结果交叉验证,加深对公式物理意义的理解
  4. 编程实践:对于"数值计算与编程"课程,可要求学生阅读 calculate_beam、solve_truss 等计算函数,理解数值方法在力学问题中的应用
  5. 极端参数注意:默认参数已针对课堂演示优化;极端参数可能导致数值误差或图形比例不便观察

七、注意事项

  • 所有模型均采用课程常用的简化假设(如 Euler-Bernoulli 梁忽略剪切变形、线弹性材料、小变形假设等)
  • 默认参数适合课堂演示,不代表任何实际工程结构的真实参数
  • 数值积分(如挠度计算)采用梯形法,在离散点数较少时可能存在累积误差
  • 动画功能依赖图形后端的 clf/pause 支持,若环境不支持则自动跳过并保留静态图

八、文件结构

材料力学&理论力学/
├─ README.md                          ← 本文件
├─ 材料力学/
│  ├─ 压杆稳定分析/
│  │  ├─ README.md
│  │  └─ column_buckling_analysis.jl
│  ├─ 圆轴扭转分析/
│  │  ├─ README.md
│  │  └─ circular_shaft_torsion.jl
│  ├─ 平面应力状态与莫尔圆/
│  │  ├─ README.md
│  │  └─ mohr_circle_analysis.jl
│  ├─ 梁弯曲剪力弯矩挠度分析/
│  │  ├─ README.md
│  │  └─ beam_bending_analysis.jl
│  └─ 组合变形强度校核/
│     ├─ README.md
│     └─ combined_loading_check.jl
└─ 理论力学/
   ├─ 刚体平面运动/
   │  ├─ README.md
   │  └─ rigid_body_planar_motion.jl
   ├─ 平面力系平衡/
   │  ├─ README.md
   │  └─ planar_force_equilibrium.jl
   ├─ 振动系统分析/
   │  ├─ README.md
   │  └─ vibration_system_analysis.jl
   ├─ 摩擦角与自锁/
   │  ├─ README.md
   │  └─ friction_self_locking.jl
   ├─ 桁架内力求解/
   │  ├─ README.md
   │  └─ truss_force_solver.jl
   └─ 科氏加速度演示/
      ├─ README.md
      └─ coriolis_acceleration_demo.jl

使用许可

本模型库版权由MoHub版权所有,未经许可,不得用于商业用途。