航航院智课

从物理机构到 Simulink 模型

机构运动匀速回放
曲柄滑块机构转化为 Simulink 模型连续展示机构运动、运动量提取、积分器和机构计算模块形成,以及四个运动量的输出。OABθxθx101/s1/sMATLABFunctionθωααωθxvaω₂101/s1/sMATLAB Functionαωθαωθxvaω₂
仿真时间 0.00 sθ 0.00 radx 70.00 mm

曲柄滑块机构
运动学仿真教程(草稿)

开始学习 →
机构运动演示
OABx
曲柄 连杆 滑块
01

实验参数与模型

左右滑动查看完整参数图 →

r₁ = 20 mmr₂ = 50 mmθxOAB

示例参数

初始状态从静止开始
角加速度10 rad/s²
仿真时间0–5 s

从图形到公式

曲柄转角为 θ,曲柄长为 r₁、连杆长为 r₂。以 O 为水平坐标原点,滑块在右侧装配支路时:

x = r₁ cos θ + √(r₂² − r₁² sin² θ)

适用范围:r₂ > r₁。

角加速度 α→角速度 ω→转角 θ→机构计算→位移 / 速度 / 加速度
02

打开 Simulink,创建模型

  1. 打开 MATLAB

    选择一个文件夹,保存实验文件。

  2. 打开 Simulink

    在命令窗口输入 simulink,按回车。

  3. 创建空白模型

    选择 Blank Model,保存为 slider_crank_demo.slx。

MATLAB命令窗口
>> simulink
03

添加模块并连线

先找到并添加模块,再输入函数代码,按照图中的端口连线。

从物理机构到 Simulink 模型

机构运动匀速回放
曲柄滑块机构转化为 Simulink 模型连续展示机构运动、运动量提取、积分器和机构计算模块形成,以及四个运动量的输出。OABθxθx101/s1/sMATLABFunctionθωααωθxvaω₂101/s1/sMATLAB Functionαωθαωθxvaω₂
仿真时间 0.00 sθ 0.00 radx 70.00 mm

在哪里找到模块

选择模块查看位置

在 Simulink 工具栏打开 库浏览器(Library Browser),找到后将模块拖入模型画布。

Simulink 模块库
▾  Simulink
Sources
Continuous
User-Defined Functions
Sinks
SimulinkSources
Constant添加 1 个
库中位置Simulink → Sources → Constant
快捷查找双击 Simulink 画布,输入 Constant

先认识画布里的模块

10Constant · 常数持续输出角加速度 α,本例设为 10。
1/sIntegrator · 积分器第一个将 α 积分得到角速度 ω;第二个将 ω 积分得到转角 θ。
f(u)MATLAB Function · 函数根据 θ、ω、α 和机构尺寸,计算滑块和连杆的运动。
Scope · 示波器显示信号随时间变化的曲线。图中有 4 个,分别观察 4 个结果。

怎样连线:从模块右侧输出端拖到下一模块左侧输入端;在已有信号线上拉出分支,分别连接函数的 theta、omega、alpha 输入。先粘贴下方代码,再按端口名称连接。

左右滑动查看完整连线 →

Simulink 模型连线示意模型画布▶运行停止时间5
曲柄滑块仿真模型连线示意常数角加速度通过两个积分器得到角速度和转角,这三个量输入计算函数,函数的位移、速度、加速度和连杆角速度分别连接示波器。101/s1/sMATLABFunctionConstantIntegratorIntegratorαωθthetaomegaalphaxvaomega2Scope · xScope · vScope · aScope · ω₂角速度 ω转角 θ
04

输入机构计算程序

双击 MATLAB Function 模块,替换原有函数并保存。函数的三个输入是转角、角速度、角加速度;四个输出分别是滑块位移、速度、加速度和连杆角速度,单位为 mm、mm/s、mm/s²、rad/s。

MATLAB Function · 示例代码
function [x, v, a, omega2] = fcn(theta, omega, alpha)
% 示例参数,单位:mm、s、rad
r1 = 20;
r2 = 50;
s = sin(theta); c = cos(theta);
D = sqrt(r2^2 - (r1*s)^2);
x = r1*c + D;
dx_dtheta = -r1*s - r1^2*s*c/D;
d2x_dtheta2 = -r1*c - r1^2*(c^2-s^2)/D - r1^4*s^2*c^2/D^3;
v = dx_dtheta*omega;
a = d2x_dtheta2*omega^2 + dx_dtheta*alpha;
omega2 = r1*c*omega/D;
end
05

设置初值并运行

输入角加速度

双击 Constant,将 Constant value 设为 10。

设置初始状态

双击两个 Integrator,将角速度与转角的 Initial condition 均设为 0。

设置仿真

停止时间设为 5;选用变步长求解器,保存后点击 Run。

课堂匀速工况怎样修改?

若要练习讲义中的匀速情况,可保留两个积分器,将 Constant 设为 0,角速度积分器初值设为 150 rad/s、转角初值为 0;此时函数的 α 输入也接 0。仿真时长按课堂要求设定。

06

观察、核对并保存结果

运行后,曲线大致是什么样?

双击模型中的 Scope 查看曲线;如曲线显示不完整,点击示波器工具栏中的自动缩放。下面是本页示例参数计算得到的理论参考,橙点表示 1 秒处。

滑块位移 xmm
74.850.025.2012345时间 / s
滑块速度 vmm/s
13288.8-1310012345时间 / s
滑块加速度 amm/s²
46984-16032-79047012345时间 / s
连杆角速度 ω₂rad/s
24.3-0.1-24.5012345时间 / s
1 秒时对照x ≈ 51.85 mmv ≈ 215.35 mm/sa ≈ 362.85 mm/s²ω₂ ≈ 1.23 rad/s

从静止开始,曲柄转得越来越快,曲线的波动会逐渐变密;滑块位置应始终在 30–70 mm 之间。若趋势或数值相差很大,先检查参数、初值、函数代码和连线,再减小求解器最大步长比较结果。

01 / 检查初始值

在示例参数下,开始时 x = 70 mm;从静止开始时,v = 0,ω₂ = 0。

02 / 检查运动范围

本示例的滑块位置应处于 30–70 mm 之间;超出时检查参数与公式。

保存工作区数据

如需原始数据,添加 4 个 To Workspace 模块,从 x、v、a、ω₂ 输出线分别拉分支连接。变量名依次填 x_data、v_data、a_data、omega2_data,保存格式选择 Timeseries。在“模型设置 → 数据导入/导出”中启用 Single simulation output,重新运行模型;结果保存在 out 中,例如 out.get('x_data')。

通过减小最大步长并重新运行,比较结果是否保持一致。

07

独立实践与实验报告

改变参数,再运行一次

在教师确定的参数范围内调整曲柄或连杆长度、输入运动或仿真时间,记录新参数,比较运行前后的曲线并解释变化。

报告应包含

问题描述数学模型模块图主程序初始条件设置求解器结果分析实验心得

下载报告模板

按八个部分完成报告,保存后在下方提交。

下载 Word 模板 ↓

提交实验报告

使用航院智课学生账号登录,选择老师发布的曲柄滑块实验作业。