实验参数与模型
左右滑动查看完整参数图 →
示例参数
从图形到公式
曲柄转角为 θ,曲柄长为 r₁、连杆长为 r₂。以 O 为水平坐标原点,滑块在右侧装配支路时:
适用范围:r₂ > r₁。
左右滑动查看完整参数图 →
曲柄转角为 θ,曲柄长为 r₁、连杆长为 r₂。以 O 为水平坐标原点,滑块在右侧装配支路时:
适用范围:r₂ > r₁。
选择一个文件夹,保存实验文件。
在命令窗口输入 simulink,按回车。
选择 Blank Model,保存为 slider_crank_demo.slx。
先找到并添加模块,再输入函数代码,按照图中的端口连线。
在 Simulink 工具栏打开 库浏览器(Library Browser),找到后将模块拖入模型画布。
怎样连线:从模块右侧输出端拖到下一模块左侧输入端;在已有信号线上拉出分支,分别连接函数的 theta、omega、alpha 输入。先粘贴下方代码,再按端口名称连接。
左右滑动查看完整连线 →
双击 MATLAB Function 模块,替换原有函数并保存。函数的三个输入是转角、角速度、角加速度;四个输出分别是滑块位移、速度、加速度和连杆角速度,单位为 mm、mm/s、mm/s²、rad/s。
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双击 Constant,将 Constant value 设为 10。
双击两个 Integrator,将角速度与转角的 Initial condition 均设为 0。
停止时间设为 5;选用变步长求解器,保存后点击 Run。
若要练习讲义中的匀速情况,可保留两个积分器,将 Constant 设为 0,角速度积分器初值设为 150 rad/s、转角初值为 0;此时函数的 α 输入也接 0。仿真时长按课堂要求设定。
双击模型中的 Scope 查看曲线;如曲线显示不完整,点击示波器工具栏中的自动缩放。下面是本页示例参数计算得到的理论参考,橙点表示 1 秒处。
从静止开始,曲柄转得越来越快,曲线的波动会逐渐变密;滑块位置应始终在 30–70 mm 之间。若趋势或数值相差很大,先检查参数、初值、函数代码和连线,再减小求解器最大步长比较结果。
在示例参数下,开始时 x = 70 mm;从静止开始时,v = 0,ω₂ = 0。
本示例的滑块位置应处于 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')。
通过减小最大步长并重新运行,比较结果是否保持一致。
在教师确定的参数范围内调整曲柄或连杆长度、输入运动或仿真时间,记录新参数,比较运行前后的曲线并解释变化。
按八个部分完成报告,保存后在下方提交。
使用航院智课学生账号登录,选择老师发布的曲柄滑块实验作业。