自定义单位转换器

自定义单位:建模、公式和最佳实践

定义您自己的测量单位,锚定到一个“基础单位”或其他自定义单位。建立线性因子或完整表达式模型,并为您的项目或领域组织一致的单位族系。

基本概念

什么是自定义单位?
在此转换器中,自定义单位由用户定义,并锚定到另一个自定义单位(或基础单位)。您需要选择一个名称、符号、参考单位,以及一个将数值转换为所选参考单位的因子或表达式。

基于参考的建模

您的参考是另一个自定义单位或“基础单位”。

转换表达式将输入值映射到参考单位的空间中(系统刻意设计为单位无关)。

  • 维度安全
    通过选择一个参考,您就隐式地将该自定义单位与该族系绑定。保持族系的一致性(例如,相关单位参考相同的基础)。
  • 可组合性
    之后可以更改参考而无需重新命名单位——只需要调整表达式。
  • 可审计性
    每个单位都有一个单一、清晰的定义:参考 + 表达式。

因子 vs 表达式

简单单位使用一个常数因子(例如,1 foo = 0.3048 × 基础)。

高级单位可以使用带有函数的表达式(例如,10 * log(x / 1e-3))。

  • 常数因子
    最适合固定的线性关系(长度比例、面积比率等)。
  • 表达式
    使用数学函数处理衍生或非线性的标度(比率、对数、幂)。
  • 常数
    内置常数如 PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN。

命名、符号与一致性

选择简短、明确的符号。避免与现有标准冲突。

在您的组织中记录其意图——它测量什么以及为何存在。

  • 清晰度
    偏好使用简洁的符号(建议 1–4 个字符;用户界面最多允许 6 个)。
  • 稳定性
    将符号视为跨数据集和 API 的稳定标识符。
  • 风格
    在合理的情况下使用类似 SI 的大小写(例如,'foo', 'kFoo', 'mFoo')。
重点摘要
  • 一个自定义单位 = 参考单位 + 转换表达式。
  • 参考锚定维度;表达式定义数值映射。
  • 对于线性标度,优先使用常数因子;特殊情况下使用表达式。

公式语言

表达式支持数字、变量 x (输入值)、别名值、常数 (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN)、算术运算符和常用数学函数。表达式的计算结果为所选参考单位中的一个值。

运算符

运算符意义示例
+加法x + 2
-减法/一元负号x - 5, -x
*乘法2 * x
/除法x / 3
**次方 (使用 **;^ 会被自动转换)x ** 2
()优先级(x + 1) * 2

函数

函数签名示例
sqrtsqrt(x)sqrt(x^2 + 1)
cbrtcbrt(x)cbrt(x)
powpow(a, b)pow(0.3048, 2)
absabs(x)abs(x)
minmin(a, b)min(x, 100)
maxmax(a, b)max(x, 0)
roundround(x)round(x * 1000) / 1000
trunctrunc(x)trunc(x)
floorfloor(x)floor(x)
ceilceil(x)ceil(x)
sinsin(x)sin(PI/6)
coscos(x)cos(PI/3)
tantan(x)tan(PI/8)
asinasin(x)asin(0.5)
acosacos(x)acos(0.5)
atanatan(x)atan(1)
atan2atan2(y, x)atan2(1, x)
sinhsinh(x)sinh(1)
coshcosh(x)cosh(1)
tanhtanh(x)tanh(1)
lnln(x)ln(x)
loglog(x)log(100)
log2log2(x)log2(8)
expexp(x)exp(1)
degreesdegrees(x)degrees(PI/2)
radiansradians(x)radians(180)
percentpercent(value, total)percent(25, 100)
factorialfactorial(n)factorial(5)
gcdgcd(a, b)gcd(12, 8)
lcmlcm(a, b)lcm(12, 8)
clampclamp(value, min, max)clamp(x, 0, 100)
signsign(x)sign(-5)
nthRootnthRoot(value, n)nthRoot(8, 3)

表达式规则

  • x 是输入值;别名值也可用。
  • 使用明确的乘法(例如,2 * PI,而不是 2PI)。
  • 可用常数:PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN。
  • 三角函数的角度单位是弧度(使用 degrees() 和 radians() 辅助函数进行转换)。
  • 通过名称 (snake_case) 或符号引用其他自定义单位;它们当前的 toBase 值会以常数形式注入。
  • 使用 ** 表示次方(引擎会自动将 ^ 转换为 **)。
  • 智能输入标准化:×, ÷, π, ², ³ 会自动转换为 *, /, PI, ^2, ^3。
  • 可用辅助函数:degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot()。
  • 增强的错误检测可防止常见错误(负数的对数、负数的平方根、除以零)。
  • 自定义单位引用:在表达式中使用其他单位作为变量(例如,'x * A',其中 A 是另一个自定义单位)。
  • 空白字符会被忽略;使用括号来控制优先级。
  • 对于有效的输入,表达式必须产生一个有限的数值结果。
公式要点
  • 使用明确的乘法(例如,2 * PI)。
  • 三角函数的角度单位是弧度。
  • log(x) 是以 10 为底;ln(x) 是自然对数(以 e 为底)。

维度分析与策略

这个自定义系统是单位无关的。通过将相关单位锚定到同一个“基础单位”(或一个共享的参考)来建立族系模型。在您设计的族系中保持意义的一致性。

建模策略

策略使用时机说明
直接因子线性关系(例如,1 foo = k × 基础)。使用一个常数(没有 x)。稳定且精确。
幂次缩放从一个基础标度衍生(k^2, k^3)。使用 pow(k, n),其中 k 是基础标度。
比率或归一化相对于一个参考水平定义的单位(例如,x / ref)。对于指数类型的测量很有用;在表达式中保持 ref 的明确性。
对数标度感知或功率比标度(例如,dB 风格的 10 * log(x/ref))。确保定义域为正;记录参考值。
仿射映射罕见的带有偏移量的情况(a * x + b)。偏移量会改变零点——仅在概念上合理时应用。

编辑器与验证

用名称、符号(最多 6 个字符)、颜色标签、参考(基础单位或其他自定义单位)和一个因子/表达式来创建单位。编辑器会通过增强的错误检测即时验证公式,并防止循环引用。

  • 参考选项包括“基础单位”和现有的自定义单位。会产生循环的不安全选项会被自动过滤掉。
  • 变量:使用 x (或 value) 代表输入值。通过 snake_case 名称或符号引用其他自定义单位;它们当前的 toBase 值会以常数形式注入。
  • 支持的常数:PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN。
  • 核心函数:sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp。
  • 辅助函数:degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() 以增强用户体验。
  • 运算符:+, -, *, /, ** 用于次方。智能输入标准化:×, ÷, π, ², ³ 会自动转换。
  • 实时验证并附带预览(例如,10 x → 结果)、复杂度分类(简单/中等/复杂)和情境感知建议。
  • 增强的错误检测可捕捉常见错误:非正数的对数、负数的平方根、除以零。
  • 高级的循环检测可防止单位(直接或间接)依赖自身,并提供清晰的错误消息。
  • 交互式帮助面板,提供分类示例、可点击的公式片段和自定义单位按钮,方便插入。

最佳实践

  • 如果可能,优先使用常数因子;仅在必要时使用表达式。
  • 选择一个稳定、广为人知且不太可能改变的参考单位。
  • 避免循环的引用链;保持图形无环。
  • 添加样本值并与独立的计算器或已知的恒等式进行交叉核对。
  • 为您的组织保持符号简短、独特且有文件记录。
  • 如果使用对数,请记录参考值、底数和 x 的预期定义域。
质量检查清单
  • 使用 3–5 个代表性数值进行测试,并验证来回转换。
  • 避免循环引用;选择一个稳定的参考单位。
  • 记录假设(定义域、偏移量、典型范围)。

入门模板与示例

这些示例说明了在这个仅限自定义的系统中常见的建模模式。请根据您的需求替换常数和参考。

名称公式参考说明
基础比例单位 (foo)0.3048基础单位定义 1 foo = 0.3048 × 基础(简单线性因子)。
幂次缩放 (foo²)pow(0.3048, 2)基础单位从一个基础标度衍生(k^2)。
体积缩放 (foo³)pow(0.3048, 3)基础单位从一个基础标度衍生(k^3)。
来自参考的指数x / 42基础单位按一个固定水平进行归一化(定义域 x > 0)。
功率比 (dB-风格)10 * log(x / 0.001)基础单位相对于 1 mW 的对数测量(示例)。确保 x > 0。
几何因子2 * PI * 0.5基础单位常数和乘法的示例。
引用其他自定义单位A * 2自定义单位 A在表达式中使用另一个单位的符号/名称作为常数。
复杂单位关系sqrt(x^2 + base_length^2)基础单位使用自定义单位 'base_length' 作为常数的勾股定理关系。
带偏移量的比例单位x * scale_factor + offset_unit基础单位使用另外两个自定义单位作为常数的线性转换。
参考单位的百分比percent(x, reference_value)基础单位使用辅助函数将输入表示为另一个自定义单位的百分比。
受限的单位范围clamp(x * multiplier, min_unit, max_unit)基础单位使用 clamp 辅助函数将数值限制在两个自定义单位常数之间。
带 GCD 的单位比率x / gcd(x, common_divisor)基础单位使用 GCD 辅助函数和自定义单位常数的数学关系。
角度转换链degrees(x * PI / reference_angle)自定义角度单位使用自定义角度单位和 degrees() 輔助函数转换为度。

治理与协作

  • 维护一份经批准的自定义单位目录,包含所有者和审查日期。
  • 当定义演变时使用版本控制;避免对符号进行破坏性更改。
  • 记录常数和参考的来源(标准、文献、内部文件)。
  • 自动化验证测试(范围检查、样本转换、单调性)。

常见问题

我应该使用常数因子还是表达式?

只要关系是线性的且固定的,就优先使用常数因子。仅在映射依赖于 x 或需要函数(幂、对数、三角函数)时才使用表达式。

我该如何选择参考单位?

选择一个稳定、广为人知且能捕捉您 intended 维度的单位(例如,长度用米,面积用平方米)。参考单位锚定维度意义。

角度是用度还是弧度?

弧度。在使用三角函数前,将度数乘以 PI/180 进行转换。

我可以链接自定义单位吗?

可以,但要避免循环。保持图形无环,并记录链接以保持清晰。

完整工具目录

UNITS 上可用的所有 71 个工具

筛选条件:
类别:

额外