Ejemplos de cálculo

El nodo de atributo Initiate en IoT Logic admite una amplia gama de cálculos mediante Navixy IoT Logic Expression Language. Esta guía proporciona ejemplos prácticos de cálculos comunes para ayudarle a extraer el máximo valor de sus datos IoT.

Consideraciones importantes

Al crear cálculos, tenga en cuenta estos puntos:

  • Validez de los nombres de atributos: Asegúrese de usar nombres de atributos correctos en los cálculos. Puede consultar los nombres de atributos existentes usando Data Stream Analyzer, o insertarlos con gGestión de atributos usando autocompletar.

  • Validez de los datos: Asegúrese de que sus expresiones manejen de forma elegante posibles valores nulos o lecturas no válidas

  • Impacto en el rendimiento: Los cálculos complejos con muchas funciones anidadas pueden afectar la velocidad de procesamiento para datos de alta frecuencia

  • Restricciones matemáticas: Funciones como el logaritmo y la raíz cuadrada requieren valores de entrada positivos

  • Referencias históricas: Al usar valores indexados (por ejemplo, value('param', 1, 'valid')), asegúrese de disponer de datos históricos suficientes y utilice la sintaxis completa de la expresión

Las funciones matemáticas pueden aplicarse a cualquier parámetro numérico o atributo previamente calculado. Siempre valide sus cálculos con datos de prueba antes de desplegarlos en flujos de producción.

Cálculos básicos

Conversiones de unidades

Convertir mediciones entre diferentes unidades es una de las operaciones más comunes en el procesamiento de datos IoT.

Conversión de velocidad (km/h a mph)

can_speed/1.609

Aplicación práctica: Esta conversión estandariza los datos de velocidad del vehículo para regiones que usan medidas imperiales. Al realizar este cálculo en IoT Logic en lugar de en aplicaciones posteriores, se garantiza consistencia en todos los sistemas que consumen los datos.

Conversión de temperatura (Celsius a Fahrenheit)

temperature * 1.8 + 32

Aplicación práctica: Esta conversión hace que las lecturas de temperatura sean comprensibles para usuarios más familiarizados con Fahrenheit. Es especialmente valiosa para organizaciones multinacionales que operan en regiones con diferentes estándares de medición.

Cálculo de diferencias

Comparar las lecturas actuales con valores anteriores ayuda a identificar cambios y tendencias en sus datos.

Detección de cambio de temperatura

temperature - value('temperature', 1, 'valid')

Aplicación práctica: Este cálculo ayuda a detectar fluctuaciones rápidas de temperatura que podrían indicar problemas en el equipo o cambios ambientales. Al crear un atributo dedicado para esta diferencia, puede configurar alertas por cambios bruscos sin procesamiento complejo posterior.

Ejemplo: Para una flota de camiones refrigerados, este cálculo puede identificar de inmediato cuando la temperatura de la carga comienza a subir demasiado rápido, permitiendo a los despachadores contactar a los conductores antes de que los productos perecederos se vean comprometidos. El atributo puede activar alertas cuando el cambio de temperatura excede 3 grados en un corto período, lo que podría indicar una falla del sistema de refrigeración o una puerta abierta.

Cálculos basados en el tiempo

Los cálculos temporales le ayudan a entender el comportamiento del dispositivo a lo largo del tiempo y a medir patrones operativos.

Encontrar el tiempo transcurrido entre las últimas lecturas válidas

srvTime('avl_25', 0, 'valid') - srvTime('avl_25', 1, 'valid')

Aplicación práctica: Este cálculo mide el intervalo entre transmisiones de datos consecutivas, lo que puede ayudar a identificar problemas de comunicación o validar que los dispositivos informan con las frecuencias esperadas. Este ejemplo muestra el cálculo entre las dos últimas lecturas válidas, pero se puede ajustar para manejar cualquier dos valores históricos.

Ejemplo: Para una flota de taxis, este cálculo puede ayudar a identificar problemas de conectividad con los rastreadores GPS. Si el tiempo entre lecturas aumenta repentinamente desde los 30 segundos estándar hasta varios minutos, podría indicar áreas con poca cobertura celular o fallos del dispositivo, permitiendo a los equipos de mantenimiento abordar los problemas antes de que afecten la calidad del servicio.

Convertir marcas de tiempo a un formato legible

dtFormat(genTime('can_fuel_1', 0, 'all'))

Aplicación práctica: Convertir marcas de tiempo Unix al formato ISO 8601 hace que los datos sean más legibles en registros y reportes. Este formato es ampliamente compatible con herramientas de análisis y bases de datos, lo que simplifica la integración con otros sistemas.

Funciones matemáticas avanzadas

IoT Logic admite operaciones matemáticas sofisticadas a través de sus funciones matemáticas integradas.

Redondeo de valores

Redondear la temperatura al entero más cercano

math:round(value('temperature_2', 0, 'valid'))

Aplicación práctica: El redondeo es valioso cuando no se necesita una precisión exacta o cuando desea reducir el ruido en las lecturas de sensores. Por ejemplo, redondear datos de sensores ambientales puede ser suficiente para el monitoreo climático general mientras se reducen los requisitos de almacenamiento. Esta función también es útil al crear categorías o bandas de valores (por ejemplo, agrupar lecturas de temperatura en incrementos de 5 grados).

Ejemplo: En la gestión de flotas, las lecturas de temperatura del motor a menudo incluyen decimales que no son significativos para alertas al conductor o para la programación de mantenimiento. Redondear estos valores simplifica las visualizaciones del panel y facilita la definición de umbrales de temperatura. Por ejemplo, las alertas de mantenimiento pueden activarse cuando la temperatura del motor redondeada excede 90°C en lugar de tratar con valores precisos como 89.7°C.

Cálculos logarítmicos

Logaritmo natural de un valor

math:log(value('temperature_2', 0, 'valid'))

Aplicación práctica: Las transformaciones logarítmicas son particularmente útiles para:

  • Comprimir datos que abarcan múltiples órdenes de magnitud en un rango más manejable

  • Convertir relaciones exponenciales en lineales para un análisis más sencillo

  • Trabajar con ciertos tipos de sensores que tienen características de respuesta logarítmica

  • Cálculos de nivel de sonido, donde los decibelios son unidades logarítmicas

  • Mediciones de pH en monitoreo ambiental

Ejemplo: Al analizar el comportamiento del conductor con un acelerómetro, la función logarítmica puede ayudar a normalizar datos de aceleración que van desde movimientos leves hasta frenadas bruscas. Esto facilita crear una puntuación de seguridad del conductor significativa que no se vea excesivamente sesgada por eventos extremos ocasionales. Otro ejemplo práctico es al trabajar con sensores de combustible que no proporcionan lecturas lineales. Algunos sensores de nivel de combustible tienen valores de resistencia no lineales que corresponden al nivel real de combustible. Usar cálculos logarítmicos puede ayudar a traducir estas lecturas en porcentajes de nivel de combustible más precisos.

Operaciones de raíz cuadrada

Calcular la raíz cuadrada de una lectura

math:sqrt(value('temperature_2', 0, 'valid'))

Aplicación práctica: Las funciones de raíz cuadrada son valiosas para:

  • Convertir entre potencia y amplitud en mediciones eléctricas

  • Calcular desviaciones estándar en el análisis estadístico de datos de sensores

  • Determinar valores de raíz media cuadrática (RMS) para parámetros eléctricos

  • Cálculos de distancia en espacio multidimensional (p. ej., trilateración para posicionamiento)

  • Normalizar ciertos tipos de datos de sensores

Ejemplo: Al calcular la distancia real entre dos puntos GPS (latitud y longitud), necesita usar la función de raíz cuadrada como parte de la fórmula de distancia. Por ejemplo, si calcula la distancia que ha recorrido un vehículo entre dos lecturas GPS usando la fórmula de distancia euclidiana, la función de raíz cuadrada es esencial. Otra aplicación común es calcular la magnitud de eventos de vibración o choque a partir de múltiples ejes del acelerómetro (X, Y, Z). La raíz cuadrada de la suma de los valores al cuadrado de cada eje le da la magnitud total de la vibración, lo cual es útil para detectar impactos en el vehículo o condiciones de carretera en mal estado.

Operaciones combinadas

Puede crear cálculos aún más complejos combinando múltiples funciones y operaciones.

Media geométrica con redondeo

math:round(math:sqrt(value('temperature_1', 0, 'valid') * value('temperature_2', 0, 'valid')))

Aplicación práctica: Este cálculo computa la media geométrica de lecturas de dos sensores de temperatura y redondea el resultado para proporcionar un valor más limpio. La media geométrica suele ser más apropiada que un promedio aritmético cuando se trata de tasas, razones o mediciones donde la multiplicación es la forma natural de combinar valores.

Ejemplo: En un escenario de transporte refrigerado, puede tener múltiples sensores de temperatura colocados a lo largo del área de carga. Este cálculo proporciona una lectura de temperatura equilibrada que tiene en cuenta ambos valores mientras minimiza la influencia de valores atípicos extremos. En lugar de activar alertas basadas en un solo sensor (que podría verse afectado por aperturas de puerta), este cálculo combinado ofrece una condición de temperatura general más representativa para la carga sensible.

Cálculo de valor estandarizado

(value('sensor_reading', 0, 'valid') - value('sensor_min', 0, 'valid')) / (value('sensor_max', 0, 'valid') - value('sensor_min', 0, 'valid')) * 100

Aplicación práctica: Esto normaliza una lectura de sensor a una escala porcentual de 0-100%, permitiendo comparaciones estandarizadas entre diferentes sensores con rangos variados. Esto es particularmente útil para crear paneles uniformes o activar alertas basadas en valores relativos en lugar de mediciones absolutas.

Ejemplo: Un gestor de flota supervisa vehículos de múltiples fabricantes, cada uno con diferentes lecturas de sensores de combustible (ohmios, voltios, valores digitales sin procesar). Al normalizar estas lecturas diversas a una escala porcentual consistente, el gestor puede aplicar las mismas alertas de bajo combustible en toda la flota y generar reportes estandarizados de consumo de combustible sin tener que tener en cuenta las características específicas del sensor de cada modelo de vehículo.

Última actualización

¿Te fue útil?