Сложные функции в настройках виджета

Сложные функции вместо простых арифметических операций

В настройках каждого виджета есть раздел "Арифметическая операция". Вроде все просто там, умножил или разделил на нужный коэффициент и получил нужное значение, например, разделил ватты на 1000 и получил киловатты. Но среди арифметических операций притаился мощный инструмент f(x) с помощью которого можно описать любой параметр на основе данных, которые мониторит ваш умный счетчик, например, реактивная энергия в VAR, генерируемое тепло в гигокалориях, джоулях или в ваттах, или точка росы в градусах по Цельсию. При расчете таких показателей простой арифметической операцией не обойдешься, обычно это формула и достаточно сложная.

Вот тут и придет на помощь инструмент f(x) в настройках "Арифметическая операция", которым пользоваться проще, чем кажется.

Основная идея инструмента f(x): используя измеряемые монитором параметры и синтаксис JavaScript можно написать любую формулу для получения любых новых параметров мониторинга.

Для построения формул используйте измеряемые монитором параметры в формате:

  • d.W1 - Мощность 1й линии;
  • d.V2 - Напряжение 2й линии;
  • d.A3 - Ток 3й линии;
  • и другие параметры.

Весь доступный список параметров представлен в списке слева в окне редактирования формулы.

Важно, регистр имеет значение!

Также надо помнить общепринятые в математике правила построения выражений и порядок вычисления:

  1. Действия, записанные в скобках;
  2. Умножение и деление;
  3. Сложение и вычитание.

Для сложных расчетов есть математическая библиотека Math, которая предоставит в ваше распоряжения тригонометрические функции, степени, корни и логарифмы. Ниже список объекта Math, который хранит в своих свойствах и методах различные математические константы и функции.

  • Math.floor(a) округляет число a до следующего наименьшего целого числа;
  • Math.abs(a) возвращает абсолютное значение числа a;
  • Math.pow(a, b) вычисляет a в степени b;
  • Math.sqrt(a) вычисляет квадратный корень числа a;
  • Math.log(a) вычисляет натуральный логарифм числа a;
  • Math.sin(a) вычисляет синус угла a в радианах;
  • Math.cos(a) вычисляет косинус угла a в радианах;
  • Math.tan(a) вычисляет тангенс угла a в радианах;
  • Math.asin(a) вычисляет арксинус числа a;
  • Math.acos(a) арккосинус числа a;
  • Math.atan(a) арктангенс числа a;

Также есть список полезных констант:

  • Math.PI (число PI): 3.141592653589793
  • Math.SQRT2 (квадратный корень из двух): 1.4142135623730951
  • Math.SQRT1_2 (половина от квадратного корня из двух): 0.7071067811865476
  • Math.E (число e или число Эйлера): 2.718281828459045
  • Math.LN2 (натуральный логарифм числа 2): 0.6931471805599453
  • Math.LN10 (натуральный логарифм числа 10): 2.302585092994046
  • Math.LOG2E (двоичный логарифм числа e): 1.4426950408889634
  • Math.LOG10E (десятичный логарифм числа e): 0.4342944819032518

Для проверки правильности вычислений используйте кнопку "Проверить", которая произведет расчет с учетом представленных значений параметров.

Для примера построим график «Точки росы» на основе температуры и влажности, которые легко измерить с помощью универсального монитора smart-MAC D105.

Формула для нахождения точки росы не такая уж и простая:

Но в настройках виджета выглядит она не так уж и страшно.

(237.7 * ((17.27*d.T1)/(237.7 + d.T1) + Math.log(d.T2/100))) / (17.27 - ((17.27*d.T1)/(237.7+d.T1) + Math.log(d.T2/100)))

Где: d.T1 - измеряемая температура и d.T2 - измеряемая влажность.

Успехов в мониторинге!

Эта статья была полезна для 8 людей. Эта статья помогла Вам?

Сервис поддержки клиентов работает на платформе UserEcho