Main Content

质量-弹簧-阻尼系统中的粘滑摩擦和硬限位模型

此示例说明了一种方法,您可以使用该方法将来自粘滑运动的硬限位和摩擦变化合并到一个质量-弹簧-阻尼模型中。

在质量-弹簧-阻尼模型中,质量连接到弹簧的末端。弹簧具有标称长度,可以在外力作用下拉伸和压缩。弹簧常量 K 根据弹簧拉伸或压缩的程度确定弹簧施加在质量上的力。

当系统限制质量的位置时,这些限制表示质量在弹簧上振荡的硬限位。当质量到达其位置的上界或下界时,质量会突然停止,这意味着速度为零。

当两个表面发生动态相对移动时,会发生粘滑运动。例如,在-质量-弹簧-阻尼系统中,质量在弹簧上振荡的同时在表面上移动。当质量的速度达到 0 时,质量与表面之间的摩擦力会发生变化。当静态摩擦大于弹簧施加的力时,质量会粘滞,当弹簧施加的力大于静态摩擦时,质量又会滑回振荡状态。

打开并分析模型

打开模型 sldemo_hardstop。该模型包含一个名为 Friction Model 的子系统(用于计算摩擦力)和两个 Integrator 模块(用于计算质量的速度和位置)。

mdl = "sldemo_hardstop";
open_system(mdl)

The model sldemo_hardstops.

计算速度的 Integrator 模块配置为:

  • 提供状态值作为输出。

  • 根据外部信号将输出值重置为 0 米/秒。

  • 具有 100 米/秒的初始状态。

计算位置的 Integrator 模块根据最小和最大可能位置限制输出值范围,从而对系统中的硬限位进行建模。该模块有一个额外的输出端口,当输出值达到其中一个限值时,该端口会发出信号指示,表示质量已达到最小或最大位置。为了对硬限位进行建模,限值信号将计算速度的 Integrator 模块重置为 0 米/秒的速度。

查看和分析摩擦模型

要查看名为 Friction Model 的子系统的内容,请双击该子系统模块或使用 open_system 函数。

open_system(mdl + "/Friction Model")

The contents of the subsystem named Friction Model.

该子系统计算两个输出:作用于质量的合力,以及指示质量何时粘滞且速度为零的标志。

为了确定质量何时速度为零,子系统使用计算质量速度的 Integrator 模块的状态。Integrator 模块的状态是仿真中前一个主时间步命中点的速度。在速度达到零后的主时间步命中点上,摩擦模型:

  • 设置 Stuck 标志,这将重置计算速度的 Integrator 模块

  • 将摩擦计算切换为使用静态摩擦系数而不是动态摩擦系数

为了计算作用在质量上的合力,子系统将弹簧施加的力与动态摩擦或静态摩擦产生的力相加。

当使用计算速度的 Integrator 模块的状态端口来确定质量何时粘滞时,可以避免在模型中生成代数环。

仿真模型并分析结果

对模型进行仿真。在 Simulink® 工具条中的仿真选项卡上,点击运行。或者,使用 sim 函数运行仿真。

out = sim(mdl);

双击 Floating Scope 模块查看仿真结果。

  • 最上面的绘图中位置信号的最小值和最大值的减小说明摩擦消耗系统能量的方式。

  • 第二个子图中所示的合力值的不连续性显示当质量粘滞且其速度变为零时使用静态摩擦系数的效果。

  • 第三个子图显示具有不连续性的时间点对应于设置 Stuck 标志时的时间点。在接近 1.6 秒的仿真时间后,Stuck 标志保持设置状态,因为质量到达静止状态。

  • 最后一个子图显示在仿真开始时只发生了两次硬限位。

The Floating Scope block displays the simulation results on four subplots that are arranged vertically.

另请参阅

模块

函数

相关主题