===== Модуль предиктивного анализа ===== Модуль осуществляет прогноз динамики временного ряда на основании автоматически рассчитанного тренда и фактора сезонности. ==== Технические требования ==== Операционная система Ubuntu 20/22, Linux OS 64-битная. PHP-версии 7.3, модуль работы с PostgreSQL и ClickHouse. Требования к вычислительным ресурсам: 1 ядро, поддерживающее 64 битные вычисления, 10 Мбайт на жестком диске. ==== Описание работы ==== Модуль может быть вызван из системы и начинает выполняться с PHP-скрипта «''index.php''». Данные запроса в модуль передаются через параметры GET-запроса. В параметрах запроса передаются данные, из какого канала брать данные, с какой даты брать данные и до какой даты делать прогноз. Блок-схема работы модуля: {{документация:модуль_предиктивного_анализа:схема_работы_модуля_предиктивного_анализа.jpg?nolink&483x817|схема_работы_модуля_предиктивного_анализа.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// Опции: * //chart// – тип графика, работает только 1; * //device_code// – код устройства; * //channel// – id канала; * //dateFrom// – с какой даты брать данные; * //dateTo// – до какой даты делать прогноз; * //correction_channel// – канал, по которому будет проводиться коррекция, по умолчанию стоит на 195. Для того, чтобы коррекция не проходила, указать номер канала -1. **Настройка модуля в файле //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; Модуль запускается по запросу, запуск по расписанию не предусмотрен. **Подключения модуля в системе мониторинга** При настройке канала устройства (инклинометра или термокосы) необходимо включить чек-бокс «Предикция» и выбрать соответствующий «Тип устройства для предиктивного анализа».