Экстремальные значения за промежуток времени

как запоминать?
 
RU Серокой #22.05.2011 22:01
+
-
edit
 

Серокой

координатор
★★★★
Задача: устройство, датчик. С датчика снимаются показания раз в секунду. Нужно кроме всего прочего выводить минимум и максимум значения величины за сутки.
Не понимаю, как это сделать... Ну точнее, как, суть понятна: запоминаю локальные минимумы и максимумы и время их достижения, а затем отсеиваю те, которые просрочены. Но беда в том, что непонятно, сколько памяти отвести под это дело! Это не комп, это микроконтроллер, а локальных экстремумов может быть сколько угодно... Ну, в пределах количества секунд в сутках, поделённых на два.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Anika #22.05.2011 22:21  @Серокой#22.05.2011 22:01
+
-
edit
 

Anika

координатор
★★☆
Серокой> Задача: устройство, датчик. С датчика снимаются показания раз в секунду...
Да возьми любую флешку с последовательной шиной (9346, 25256...). Корпуса компактные, стоят копейки, число циклов - тебе хватит. В чём проблема?
Когда говорит масло - пушки молчат. А голос пушек - это голос Муз. (c)Ю.Шерман  
RU Серокой #22.05.2011 22:25  @Anika#22.05.2011 22:21
+
-
edit
 

Серокой

координатор
★★★★
Anika> В чём проблема?

В брутфорсе. ) Как-то... ммм... не хочется в лоб решать. Школа микроконтроллеров с ограниченными ресурсами к изяществу приучила...
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU GOGI #22.05.2011 22:37  @Серокой#22.05.2011 22:01
+
-
edit
 

GOGI

координатор
★★★★
И нужно прям строго-строго за последние 24 часа? За 23 с половиной не пойдет?
1  4.0.14.0.1
RU Серокой #22.05.2011 23:03  @GOGI#22.05.2011 22:37
+
-
edit
 

Серокой

координатор
★★★★
GOGI> За 23 с половиной не пойдет?

Да в принципе не важно. За время T. Всё равно непонятно, какой массив отводить, по максимуму?
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Anika #22.05.2011 23:19  @Серокой#22.05.2011 23:03
+
-
edit
 

Anika

координатор
★★☆
Серокой> Всё равно непонятно, какой массив отводить, по максимуму?
Хмм... четыре байта - время/дата. На значение отсчёта, надеюсь, тоже четырёх хватит.
Множим на два - получаем 16 байт.
Зарезервируй сразу 64 (на всякий случай), и не парься.
Или контроллер совсем уж тесный? Кто там у тебя - AtTiny, что ли?
Когда говорит масло - пушки молчат. А голос пушек - это голос Муз. (c)Ю.Шерман  
RU Серокой #22.05.2011 23:24  @Anika#22.05.2011 23:19
+
-
edit
 

Серокой

координатор
★★★★
Anika> Зарезервируй сразу 64 (на всякий случай), и не парься.

Этого не хватит. Представь картину: двуполярная пила с уменьшающейся амплитудой. С устареванием каждого старшего отчёта экстремумы становятся всё более низкими, но тем не менее, максимальным остаётся каждый предыдущий отчёт. Вот так как-то... :(
Хотя да, я сам себе ответил - надо хранить все экстремумы, совсем все.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Anika #22.05.2011 23:33  @Серокой#22.05.2011 23:24
+
-
edit
 

Anika

координатор
★★☆
Серокой> Хотя да, я сам себе ответил - надо хранить все экстремумы, совсем все.
Зачем все-то? В ОЗУ держишь экстрим за сутки (те самые 16 байт), а ровно в полночь каждых суток сбрасываешь их на флеш и передаёшь хосту.
Я так понял, что позавчерашние записи не нужны. Или неправильно понял?
Когда говорит масло - пушки молчат. А голос пушек - это голос Муз. (c)Ю.Шерман  
RU Серокой #22.05.2011 23:37  @Anika#22.05.2011 23:33
+
-
edit
 

Серокой

координатор
★★★★
Anika> Я так понял, что позавчерашние записи не нужны. Или неправильно понял?

Позавчерашние не нужны. Но нужна статистика за последние 24 часа. То есть скажем, в 9 утра - начиная со вчерашних 9:00:01.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Anika #22.05.2011 23:45  @Серокой#22.05.2011 23:37
+
+1
-
edit
 

Anika

координатор
★★☆
Серокой> Позавчерашние не нужны. Но нужна статистика за последние 24 часа. То есть скажем, в 9 утра - начиная со вчерашних 9:00:01.
Понял.
Тогда - всё же брутфорс: 25256 и кольцевой буфер в нём. Я как-то имел дело со сходной задачей (лентой событий), получилось нормуль :)
Когда говорит масло - пушки молчат. А голос пушек - это голос Муз. (c)Ю.Шерман  
RU Серокой #22.05.2011 23:50  @Anika#22.05.2011 23:45
+
+1
-
edit
 

Серокой

координатор
★★★★
Anika> Тогда - всё же брутфорс

Ага... Вот чем полезен форум - пока пишешь, и сам поймёшь. )
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
PL GOGI #23.05.2011 06:13  @Серокой#22.05.2011 23:03
+
-
edit
 

GOGI

координатор
★★★★
Серокой> Да в принципе не важно. За время T. Всё равно непонятно, какой массив отводить, по максимуму?
Так за время T или можно и за Т и за Т-30 мин? Потому что тогда достаточно хранить 48 получасовых максимумов и минимумов.
1  
RU Серокой #23.05.2011 11:56  @GOGI#23.05.2011 06:13
+
-
edit
 

Серокой

координатор
★★★★
Почему? Я не понял сути. Вот пример, я приводил выше - каждую секунду показания уменьшаются. С очень больших до куда точности хватит. Тогда получается что каждую секунду экстремумы также будут меняться. И их надо хранить все.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Vale #23.05.2011 12:31  @Серокой#23.05.2011 11:56
+
-
edit
 

Vale

Сальсолёт

Если так, то тебе просто надо хранить все данные, и все тут. Потому что ни один Хитрый Способ не гарантирует, что данные не будут бегать туда-сюда как соленые зайцы, а у тебя не настанет переполнения буфера и твой девайс не начнет гнать лажу. Опять же, отладка Хитрого Способа - процесс долгий. А железо - дешевеет. Лучше заложиться на возможность поставить память большей емкости, чем отлаживать Хитрый Код.
"Не следуй за большинством на зло, и не решай тяжбы, отступая по большинству от правды" (Исх. 23:2)  
RU GOGI #23.05.2011 12:54  @Серокой#23.05.2011 11:56
+
+1
-
edit
 

GOGI

координатор
★★★★
В течении получаса ты вычисляешь секундные минимумы и максимумы. Хранишь их в ячейках кольцевого буфера на 48 ячеек (две на каждые полчаса). После получаса ты сдвигаешь указатель буфера. И потом в любой момент в этом буфере находишь минимум и максимум. Единственный недостаток, что экстремумы будут не за 24 часа, а за случайный период от 23.5 до 24 часов. Ну и естественно способ может масштабироваться как в большую так и меньшую сторону.
1  4.0.14.0.1
RU Kuznets #23.05.2011 13:53  @Серокой#23.05.2011 11:56
+
-
edit
 

Kuznets

Клерк-старожил
★☆
Серокой> Тогда получается что каждую секунду экстремумы также будут меняться. И их надо хранить все.

можно хранить дельты. как в видео сжатии - типа "ключевой кадр" (например раз в час) и дельты от него, по времени и по значению (или только по значению если квантование по времени постоянно). не знаю правда насколько это уменьшит требуемый объем, я не настоящий сварщик :)
 4.0.14.0.1
RU Серокой #23.05.2011 14:17  @Vale#23.05.2011 12:31
+
-
edit
 

Серокой

координатор
★★★★
Vale> Опять же, отладка Хитрого Способа - процесс долгий. А железо - дешевеет.
Понимаю. ) Просто так сейчас все пишут, в лоб, и получаются большие ресурсожорные программы.

GOGI> В течении получаса ты вычисляешь секундные минимумы и максимумы.
А, понял. Будет несколько дискретно и не всегда корректно, но... Да, понял. Вариант. )

Kuznets> не знаю правда насколько это уменьшит требуемый объем
Раза в 2,5. ) Это ж моя первая студенческая серьёзная работа была, сжатие суточной кардиограммы PIC-контроллером от холтеровского монитора дельта-кодированием. )
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Kuznets #23.05.2011 14:32  @Серокой#23.05.2011 14:17
+
-
edit
 

Kuznets

Клерк-старожил
★☆
Серокой> сжатие суточной кардиограммы PIC-контроллером от холтеровского монитора дельта-кодированием. )

кстати если показания меняются плавно, и нет нужды в особой точности, то можно кусками апроксимацию делать и хранить только коэффициенты уравнений и крайние точки (локальные минимумы/максимумы) :)
 4.0.14.0.1
PL GOGI #23.05.2011 14:32  @Серокой#23.05.2011 14:17
+
-
edit
 

GOGI

координатор
★★★★
Серокой>Будет несколько дискретно
Почему дискретно? Только интервал наблюдения будет не точным, но никаких значений не теряется.
1  
RU Серокой #23.05.2011 14:35  @GOGI#23.05.2011 14:32
+
-
edit
 

Серокой

координатор
★★★★
GOGI> Почему дискретно?
Это я к тому, что полчаса прошло - и скачок. Так было бы более плавно, измеряемая функция, температура, достаточно непрерывна же.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
PL GOGI #23.05.2011 14:47  @Серокой#23.05.2011 14:35
+
-
edit
 

GOGI

координатор
★★★★
Так скачок только интервала нахождения экстремумов. С точки зрения гуманоида вещь совершенно незаметная.
1  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru