ШИМ против линейного регулятора тока в микрошаговом драйвере для униполярного двигателя.
Хочу поделиться последними результатами собственных экспериментов с разными типами контроллеров для управления униполярным двигателем в режиме микрошага:
- контроллер с ШИМ регулировкой тока в обмотке (чоппер)
- контроллер с аналоговым генератором тока - по такому же принципу сделан Linistepper.
Вывод такой:
- ШИМ контроллер на практике оказался достаточно капризен и не слишком прост в настройке
- в домашних условиях проще всего сделать контроллер на основе генератора тока (ГТ)
- несмотря на страшилку про БОЛЬШОЙ радиатор для ГТ контроллера, все не так страшно - 4 транзистора TIP122 не смогли существенно нагреть
кулер от процессора P4, нужно попробовать меньший от socket370, думаю будет вполне приемлемо. - небольшое усложнение схемы (по сравнению с Linistepper) позволило ликвидировать его недостатки (температурная нестабильность, сложность регулировки микрошагов).
Так что, на ближайшее время я для себя решил: бросаю ШИМ, занимаюсь усовершенстованием ГТ контроллера. Направление ксовершенстования - динамическая регулировка напряжения питания. Это позволит снизить нагрев транзисторов.
Если есть вопросы - задавайте.
- по-подробней.
ШИМ рулез ! и форева. просто “надо уметь их готовить”
- по-подробней.
На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов), на сдвоенном 5-ти вольтовом rail ОУ MCP6022 и четырех TIP122 сделаны генератоы тока, питающие обмотки. Для выбора фазы вместо транзисторов BC337 (как в Linistepper) использованы выходы PIC.
ШИМ рулез ! и форева. просто “надо уметь их готовить”
Ага, я тоже так думал, потому и начал с ШИМ. Однако на россыпи все получается заметно сложнее токового управления и намного капризнее.
не надо самому мудрить - возмите АпНоут микрочип, авр, моторола, ti.com по микрошагу и работаь будет ПРЕКРАСНО !
вот там:
forum.roboclub.ru/IPBoard/index.php?showtopic=15&h…
я посоветовал человеку:
www.anivo.com/reed/L297_L298/L297_L298.htm
и у него все получилось, значит L297 рулит (не удивительно, ведь ей сколько лето-то! ) нормально L298 и
очевидно что проблемы возникают при замене L298 на “не правильный” мост или просто “не правильно” управляемые нижние ключи.
вот и все!
======
Конечно нагрев в линейном режиме не страшен так как есть охлаждение - но я бы тогда заказал бесплатно на ti.com УМЗЧ класса Д по 125 Вт и ими рулил.
Можно и усилителями для магнитол рулить так же успешно но за денюжку.
Проблема в том что тут и так порой жалуются на нехыватку мощи БП а линейный режим большую часть мощности отправит в утиль.
не надо самому мудрить - возмите АпНоут микрочип, авр, моторола, ti.com по микрошагу и работаь будет ПРЕКРАСНО !
вот там:
forum.roboclub.ru/IPBoard/index.php?showtopic=15&h…я посоветовал человеку:
www.anivo.com/reed/L297_L298/L297_L298.htm
и у него все получилось, значит L297 рулит (не удивительно, ведь ей сколько лето-то! ) нормально L298 и
очевидно что проблемы возникают при замене L298 на “не правильный” мост или просто “не правильно” управляемые нижние ключи.
вот и все!
======
Конечно нагрев в линейном режиме не страшен так как есть охлаждение - но я бы тогда заказал бесплатно на ti.com УМЗЧ класса Д по 125 Вт и ими рулил.Можно и усилителями для магнитол рулить так же успешно но за денюжку.
Проблема в том что тут и так порой жалуются на нехыватку мощи БП а линейный режим большую часть мощности отправит в утиль.
Антон, извиняюсь, Вы вообще читаете о чем идет разговор? Словесный понос какой-то…
Какой микрошаг с L297 для униполярного двигателя? У нее же общий вход опорного для обоих каналов, поэтому SIN/COS на одной микросхеме не получить, и она (L297) очень плохо работает при низком опорном, значит около 0 будут провалы в регулировании.
Про L298 вообще речи не шло - это мост для биполярных двигателей, а у меня униполярный
И еще, Вы думаете, что УМЗЧ будет дешевле TIP122? 😃
Антон, извиняюсь, Вы вообще читаете о чем идет разговор?
извините.
L297 очень плохо работает при низком опорном, значит около 0 будут провалы в регулировании.
дак нужно усиливать сигнал токового датчика - lm358 простейший взять или lm2904, и резисторы не нужны большие, достаточно дорожки на плате.
Хочу поделиться последними результатами собственных экспериментов с разными типами контроллеров для управления униполярным двигателем в режиме микрошага:
Вы имели ввиду шага и полушага для униполярного двигателя?
- контроллер с аналоговым генератором тока - по такому же принципу сделан Linistepper.
что за зверь такой Linistepper, может я отстал от жизни? где почитать ?
в соседней ветке почитать.
Вы имели ввиду шага и полушага для униполярного двигателя?
что за зверь такой Linistepper, может я отстал от жизни? где почитать ?
Нет, речь идет именно о микрошаге для униполярного двигателя: полный шаг разбивается на 16 микрошагов. Для повышения точности позиционирования этот режим обычно не используется, его назначение - плавность вращения и устранение резонанса. Мне это нужно в основном для плавности.
Про Linistepper читайте www.piclist.com/tech*ref/io/stepper/…/index.htm
ну и в ветке про “Двигатели на хоббийных cnc и управление ими”
rcopen.com/forum/f41/topic23068/160
Там, правда немного. Основной разбор на все же на piclist.com.
Какой микрошаг с L297 для униполярного двигателя?
У нее же общий вход опорного для обоих каналов, поэтому SIN/COS на одной микросхеме не получить
так можно регулировать усиление в каналах ОС по току.
так можно регулировать усиление в каналах ОС по току.
А если подумать?
Если установить опорное напряжение для L297 на максимальное значение тока в обмотке, то снизить ток в обмотке можно только усилением сигнала с Rизм. Соответственно, огребем и усилим все импульсные помехи. И, при этом, в любом случае будет невозможно получить нулевой ток в обмотке.
Другая причина в том, что нет никакого смысла вообще использовать L297 для микрошага - она не заточена под это - да и схема с генераторами тока получается проще, дешевле и стабильнее.
В самом деле, ОУ можно взять практически любой, транзистор TIP122 или что-то аналогичное - тоже не дефицит и достаточно дешев. При этом никаких проблем с установкой требуемого уровня тока в обмотке, скорость шагания можно установить достаточно большой - я уже пробовал на 4SHG до 900 шагов/сек., это 14400 микрошагов/сек. И планирую попробовать довести с плавным разгоном до 1500 шагов/сек (24000 микрошагов/сек.).
Какая там L297 с ее частотой ШИМ 18-20 кГц? У нее один период генератора будет длиннее времени микрошага, что уж говорить про регулирование? Нет, эта идея был мертва еще до рождения 😉
P.S. В предыдущем посте в ссылке на Linistepper ошибка, должно быть
Tech*ref без звездочки внутри.
<a href=“www.piclist.com/Tech*ref/io/stepper/…/index.htm” target=“www.piclist.com/Tech*ref/io/stepper/…/index.htm”></a>
Почему то движок упорно ее туда вбивает…
А если подумать?
<a href=“www.piclist.com/Tech*ref/io/stepper/…/index.htm”</a>
а вы с этого сайта схему собираете? или свою?
а вы с этого сайта схему собираете? или свою?
Мой пост под №3 в этой ветке:
“На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов), на сдвоенном 5-ти вольтовом rail-to-rail ОУ MCP6022 и четырех TIP122 сделаны генератоы тока, питающие обмотки. Для выбора фазы вместо транзисторов BC337 (как в Linistepper) использованы выходы PIC.”
Т.о. очевидно, что схема своя.
Я уже писал, что у Linistepper есть недостатки не связанные с необходимостью рассеивать много тепла:
- неточно резисторами/диодами формируется аппроксимация SIN, сложно настраивать уровни,
- параметры генератора тока зависят от конкретных экземпляров транзисторов TIP122,
- температурная нестабильность,
- регулировка тока производится подбором мощных постоянных резисторов (это очень неудобно).
Я не знаю, почему автор пошел по этому пути. Возможно это были его первые эксперименты с микроконтроллерами. Ничем другим объяснить любовь к PIC16F84 (на котором первоначально был сделан Linistepper) я не могу - его использование явно неадекватно поставленной задаче.
У меня схема лишена всех этих недостатков. Если будет достаточно много желающих - нарисую и выложу в свободный доступ. Однако сразу предупрежу, что практического толка с этого будет пока немного: - работа над схемой не закончена, продолжаю искать пути снижения рассеиваемой мощности,
- уже имеющаяся прошивка микроконтроллера чисто тестовая,
- вращение двигателя управляется кнопками, а не от компьютера, так удобнее отлаживать железо и прошивку микроконтроллера.
У меня схема лишена всех этих недостатков. Если будет достаточно много желающих - нарисую и выложу в свободный доступ. Однако сразу предупрежу, что практического толка с этого будет пока немного:
- работа над схемой не закончена, продолжаю искать пути снижения рассеиваемой мощности,
- уже имеющаяся прошивка микроконтроллера чисто тестовая,
- вращение двигателя управляется кнопками, а не от компьютера, так удобнее отлаживать железо и прошивку микроконтроллера.
Желающих много, потому что многи не дружат электроникой. Я например купил у imafania контроллер на PIC с полевиками на выходе для униполярного двигателя, ну и что самое что мог разогнать до 400 мм мин, а дальше уходит в резонанс. Не мог разобраться, знания не хватает. Еще греются как утюги - когда греются, самое смешное иногда и не греются. Хотел с продавцом проконсультироваться, а он не отвечает, продавать продает. 😦 . Для меня главное что бы контроллер выдавал стабильно мощность и динамику, а лишнее тепло можно гасить радиаторами и куллерами если это приемлемо. Вот такое мое дилетанское мнение.
продолжаю искать пути снижения рассеиваемой мощности
синусоиду создавайте ШИМ-ом.
синусоиду создавайте ШИМ-ом.
- Антон, Вы опять невнимательно читаете:
"На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов)… " - То, что SIN/COS формируются ШИМ а не линейным ЦАП, никак не поможет снизить рассеиваемую мощность генератора тока, работающего в линейном режиме. Фактически ШИМ это просто однобитная разновидность ЦАП.
Ключевой режим не предлагать! Я не хочу (по крайней мере сейчас) связываться с ключевыми режимами регулирования тока.
…ну и что самое что мог разогнать до 400 мм мин, а дальше уходит в резонанс.
Что значит 400 мм мин?
Если 400 полных оборотов в минуту, да еще при 200 шагов на оборот, то выходит совсем неплохо:
(400/60)*200=1333 шагов в секунду!
Для ДШИ200-2, 200-3 максимальная частота приемистости 1000 Гц (шагов в секунду).
А если, все же, мм - то пересчитайте их в обороты, исходя из параметров своей механики.
Может, все же, все совсем не так плохо как кажется?
Кстати, неплохое средство для повышения скорости шагания - увеличение напряжения питания двигателя. У вас оно какое?
Кстати, неплохое средство для повышения скорости шагания - увеличение напряжения питания двигателя. У вас оно какое?
Полный шаг или полушаг, или что еще выдает контроллер не знаю. Продовец не ответил, я сам не удосужился посчитать. Напряжение подавал 12в от компьютерного блок питания, гонял через ТурбоСНС, выставляя максимальную частоту и длину импульса, на котором стабильно шагал движок, без пропуска и резонанса, ТС пересчитывает и показывает скорость. Не помню какую частоту задавал, но скорость макимальная без сбоя получилась 400 мм/мин при шаге винта 2мм. Движок униполярный 3в, 3А, на 1ом между центральным и крайними проводами.
Полный шаг или полушаг, или что еще выдает контроллер не знаю. Продовец не ответил, я сам не удосужился посчитать. Напряжение подавал 12в от компьютерного блок питания, гонял через ТурбоСНС, выставляя максимальную частоту и длину импульса, на котором стабильно шагал движок, без пропуска и резонанса, ТС пересчитывает и показывает скорость. Не помню какую частоту задавал, но скорость макимальная без сбоя получилась 400 мм/мин при шаге винта 2мм. Движок униполярный 3в, 3А, на 1ом между центральным и крайними проводами.
Получается 400/2=200 (об/мин)
Если двигатель делает полный оборот за 200 шагов, то выходит:
(200/60)*200= 667 (шагов/сек) - совсем наплохо для 12 В питания.
А какое напряжение двигателя? Если на нем не написано, можно посчитать:
- померить сопротивление обмотки фазы
- умножить сопротивление на ток (3 А)
По моей практике с маломощными ДШИ200, 4SHG выходило, что напряжение нужно выше 20 В, чтобы он шагал 1000 и больше в секунду.
Попробуйте поднять напряжение питания двигателей, должно помочь.
А какое напряжение двигателя? Если на нем не написано, можно посчитать:
- померить сопротивление обмотки фазы
- умножить сопротивление на ток (3 А)
Выше писал напряжение 3В, ток 3А, сопротивление одной ветки обмотки 1ом, униполярный.