Просмотр полной версии : Проверка массива значений на отклонение от заданного значения
skinnbatter
12.08.2018, 20:45
Народ всем привет! Столкнулся с небольшой проблемой. Есть кольцевой буфер допустим на 10 значений в него записываю каждую секунду значения сигнала. Соответственно сформирован массив со значениями сигнала.Необходимо проверить, что все значения кольцевого буфера в течении времени устойчиво колеблется не более чем на заданную дельту. Если есть отклонение от дельты поднять флаг ошибки. Подскажите как реализовать на ST..
в бибке оскат полно мат.формул и стандартное отклонение вроде то же
skinnbatter
12.08.2018, 23:17
Мне наверное нужно немного другое, допустим у меня время устойчивости 2 секунды, система должна понимать изменились ли значения в кольцевом буфере на дельту за это время. За счёт этого можно понять система находится в спокойствие или в движении. Пример может служить как весовые терминалы, ты положил груз система пишет что платформа не стабильна,как только устаканиваются колебания система понимает что в равновесии. Может быть не в ту сторону копаю..
Мне наверное нужно немного другое
а я считаю что именно standart deviation Вам и нужно, если оно на текущий момент приблизилось к нулю ниже заданного порога, значит все значения приблизительно одинаковы требуемого качества, еще можно совсем просто определять: X(current) - 2 * X(c-1) + X(c-2)
lara197a
13.08.2018, 09:43
задаете цикл FOR с нужными условиями, который проверяет Ваш массив.
Если обнаружено отклонение, то выходите через EXIT и выставляете флаг.
Пример поиска нужного значения в массиве много раз выкладывался и хорошо описан.
Вам нужно точно также найти не нужное значение.
skinnbatter
19.08.2018, 21:57
Спасибо всем. Сразу что то не подумал что бы сделать поиск по массиву на максимум и минимум. Все получилось! У меня по факту медианный фильтр получается и по его буферу кольцевому просто MAX и MIN смотрю)
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot