Convertidor de Unidades Personalizadas
Unidades Personalizadas: Modelado, Fórmulas y Buenas Prácticas
Define tus propias unidades de medida ancladas a una 'Unidad Base' o a otra unidad personalizada. Modela factores lineales o expresiones completas, y organiza familias consistentes para tu proyecto o dominio.
Conceptos Fundamentales
Modelado Basado en Referencias
Tu referencia es otra unidad personalizada o la 'Unidad Base'.
La expresión de conversión mapea los valores de entrada al espacio de la unidad de referencia (el sistema es intencionadamente agnóstico a las unidades).
- Seguridad DimensionalAl seleccionar una referencia, vinculas implícitamente la unidad personalizada a esa familia. Mantén las familias consistentes (p. ej., unidades relacionadas que hacen referencia a la misma base).
- ComponibilidadCambia la referencia más tarde sin renombrar la unidad; solo la expresión necesita ajuste.
- AuditabilidadCada unidad tiene una única y clara definición: referencia + expresión.
Factor vs Expresión
Las unidades simples usan un factor constante (p. ej., 1 foo = 0.3048 × Base).
Las unidades avanzadas pueden usar expresiones con funciones (p. ej., 10 * log(x / 1e-3)).
- Factores ConstantesLo mejor para relaciones lineales fijas (escalas de longitud, ratios de área, etc.).
- ExpresionesUsa funciones matemáticas para escalas derivadas o no lineales (ratios, logaritmos, potencias).
- ConstantesConstantes incorporadas como PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
Nomenclatura, Símbolos y Consistencia
Elige símbolos cortos y sin ambigüedades. Evita colisiones con estándares existentes.
Documenta la intención en tu organización: qué mide y por qué existe.
- ClaridadPrefiere símbolos concisos (se recomiendan 1–4 caracteres; la interfaz de usuario permite hasta 6).
- EstabilidadTrata los símbolos como identificadores estables a través de conjuntos de datos y APIs.
- EstiloUsa mayúsculas y minúsculas similares al SI donde sea sensato (p. ej., 'foo', 'kFoo', 'mFoo').
- Una unidad personalizada = unidad de referencia + expresión de conversión.
- La referencia ancla la dimensión; la expresión define el mapeo de valores.
- Prefiere factores constantes para escalas lineales; usa expresiones para casos especiales.
Lenguaje de Fórmulas
Las expresiones admiten números, la variable x (valor de entrada), valor de alias, constantes (PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN), operadores aritméticos y funciones matemáticas comunes. Las expresiones se evalúan a un valor en la unidad de referencia elegida.
Operadores
| Operador | Significado | Ejemplo |
|---|---|---|
| + | Suma | x + 2 |
| - | Resta/Negación Unaria | x - 5, -x |
| * | Multiplicación | 2 * x |
| / | División | x / 3 |
| ** | Potencia (usa **; ^ se convierte automáticamente) | x ** 2 |
| () | Precedencia | (x + 1) * 2 |
Funciones
| Función | Firma | Ejemplo |
|---|---|---|
| sqrt | sqrt(x) | sqrt(x^2 + 1) |
| cbrt | cbrt(x) | cbrt(x) |
| pow | pow(a, b) | pow(0.3048, 2) |
| abs | abs(x) | abs(x) |
| min | min(a, b) | min(x, 100) |
| max | max(a, b) | max(x, 0) |
| round | round(x) | round(x * 1000) / 1000 |
| trunc | trunc(x) | trunc(x) |
| floor | floor(x) | floor(x) |
| ceil | ceil(x) | ceil(x) |
| sin | sin(x) | sin(PI/6) |
| cos | cos(x) | cos(PI/3) |
| tan | tan(x) | tan(PI/8) |
| asin | asin(x) | asin(0.5) |
| acos | acos(x) | acos(0.5) |
| atan | atan(x) | atan(1) |
| atan2 | atan2(y, x) | atan2(1, x) |
| sinh | sinh(x) | sinh(1) |
| cosh | cosh(x) | cosh(1) |
| tanh | tanh(x) | tanh(1) |
| ln | ln(x) | ln(x) |
| log | log(x) | log(100) |
| log2 | log2(x) | log2(8) |
| exp | exp(x) | exp(1) |
| degrees | degrees(x) | degrees(PI/2) |
| radians | radians(x) | radians(180) |
| percent | percent(value, total) | percent(25, 100) |
| factorial | factorial(n) | factorial(5) |
| gcd | gcd(a, b) | gcd(12, 8) |
| lcm | lcm(a, b) | lcm(12, 8) |
| clamp | clamp(value, min, max) | clamp(x, 0, 100) |
| sign | sign(x) | sign(-5) |
| nthRoot | nthRoot(value, n) | nthRoot(8, 3) |
Reglas de Expresión
- x es el valor de entrada; el valor de alias también está disponible.
- Usa multiplicación explícita (p. ej., 2 * PI, no 2PI).
- Constantes disponibles: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Los ángulos para las funciones trigonométricas están en radianes (usa las funciones de ayuda degrees() y radians() para la conversión).
- Haz referencia a otras unidades personalizadas por nombre (snake_case) o símbolo; sus valores toBase actuales se inyectan como constantes.
- Usa ** para potencias (el motor convierte automáticamente ^ a **).
- Normalización inteligente de entrada: ×, ÷, π, ², ³ se convierten automáticamente en *, /, PI, ^2, ^3.
- Funciones de ayuda disponibles: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot().
- La detección de errores mejorada previene errores comunes (logaritmo de números negativos, raíz cuadrada de números negativos, división por cero).
- Referencia a unidades personalizadas: Usa otras unidades como variables en expresiones (p. ej., 'x * A' donde A es otra unidad personalizada).
- Los espacios en blanco se ignoran; usa paréntesis para controlar la precedencia.
- Las expresiones deben producir un resultado numérico finito para entradas válidas.
- Usa multiplicación explícita (p. ej., 2 * PI).
- Los ángulos para funciones trigonométricas están en radianes.
- log(x) es base 10; ln(x) es logaritmo natural (base e).
Análisis Dimensional y Estrategias
Este sistema personalizado es agnóstico a las unidades. Modela familias anclando unidades relacionadas a la misma 'Unidad Base' (o una referencia compartida). Mantén el significado consistente en toda la familia que diseñes.
Estrategias de Modelado
| Estrategia | Cuándo usar | Notas |
|---|---|---|
| Factor Directo | Relaciones lineales (p. ej., 1 foo = k × Base). | Usa un número constante (sin x). Estable y preciso. |
| Escalado de Potencia | Derivado de una escala base (k^2, k^3). | Usa pow(k, n) donde k es la escala base. |
| Ratio o Normalización | Unidades definidas en relación a un nivel de referencia (p. ej., x / ref). | Útil para medidas tipo índice; mantén ref explícito en la expresión. |
| Escala Logarítmica | Escalas perceptivas o de ratio de potencia (p. ej., estilo dB 10 * log(x/ref)). | Asegúrate de que el dominio sea positivo; documenta el valor de referencia. |
| Mapeo Afín | Casos raros con desplazamientos (a * x + b). | Los desplazamientos cambian los puntos cero; aplica solo cuando esté conceptualmente justificado. |
Editor y Validación
Crea unidades con un nombre, un símbolo (hasta 6 caracteres), una etiqueta de color, una referencia (Unidad Base u otra unidad personalizada) y un factor/expresión. El editor valida las fórmulas en tiempo real con detección de errores mejorada y previene las referencias circulares.
- Las opciones de referencia incluyen 'Unidad Base' y unidades personalizadas existentes. Las opciones inseguras que crearían ciclos se filtran automáticamente.
- Variables: usa x (o value) para el valor de entrada. Haz referencia a otras unidades personalizadas por nombre snake_case o por símbolo; sus valores toBase actuales se inyectan como constantes.
- Constantes soportadas: PI, E, PHI, SQRT2, SQRT3, LN2, LN10, LOG2E, LOG10E, AVOGADRO, PLANCK, LIGHT_SPEED, GRAVITY, BOLTZMANN.
- Funciones principales: sqrt, cbrt, pow, abs, min, max, round, trunc, floor, ceil, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, ln, log, log2, exp.
- Funciones de ayuda: degrees(), radians(), percent(), factorial(), gcd(), lcm(), clamp(), sign(), nthRoot() para una experiencia de usuario mejorada.
- Operadores: +, -, *, /, ** para potencia. Normalización inteligente de entrada: ×, ÷, π, ², ³ se convierten automáticamente.
- Validación en tiempo real con vista previa (p. ej., 10 x → resultado), clasificación de complejidad (simple/moderada/compleja) y sugerencias contextuales.
- La detección de errores mejorada detecta errores comunes: logaritmos de números no positivos, raíces cuadradas de números negativos, división por cero.
- La detección avanzada de ciclos evita que las unidades dependan de sí mismas (directa o indirectamente) con mensajes de error claros.
- Panel de ayuda interactivo con ejemplos categorizados, fragmentos de fórmula clicables y botones de unidades personalizadas para una inserción fácil.
Buenas Prácticas
- Prefiere un factor constante si es posible; expresiones solo cuando sea necesario.
- Elige una unidad de referencia que sea estable, ampliamente entendida y poco probable que cambie.
- Evita las cadenas de referencias circulares; mantén los grafos acíclicos.
- Añade valores de muestra y compruébalos con calculadoras independientes o identidades conocidas.
- Mantén los símbolos cortos, únicos y documentados para tu organización.
- Si usas logaritmos, registra el valor de referencia, la base y el dominio previsto de x.
- Prueba con 3–5 valores representativos y verifica las conversiones de ida y vuelta.
- Evita referencias circulares; elige una unidad de referencia estable.
- Documenta las suposiciones (dominios, desplazamientos, rangos típicos).
Plantillas de Inicio y Ejemplos
Estos ejemplos ilustran patrones de modelado comunes en este sistema exclusivo para unidades personalizadas. Reemplaza las constantes y referencias con tus necesidades.
| Nombre | Fórmula | Referencia | Notas |
|---|---|---|---|
| Unidad Escalada por Base (foo) | 0.3048 | Unidad Base | Define 1 foo = 0.3048 × Base (factor lineal simple). |
| Escalada por Potencia (foo²) | pow(0.3048, 2) | Unidad Base | Derivada de una escala base (k^2). |
| Escalada por Volumen (foo³) | pow(0.3048, 3) | Unidad Base | Derivada de una escala base (k^3). |
| Índice desde Referencia | x / 42 | Unidad Base | Normalizar por un nivel fijo (dominio x > 0). |
| Ratio de Potencia (estilo dB) | 10 * log(x / 0.001) | Unidad Base | Medida logarítmica relativa a 1 mW (ejemplo). Asegúrate de que x > 0. |
| Factor Geométrico | 2 * PI * 0.5 | Unidad Base | Ejemplo de constantes y multiplicación. |
| Referencia a Otra Unidad Personalizada | A * 2 | Unidad Personalizada A | Usa el símbolo/nombre de otra unidad como una constante en las expresiones. |
| Relación Compleja de Unidades | sqrt(x^2 + base_length^2) | Unidad Base | Relación pitagórica usando la unidad personalizada 'base_length' como una constante. |
| Unidad Escalada con Desplazamiento | x * scale_factor + offset_unit | Unidad Base | Transformación lineal usando otras dos unidades personalizadas como constantes. |
| Porcentaje de la Unidad de Referencia | percent(x, reference_value) | Unidad Base | Expresa la entrada como porcentaje de otra unidad personalizada usando la función de ayuda. |
| Rango de Unidad Limitado | clamp(x * multiplier, min_unit, max_unit) | Unidad Base | Restringe los valores entre dos constantes de unidades personalizadas usando el ayudante clamp. |
| Ratio de Unidades con GCD | x / gcd(x, common_divisor) | Unidad Base | Relación matemática usando el ayudante GCD con una constante de unidad personalizada. |
| Cadena de Conversión Angular | degrees(x * PI / reference_angle) | Unidad Angular Personalizada | Convierte a grados usando una unidad de ángulo personalizada y la función de ayuda degrees(). |
Gobernanza y Colaboración
- Mantén un catálogo de unidades personalizadas aprobadas con propietarios y fechas de revisión.
- Usa el control de versiones cuando las definiciones evolucionen; evita cambios que rompan la compatibilidad de los símbolos.
- Registra la procedencia de las constantes y referencias (estándares, literatura, documentos internos).
- Automatiza las pruebas de validación (comprobaciones de rango, conversiones de muestra, monotonicidad).
Preguntas Frecuentes
¿Debería usar un factor constante o una expresión?
Prefiere un factor constante siempre que la relación sea lineal y fija. Usa expresiones solo cuando el mapeo dependa de x o requiera funciones (potencias, logaritmos, trigonométricas).
¿Cómo elijo una unidad de referencia?
Elige una unidad estable, ampliamente entendida, que capture la dimensión que pretendes (p. ej., metro para longitud, m² para área). La referencia ancla el significado dimensional.
¿Los ángulos están en grados o radianes?
En radianes. Convierte los grados multiplicando por PI/180 antes de usar las funciones trigonométricas.
¿Puedo encadenar unidades personalizadas?
Sí, pero evita los ciclos. Mantén el grafo acíclico y documenta la cadena para preservar la claridad.
Directorio Completo de Herramientas
Todas las 71 herramientas disponibles en UNITS