Самодельный локомотивный декодер.
- tnt23
- Сообщения: 52
- Зарегистрирован: Вс апр 05, 2020 7:24 am
- Имя: Tim
- Откуда: СПб
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Самодельный локомотивный декодер.
Нашел формулу в статье http://easyelectronics.ru/dvigatel-post ... vanie.html авторства известного товарища DI HALT
- Engineer_Keen
- Сообщения: 313
- Зарегистрирован: Ср фев 24, 2010 11:15 am
- Имя: Василий
- Откуда: Москва
- Поблагодарили: 5 раз
Re: Самодельный локомотивный декодер.
У меня главная задача стабильные обороты на минимальной скорости, поэтому на больших оборотах перегрузка АЦП не сильно волнует. В CV даже есть параметр, который отключает контроль по BEMF после определенного шага.
Замер и коррекция, естественно не одновременно, отключаем, замеряем, считаем, корректируем, включаем. И ожидание в 1мс не страшно, все можно подобрать под определенный двигатель и драйвер. Чтобы пауза на ожидание и замер не влияла на заполнение ШИМ, можно как я писал выше, после определенного шага отключать замер и просто гнать ШИМ определенной величины. Проще всего сделать 2 таблицы, одна с опорным значением для регулировки, а вторая со значениями ШИМ (как Speed Table в CV) и на некотором шаге переключаться с одной таблицы на другую.
Что касается перехода на дополнительные датчики или бесколлекторники, это конечно здорово, ну нужно капитально переделывать локомотив. Были мысли сделать декодер для шагового двигателя, а там уже по испытаниям понятно будет, стоит ли...
Замер и коррекция, естественно не одновременно, отключаем, замеряем, считаем, корректируем, включаем. И ожидание в 1мс не страшно, все можно подобрать под определенный двигатель и драйвер. Чтобы пауза на ожидание и замер не влияла на заполнение ШИМ, можно как я писал выше, после определенного шага отключать замер и просто гнать ШИМ определенной величины. Проще всего сделать 2 таблицы, одна с опорным значением для регулировки, а вторая со значениями ШИМ (как Speed Table в CV) и на некотором шаге переключаться с одной таблицы на другую.
Что касается перехода на дополнительные датчики или бесколлекторники, это конечно здорово, ну нужно капитально переделывать локомотив. Были мысли сделать декодер для шагового двигателя, а там уже по испытаниям понятно будет, стоит ли...
- tnt23
- Сообщения: 52
- Зарегистрирован: Вс апр 05, 2020 7:24 am
- Имя: Tim
- Откуда: СПб
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Самодельный локомотивный декодер.
Я пытаюсь добиться того же. Беру минимальную скважность ШИМ, на которой лок еще ползет (она прописана в CV2) и смотрю, что АЦП ловит с мотора.Engineer_Keen писал(а): ↑Сб апр 11, 2020 3:27 pmУ меня главная задача стабильные обороты на минимальной скорости, поэтому на больших оборотах перегрузка АЦП не сильно волнует. В CV даже есть параметр, который отключает контроль по BEMF после определенного шага.
Это картинка для наглядности снята на 10 шаге скорости: На 2 шаге АЦП считывает буквально единицы напряжения:
Время от времени в выборку попадает выброс от коммутации обмоток. Его я более-менее отфильтровываю, а дальше беру среднее значение по отфильтрованной выборке за рабочее. Оно оказывается очень близко к нулю, там почти не остается пространства для работы PI-регулятора.
Вот и думал пересчитать входной делитель, чтобы "растянуть" рабочую область АЦП вблизи нуля, ценой перегрузки на средних и высоких скоростях.
(В принципе можно использовать дополнительный канал АЦП с другим делителем, и брать данные с него после определенного шага)
Отключать замер значит остаться без регулировки? На нормальных оборотах эта миллисекундная пауза на замер уже почти не влияет, мне кажется.Замер и коррекция, естественно не одновременно, отключаем, замеряем, считаем, корректируем, включаем. И ожидание в 1мс не страшно, все можно подобрать под определенный двигатель и драйвер. Чтобы пауза на ожидание и замер не влияла на заполнение ШИМ, можно как я писал выше, после определенного шага отключать замер и просто гнать ШИМ определенной величины. Проще всего сделать 2 таблицы, одна с опорным значением для регулировки, а вторая со значениями ШИМ (как Speed Table в CV) и на некотором шаге переключаться с одной таблицы на другую.
- tnt23
- Сообщения: 52
- Зарегистрирован: Вс апр 05, 2020 7:24 am
- Имя: Tim
- Откуда: СПб
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Самодельный локомотивный декодер.
В последней версии декодера Decoder 12/13 от MERG (2003 год) сделана стабилизация скорости по BEMF:
Мой PI контроллер уже кое-как пытается держать скорость. На совсем малых оборотах глохнет напрочь, на чуть бОльших пыхтит, но тащит. Забавно работает, если его остановить пальцами - жужжит по нарастающей и наконец трогается. Нормальные и большие обороты почти не держит - как я понимаю, запаздывает с отслеживанием и компенсацией ошибки. Нужно еще подточить цифровой фильтр BEMF и подобрать Ki и Kp.
Поиск информации по PDFF алгоритму дает в числе прочего интересную статью "PID and PDFF Compensators for Motion Control" (в приложении). В статье всего на двенадцати страницах и почти без страшных формул сравнивают PID, PDF, PDFF, их настройки и эффективности.The feedback uses a PDFF algorithm. The integral gain (Ki), the proportional gain (Kp) and the filter factor (Kf) are all adjustable with CVs so the feedback can be tuned to the motor.
Мой PI контроллер уже кое-как пытается держать скорость. На совсем малых оборотах глохнет напрочь, на чуть бОльших пыхтит, но тащит. Забавно работает, если его остановить пальцами - жужжит по нарастающей и наконец трогается. Нормальные и большие обороты почти не держит - как я понимаю, запаздывает с отслеживанием и компенсацией ошибки. Нужно еще подточить цифровой фильтр BEMF и подобрать Ki и Kp.
- Вложения
-
- PID and PDFF Compensators for Motion Control.pdf
- (795.51 КБ) 690 скачиваний
- Engineer_Keen
- Сообщения: 313
- Зарегистрирован: Ср фев 24, 2010 11:15 am
- Имя: Василий
- Откуда: Москва
- Поблагодарили: 5 раз
Re: Самодельный локомотивный декодер.
На минимальных оборотах действительно на АЦП попадают значения порядка единиц отсчетов, но мне этого вполне хватает, главное чтобы они были гарантированно больше шумов самого АЦП. Если этого мало для работы регулятора, возможно нужно как-то поднимать разрядность при рассчетах. Кстати, серьезные импульсы коммутации обмоток я не видел, может дело в RC-фильтре, а может с двигателем повезло, хотя я эксперименторовал и со старым PIKO и с новым ROCO и с моторчиком от привода каретки CD, который идеально встал в старый пиковский двухосный паровоз.
- tnt23
- Сообщения: 52
- Зарегистрирован: Вс апр 05, 2020 7:24 am
- Имя: Tim
- Откуда: СПб
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Самодельный локомотивный декодер.
У меня с RC-фильтром не заладилось, любая емкость от сотен пикофарад до сотен нанофарад только забивала выход АЦП массивной такой постоянной составляющей. Впрочем, надо еще раз посмотреть.Engineer_Keen писал(а): ↑Вт апр 14, 2020 1:31 pmКстати, серьезные импульсы коммутации обмоток я не видел, может дело в RC-фильтре, а может с двигателем повезло, хотя я эксперименторовал и со старым PIKO и с новым ROCO и с моторчиком от привода каретки CD, который идеально встал в старый пиковский двухосный паровоз.
Про переделку пиковского паровоза под мотор от CD интересно, расскажите подробней?
- Engineer_Keen
- Сообщения: 313
- Зарегистрирован: Ср фев 24, 2010 11:15 am
- Имя: Василий
- Откуда: Москва
- Поблагодарили: 5 раз
Re: Самодельный локомотивный декодер.
Изначально у меня был только конденсатор, резистор я добавил потом, без него тоже постоянная составляющая мешала.
Переделка элементарная, нужен моторчик от привода лотка CD, у которого с торцов корпуса чуть чуть выступает выштамповка под подшипник (предположительно), он почти идеально встает вместо старого двигателя, нужно только слегка подогнуть металлические кронштейны на раме паровоза друг к другу. Фото сделать не могу, убежали от эпидемии на дачу, паровоз остался в городе
Переделка элементарная, нужен моторчик от привода лотка CD, у которого с торцов корпуса чуть чуть выступает выштамповка под подшипник (предположительно), он почти идеально встает вместо старого двигателя, нужно только слегка подогнуть металлические кронштейны на раме паровоза друг к другу. Фото сделать не могу, убежали от эпидемии на дачу, паровоз остался в городе
-
- Сообщения: 113
- Зарегистрирован: Вт фев 21, 2012 10:31 pm
- Благодарил (а): 38 раз
- Поблагодарили: 10 раз
Re: Самодельный локомотивный декодер.
Очень интересно взглянуть на осциллограмму, можно?
Если не сложно какие параметры установлены на осциллографе?
И как вы видите разные обмотки?
Заранее спасибо.
Если не сложно какие параметры установлены на осциллографе?
И как вы видите разные обмотки?
Заранее спасибо.
- tnt23
- Сообщения: 52
- Зарегистрирован: Вс апр 05, 2020 7:24 am
- Имя: Tim
- Откуда: СПб
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Самодельный локомотивный декодер.
Вот осциллограмма, снятая на почти предельной скорости. Одно деление по горизонтали равно 500мкс, по вертикали 1в.Валериевич писал(а): ↑Пт апр 17, 2020 5:46 pmОчень интересно взглянуть на осциллограмму, можно?
Если не сложно какие параметры установлены на осциллографе?
И как вы видите разные обмотки?
Заранее спасибо.
Тут в окно замера АЦП попадает почти полтора оборота якоря. Виден один выброс коммутации (?). Если присмотреться, то нижняя полуволна не такая красивая. И еще по отфильтрованному сигналу в коде заметно, что результаты группируются в две группы, одна погромче, другая потише. Хотя это может сказываться выброс.