Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд.
Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время.
В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже.
Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается.
Думал апроксимировать данные, а после отбросить те, что выходят по значению и интервалу. Но при этом скачок данных "пропадет" при переносе сенсора/отключении. То есть опять нужно на этот вариант что то лепить.
Или все же проще не получится?
Здравствуйте, AlexNek, Вы писали:
AN>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд.
Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз
AN>Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время.
Кривые бывают разные. Датчики выдают измерения с маркером времени или просто валят последовательно?
И если возможен перенос датчиков то после включения какое-то время обычно надо на прогрев (выход на номинал).
У некоторых приборов такой переходной процес до получаса может быть.
AN>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже.
Ставте группами по три датчика.
Они при изменении температуры врут или просто после включения или в зависимости от входного питания?
AN>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается.
Гораздо лучше иметь оценку погрешности измерения.
Здравствуйте, AlexNek, Вы писали:
AN>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается.
У меня два предложения:
1. Кластеризация
2. Если диапазон значений заранее известен и известна некоторая погрешность измерений, то можно просто отбрасывать данные "сильно" выходящие за пределы
3. Применить матстат и использовать доверительные инетрвалы, но это я плохо помню и тебе нужно разбираться самому
Здравствуйте, wildwind, Вы писали: W>Здравствуйте, AlexNek, Вы писали: W>Показал бы примеры что ли.
Вообще-то специально хотел более обобщенно. Так как пойдут решения для показанных частей. И в принципе то "сложное" решение вроде как понятно. Интересуют самые простые и примитивные варианты. Хотя похоже прийдется делать "сложно"
Вся система располагается дома. Большинство — датчики температуры, есть и датчики влажности. Датчики посылают сигналы по радиоканалу специальному серверу, сервер выдаёт сигналы датчиков через определенное время.
Всё что можно — это прочитать данные сигналы.
Вот тут например типичный случай сбоя
Дальше картинки
Здесь голубой линией показаны отличия между соседними выборками. Уровень 215 секунд это наиболее вероятное время между выборками, что и видно на гистограмме.
Взят тот же коричневый сигнал.
Гистограмма для голубой линии. По У колиство выборок, по Х время между выборками.
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, AlexNek, Вы писали:
AN>>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. _>Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз
в основном температуру. Какая поверка дома?
AN>>Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время. _>Кривые бывают разные. Датчики выдают измерения с маркером времени или просто валят последовательно?
У меня данные только для: кода датчика, маркера времени и значения. _>И если возможен перенос датчиков то после включения какое-то время обычно надо на прогрев (выход на номинал).
Всё на батарейках. Выглядят примерно так, только без дисплея
Искал вначале что то подобное с Z Wave, но ничего приличного и относительно дешевого не нашел. _>У некоторых приборов такой переходной процес до получаса может быть.
AN>>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. _>Ставте группами по три датчика.
У меня же не КИПовская лаба... _>Они при изменении температуры врут или просто после включения или в зависимости от входного питания?
в зависимости от какой то непонятной фигни.
AN>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. _>Гораздо лучше иметь оценку погрешности измерения.
Дело не в этом.
например
вариант1: 0 минут — 10, 3мин-15, 5мин-13, 10мин-14. Для 5 минутного периода.
вариант2: 0 минут — 10, 3мин-12, 5мин- 8, 10мин-14. Для 5 минутного периода.
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, AlexNek, Вы писали:
AN>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. K>У меня два предложения: K>1. Кластеризация
по каким критериям разбивать на кластеры? K>2. Если диапазон значений заранее известен и известна некоторая погрешность измерений, то можно просто отбрасывать данные "сильно" выходящие за пределы
предположим дипазон 16..24, а вот 18 это для текущего момента верно или нет? K>3. Применить матстат и использовать доверительные инетрвалы, но это я плохо помню и тебе нужно разбираться самому
Не подходит, в этом случае только одна величина фиговая. А у меня две.
Здравствуйте, AlexNek, Вы писали:
AN>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. AN>Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время. AN>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. AN>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. AN>Думал апроксимировать данные, а после отбросить те, что выходят по значению и интервалу. Но при этом скачок данных "пропадет" при переносе сенсора/отключении. То есть опять нужно на этот вариант что то лепить. AN>Или все же проще не получится?
Так Ransac, не?
Здравствуйте, AlexNek, Вы писали:
AN>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. AN>Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время. AN>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. AN>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. AN>Думал апроксимировать данные, а после отбросить те, что выходят по значению и интервалу. Но при этом скачок данных "пропадет" при переносе сенсора/отключении. То есть опять нужно на этот вариант что то лепить. AN>Или все же проще не получится?
Здравствуйте, AlexNek, Вы писали:
AN>Здравствуйте, kov_serg, Вы писали:
_>>Здравствуйте, AlexNek, Вы писали:
AN>>>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. _>>Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз AN>в основном температуру. Какая поверка дома?
Элементарно — рядом обычный термометр положи и сравнивай показания.
AN>>>Результаты измерения довольно хорошо могут описываться кривыми. Хотя возможен перенос датчика с места на место или вообще его отключение на некоторое время. _>>Кривые бывают разные. Датчики выдают измерения с маркером времени или просто валят последовательно? AN>У меня данные только для: кода датчика, маркера времени и значения. _>>И если возможен перенос датчиков то после включения какое-то время обычно надо на прогрев (выход на номинал). AN>Всё на батарейках. Выглядят примерно так, только без дисплея AN>Image: rst-02252-305x305.jpg AN>Искал вначале что то подобное с Z Wave, но ничего приличного и относительно дешевого не нашел. _>>У некоторых приборов такой переходной процес до получаса может быть.
Тут куча источников тепла, батарейка радио модуль (в случаее помех может повышать мощность)
AN>>>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. _>>Ставте группами по три датчика. AN>У меня же не КИПовская лаба... _>>Они при изменении температуры врут или просто после включения или в зависимости от входного питания? AN>в зависимости от какой то непонятной фигни.
Постарайтесь локализовать фигню или меняйте датчики если фигня в них.
AN>>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. _>>Гораздо лучше иметь оценку погрешности измерения. AN>Дело не в этом. AN>например AN>вариант1: 0 минут — 10, 3мин-15, 5мин-13, 10мин-14. Для 5 минутного периода. AN>вариант2: 0 минут — 10, 3мин-12, 5мин- 8, 10мин-14. Для 5 минутного периода.
Тут не совсем понятно где стоят датчики, могут быть сквозняки, может падать солнце, или кошка пришла погреться.
как альтернатива: можно на микроконтроллере герлянду i2c датчиков температуры (8 LM75 например) повесить и по инфракрасному порту предавать, элементов минимум будет.
Здравствуйте, С3141566=Z, Вы писали:
СZ>Здравствуйте, AlexNek, Вы писали:
... СZ>Так Ransac, не?
надо глянуть. https://ru.wikipedia.org/wiki/RANSAC
хотя сразу смущает пункт 2
"функция M , позволяющая вычислить параметры θ модели P по набору данных из n точек"
Здравствуйте, kov_serg, Вы писали:
_>>>Здравствуйте, AlexNek, Вы писали:
AN>>>>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. _>>>Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз AN>>в основном температуру. Какая поверка дома? _>Элементарно — рядом обычный термометр положи и сравнивай показания.
Так и без термометра ясно, что некоторые измерения выбиваются из правильного ряда.
AN>>>>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. _>>>Ставте группами по три датчика. AN>>У меня же не КИПовская лаба... _>>>Они при изменении температуры врут или просто после включения или в зависимости от входного питания? AN>>в зависимости от какой то непонятной фигни. _>Постарайтесь локализовать фигню или меняйте датчики если фигня в них.
Ну допустим фигня в "сервере", что это мне даёт? Хотя "сервер" менял, то же самое.
Мне нужно просто базу "почистить". При записи в базу отфильтровать видимо не получится.
AN>>>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. _>>>Гораздо лучше иметь оценку погрешности измерения. AN>>Дело не в этом. AN>>например AN>>вариант1: 0 минут — 10, 3мин-15, 5мин-13, 10мин-14. Для 5 минутного периода. AN>>вариант2: 0 минут — 10, 3мин-12, 5мин- 8, 10мин-14. Для 5 минутного периода.
_>Тут не совсем понятно где стоят датчики, могут быть сквозняки, может падать солнце, или кошка пришла погреться. _>как альтернатива: можно на микроконтроллере герлянду i2c датчиков температуры (8 LM75 например) повесить и по инфракрасному порту предавать, элементов минимум будет.
Мне нужна нормальная коробочка на улицу, на батарии и в комнаты. Раньше думал "сервер" на расберри сделать, но получается дороже чем купить всё готовое, да и морока только с софтом в данном случае.
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, AlexNek, Вы писали:
_>Image: sample.jpg
_>Это пила на хвостах сбои? _>Вы датчики опрашиваете по очереди в течении 3х минут или сразу все каждые 3 минуты?
Пила один из видов сбоя.
Я к датчикам не имею никакого отношения. Всем занимается "сервер" — такая же маленькая коробочка.
"Сервер" автоматом отсылает данные — вот эти данные я и получаю. Каждый тип датчиков имеет свой интервал. Есть 3х минутные, есть 7-ми минутные.
Но тут уж какое железо есть такое и будет. Никаких измений не предвидится.
Здравствуйте, AlexNek, Вы писали:
AN>Здравствуйте, kov_serg, Вы писали:
_>>>>Здравствуйте, AlexNek, Вы писали:
AN>>>>>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. _>>>>Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз AN>>>в основном температуру. Какая поверка дома? _>>Элементарно — рядом обычный термометр положи и сравнивай показания. AN>Так и без термометра ясно, что некоторые измерения выбиваются из правильного ряда.
Разберите один датчик и по даташитам посмотрите характеристики.
AN>>>>>В процессе анализа результатов выяснилось, что датчики иногда "врут" при этом данные появлются гораздо чаще или реже. _>>>>Ставте группами по три датчика. AN>>>У меня же не КИПовская лаба... _>>>>Они при изменении температуры врут или просто после включения или в зависимости от входного питания? AN>>>в зависимости от какой то непонятной фигни. _>>Постарайтесь локализовать фигню или меняйте датчики если фигня в них. AN>Ну допустим фигня в "сервере", что это мне даёт? Хотя "сервер" менял, то же самое. AN>Мне нужно просто базу "почистить". При записи в базу отфильтровать видимо не получится.
Отфильтровать можно, но нужно точно понимать что вы хотите выкинуть. Возмите записи и поэкспериментируйте с фильтрами.
Самые простые н.ч. фильтры типа y[i+1]=q*y[i]+(1-q)*x[i]
где q=exp(ln(th)/n), n-число измерений на котором на котром история будет мельше порога точности например %0.1 th=0.001
берём энергию сигнала (дисперсию) (x[i+1]-x[i])^2 так же сглаживаем например на 4х измерениях и по порогу определяем когда звенит.
... вообще вариантом много. Можно построить модели и предсказывать значения, но у вас скорее всего датчики гавно.
AN>>>>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. _>>>>Гораздо лучше иметь оценку погрешности измерения. AN>>>Дело не в этом. AN>>>например AN>>>вариант1: 0 минут — 10, 3мин-15, 5мин-13, 10мин-14. Для 5 минутного периода. AN>>>вариант2: 0 минут — 10, 3мин-12, 5мин- 8, 10мин-14. Для 5 минутного периода.
_>>Тут не совсем понятно где стоят датчики, могут быть сквозняки, может падать солнце, или кошка пришла погреться. _>>как альтернатива: можно на микроконтроллере герлянду i2c датчиков температуры (8 LM75 например) повесить и по инфракрасному порту предавать, элементов минимум будет. AN>Мне нужна нормальная коробочка на улицу, на батарии и в комнаты. Раньше думал "сервер" на расберри сделать, но получается дороже чем купить всё готовое, да и морока только с софтом в данном случае.
Есть arduin-ы и датчики датчики +-0.5С или самому на какой-нибудь msp430 собрать и в герметичную распред коробку засунуть.
AN>Вот тут например типичный случай сбоя
Такое ощущение, что в определенный момент в канал передачи данных попадает высокочастотная составляющая. Может пила идет когда компрессор холодильника включается?
AN>Датчики посылают сигналы по радиоканалу
Несущую частоту покрутить можно?
_>>>>>Здравствуйте, AlexNek, Вы писали:
AN>>>>>>Есть некие датчики передающие измерения через определённый интервал времени t +-x секунд. _>>>>>Что именно измеряют датчики и с какой точностью? когда поверку проходили в последний раз AN>>>>в основном температуру. Какая поверка дома? _>>>Элементарно — рядом обычный термометр положи и сравнивай показания. AN>>Так и без термометра ясно, что некоторые измерения выбиваются из правильного ряда. _>Разберите один датчик и по даташитам посмотрите характеристики.
А не нужно ничего разбирать, в дорогих сенсорах один датчик внешний "на шнурочке" точность измерения ± 0,5°C градуса в диапазоне -50…+110°C. Никаких данных нет, просто железный цилиндрик. Других для отопительной батареи просто нет.
_>Отфильтровать можно, но нужно точно понимать что вы хотите выкинуть. Возмите записи и поэкспериментируйте с фильтрами. _>Самые простые н.ч. фильтры типа y[i+1]=q*y[i]+(1-q)*x[i] _>где q=exp(ln(th)/n), n-число измерений на котором на котром история будет мельше порога точности например %0.1 th=0.001 _>берём энергию сигнала (дисперсию) (x[i+1]-x[i])^2 так же сглаживаем например на 4х измерениях и по порогу определяем когда звенит. _>... вообще вариантом много. Можно построить модели и предсказывать значения, но у вас скорее всего датчики гавно.
Скорее всего сервер дуреет, но мне в принципе не играет роли кто дуреет. Всё что я могу изменить — это моя прога.
Бум пробовать...
AN>>>>>>Хотелось бы отсеять неправильные данные. Но что то слишком сложно получается. _>>>>>Гораздо лучше иметь оценку погрешности измерения. AN>>>>Дело не в этом. AN>>>>например AN>>>>вариант1: 0 минут — 10, 3мин-15, 5мин-13, 10мин-14. Для 5 минутного периода. AN>>>>вариант2: 0 минут — 10, 3мин-12, 5мин- 8, 10мин-14. Для 5 минутного периода.
_>>>Тут не совсем понятно где стоят датчики, могут быть сквозняки, может падать солнце, или кошка пришла погреться. _>>>как альтернатива: можно на микроконтроллере герлянду i2c датчиков температуры (8 LM75 например) повесить и по инфракрасному порту предавать, элементов минимум будет. AN>>Мне нужна нормальная коробочка на улицу, на батарии и в комнаты. Раньше думал "сервер" на расберри сделать, но получается дороже чем купить всё готовое, да и морока только с софтом в данном случае. _>Есть arduin-ы и датчики датчики +-0.5С или самому на какой-нибудь msp430 собрать и в герметичную распред коробку засунуть.
Arduino отмёл сразу, как только нашел, что в последнюю малину можно грузить проги на шарпе, да и она мне больше понравилась как "серверный комп".
Если бы я занимался разработкой железа, то может быть что то и сфарганил. Была бы хоть среда разработки готовая. А так, гораздо проще купить готовое, а после просто докупать датчики.
Здравствуйте, Dym On, Вы писали:
AN>>Вот тут например типичный случай сбоя DO>Такое ощущение, что в определенный момент в канал передачи данных попадает высокочастотная составляющая. Может пила идет когда компрессор холодильника включается?
О внешних помехах, как то не думал. Но периодичность отсылки данных регулирует какой-то микроконтроллер и сбить его помехой именно таким образом как то маловероятно. Хотя может быть ошибка в его программе, которая инициируется помехой.
AN>>Датчики посылают сигналы по радиоканалу DO>Несущую частоту покрутить можно?
Скорее всего нет, наверняка кварц какой нибудь стоит, да и везде всё одинаково изменить будет проблематично.
Здравствуйте, AlexNek, Вы писали:
AN>Здравствуйте, kov_serg, Вы писали:
AN>>>Так и без термометра ясно, что некоторые измерения выбиваются из правильного ряда. _>>Разберите один датчик и по даташитам посмотрите характеристики. AN>А не нужно ничего разбирать, в дорогих сенсорах один датчик внешний "на шнурочке" точность измерения ± 0,5°C градуса в диапазоне -50…+110°C. Никаких данных нет, просто железный цилиндрик. Других для отопительной батареи просто нет. AN>
Так вы температуру батарей измеряете. Датчики бывают аналоговые и цифровые, аналоговые измеряют или сопротивление или миливольты у них еще наводки могут быть.
Возьмите вольтметр и измерте потенциал на конца положив датчик в кружку с кипятком. Если датчики дешовые то скорее всего аналоговые.
Более того если вам надо много термопар то они делается в домашних условиях, только каждый калибровать придётся.
_>>... вообще вариантом много. Можно построить модели и предсказывать значения, но у вас скорее всего датчики гавно. AN>Скорее всего сервер дуреет, но мне в принципе не играет роли кто дуреет. Всё что я могу изменить — это моя прога.
Сложилось впечатление что именно вы купили этот набор для измерений.
AN>Arduino отмёл сразу, как только нашел, что в последнюю малину можно грузить проги на шарпе, да и она мне больше понравилась как "серверный комп".
У меня сервером трудится такое http://www.orangepi.org/orangepiplus2/ в ней гигабит и сата (правда по усб шине). Но для простых задач arduino самое оно по функционал/цена
AN>Если бы я занимался разработкой железа, то может быть что то и сфарганил. Была бы хоть среда разработки готовая. А так, гораздо проще купить готовое, а после просто докупать датчики.
Может проще купить вменяемые датчики и потом не заниматься шаманством с привлечением фаз луны и высшей математики.
Для ардуино есть ide сделана всё так что даже школьники успешно справляются. Для быстроко прототипирования очень удобно. Там обычный C++ можно даже сказать C с классами. Но полёт фантазии не ограничивает.