Divide
Math除法(Divide)方块执行两路输入信号的代数除法运算:分子(Numerator)除以分母(Denominator)。该方块内置完备的除零保护机制,使动态系统仿真在遭遇数学奇异点时仍能保持数值稳定,避免崩溃或产生 NaN(非数)扩散。
方块提供两个明确的输入端口:上方端口为分子(num),下方端口为分母(den)。
数学模型
除法方块数学表达式为:
其中:
y(t)为时间 t 处的输出信号num(t)为分子输入信号den(t)为分母输入信号
除零保护机制
当分母的绝对值小于 2.22e-16(机器浮点精度 )时,系统自动激活保底策略:
- 输出设定的保底替代值
divByZeroValue(默认为0.0)。 - 在前端界面弹出单次告警提示,通知用户发生了除零奇异。
- 在浏览器控制台打印详细诊断日志。
输入与输出
| 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 设为极大值,可真实模拟开路无电流()时的无穷大断路电阻。_
说明与最佳实践
- 机器精度容差:判零逻辑基于
f64::EPSILON,兼顾浮点微小舍入残差。 - WASM 原生加速:保底逻辑由底层 Rust 编译为 WebAssembly 原生执行,正常工况下零损耗。
- 端口顺序:上方端口为分子(
num),下方端口为分母(den)。
相关模块
- Product:两路时域信号的乘法运算
- Gain:除以固定常数系数(取 Gain = )
- NumericDisplay:实时查看计算结果与异常监控
- Saturation:限制异常突变幅值