# Backlash


对间隙系统行为进行建模

  • 库: Sysblock / Discontinuities

# 描述

Backlash 模块实现这样一个系统,其中输入信号的改变使得输出信号产生相同的改变量,输入改变方向时除外。当输入信号方向改变时,输入信号的初始变化不会影响输出。系统的侧隙称为死区。死区位于输出信号的中心。下图显示了初始状态,默认死区宽度为 1,初始输出为 0。

间隙系统有三种模式。

模式 输入 输出
不啮合 在死区内。 保持不变。
正方向啮合 在死区外并且增加。 等于输入减去死区宽度的一半。
负方向啮合 在死区外并且减少。 等于输入加上死区宽度的一半。

初始输出参数值定义死区的初始中心。

下表显示初始条件为各种情况时的输出值:死区宽度 = 2初始输出 = 5

输出值 条件
5 4 <= 输入 <= 6
输入 + 1 输入 < 4
输入 - 1 输入 > 6

例如,您可以使用 Backlash 模块对两个齿轮的啮合进行建模。输入和输出是两个轴(一端带有齿轮),输入轴驱动输出轴。轮齿之间的额外空间产生间隙。此间隙的宽度就是死区宽度参数。如果系统最初不啮合,则初始输出参数定义输出。

下列各图显示当初始输入处于死区范围内和系统在不啮合模式下开始时的操作。

当输入增加并到达死区边缘时,它与输出啮合。输出保持在上一个值。

在输入与输出啮合后,输出以与输入相同的量变化。

如果输入反转方向,则不再与输出啮合。输出保持不变,直到输入到达死区边缘并重新啮合。

# 示例

使用 sineWave 模块输出一个正弦波,将 Backlash 模块的死区设置为 1。

参考示例模型

# 端口

# 输入

u — 输入信号
标量 | 向量

Backlash 算法的输入信号。此信号的值要么在死区中,要么在正方向或负方向上与输出啮合。

数据类型: double | float | int8 | int16 | int32 | uint8 | uint16 | uint32

# 输出

y — 输出信号
标量 | 向量

Backlash 算法应用于输入信号后的输出信号。当输入处于死区中时,输出保持不变。如果输入与输出啮合,则输出将与输入等量变化。

数据类型: double | float | int8 | int16 | int32 | uint8 | uint16 | uint32

# 参数

死区宽度 — 指定死区的宽度
1 (默认) | 标量 | 向量

指定以输出值为中心的死区的大小。当输入信号在死区内时,输入的更改不会引起输出的更改。当输入信号在死区外时,输出将与输入等量变化。

初始输出 — 指定初始输出值
0 (默认) | 标量 | 向量

指定死区的初始中心。如果初始输入值在死区中,则输出值等于初始输出。如果初始输入值在死区外,则输出值为初始输出加上或减去死区宽度的一半。

# 版本历史记录

  • 在 2024b 之前推出

未实现部分

  1. 参数-输入处理 — 指定基于采样或基于帧的处理
  2. 参数-启用过零检测

# 另请参阅

DeadZone