наклон и сдвиг у меня учтены
наклон и сдвиг у меня учтены
Было бы не плохо допилить ещё макросом усреднения температуры наружного воздуха, что-бы устранить резкие колебания температуры в домовом контуре, которые приводят к всяким деформациям в трубах и звуку типа постукивания. Потому что зачастую датчик температуры наружного воздуха стоит как попало, возле окна, на солнечной стороне, возле двери (входа в подвал как правило), да где строителям удобно было там и влепят, открывание/закрывание двери, приводит к таким вот безобразиям и не всегда это можно быстро исправить, перенести датчик куда положено, а программно можно отфильтровать.
Бояринцев Иван Юрьевич
значит будем писать следующий макрос, думаю завтра-послезавтра
Я, в одной из тем выкладывал макрос ограничения скорости изменения параметра, короче, если скорость изменения параметра превосходит заданную, то она ограничивается заданной!
Очень будет интересен ваш вариант! Только заранее не ищите, так будет нечестно, лучше потом сравним!
https://owen.ru/forum/showthread.php?t=32153&page=6
Ограничение скорости изменения.PNG
Последний раз редактировалось Сергей0308; 18.12.2020 в 16:09.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
RX9COZ – думаю Ваша проблема надуманна, даже без фильтрации или усреднения (по крайней мере так я делаю) все работает нормально и нет никаких скачков (отопление очень инертная система). Как правило график отопления сам сглаживает скачки в 2 раза, за счет того, что диапазон температур отопления в 2 раза шире, чем диапазон температур наружного воздуха, далее ПИД регулятор при правильной настройке хорошо с этим справляется. Плюс скорость движения клапана на отоплении и объем теплоносителя в системе.
Тем не менее в этой теме (пост 14) Юрий Н предложил пример, в котором есть макрос усреднения, как среднее арифметическое от 3 последних показаний.
1.png
Я побаловался с этим макросом, вынес уставку времени как параметр и сделал на его основе еще 2 макроса, взвешенное среднее и медианный фильтр.
2.png
Взвешенное среднее – тем трем последним запомненным показаниям мы присваиваем вес по экспоненте, например самому последнему значению -0.17, следующему с конца -0.33, и третьему 0.5. Суммарно вес должен равняться единице. Перемножаем три отсчета на веса и складываем.
3.png
Медианный фильтр – из этих трех запомненных показаний выбираем «реальное» среднее, например 3,4,24, выбираем 4. Далее 4,24,6, выбираем 6. Далее 24,6,5, выбираем 5. Тем самым пропускаем всплески или провалы. Но сохраняем общий вектор. Если интересна реализация, то этот макрос достаточно затратный, приходится сортировать 3 значения и выводить на выход «среднее», сделал на 4 макросах больше/меньше.
Все эти макросы дают задержку сигнала в два времени «блинка». Что, по-моему, совершенно не помешает работе отопления.
Это что касается усреднения.
Сергей0308 – что касается ограничения скорости изменения сигнала, я посмотрел ваш макрос. Ну не знаю – имеет место быть. Привожу свою реализацию.
4.png
Это асинхронный фильтр, берет разницу между текущим и предыдущим измерением и умножает его на некий коэффициент. Тем самым ограничивая рост во времени. Очень хорошо фильтрует сигнал. При правильном коэффициенте совершенно его не искажая. Но в logic-ке, в частности, по аналоговым входам уже есть сглаживание, которое работает точно также.
У данного макроса есть минус, при старте значение «0», а измеренная температура допустим 22 градуса. В зависимости от времени цикла и коэффициента, значение на выходе макроса будет какое-то время подбираться к реальному. Это исправлено в следующем примере.
5.png
Используя макрос времени цикла несложно на ходу рассчитать коэффициент и тем самым организовать аналог Вашего макроса.
6.png
Итоги – провел выходные за изучением всевозможных фильтров, написал несколько экзотических, сложных по реализации, объему блоков и времени исполнения (приводить нет смысла, только если в качестве примера перевода сишного кода на FBD). И пришел к выводу что ВСЕ это в системах отопления не нужно. Чисто мое мнение.
7.png
далее
зеленый - измеренная
желтая - апериодический
синий - среднее арифметическое
красный - среднее взвешенное
голубой - медианный
8.png
для примера апериодический фильтр с коэффициентом 0,001
9.png
Последний раз редактировалось Keldish; 21.12.2020 в 08:59.