Самодельный локомотивный декодер.

Вопросы и ответы связанные с цифровым управлением, аналоговой автоматикой и их элементами
Сообщение
Автор
Аватара пользователя
Engineer_Keen
Сообщения: 313
Зарегистрирован: Ср фев 24, 2010 11:15 am
Имя: Василий
Откуда: Москва
Поблагодарили: 5 раз

Re: Самодельный локомотивный декодер.

#431 Непрочитанное сообщение Engineer_Keen »

У меня в текущей разработке, выходы (4 штуки) как и звуковая схема - заскриптованы. При активации/деактивации каждой функции запускается свой скрипт который умеет управлять уровнем напряжения (ШИМ) любого выхода в зависимости или независимости от направления, делать задержки, циклы, вызывать другие скрипты, или просто проигрывать определенный звук. Единственное что нельзя сделать (пока?) это плавное изменение яркости.
Если перепутаны лампочки вперед-назад, достаточно поменять условие и перешить раздел скриптов (дело 10 сек.), при этом никаких волшебных констант как с CV, выходы имеют свои имена, а сам скрипт не сложнее бейсика или паскаля.

Аватара пользователя
tnt23
Сообщения: 52
Зарегистрирован: Вс апр 05, 2020 7:24 am
Имя: Tim
Откуда: СПб
Благодарил (а): 12 раз
Поблагодарили: 13 раз

Re: Самодельный локомотивный декодер.

#432 Непрочитанное сообщение tnt23 »

Круто, читал про скрипты у коммерческих декодеров. Сам пока в эту сторону не думал, как-то пока тянет обойтись по старинке CV.

Аватара пользователя
tnt23
Сообщения: 52
Зарегистрирован: Вс апр 05, 2020 7:24 am
Имя: Tim
Откуда: СПб
Благодарил (а): 12 раз
Поблагодарили: 13 раз

Re: Самодельный локомотивный декодер.

#433 Непрочитанное сообщение tnt23 »

[Оффтопик]
По поводу CV - в JMRI есть возможность создать описание своего декодера, чтобы облегчить возню с CV и их битами. Также там сделана группировка разных CV по назначению (управление мотором, светом и проч.)

decoder definition.png

Аватара пользователя
tnt23
Сообщения: 52
Зарегистрирован: Вс апр 05, 2020 7:24 am
Имя: Tim
Откуда: СПб
Благодарил (а): 12 раз
Поблагодарили: 13 раз

Re: Самодельный локомотивный декодер.

#434 Непрочитанное сообщение tnt23 »

В конфигурации каждого выхода есть два бита, чтобы управлять работой выхода при движении вперед и назад:
  • 01 выход активен при движении вперед
  • 10 выход активен при движении назад
  • 11 выход активен всегда
Комбинация 00 пропадает впустую, потому что нет смысла подключать выход, который никогда не будет активен. Появилась мысль задействовать ее для включения выхода только в режиме стоянки, когда скорость равна нулю. Например, подсветка кабины (?). Но можно и наоборот, комбинацией 00 включать выход только во время движения.

Вопрос залу: что из житейского опыта может быть полезнее?

BR95009
Сообщения: 118
Зарегистрирован: Пн мар 28, 2016 12:03 pm
Благодарил (а): 25 раз
Поблагодарили: 11 раз
Контактная информация:

Re: Самодельный локомотивный декодер.

#435 Непрочитанное сообщение BR95009 »

tnt23 писал(а):
Вт май 05, 2020 12:26 pm

Вопрос залу: что из житейского опыта может быть полезнее?
Маневровый режим ннада. Те лок едет назад, а свет не меняет.

Аватара пользователя
tnt23
Сообщения: 52
Зарегистрирован: Вс апр 05, 2020 7:24 am
Имя: Tim
Откуда: СПб
Благодарил (а): 12 раз
Поблагодарили: 13 раз

Re: Самодельный локомотивный декодер.

#436 Непрочитанное сообщение tnt23 »

Маневровый режим это уже не про световые эффекты. Это какая-нибудь CV нужна, по типу "запись 8 в CV8 приводит к сбросу в заводские настройки".

BR95009
Сообщения: 118
Зарегистрирован: Пн мар 28, 2016 12:03 pm
Благодарил (а): 25 раз
Поблагодарили: 11 раз
Контактная информация:

Re: Самодельный локомотивный декодер.

#437 Непрочитанное сообщение BR95009 »

Да фиг с ними, со световыми эффектами. Имхо главное в цифре возможность плавного ускорения и замедления и движение на малой скорости. Нам бы back emf рабочий: обвязку+алгоритм. Остальное запрограммировать -пару пальцев об асфальт.

Аватара пользователя
tnt23
Сообщения: 52
Зарегистрирован: Вс апр 05, 2020 7:24 am
Имя: Tim
Откуда: СПб
Благодарил (а): 12 раз
Поблагодарили: 13 раз

Re: Самодельный локомотивный декодер.

#438 Непрочитанное сообщение tnt23 »

Плавное ускорение-замедление делается элементарно - берешь значения из соответствующих CV и добавляешь к PWM постепенно. Вот как Trim организовать, я еще не сообразил, а надо бы: мой BR 80 назад едет сильно прытче, чем вперед.

Про BEMF - обвязку тут уже описывали, два резистора и конденсатор. Алгоритм, насколько я понял, тоже в целом простой - берется разница между нужной скоростью и фактической (ошибка). Фактическую выводим из измерения на АЦП. Из ошибки приготавливаем два компонента: пропорциональный (тупо умножаем ошибку на константу из CV), и интегральный (постоянно накапливаем сумму ошибок). В принципе этого уже может оказаться достаточно, но можно сделать и третий компонент, дифференциальный - с ним я еще не начинал разбираться. Ну и замешиваешь все компоненты обратно в PWM, тоже с разными весовыми коэффициентами, чтобы отрицательной обратной связью ошибку уменьшить. Из параметров еще можно поиграть с частотой замеров АЦП и цифровой фильтрацией, если она есть и на нее хватает ресурса.

BR95009
Сообщения: 118
Зарегистрирован: Пн мар 28, 2016 12:03 pm
Благодарил (а): 25 раз
Поблагодарили: 11 раз
Контактная информация:

Re: Самодельный локомотивный декодер.

#439 Непрочитанное сообщение BR95009 »

На словах все это просто. Я это на словах реализовал 4 года назад. А вот до рабочего прототипа так не дошел.

Никто D не добавляет, хватает и PI.

BR95009
Сообщения: 118
Зарегистрирован: Пн мар 28, 2016 12:03 pm
Благодарил (а): 25 раз
Поблагодарили: 11 раз
Контактная информация:

Re: Самодельный локомотивный декодер.

#440 Непрочитанное сообщение BR95009 »

tnt23 писал(а):
Вс май 10, 2020 1:07 pm
Алгоритм, насколько я понял, тоже в целом простой - берется разница между нужной скоростью и фактической (ошибка).
Как фактическую определить, понятно. А вот как определить нужную?

Ответить

Вернуться в «Цифровое управление, Аналоговая автоматика и их элементы»