powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сравнения формы кривой
16 сообщений из 16, страница 1 из 1
Подскажите алгоритм сравнения формы кривой
    #37802366
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Пишу на C# модуль расширения для анализа входных данных контроля технологического процесса. На вход постоянно поступает множество каналов с данными. Данные представляют собой синусоиды, прямоугольные и другие разнообразные кривые. По выбору пользователя некоторые данные агрегируются, и пользователь может повесить при достижении каких-то параметров event. Все это обслуживалось одним программистом, который постоянно допиливал на ходу этот код.

Предыдущая версия была написана макаронами из if и switch/case, разумеется. Этот весьма запутанный код усилиями дежурного программиста ловил 80% событий. В новой версии требуется повысить точность определения входных данных и одновременно упростить процесс работы с этим кодом.

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

Прошу помочь с поиском алгоритма сравнения двух массивов точек, первый массив из входного потока, а второй эталонный. Алгоритм должен определять именно форму кривой вне зависимости от конкретных параметров. То есть если амплитуда составляет 30%, то такая кривая должна определиться при разных масштабах.

Спасибо за подсказку.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802413
Фотография Графические сообщения.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FFT (-;
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802445
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skole,

Правильно ли я понял: у Вас есть некие сигналы и их эталоны (т.е. эталон синусоиды, меандров всяческих и пр.), Вам необходимо определить какому из эталонов полученные сигналы лучше соответствует?

Покажите пример сигналов и эталонов.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802470
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формы сигналов очень разнообразные, трудно сказать каких больше. Кроме того, пользователь (дежурный по смене) может выбрать любое сочетание датчиков в зависимости от требований технологического процесса. Все сигналы очень сильно различаются по частоте и амплитуде, более того их значения дрейфуют, и пользователь должен иметь возможность поднять событие при определенных значениях.

Стабильны только формы сигналов, поэтому пришла в голову мысль сравнивать форму.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802479
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skole Все сигналы очень сильно различаются по частоте и амплитуде


Т.е. сигналы (квази)периодические?


Стабильны только формы сигналов, поэтому пришла в голову мысль сравнивать форму.
[/quot]

А что Вы понимаете под "формой сигнала"?
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802484
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условно в сигналах можно выделить циклы: начало, развертывание, завершение.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802486
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skole,

спектральный анализ не поможет?
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802487
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skoleУсловно в сигналах можно выделить циклы: начало, развертывание, завершение.

А потом все повторяется?
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802491
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто знаком с электроникой, могу привести аналог поведения триггера Шмитке. То есть у нас есть порог срабатывания и гистерезис возврата. Но здесь немного сложнее, трешхолд не имеет постоянного значения во времени, то есть где-то нужно чтобы срабатывало при 5, а где-то при 9 относительно кривой например.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802493
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064А потом все повторяется?
Да, потом все повторяется. Данные берутся с датчиков оборудования, которое имеет ограниченное количество состояний.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802498
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skolex1ca4064А потом все повторяется?
Да, потом все повторяется. Данные берутся с датчиков оборудования, которое имеет ограниченное количество состояний.

Тогда можно попробовать вычислить период сигнала по максимуму автокорреляции, соответствующим образом отмасштабировать и искать среди эталонов.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802515
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению массивы, на входе я принимаю массивы точек, всегда различаются. Датчики генерят одну кривую, а количество точек разное. Поэтому и требуется сравнение формы, т.к. это единственный стабильный показатель. К слову сказать все простые решения уже перепробованы, матрица дает лучший результат, но мой вариант непозволительно долог.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802537
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skoleК сожалению массивы, на входе я принимаю массивы точек, всегда различаются. Датчики генерят одну кривую, а количество точек разное.


Можно интерполировать и привести к одному кол-ву

Поэтому и требуется сравнение формы, т.к. это единственный стабильный показатель.


Что такое "форма"?


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

А что за матрица?
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802605
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Графические сообщения.FFT (-;
Я бы тоже насчёт него подумал в первую очередь.
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37802640
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeГрафические сообщения.FFT (-;
Я бы тоже насчёт него подумал в первую очередь.+1

skole ,
посмотрите здесь
и в частности здесь
...
Рейтинг: 0 / 0
Подскажите алгоритм сравнения формы кривой
    #37808045
TVA_11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skole,

Приводим все кривые к стнадартному виду.
Тоесть ширина и высота одинаковые.

После чего считаем среднеквадратичное отклонение или без квадрата.
Вот и все ).
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сравнения формы кривой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]