#math #average
#математика #среднее
Вопрос:
У меня есть двоичный объект (в моем случае он представляет клапан). Я хочу вычислить значение, которое представляет его среднее (или оценочное среднее) значение за последний час.
Я делаю это вычисление на языке под названием PPCL, который был создан для управления оборудованием HVAC. Это язык сценариев, который не использует массивы, в нем нет оператора for или while. Я не хочу создавать 60 переменных и производить выборку значения каждые 60 секунд, поскольку в итоге у меня будут сотни переменных с несколькими клапанами, которые я должен усреднить.
Спасибо
Комментарии:
1. Насколько это может быть оценено? Один простой метод заключается в том, чтобы взять средневзвешенное значение последнего среднего и нового значения, чтобы получить новое среднее, и делать это с каждым новым значением, которое вы получаете. Это не скользящее среднее, оно придает больший вес более свежим значениям, но вы можете настроить его для получения достойных результатов.
2. Выполнение средневзвешенного значения 1: 20 между новым значением и предыдущим «средним» означает, что последнее добавленное значение будет составлять около 5% от «среднего» (когда оно должно составлять 1,7%) и упадет до 0,28% к тому времени, когда оно станет 59-м в строке.
3. Мне трудно определить двоичный объект, который у вас есть. Это похоже на поток, содержащий значение, которое регулярно меняется (каждую минуту, если я правильно понял) и для которого у вас нет записи прошлых значений?
4. Средневзвешенное значение может сработать, оценка в порядке … Как мне это сделать, не оглядываясь на прошлые значения? Двоичный объект — это значение, которое я могу читать так часто, как захочу. Нет возможности перейти к чтению прошлых значений за пределами того, что я могу сделать в коде.
Ответ №1:
Используйте TIMAVG(output,sampleTime,numSamples,thingToAverage)
функцию в PPCL для вычисления скользящих средних. Убедитесь, что каждый проход программы попадает в эту строку и что в этой строке нет SAMPLE().