а есть еще вариант, с устаканившейся программой ехать на пусконаладку и один раз выставить константное время без всякой автоматической настройки, потому что она же тоже превносит свои изменения в цикл программы и убрав её время вновь сменится
Вид для печати
Итак, второй макрос от меня - фильтр "скользящая средняя".
Предвещая вопрос "зачем, если есть встроенная фильтрация входов, которую можно задать в настройках".
1) режим плавного пуска обеспечивает нечувствительность начального состояния фильтра к случайно оказавшемуся на входе значению в момент запуска программы.
2) возможность инициализации в любой момент.
3) фильтр второго порядка (пользователь может при желании построить по аналогии фильтр высших порядков)
4) возможность задать время усреднения из другого алгоритма (алгоритмы адаптивной фильтрации).
5) возможность фильтровать не само значение входа, а значение вычисленное из него.
PS по непонятной мне причине невозможно загрузить в один проект макрос фильтра первого и второго порядка вместе, они созданы один из другого и ОЛ считает их одинаковыми несмотря на разное название)
anthrwpos макросы идентифицируются по ID, откройте один, сделайте сохранить как, и потом его экспортируйте, должно помочь.
Благодарю, поправил во вложении.
Макрос скользящей средней MAVG ревизия 2
Список изменений.
улучшена точность работы: добавлена компенсация потери точности из-за использования в Owen Logic числа с плавающей точкой одинарной точности.
В макросе скользящей средней второго порядка добавлен вывод, дающий первую производную фильтруемой величины без потери точности.
Добавлен макрос скользящей средней третьего порядка с выводами, дающими первую и вторую производную.
«обратная времени фильтра α» заменена на непосредственно время фильтрации.
Добавлена защита от попадания нуля в вывод dt.
Название вывода INIT заменено на ENABLE, чтобы предотвратить путаницу.
Макрос позволяет коммутировать входа с выходами в любой комбинации, с экрана или по сети.
Вложение 31363
Да сложнее трудно придумать, если вообще возможно! Много раз выкладывал проекты с макросами на 32 входа-выхода вставки-чтения бита, выведите на вход значение(0-31) читаемого бита и получится тоже самое что Вы хотите, только в десятки раз проще!
Макросы можно посмотреть здесь: http://www.owen.ru/forum/showthread.php?t=26806
Так Вы же написали, любой выход коммутирует с любым входом, что тут может быть непонятным(так правильнее, чем наоборот, т. к. на выходе не может быть значения сразу с двух входов)?!
А насчет макросов, так средняя часть, где всё сохраняется, запоминается и не понадобится в нашем случае, в макросах проекта есть отдельные макросы для вставки-чтения бита!