数值映射函数
本文梳理了在对接以下协议设备并配置功能点时可用的全部数值映射函数,并对每个函数的语法与参数进行了详细说明:
函数列表
通过查看下表,找到您需要的函数:
| 类别 | 函数/常量名 | 语法与参数说明 | 功能说明 | 典型映射场景(示例) |
|---|---|---|---|---|
| 扩展工具 | 线性映射 | linear(x, inMin, inMax, outMin, outMax) | 将输入值从原始范围线性映射到目标范围。 | ADC原始值 [0, 1023] 映射为温度 [-40, 125]:linear(source.value, 0, 1023, -40, 125) |
| 扩展工具 | 区间分段映射 | mapRange(x, thresholds, outputValues) | 根据输入值落在哪个区间,返回对应的离散值。thresholds为升序断点数组,outputValues长度=断点数+1。 | 将温度区间映射为等级:mapRange(source.value, [0,20,40], [0,1,2,3]) |
| 扩展工具 | 死区/滞回 | deadband(x, center, halfWidth, neutral) | 在 [center-halfWidth, center+halfWidth] 范围内返回中性值,抑制微小波动。 | 过滤传感器噪声:deadband(source.value, 0, 0.5, 0) |
| 扩展工具 | 钳位 | clamp(x, min, max) | 将数值限制在上下边界内(内部组合了 Math.min/Math.max)。 | 限制百分比输出范围:clamp(source.value, 0, 100) |
| 幂与指数 | 幂运算 | Math.pow(x, y) | 返回 x 的 y 次幂。 | 计算平方:Math.pow(source.value, 2) |
| 幂与指数 | 平方根 | Math.sqrt(x) | 返回 x 的平方根。 | 由面积反算边长。 |
| 幂与指数 | 立方根 | Math.cbrt(x) | 返回 x 的立方根。 | 由体积反算边长。 |
| 幂与指数 | 指数 | Math.exp(x) | 返回 e 的 x 次幂。 | 热敏电阻线性化拟合。 |
| 幂与指数 | 高精度指数减1 | Math.expm1(x) | 返回 e^x - 1(精准处理极小值)。 | 高精度小信号放大处理。 |
| 对数 | 自然对数 | Math.log(x) | 返回 x 的自然对数(以 e 为底)。 | 音频/信号分贝计算。 |
| 对数 | 常用对数 | Math.log10(x) | 返回 x 的以 10 为底的对数。 | 常用:线性值转对数标度(声压级 dB)。 |
| 对数 | 以2为底对数 | Math.log2(x) | 返回 x 的以 2 为底的对数。 | 图像/信息论相关换算。 |
| 对数 | 高精度对数加1 | Math.log1p(x) | 返回 ln(1+x)(精准处理 x≈0)。 | 处理接近零的微小信号。 |
| 取整 | 四舍五入 | Math.round(x) | 四舍五入取整。 | 常用:输出控制值必须是整数时。 |
| 取整 | 向下取整 | Math.floor(x) | 向下取整(向负无穷)。 | 分组编号计算。 |
| 取整 | 向上取整 | Math.ceil(x) | 向上取整(向正无穷)。 | 计算所需最小容器数量。 |
| 取整 | 截断取整 | Math.trunc(x) | 直接截断小数部分(向零取整)。 | 舍弃小数,仅保留整数部分。 |
| 取整 | 单精度浮点 | Math.fround(x) | 返回最接近的 32 位单精度浮点数。 | 模拟低精度浮点设备(极少用)。 |
| 三角函数 | 正弦/余弦/正切 | Math.sin(x), Math.cos(x), Math.tan(x) | 标准三角函数(参数为弧度)。 | 振动分析、角度传感器换算。 |
| 三角函数 | 反正弦/反余弦 | Math.asin(x), Math.acos(x) | 返回弧度值(-π/2 ~ π/2 或 0 ~ π)。 | 由比值反推相位角度。 |
| 三角函数 | 反正切 | Math.atan(x) | 返回弧度值(-π/2 ~ π/2)。 | 由斜率计算坡度角。 |
| 三角函数 | 象限反正切 | Math.atan2(y, x) | 返回从 X 轴到点 (x,y) 的夹角(-π ~ π)。 | 重要:合成向量方向角计算。 |
| 双曲函数 | 双曲正弦/余弦/正切 | Math.sinh(x), Math.cosh(x), Math.tanh(x) | 标准双曲函数。 | 复杂物理模型(如悬链线计算)。 |
| 双曲函数 | 反双曲函数 | Math.asinh(x), Math.acosh(x), Math.atanh(x) | 反双曲函数。 | 信号滤波建模。 |
| 极值与符号 | 绝对值 | Math.abs(x) | 返回绝对值。 | 常用:计算偏差(实际值 vs 目标值)。 |
| 极值与符号 | 符号函数 | Math.sign(x) | 返回 1, -1, 0(正、负、零)。 | 判断数值变化方向(上升/下降)。 |
| 极值与符号 | 最大值/最小值 | Math.max(args...), Math.min(args...) | 返回参数列表中最大/最小值。 | 常用:配合钳位范围限制。 |
| 几何与向量 | 欧几里得范数 | Math.hypot(x, y, ...) | 返回所有参数平方和的平方根。 | 计算二维/三维空间合速度或距离。 |
| 常量 | π (PI) | Math.PI | 圆周率 ≈ 3.14159。 | 角度转弧度:度 * Math.PI / 180。 |
| 常量 | 自然常数 | Math.E | 欧拉数 ≈ 2.71828。 | 指数运算底数。 |
| 常量 | 换底常数 | Math.LN2 (ln2), Math.LN10 (ln10) | 2 和 10 的自然对数。 | 不同底数对数换算。 |
| 常量 | 根号常数 | Math.SQRT2 (√2), Math.SQRT1_2 (1/√2) | 常用几何常数。 | 归一化系数计算。 |