PDA

Просмотр полной версии : Проверка массива значений на отклонение от заданного значения



skinnbatter
12.08.2018, 20:45
Народ всем привет! Столкнулся с небольшой проблемой. Есть кольцевой буфер допустим на 10 значений в него записываю каждую секунду значения сигнала. Соответственно сформирован массив со значениями сигнала.Необходимо проверить, что все значения кольцевого буфера в течении времени устойчиво колеблется не более чем на заданную дельту. Если есть отклонение от дельты поднять флаг ошибки. Подскажите как реализовать на ST..

capzap
12.08.2018, 21:32
в бибке оскат полно мат.формул и стандартное отклонение вроде то же

skinnbatter
12.08.2018, 23:17
Мне наверное нужно немного другое, допустим у меня время устойчивости 2 секунды, система должна понимать изменились ли значения в кольцевом буфере на дельту за это время. За счёт этого можно понять система находится в спокойствие или в движении. Пример может служить как весовые терминалы, ты положил груз система пишет что платформа не стабильна,как только устаканиваются колебания система понимает что в равновесии. Может быть не в ту сторону копаю..

capzap
13.08.2018, 06:45
Мне наверное нужно немного другое
а я считаю что именно 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 смотрю)