Содержание

Модуль предиктивного анализа

Модуль осуществляет прогноз динамики временного ряда на основании автоматически рассчитанного тренда и фактора сезонности.

Технические требования

Операционная система Ubuntu 20/22, Linux OS 64-битная. PHP-версии 7.3, модуль работы с PostgreSQL и ClickHouse.

Требования к вычислительным ресурсам: 1 ядро, поддерживающее 64 битные вычисления, 10 Мбайт на жестком диске.

Описание работы

Модуль может быть вызван из системы и начинает выполняться с PHP-скрипта «index.php». Данные запроса в модуль передаются через параметры GET-запроса. В параметрах запроса передаются данные, из какого канала брать данные, с какой даты брать данные и до какой даты делать прогноз.

Блок-схема работы модуля:

схема_работы_модуля_предиктивного_анализа.jpg

Predictor

Predictor – C++ программа для определения трендов и временного прогнозирования. По полученным данным строит тренд и вычисляет сезонный фактор, на основе которых делает прогноз. Минимальный временной промежуток прогноза – один день. Если дата dateFrom, с которой необходимо брать данные менее одного месяца, она игнорируется.

Настройка модуля

Запрос расчета должен направляться на скрипт index.php в папке модуля.

Пример запроса:

http://(сервер)/Prediction/Ind3/?chart=1&device_code=o1&channel=395&dateFrom=2022-05-11T20:57:17&dateTo=2022-05-11T21:01:17//

Опции:

Настройка модуля в файле config.php и пример конфигурации

В массив $correction_device_id добавляется id канала, где находятся данные, по которым идет коррекция.

$correction_time_resolution – содержит разрешение по времени в секундах, для согласования данных канала коррекции и канала, который нужно корректировать. Для примера, при измерении угла отклонения в канале коррекции ищется значение в канале коррекции, временная метка которого находится в интервале +-

$time_resolution. Например, если корректирующий канал – уровень, который снимается раз в 1 час, то $time_resolution нужно указывать в час (в секундах) 3600.

$level – значение корректирующего канала, при котором данные учитываются.

$level_resolution – интервал +-, в котором данные учитываются, интервал – ($level-$level_resolution, $level+$level_resolution).

Пример настройки каналов коррекции:

$correction_device_id=array('195');

$correction_time_resolution['195']=3600;

$correction_level['195']=4.75;

$correction_level_resolution['195']=0.25;

Модуль запускается по запросу, запуск по расписанию не предусмотрен.

Подключения модуля в системе мониторинга

При настройке канала устройства (инклинометра или термокосы) необходимо включить чек-бокс «Предикция» и выбрать соответствующий «Тип устройства для предиктивного анализа».