Перейти к содержанию
    

Определение момента стабилизации сигнала

Hi

Есть задача как можно раньше определить момент когда сигнал на входе АЦП стабилизируется.

Один из вариантов сигнала на картинке.

Есть проблемы:

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

- сигнал может быть нисходящим

- во время стабилизации могут быть единичные скачки

Перепробовал различные алгоритмы с усреднением в плавающем окне и вычислением производной или дисперсии. Если окно ставить больше, уменьшается вероятность ложного срабатывания, но значительно затягивается время определения момента (на размер окна). А время нужно сократить!!

Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.

 

Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)

post-26249-1425680976_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Hi

Есть задача как можно раньше определить момент когда сигнал на входе АЦП стабилизируется.

 

Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)

Математик(а) дает всегда абсолютно точный, но и абсолютно бессмысленный ответ - стабилизация не наступит никогда...

Чтобы правильно задать вопрос, нужно знать половину ответа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А время нужно сократить!!

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

 

зы. производная от усреднённого конечно, но с малым окном - для скорости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.

Вот-вот. Так как человек видит сигнал из будущего, который за "красной чертой". А алгоритм-то не видит. Поэтому, чуда не будет, или долгое наблюдение, или повышение вероятности ложного срабатывания.

 

А есть ли какая нибудь априорная информация о сигнале? То есть, если сделать, например, некий алгоритм экстраполяции/предсказания, зная предысторию сигнала, выдающий, например, полином того порядка, какой ожидается от поведения сигнала, или другую функцию, минимально отличающуюся, например, по критерию минимума суммы квадратов отклонений, от имеющегося сигнала, и оценить точку нахождения на ней, вычислив производную (можно не только первую, но и вторую, чтобы оценить тенденцию, куда идет сигнал) уже аналитически из полученной ф-ции?

Это я к тому, что человек, глядя на график, еще и заранее знает, что можно ожидать от сигнала в ближайшем будущем, а чего ожидать нельзя. Если этой информацией будет обладать и алгоритм, то ему будет проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот-вот. Так как человек видит сигнал из будущего, который за "красной чертой".

Это я к тому, что человек, глядя на график, еще и заранее знает, что можно ожидать от сигнала в ближайшем будущем, а чего ожидать нельзя. Если этой информацией будет обладать и алгоритм, то ему будет проще.

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

Если сможешь - просто зарисуй готовый алгоритм. Не сможешь - нечего за алгоритмы хвататься, разбирайся как это вообще можно сделать.

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

Нормальный разработчик просто принял бы паспортное значение времени установления ЦАП и не маялся дополнительными анализами.

Если просто - при регулировании функция монотонно (или нелинейно, это детали) нарастает (убывает). Как только нарастание-убывание прекратится и приращение станет меньше какой-то величины или будет колебаться в пределах этой величины - есть стабилизация.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я обычно за момент начала стабилизации принимаю появление заднего фронта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По-моему, нужно просто представлять математический вид фронта сигнала. То, что на рисунке, очень напоминает фронт фильтра Бесселя второго порядка. Во время фронта можно, опираясь на математическое вражение форм идеального фронта (без шума), получить его параметры (длительность и амплитуду), на основе длительности сделать вывод у времени установления до нужной точности (5%, 1% и т.д.). При этом повышение шума одновременно делает менее существенной и вносимую этим шумом ошибку.

Стоит также рассмотреть схему на входе АЦП - возможно, ее переходная характеристика и время установления прекрасно считаются и могут быть заложены в алгоритм априорно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)

Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод.

Сколько на этом биржевых игроков обанкротилось.... :) :) IMHO, это не тот случай. Здесь важна именно априорная информация о системе, как она себя повести может, а как - нет. А не линейное предсказание. Которое, кстати, при равномерном линейном увеличении уровня очень здорово предскажет весь сигнал вперед вплоть до его улета в бесконечность, и даст отличное "застабилизировано".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... линейное предсказание ...

Слышал, что регрессии бывают линейные и нелинейные, всякие, в общем. А без априорной информации т.е. ограничений конечно же никак, абсолютно с вами согласен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Регрессии... прогрессии... заболтали простой вопрос.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вычисляем постоянно экспоненциально взвешенную скользящую среднюю A, а критерий - сумма n квадратичных невязок (Ai-A)^2 меньше чего -то там , скажем sigmaMax, соответсвенно показатель экспоненты, SigmaMax и n - вам определять в конкретном вашем случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.

 

Вы уже ответили (почти) на свой вопрос. Осталось пол шажка сделать - почему человек видя историю могёт? Что он видит такого?

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

Сами градусы вам не нужны, но критериии направления и больше-меньше - потребуются. Из математики это производная.

Т.е. если она ноль - то возмущения нет и угол не меняется. По поводу "критерия стабилизации" - тут уже правильно прозвучала мысль

по поводу сопоставления уровня сигнала с уровнем шумов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...