BlockWerk 文档
÷

Divide

Math

除法(Divide)方块执行两路输入信号的代数除法运算:分子(Numerator)除以分母(Denominator)。该方块内置完备的除零保护机制,使动态系统仿真在遭遇数学奇异点时仍能保持数值稳定,避免崩溃或产生 NaN(非数)扩散。

方块提供两个明确的输入端口:上方端口为分子(num),下方端口为分母(den)。

在 BlockWerk 中仿真

浏览器即开即用的交互式仿真环境 — 无需安装,由 WebAssembly 强力驱动。

在 BlockWerk 中仿真 →

数学模型

除法方块数学表达式为:

y(t)=num(t)den(t)y(t) = \frac{\text{num}(t)}{\text{den}(t)}

其中:

  • y(t) 为时间 t 处的输出信号
  • num(t) 为分子输入信号
  • den(t) 为分母输入信号

除零保护机制

当分母的绝对值小于 2.22e-16(机器浮点精度 ε\varepsilon)时,系统自动激活保底策略:

  1. 输出设定的保底替代值 divByZeroValue(默认为 0.0)。
  2. 在前端界面弹出单次告警提示,通知用户发生了除零奇异。
  3. 在浏览器控制台打印详细诊断日志。

输入与输出

Direction ID Label 类型 Status
→ In num Num number Required
→ In den Den number Required
← Out out Result number Output

参数

参数 Label 类型 默认值 描述
divByZeroValue Zero-Div Value number 0 Value to return when denominator is zero
reportWarning Report Warning boolean true Send alert to console on division by zero

使用示例

信号归一化

将传感器实测物理量映射至 0 到 1 的无量纲区间:

测量值 → Divide (num)
测量上限值 → Divide (den) → 归一化信号 [0..1]

阻抗与电阻计算(欧姆定律:R = U / I)

根据电压与电流实时解算动态阻抗:

电压 U(t) → Divide (num)
电流 I(t) → Divide (den) → 电阻 R(t)

_提示:将 divByZeroValue 设为极大值,可真实模拟开路无电流(I=0I=0)时的无穷大断路电阻。_

说明与最佳实践

  • 机器精度容差:判零逻辑基于 f64::EPSILON,兼顾浮点微小舍入残差。
  • WASM 原生加速:保底逻辑由底层 Rust 编译为 WebAssembly 原生执行,正常工况下零损耗。
  • 端口顺序:上方端口为分子(num),下方端口为分母(den)。

相关模块

  • Product:两路时域信号的乘法运算
  • Gain:除以固定常数系数(取 Gain = 1/K1/K)
  • NumericDisplay:实时查看计算结果与异常监控
  • Saturation:限制异常突变幅值