Замедление/усреднение данных. Как?

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Revenger
Рядовой
Сообщения: 21
Зарегистрирован: 04.02.2016{, 02:22}
Репутация: 0
Откуда: Ставрополь
Контактная информация:

Замедление/усреднение данных. Как?

#1

Сообщение Revenger » 05.12.2017{, 00:17}

Приветствую специалисты в программировании!
Я только начал изучать программу, в программировании вообще ноль. Сделал несложную схему электронного спидометра, но мучает вопрос: как сделать вывод данных на дисплей не так резко, как меняются данные на датчике скорости, а с неким замедлением? Ну +- какое-то значение.
Какими блоками это можно сделать (желательно поподробнее, уж извините за такую наглость)?

Спасибо.

Аватара пользователя
Anydy
Администратор
Сообщения: 3272
Зарегистрирован: 30.12.2017{, 12:10}
Репутация: 278
Имя: Андрей

Замедление/усреднение данных. Как?

#2

Сообщение Anydy » 05.12.2017{, 02:53}

Спасибо за Правильное написание и изложение проблемы!
По теме:
Используйте таймеры (стандартные блоки)
Если не получается -  с вопросом нужно приложить проект программы!
Адекватным людям всегда помогут!

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 430
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 47
Откуда: Омск

Замедление/усреднение данных. Как?

#3

Сообщение kulibinsvv » 05.12.2017{, 05:26}

Revenger, используйте блоки фильтров:

http://flprog.ru/load....-1-0-75
http://flprog.ru/load/bloki_polzovatele ... /2-1-0-109

Попробуйте всё. Какой понравится - такой и оставьте. Но надо понимать,что с разными фильтрами вы будете получать разную систематическую погрешность и разное время реакции на изменение входного сигнала.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Revenger
Рядовой
Сообщения: 21
Зарегистрирован: 04.02.2016{, 02:22}
Репутация: 0
Откуда: Ставрополь
Контактная информация:

Замедление/усреднение данных. Как?

#4

Сообщение Revenger » 05.12.2017{, 12:24}

Ребята, большое спасибо за ответы. Попробую понять то, о чём написали (пока слово фильтры, особенно с формулами, для меня почти как ругательство )) )
Для примера вставил кусок кода, где как раз берётся моя скорость (с функциями конвертации в кмч)

Изображение

Добавлено (05.12.2017, 12:24)
---------------------------------------------
Anydy писал(а):Используйте таймеры
к сожалению "нитка связи" не коннектится с преобразователем в строку, который выводит на экран скорость в цифрах.
Попробую как выше советовали с фильтами...

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 430
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 47
Откуда: Омск

Замедление/усреднение данных. Как?

#5

Сообщение kulibinsvv » 05.12.2017{, 12:29}

Ставьте фильтр в разрыв линии L1.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Замедление/усреднение данных. Как?

#6

Сообщение pan » 05.12.2017{, 12:31}

еще есть такой блок среднего значения. не помню кто автор
Вложения
6790243.ubi
(17.39 КБ) 70 скачиваний

Revenger
Рядовой
Сообщения: 21
Зарегистрирован: 04.02.2016{, 02:22}
Репутация: 0
Откуда: Ставрополь
Контактная информация:

Замедление/усреднение данных. Как?

#7

Сообщение Revenger » 05.12.2017{, 12:32}

kulibinsvv писал(а):Ставьте фильтр в разрыв линии L1.
спасибо, сейчас переставлю, а то уже влепил в разрыв перед выводом переменной ))

Добавлено (05.12.2017, 12:32)
---------------------------------------------
pan писал(а):еще есть такой блок среднего значения. не помню кто автор
Если с первый не выйдет (хотя похоже мне подобный фильтр ранее советовали на другом коде) попробую вашу рекомендацию!
А не подскажете, какой параметр надо ставить во вход "замер" этого блока?
Последний раз редактировалось Revenger 05.12.2017{, 12:48}, всего редактировалось 1 раз.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Замедление/усреднение данных. Как?

#8

Сообщение pan » 05.12.2017{, 12:54}

в описании блока написано же.
это вход записи очередного значения. можно поставить на этот вход генератор и подавать импульсы например раз в секунду, ну или как вам надо, занося с этой частотой новые значения для расчета среденей величины

Revenger
Рядовой
Сообщения: 21
Зарегистрирован: 04.02.2016{, 02:22}
Репутация: 0
Откуда: Ставрополь
Контактная информация:

Замедление/усреднение данных. Как?

#9

Сообщение Revenger » 05.12.2017{, 12:58}

pan писал(а):это вход записи очередного значения.
я потом прочитал, но всё равно не понял, пока ваше пояснение сейчас не прочитал. Т.е. нужно его "толкать" на подсчёт сравнения... Попробую разобраться теперь с генераторами. Жуть какая.

А фильтр с флоат (что чуть раньше по ссылке) не даёт нужного эффекта. Мало, даже при максимальном значении 0,1

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Замедление/усреднение данных. Как?

#10

Сообщение pan » 05.12.2017{, 13:00}

Revenger писал(а):"толкать" на подсчёт
 не на подсчет, а на запись очередного значения. при достижении некоторого количества записей (которое указывается в параметрах)
блок выдаст среднее

Revenger
Рядовой
Сообщения: 21
Зарегистрирован: 04.02.2016{, 02:22}
Репутация: 0
Откуда: Ставрополь
Контактная информация:

Замедление/усреднение данных. Как?

#11

Сообщение Revenger » 05.12.2017{, 13:23}

pan писал(а):блок выдаст среднее
Извиняюсь... создал симметричный мультивибратор, задал генерировать 100 милисек. Подал это на вход "замер". верно? Там задал константу 10.
В общем получилось примерно так как хотел. Только сделал этот фильтр на датчик бензина (т.к. уж слишком тормозную реакцию можно настроить), а на спидометр оставил фильтр float.

Большое спасибо за подсказки!

Ответить

Вернуться в «Спросить у знатоков»