Сложные функции в настройках виджета
Сложные функции вместо простых арифметических операций
В настройках каждого виджета есть раздел "Арифметическая операция". Вроде все просто там, умножил или разделил на нужный коэффициент и получил нужное значение, например, разделил ватты на 1000 и получил киловатты. Но среди арифметических операций притаился мощный инструмент f(x) с помощью которого можно описать любой параметр на основе данных, которые мониторит ваш умный счетчик, например, реактивная энергия в VAR, генерируемое тепло в гигокалориях, джоулях или в ваттах, или точка росы в градусах по Цельсию. При расчете таких показателей простой арифметической операцией не обойдешься, обычно это формула и достаточно сложная.
Вот тут и придет на помощь инструмент f(x) в настройках "Арифметическая операция", которым пользоваться проще, чем кажется.
Основная идея инструмента f(x): используя измеряемые монитором параметры и синтаксис JavaScript можно написать любую формулу для получения любых новых параметров мониторинга.
Для построения формул используйте измеряемые монитором параметры в формате:
- d.W1 - Мощность 1й линии;
- d.V2 - Напряжение 2й линии;
- d.A3 - Ток 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-MAIC 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 - измеряемая влажность.
Успехов в мониторинге!
Сервис поддержки клиентов работает на платформе UserEcho