1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Разработка весового терминала(алгоритм взвешивания)

Метрология, КИП и датчики
Ответить

Автор темы
wrathangels
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 июн 2017, 21:35
Имя: Алексей
Страна: Россия
город/регион: Москва

Разработка весового терминала(алгоритм взвешивания)

Сообщение wrathangels »

Доброго времени суток всем!
Упала задача от руководства разработать весовой терминал для взвешивания.
Исходные данные, есть в наличии весовая платформа Тензо М ВПА-100-1, контроллер в среде программирования (Codesys),модуль аналогового ввода для подключения тензо-мостов. Принцип реализации взвешивания и калибровки вроде понятен по двум точкам написал блок, но возникла следующая проблема. Код АЦП постоянно прыгает в последнем разряде, т.е например при переводе в кг
23.456 кг постоянно прыгают последние два разряда, вибраций и воздействий на систему особых нет. Пробовал усреднять значения и скользящим и медиальным средним эффекта особого нет.
Если кто сталкивался с подобными задачами подскажите советом, может есть уже алгоритм наработанный, как убрать эти скачки и что я не учёл ещё.
Заранее благодарен!
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение izhidkov »

Так какая вам точность нужна в итоге? На таком весе о грамме точности и не мечтайте, за десятки можно побороться, но только если у вас АЦП 24 бит, и есть возможность помеху 50 Гц отфильтровать.
А так источник помех может быть любой, нестабильность питания, наводки на провода, малые вибрации..
Компилятор - лучший друг человека!

Автор темы
wrathangels
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 июн 2017, 21:35
Имя: Алексей
Страна: Россия
город/регион: Москва

Разработка весового терминала(алгоритм взвешивания)

Сообщение wrathangels »

izhidkov писал(а): Так какая вам точность нужна в итоге? На таком весе о грамме точности и не мечтайте, за десятки можно побороться, но только если у вас АЦП 24 бит, и есть возможность помеху 50 Гц отфильтровать.
А так источник помех может быть любой, нестабильность питания, наводки на провода, малые вибрации.
Разрешение модуля 16 Bit, а требуемая точность +/- 50г, в модуле вроде как написано фильтр 50 Hz встроен..

Юрий См
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 07 окт 2009, 19:57
Имя: Смирнов Юрий Николаевич
Страна: Россия
город/регион: Рыбинск
Поблагодарили: 1 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение Юрий См »

Лучшее решение - цифровая фильтрация. Например взять за основу http://smirn.bget.ru/product/digit.htm

Автор темы
wrathangels
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 июн 2017, 21:35
Имя: Алексей
Страна: Россия
город/регион: Москва

Разработка весового терминала(алгоритм взвешивания)

Сообщение wrathangels »

А какой то исходник программы есть, чтобы на codesys ST перенести?? А то не все понятно...
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение izhidkov »

wrathangels писал(а): Разрешение модуля 16 Bit, а требуемая точность +/- 50г
какой НПВ и какая частота опроса? Если вы говорите что сделали усреднение и все равно толку нет, значит, вероятно, не так делали усреднение.
Компилятор - лучший друг человека!

Автор темы
wrathangels
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 июн 2017, 21:35
Имя: Алексей
Страна: Россия
город/регион: Москва

Разработка весового терминала(алгоритм взвешивания)

Сообщение wrathangels »

izhidkov писал(а):
wrathangels писал(а): Разрешение модуля 16 Bit, а требуемая точность +/- 50г
какой НПВ и какая частота опроса? Если вы говорите что сделали усреднение и все равно толку нет, значит, вероятно, не так делали усреднение.
НПВ 150КГ, частота опроса модулем 500ms.. да вроде усреднял правильно по формулам, просто если глубину фильтра делать больше (кол-во выборок) реакция системы на изменение веса ну очень медленно...
Может быть подход при усреднении не правильный, если есть какой то пример программы только рад буду посмотреть...

Юрий См
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 07 окт 2009, 19:57
Имя: Смирнов Юрий Николаевич
Страна: Россия
город/регион: Рыбинск
Поблагодарили: 1 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение Юрий См »

Используйте саму формулу фильтра Y = 0,0009 * Xi + 1,9556 * Yib - 0,9565 * Yia, где
Xi - входной отсчет АЦП
Yia - выходное значение формулы на предыдущем (i-1) измерении (шаге)
Yib - выходное значение формулы на пред.предыдущем (i-2) измерении (шаге)
Это будет фильтр 2-го порядка. Два последовательно включенных таких фильтра дадут 4 порядок
Больше для весов и не требуется.

Автор темы
wrathangels
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 15 июн 2017, 21:35
Имя: Алексей
Страна: Россия
город/регион: Москва

Разработка весового терминала(алгоритм взвешивания)

Сообщение wrathangels »

Юрий См писал(а):Используйте саму формулу фильтра Y = 0,0009 * Xi + 1,9556 * Yib - 0,9565 * Yia, где
Xi - входной отсчет АЦП
Yia - выходное значение формулы на предыдущем (i-1) измерении (шаге)
Yib - выходное значение формулы на пред.предыдущем (i-2) измерении (шаге)
Это будет фильтр 2-го порядка. Два последовательно включенных таких фильтра дадут 4 порядок
Больше для весов и не требуется.
Измеренные значения я должен из массива какого то брать или просто три строчки:
Y:=0.0009*X+1.9556*Yib-0.9565*Yia;
Yia:=Y;
Yib:=Yia;
Запутался в трёх соснах....

Юрий См
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 07 окт 2009, 19:57
Имя: Смирнов Юрий Николаевич
Страна: Россия
город/регион: Рыбинск
Поблагодарили: 1 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение Юрий См »

Можно после каждого измерения АЦП, если нет ограничений...
Только последовательность действий:
Y:=0.0009*X+1.9556*Yib-0.9565*Yia;
Yib:=Yia;
Yia:=Y;
Частота среза фильтра зависит от частоты выборки АЦП

Sany
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 09 авг 2017, 14:50
Имя: Александр
Страна: Россия
город/регион: Надмосковье
Поблагодарили: 11 раз

Разработка весового терминала(алгоритм взвешивания)

Сообщение Sany »

Фильтров применяемых для обработки сигналов много и у каждого есть и плюсы и минусы, и каждый под свою задачу. Так же, иногда, целесообразно применять комбинацию фильтров. Выбор того или иного фильтра требует анализа сигнала.
Общую информацию можете посмотреть http://teracompany.ru/signal-filter/
В части конкретных фильтров:
Скользящие http://teracompany.ru/signal-filter-sma/
Экспоненциальные http://teracompany.ru/signal-filter-ema/
Медианные http://teracompany.ru/signal-filter-mf-1/
и пр.
Ответить

Вернуться в «Метрология, КИП и датчики»