Как известно, для реализации волнового метода обнаружения и локализации утечек необходимо первым делом детектировать прохождение волны давления.
Существует несколько способов обнаружения скачкообразного изменения уровня сигнала. Дабы ненароком не ущемить интеллектуальные права какого-либо из производителей СОУ, рассмотрим способ, опубликованный в открытой печати. Поиск описания алгоритма обнаружения волны, применяемого в СОУ, результатов скорее всего не даст. Однако, алгоритмы, позволяющие это сделать, широко опубликованы и хорошо известны.
Для того, чтобы найти их, обратимся к приёму, разработанному и применяемому в рамках ТРИЗ - методу аналогий.
Зададимся вопросом, в какой ещё отрасли требуется обнаруживать резкое изменение уровня колеблющегося сигнала. Одно из первых, что приходит на ум - трейдинг (торговля акциями). Собственно, своевременное обнаружение скачков курса акций и есть залог успешной работы трейдера.
В рамках технического анализа для этой цели широко применяется индикатор MACD.
Функция принятия решения индикатора MACD представляет собой разницу двух скользящих средних с разными периодами усреднения.
В качестве тестового сигнала будем использовать искусственно сгенерированный сигнал с плавным (в течение 5 секунд) падением уровня и высоким уровнем шумов.
Существует несколько способов обнаружения скачкообразного изменения уровня сигнала. Дабы ненароком не ущемить интеллектуальные права какого-либо из производителей СОУ, рассмотрим способ, опубликованный в открытой печати. Поиск описания алгоритма обнаружения волны, применяемого в СОУ, результатов скорее всего не даст. Однако, алгоритмы, позволяющие это сделать, широко опубликованы и хорошо известны.
Для того, чтобы найти их, обратимся к приёму, разработанному и применяемому в рамках ТРИЗ - методу аналогий.
Зададимся вопросом, в какой ещё отрасли требуется обнаруживать резкое изменение уровня колеблющегося сигнала. Одно из первых, что приходит на ум - трейдинг (торговля акциями). Собственно, своевременное обнаружение скачков курса акций и есть залог успешной работы трейдера.
В рамках технического анализа для этой цели широко применяется индикатор MACD.
Функция принятия решения индикатора MACD представляет собой разницу двух скользящих средних с разными периодами усреднения.
В качестве тестового сигнала будем использовать искусственно сгенерированный сигнал с плавным (в течение 5 секунд) падением уровня и высоким уровнем шумов.
Падение за шумами почти не видно (оно находится точно в середине). Для наглядности приведём тот же сигнал с наложением его нешумовой составляющей (показана синей линией).
Для начала реализуем алгоритм MADC что называется "в лоб": вычислим разность двух скользящих средних с разными периодами.
Преимуществом алгоритма MACD является крайне низкая вычислительная мощность, необходимая для его реализации. На каждом шагу (поступлении новой точки данных) от ранее вычисленного значения функции принятия решения добавляется два новых значения входящих в скользящие средние и вычитается два значения, уже не входящих в скользящие средние. Вот и все вычисления.
Вопрос оптимального выбора периодов усреднения и порога срабатывания (значения функции, при превышении которого принимается решение о наличии волны) требует отдельного рассмотрения. Ниже приводятся графики функции принятия решения при различных периодах усреднения.
Преимуществом алгоритма MACD является крайне низкая вычислительная мощность, необходимая для его реализации. На каждом шагу (поступлении новой точки данных) от ранее вычисленного значения функции принятия решения добавляется два новых значения входящих в скользящие средние и вычитается два значения, уже не входящих в скользящие средние. Вот и все вычисления.
Вопрос оптимального выбора периодов усреднения и порога срабатывания (значения функции, при превышении которого принимается решение о наличии волны) требует отдельного рассмотрения. Ниже приводятся графики функции принятия решения при различных периодах усреднения.
Появился ярковыраженный пик функции, достаточный для безошибочного порогового обнаружения.
Пик функции стал ещё заметнее.
Алгоритм можно модифицировать, использую в качестве функции принятия решения разницу сигнала, обработанного двумя разными фильтрами.
В оригинальном MACD в качестве фильтров применяется скользящее среднее. В принципе, фильтры могут быть любыми другими, и использование более "продвинутых" по сравнению со скользящим средним фильтров потенциально увеличивает чувствительность алгоритма. Однако, тут есть один нюанс: для того чтобы алгоритм работал, необходимо, чтобы используемые фильтры вносили разную временную задержку. Если задержка будет одинаковая, то ничего не выйдет.
На практике это выглядит так: возьмём два фильтра, вносящих одинаковую задержку (два БПФ фильтра), посчитаем разность сигналов, отфильтрованных ими. Получим вот такую грустную картину:
В оригинальном MACD в качестве фильтров применяется скользящее среднее. В принципе, фильтры могут быть любыми другими, и использование более "продвинутых" по сравнению со скользящим средним фильтров потенциально увеличивает чувствительность алгоритма. Однако, тут есть один нюанс: для того чтобы алгоритм работал, необходимо, чтобы используемые фильтры вносили разную временную задержку. Если задержка будет одинаковая, то ничего не выйдет.
На практике это выглядит так: возьмём два фильтра, вносящих одинаковую задержку (два БПФ фильтра), посчитаем разность сигналов, отфильтрованных ими. Получим вот такую грустную картину:
Никакого вывода о наличии волны давления сделать нельзя. А вот если внести искусственную задержку и слегка подрезать края, ситуация значительно улучшится.
А если еще поиграть с угловыми частотами и сдвигом, можно получить вот такую красоту:
Вопрос оптимального выбора угловых частот и величины сдвига опять же требует отдельного рассмотрения.