Бесконечный ряд среднего значения
Jun. 6th, 2018 07:53 pmЯ понимаю, что это скорее к математикам, но там сообщество закрытое и полуживое.
Бортовой компьютер автомобиля непрерывно вычисляет средний расход топлива, пока его не обнулишь. Значение может считаться много лет, если не сбрасывать и не скидывать клемму с аккума.

Как это вообще возможно, если для вычисления текущего среднего значения нам нужен ВЕСЬ ряд чисел? Или это не так? Что это за формула такая?
Варианты "ряд на самом деле не бесконечен" или "компьютер реально хранит весь ряд" имеют очевидное объяснение, поэтому пропустим их.
Бортовой компьютер автомобиля непрерывно вычисляет средний расход топлива, пока его не обнулишь. Значение может считаться много лет, если не сбрасывать и не скидывать клемму с аккума.

Как это вообще возможно, если для вычисления текущего среднего значения нам нужен ВЕСЬ ряд чисел? Или это не так? Что это за формула такая?
Варианты "ряд на самом деле не бесконечен" или "компьютер реально хранит весь ряд" имеют очевидное объяснение, поэтому пропустим их.
no subject
Date: 2018-06-06 01:23 pm (UTC)no subject
Date: 2018-06-06 01:23 pm (UTC)no subject
Date: 2018-06-06 01:25 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:53 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:31 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:33 pm (UTC)float в С++, на котором скорее всего все написано. Хватит для варианта "два тупых счетчика".
вопрос точности или не поднимался разработчиком, или как написали выше, не критичен с увеличением пробега.
можно еще баловаться среднесуточными, или средним на 100 или 1000 км, храня их зачем то в целых.
а потом их уже усреднять. была бы задача поставлена:)
no subject
Date: 2018-06-06 06:41 pm (UTC)В таком эмбеде до сих пор местами сидят ещё на какой-нибудь Атмеге8, кокая там float, Вы что?
Да и не подходит fload для такой задачи - он тупо не сможет суммировать мелкие числа с крупными.
Только всякие long long long unsigned здесь пойдут.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:35 pm (UTC)Так же можно считать и менее серьёзными квантами, хоть по 10 метров.
no subject
Date: 2018-06-06 06:43 pm (UTC)И счётчикаме на нём...
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:39 pm (UTC)И где это значение можно использовать с пользой?
no subject
Date: 2018-06-06 01:45 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:44 pm (UTC)// Returns the new average after including x static float getAvg(float prev_avg, float x, int n) { return (prev_avg * n + x) / (n + 1); }Реально, конечно, 2 счетчика - километраж и расход.
no subject
Date: 2018-06-06 02:19 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 01:48 pm (UTC)floating_avg = floating_avg_prev * k + current_avg * (1-k)
no subject
Date: 2018-06-06 02:19 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 02:16 pm (UTC)no subject
Date: 2018-06-06 02:42 pm (UTC)no subject
Date: 2018-06-06 02:52 pm (UTC)Тогда при получении нового значения V новое среднее S2 = (S1*N + V)/(N + 1)
no subject
Date: 2018-06-06 03:08 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2018-06-06 02:54 pm (UTC)https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
no subject
Date: 2018-06-06 02:56 pm (UTC)https://en.wikipedia.org/wiki/RRDtool
no subject
Date: 2018-06-06 02:57 pm (UTC)я заправляюсь до полного бака, езжу, снова заправляюсь до полного бака, прямо на чеке записываю километраж, дома вношу в экселевскую таблицу.
ps. я бы заглянул в инструкцию, наверняка в ней стоит за какой период компьютер расчитывает это самое среднее.
no subject
Date: 2018-06-06 03:14 pm (UTC)Средний расход считается из полного, который комп считает суммируя мгновенный расход, ради расчёта которого комп в авто и появился. Комп не считает расход по изменению объёма топлива в баке, который оценивается весьма и весьма приблизительно
no subject
Date: 2018-06-06 03:18 pm (UTC)Да кто бы спорил.
no subject
Date: 2018-06-06 03:15 pm (UTC)Интересно, если обнулить и проехать 50 км, то как он, бортовой, ага, компьютер посчитает расход за 100 км? Магия
no subject
Date: 2018-06-06 04:19 pm (UTC)(no subject)
From:no subject
Date: 2018-06-06 03:47 pm (UTC)Нет никакого расчёта и хранения. Может компьютер и хранит что-то но датчик работает по такому же принципу как спидометр. В трубку встроен генератор который подаёт ток на релюшку или в компьютер показывающий цифры.
Здесь картинки и схемы - https://www.google.com/imgres?imgurl=http%3A%2F%2Favto-remont-toyota.ru%2Fwp-content%2Fuploads%2F2012%2F012%2Fimage023.png&imgrefurl=http%3A%2F%2Favto-remont-toyota.ru%2Fkak-rabotaet-spidometr.html&docid=QNie4HaJoLgJCM&tbnid=nMu2ApSnCgi1ZM%3A&vet=10ahUKEwidwY_asL_bAhWEhaYKHa6eDdMQMwhAKAIwAg..i&w=852&h=387&client=firefox-b&bih=606&biw=1152&q=%D0%BA%D0%B0%D0%BA%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D1%81%D0%BF%D0%B8%D0%B4%D0%BE%D0%BC%D0%B5%D1%82%D1%80&ved=0ahUKEwidwY_asL_bAhWEhaYKHa6eDdMQMwhAKAIwAg&iact=mrc&uact=8
no subject
Date: 2018-06-06 03:48 pm (UTC)Для этого достаточно хранить расход за каждый из последних 100 км. Дальше кольцевой буфер и каждый километр из среднего вычитаем самое старое значение, добавляем новое и сохраняем в буфер на место старого. В результате контроллер получается даже проще — не нужно уметь умножать и делить, а только складывать и вычитать кубики (см³).
no subject
Date: 2018-06-06 04:38 pm (UTC)no subject
Date: 2018-06-06 04:46 pm (UTC)средний рх=расход/пробег.
2 цифры, карл!
no subject
Date: 2018-06-06 04:49 pm (UTC)Ключевая цитата:
> Объяснить-то можно всё, только не всем.
no subject
Date: 2018-06-07 09:59 am (UTC)(no subject)
From:no subject
Date: 2018-06-06 09:22 pm (UTC)1. общий расход топлива
2. общий пробег
no subject
Date: 2018-06-07 06:17 am (UTC)no subject
Date: 2018-06-07 07:38 am (UTC)no subject
Date: 2018-06-07 09:11 am (UTC)