powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка значений датчика
25 сообщений из 68, страница 1 из 3
Обработка значений датчика
    #39130149
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть датчик давления. Снимаю с него значения. Задача: определить среднее значения давления в рабочем режиме.

В графическом виде все понятно, среднее примерно 2,2 бара.
А вот с алгоритмом проблема, не знаю с какой стороны подойти.
Посчитал частоту появления значений датчика:
значение датчика = частота появления
-0.07 = 001
-0.06 = 001
-0.02 = 001
0.00 = 002
0.02 = 005
0.03 = 001
0.04 = 004
0.05 = 3146
0.06 = 014
0.07 = 007
0.08 = 006
0.10 = 001
0.11 = 002
0.12 = 001
0.13 = 003
0.14 = 002
0.18 = 001
0.19 = 002
0.21 = 001
0.23 = 002
0.24 = 001
0.34 = 001
0.43 = 001
0.50 = 001
0.60 = 001
0.71 = 001
0.83 = 001
0.84 = 001
1.22 = 001
1.29 = 001
1.35 = 001
1.44 = 001
1.84 = 001
2.04 = 001
2.15 = 001
2.22 = 001
2.23 = 001
2.24 = 002
2.25 = 001
2.27 = 001
2.29 = 001
2.30 = 001
2.31 = 001
2.32 = 002
2.33 = 001
2.35 = 001
Мало что даёт. Понятно, что 0,05 - ноль датчика.

Кто-нибудь решал подобную задачу? Какую литературу посмотреть?

( во вложении: часы : минуты : секунды \t миллисекунды \t значение датчика )
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130159
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут у тебя надо учесть дискретность, т.к. датчик снимает показания реже чем ты его опрашиваешь.

Т.к. при отсутствии замеров датчик дает 0, то я бы отсек все что на 80% отстоит от максимума. Только выборка должна покрывать такой диапазон, чтобы датчик успел снять реальные показания.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130161
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главное в алгоритме: когда реально будет ноль (0.05) чтобы это было видно.

Можно статистику наоборот применить: посчитать среднеквадратичное отклонение и все что за пределами трех сигм считать правильным, т.к. у тебя восновном неправильные значения.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130164
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТут у тебя надо учесть дискретность, т.к. датчик снимает показания реже чем ты его опрашиваешь.

Т.к. при отсутствии замеров датчик дает 0, то я бы отсек все что на 80% отстоит от максимума. Только выборка должна покрывать такой диапазон, чтобы датчик успел снять реальные показания.Нет. Датчик нормально опрашивается.
Опрос идет по RS-485. Когда насос стоит, помех от частотника нет и датчик опрашивается быстро. По 2-3 раза в сек. А вот когда насос работает из-за помех от частотника опрос датчика происходит медленно. Задержки доходят до 40-50 сек.

Но вопрос не в этом. Мне алгоритм "усреднения" нужен. С опросом я разберусь.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130168
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaМне алгоритм "усреднения" нужен.
про сигмы наоборот прочитал?
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130180
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tm_SlaМне алгоритм "усреднения" нужен.
про сигмы наоборот прочитал?там нет неправильных значений, там все значения правильные
это развертка давления во времени

1) насос остановлен давление - 0,05 ( начало графика)
2) насос включаем давление растет, происходит колебание давления (переходной процесс)
3) давление устанавливается ( немного колебается ) - рабочий режим это мне надо определить
4) насос останавливается давление падает

мне надо научить систему определять рабочий режим
из всех точек надо выбрать только те которые попадают в рабочий режим
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130182
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Slaиз всех точек надо выбрать только те которые попадают в рабочий режим
ИМХУ нерабочий режим = неправильные значения.

Как понимаю в каком режиме девайс находится тебе неизвестно. Но т.к. чаще он в нерабочем режиме (как понял он не откликается особо когда работает), то считай нерабочий режим основным, и все что статистически в него не вписывается - считай рабочим режимом.
Почитай про Среднеквадратическое отклонение
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130184
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Slaмне надо научить систему определять рабочий режим
из всех точек надо выбрать только те которые попадают в рабочий режим
Тут главное взять диапазон такой, чтобы точек нерабочего режима было значительно больше.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130189
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это насос, то как понимаю интересно видеть не столько давление в рабочем режиме, т.к. режим работы импульсный, то там мало интересного, а видеть сам факт насос работает или умер. Может лучше учесть импульсность? Например: работает Х% времени. Если 5-10% нормально, 50% подозрительно, 100% - не справляется, 0% - умер.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130190
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли это насос, то как понимаю интересно видеть не столько давление в рабочем режиме, т.к. режим работы импульсный, то там мало интересного, а видеть сам факт насос работает или умер. Может лучше учесть импульсность? Например: работает Х% времени. Если 5-10% нормально, 50% подозрительно, 100% - не справляется, 0% - умер.мне нужно давление в установившемся режиме
остальное не нужно
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130193
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tm_Slaиз всех точек надо выбрать только те которые попадают в рабочий режим
ИМХУ нерабочий режим = неправильные значения.

Как понимаю в каком режиме девайс находится тебе неизвестно. Но т.к. чаще он в нерабочем режиме (как понял он не откликается особо когда работает), то считай нерабочий режим основным, и все что статистически в него не вписывается - считай рабочим режимом.
Почитай про Среднеквадратическое отклонение плохо получается, попадают значения из переходных процессов
0,5
1,29
2,04
2,3
2,32
2,29
2,25
2,24
1,22
0,6

0,83
2,27
2,22
2,15
2,32
2,23
2,35
2,24
2,31
1,35
тут все значения меньше 2 лишние
с лишними ср.значение = 1,866
без лишних = 2,252
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130198
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Slaмне нужно давление в установившемся режиме
остальное не нужно
Берешь интервал [Tстарта насоса +15сек, Tвыключения] И считаешь среднее. Всё. Остальные проблемы от криворукого проектирования.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130200
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В финансовом тех.анализе есть такой индикатор Скользящая средняя . Суть в том что берется N последних точек и показывается среднее. Индикатор запаздывающий, т.к. показывает прошлое.
Только там интервалы между точками одинаковы. Если у тебя интервалы разные, то надо это учесть.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130202
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимарглm_Slaмне нужно давление в установившемся режиме
остальное не нужно
Берешь интервал [Tстарта насоса +15сек, Tвыключения] И считаешь среднее. Всё. Остальные проблемы от криворукого проектирования.или из-за отсутствия денег
а так-то пряморуким проектировщикам хорошо, если денег много
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130204
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_SlaЗимарглпропущено...

Берешь интервал [Tстарта насоса +15сек, Tвыключения] И считаешь среднее. Всё. Остальные проблемы от криворукого проектирования.или из-за отсутствия денег
а так-то пряморуким проектировщикам хорошо, если денег многоЗа такого качества работу платить даже вредно. Связь настроить не могут, частотник настроить не могут.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130209
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимарглm_Slaпропущено...
или из-за отсутствия денег
а так-то пряморуким проектировщикам хорошо, если денег многоЗа такого качества работу платить даже вредно. Связь настроить не могут, частотник настроить не могут.так не плати, ни кто не заставляет
а так-то диагнозы по интернету все горазды ставить
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130225
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Slaа так-то диагнозы по интернету все горазды ставить
каждый должен делать своё дело - датчик сцуко должен работать невзирая на помехи
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130244
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилm_Slaа так-то диагнозы по интернету все горазды ставить
каждый должен делать своё дело - датчик сцуко должен работать невзирая на помехидатчик работает невзирая на помехи
с датчиком вообще проблем нет
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130252
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaDima Tпропущено...

про сигмы наоборот прочитал?там нет неправильных значений, там все значения правильные
это развертка давления во времени

1) насос остановлен давление - 0,05 ( начало графика)
2) насос включаем давление растет, происходит колебание давления (переходной процесс)
3) давление устанавливается ( немного колебается ) - рабочий режим это мне надо определить
4) насос останавливается давление падает

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

Если ты не знаешь граничные значения рабочего режима и/или предполагаешь что эти граничные значения будут плавать, то:
Обрати внимание на твои пункты №2 и 4. Мы знаем что насос при включении разгоняется. Мы знаем что будут колебания датчика которые надо игнорировать (ну или ожидать этих колебаний). Соответственно, мы можем определить приблизительный временной период пока будут происходить колебания .
То есть алгоритм получается очень простой: даешь команду на включения насоса, ждешь заранее определенный период времени и потом начинаешь читать данные рабочего режима.
Конечно период колебаний будет различаться от типа насоса, диаметра трубы и вязкости жидкости. Но все это можно определить достаточно легко на первых нескольких включениях.

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

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


Вообще, существуют исследования выливающиеся в очень навороченные формулы по поведению жидкостей в трубах. Мы пытались использовать их на наших насосных станциях, но без большого успеха. К сожалению я не помню конкретных названий, читал это еще в прошлом веке. Но можно поискать по словам "нефть, насосы, диссертация".
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130261
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlm_Slaпропущено...
там нет неправильных значений, там все значения правильные
это развертка давления во времени

1) насос остановлен давление - 0,05 ( начало графика)
2) насос включаем давление растет, происходит колебание давления (переходной процесс)
3) давление устанавливается ( немного колебается ) - рабочий режим это мне надо определить
4) насос останавливается давление падает

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

Если ты не знаешь граничные значения рабочего режима и/или предполагаешь что эти граничные значения будут плавать, то:
.все верно, границы будут плавать
информации о включения насоса у меня нет и не будет ( денег на удаленный модуль DI ни кто не даст )
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130264
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Slaвсе верно, границы будут плавать
Берёшь значения за определённый период времени и определяешь их
разброс/девиацию/дисперсию/любую другую подходящую статвеличину. Если она ниже некоторого
предела - насос в рабочем режиме. Нет - нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130266
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaWhite Owlпропущено...
Честно говоря я не очень понимаю твою проблему.

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

Но в качестве махания руками в эфире: сделаем предположение что между двумя измерениями не может быть прыжка значений больше чем какая-то дельта. В начале установи эту дельту чрезвычайно широкой, "от вакуума до ядра звезды". И постепенно уменьшай, рассматривая каждый раз только два-три последние значения. Это тебе даст сильно-плавающую полосу допустимых значений, но в то-же время и более-менее реальную ширину полосы, на которую уже можно ориентироваться.
Потом плавно увеличиваешь размер окна, вместо трех последних значений рассматриваешь десять, сто, три тысячи последних значений. Это даст более широкие полосы, но ты уже начнешь видеть именно полосы.
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130276
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlm_Slaпропущено...
все верно, границы будут плавать
информации о включения насоса у меня нет и не будет ( денег на удаленный модуль DI ни кто не даст )Ну во первых, это несерьезно. Если у тебя нету и не будет вообще никакой информации о реальном железе, то ты в принципе не сможешь дать никакого ответа на который можно было бы положиться.

Но в качестве махания руками в эфире: сделаем предположение что между двумя измерениями не может быть прыжка значений больше чем какая-то дельта. В начале установи эту дельту чрезвычайно широкой, "от вакуума до ядра звезды". И постепенно уменьшай, рассматривая каждый раз только два-три последние значения. Это тебе даст сильно-плавающую полосу допустимых значений, но в то-же время и более-менее реальную ширину полосы, на которую уже можно ориентироваться.
Потом плавно увеличиваешь размер окна, вместо трех последних значений рассматриваешь десять, сто, три тысячи последних значений. Это даст более широкие полосы, но ты уже начнешь видеть именно полосы.полосы я подсчетом значений получаю
например за час:
2 бара - встретилось 10 раз
2,1 - 15 раз
и т.п
значение датчика = сколько раз встретилось за час
-0.07 = 001
-0.06 = 001
-0.02 = 001
0.00 = 002
0.02 = 005
0.03 = 001
0.04 = 004
0.05 = 3146
0.06 = 014
0.07 = 007
0.08 = 006
0.10 = 001
0.11 = 002
0.12 = 001
0.13 = 003
0.14 = 002
0.18 = 001
0.19 = 002
0.21 = 001
0.23 = 002
0.24 = 001
0.34 = 001
0.43 = 001
0.50 = 001
0.60 = 001
0.71 = 001
0.83 = 001
0.84 = 001
1.22 = 001
1.29 = 001
1.35 = 001
1.44 = 001
1.84 = 001
2.04 = 001
2.15 = 001
2.22 = 001
2.23 = 001
2.24 = 002
2.25 = 001
2.27 = 001
2.29 = 001
2.30 = 001
2.31 = 001
2.32 = 002
2.33 = 001
2.35 = 001
при работе насоса опросы редко происходят, явно выраженной полосы не получается
или как-то производную оценивать или линейной интерполяцией рассчитать значения датчика на каждую секунду
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130278
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Slaпри работе насоса опросы редко происходят, явно выраженной полосы не
получается
Да и ладно. И так видно, что даже переходные процесс не могут выдавить режим выше
номинала. Берёшь все значения, отсекаешь 1-2% максимальных значений, следующие 5-10%
значений усредняешь и получаешь искомое.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка значений датчика
    #39130280
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть мысли.

Конечно-же топик не про С++. А скорее про автоматику и управление. Вопросы по расчёту средних
надо вообще вынести отдельным топиком.

Ситуация с лагом в 50 секунд - ненормальна. Надо разбираться. Что за помехи? Это штатный режим?

Если поставить параллельно 2 датчика - будут ли их показания имять ярко выраженную схожесть
или это просто дефект одного конкретного.

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


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