ШИМ против линейного регулятора тока в микрошаговом драйвере для униполярного двигателя.

Anton_M
  1. по-подробней.

ШИМ рулез ! и форева. просто “надо уметь их готовить”

ATLab
Anton_M:
  1. по-подробней.

На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов), на сдвоенном 5-ти вольтовом rail ОУ MCP6022 и четырех TIP122 сделаны генератоы тока, питающие обмотки. Для выбора фазы вместо транзисторов BC337 (как в Linistepper) использованы выходы PIC.

ШИМ рулез ! и форева. просто “надо уметь их готовить”

Ага, я тоже так думал, потому и начал с ШИМ. Однако на россыпи все получается заметно сложнее токового управления и намного капризнее.

Anton_M

не надо самому мудрить - возмите АпНоут микрочип, авр, моторола, 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 Вт и ими рулил.

Можно и усилителями для магнитол рулить так же успешно но за денюжку.

Проблема в том что тут и так порой жалуются на нехыватку мощи БП а линейный режим большую часть мощности отправит в утиль.

ATLab
Anton_M:

не надо самому мудрить - возмите АпНоут микрочип, авр, моторола, 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? 😃

Anton_M
ATLab:

Антон, извиняюсь, Вы вообще читаете о чем идет разговор?

извините.

ATLab:

L297 очень плохо работает при низком опорном, значит около 0 будут провалы в регулировании.

дак нужно усиливать сигнал токового датчика - lm358 простейший взять или lm2904, и резисторы не нужны большие, достаточно дорожки на плате.

7 days later
GOOD
ATLab:

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

Вы имели ввиду шага и полушага для униполярного двигателя?

ATLab:
  1. контроллер с аналоговым генератором тока - по такому же принципу сделан Linistepper.

что за зверь такой Linistepper, может я отстал от жизни? где почитать ?

ATLab
GOOD:

Вы имели ввиду шага и полушага для униполярного двигателя?
что за зверь такой Linistepper, может я отстал от жизни? где почитать ?

Нет, речь идет именно о микрошаге для униполярного двигателя: полный шаг разбивается на 16 микрошагов. Для повышения точности позиционирования этот режим обычно не используется, его назначение - плавность вращения и устранение резонанса. Мне это нужно в основном для плавности.

Про Linistepper читайте www.piclist.com/tech*ref/io/stepper/…/index.htm
ну и в ветке про “Двигатели на хоббийных cnc и управление ими”
rcopen.com/forum/f41/topic23068/160
Там, правда немного. Основной разбор на все же на piclist.com.

Anton_M
ATLab:

Какой микрошаг с L297 для униполярного двигателя?

У нее же общий вход опорного для обоих каналов, поэтому SIN/COS на одной микросхеме не получить

так можно регулировать усиление в каналах ОС по току.

ATLab
Anton_M:

так можно регулировать усиление в каналах ОС по току.

А если подумать?

Если установить опорное напряжение для 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>

Почему то движок упорно ее туда вбивает…

ATLab
GOOD:

а вы с этого сайта схему собираете? или свою?

Мой пост под №3 в этой ветке:
“На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов), на сдвоенном 5-ти вольтовом rail-to-rail ОУ MCP6022 и четырех TIP122 сделаны генератоы тока, питающие обмотки. Для выбора фазы вместо транзисторов BC337 (как в Linistepper) использованы выходы PIC.”
Т.о. очевидно, что схема своя.
Я уже писал, что у Linistepper есть недостатки не связанные с необходимостью рассеивать много тепла:

  • неточно резисторами/диодами формируется аппроксимация SIN, сложно настраивать уровни,
  • параметры генератора тока зависят от конкретных экземпляров транзисторов TIP122,
  • температурная нестабильность,
  • регулировка тока производится подбором мощных постоянных резисторов (это очень неудобно).
    Я не знаю, почему автор пошел по этому пути. Возможно это были его первые эксперименты с микроконтроллерами. Ничем другим объяснить любовь к PIC16F84 (на котором первоначально был сделан Linistepper) я не могу - его использование явно неадекватно поставленной задаче.
    У меня схема лишена всех этих недостатков. Если будет достаточно много желающих - нарисую и выложу в свободный доступ. Однако сразу предупрежу, что практического толка с этого будет пока немного:
  • работа над схемой не закончена, продолжаю искать пути снижения рассеиваемой мощности,
  • уже имеющаяся прошивка микроконтроллера чисто тестовая,
  • вращение двигателя управляется кнопками, а не от компьютера, так удобнее отлаживать железо и прошивку микроконтроллера.
Baha
ATLab:

У меня схема лишена всех этих недостатков. Если будет достаточно много желающих - нарисую и выложу в свободный доступ. Однако сразу предупрежу, что практического толка с этого будет пока немного:

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

Желающих много, потому что многи не дружат электроникой. Я например купил у imafania контроллер на PIC с полевиками на выходе для униполярного двигателя, ну и что самое что мог разогнать до 400 мм мин, а дальше уходит в резонанс. Не мог разобраться, знания не хватает. Еще греются как утюги - когда греются, самое смешное иногда и не греются. Хотел с продавцом проконсультироваться, а он не отвечает, продавать продает. 😦 . Для меня главное что бы контроллер выдавал стабильно мощность и динамику, а лишнее тепло можно гасить радиаторами и куллерами если это приемлемо. Вот такое мое дилетанское мнение.

Anton_M
ATLab:

продолжаю искать пути снижения рассеиваемой мощности

синусоиду создавайте ШИМ-ом.

ATLab
Anton_M:

синусоиду создавайте ШИМ-ом.

  1. Антон, Вы опять невнимательно читаете:
    "На двух ШИМ генераторах PIC16F873 сделана генерация SIN/COS (16 микрошагов)… "
  2. То, что SIN/COS формируются ШИМ а не линейным ЦАП, никак не поможет снизить рассеиваемую мощность генератора тока, работающего в линейном режиме. Фактически ШИМ это просто однобитная разновидность ЦАП.
    Ключевой режим не предлагать! Я не хочу (по крайней мере сейчас) связываться с ключевыми режимами регулирования тока.
Baha:

…ну и что самое что мог разогнать до 400 мм мин, а дальше уходит в резонанс.

Что значит 400 мм мин?
Если 400 полных оборотов в минуту, да еще при 200 шагов на оборот, то выходит совсем неплохо:
(400/60)*200=1333 шагов в секунду!
Для ДШИ200-2, 200-3 максимальная частота приемистости 1000 Гц (шагов в секунду).

А если, все же, мм - то пересчитайте их в обороты, исходя из параметров своей механики.
Может, все же, все совсем не так плохо как кажется?

Кстати, неплохое средство для повышения скорости шагания - увеличение напряжения питания двигателя. У вас оно какое?

Baha
ATLab:

Кстати, неплохое средство для повышения скорости шагания - увеличение напряжения питания двигателя. У вас оно какое?

Полный шаг или полушаг, или что еще выдает контроллер не знаю. Продовец не ответил, я сам не удосужился посчитать. Напряжение подавал 12в от компьютерного блок питания, гонял через ТурбоСНС, выставляя максимальную частоту и длину импульса, на котором стабильно шагал движок, без пропуска и резонанса, ТС пересчитывает и показывает скорость. Не помню какую частоту задавал, но скорость макимальная без сбоя получилась 400 мм/мин при шаге винта 2мм. Движок униполярный 3в, 3А, на 1ом между центральным и крайними проводами.

ATLab
Baha:

Полный шаг или полушаг, или что еще выдает контроллер не знаю. Продовец не ответил, я сам не удосужился посчитать. Напряжение подавал 12в от компьютерного блок питания, гонял через ТурбоСНС, выставляя максимальную частоту и длину импульса, на котором стабильно шагал движок, без пропуска и резонанса, ТС пересчитывает и показывает скорость. Не помню какую частоту задавал, но скорость макимальная без сбоя получилась 400 мм/мин при шаге винта 2мм. Движок униполярный 3в, 3А, на 1ом между центральным и крайними проводами.

Получается 400/2=200 (об/мин)
Если двигатель делает полный оборот за 200 шагов, то выходит:
(200/60)*200= 667 (шагов/сек) - совсем наплохо для 12 В питания.

А какое напряжение двигателя? Если на нем не написано, можно посчитать:

  • померить сопротивление обмотки фазы
  • умножить сопротивление на ток (3 А)

По моей практике с маломощными ДШИ200, 4SHG выходило, что напряжение нужно выше 20 В, чтобы он шагал 1000 и больше в секунду.

Попробуйте поднять напряжение питания двигателей, должно помочь.

Baha
ATLab:

А какое напряжение двигателя? Если на нем не написано, можно посчитать:

  • померить сопротивление обмотки фазы
  • умножить сопротивление на ток (3 А)

Выше писал напряжение 3В, ток 3А, сопротивление одной ветки обмотки 1ом, униполярный.

ATLab
Baha:

Выше писал напряжение 3В, ток 3А, сопротивление одной ветки обмотки 1ом, униполярный.

Старость, маразм, слепота… 😉
Сложно это, заочно что-то советовать.
По параметрам, на первый взгляд, должно быть достаточно 12 В.
А он вообще с какой скоростью может шагать? Что-нибудь известно?
Может там ротор пару килограмм весит, да еще нагрузка - обязательно нужно плавно разгонять.
Предусмотрен в программе плавный разгон (я то с CNC софтом не знаком, мне предстоит самому его писать, поэтому и вопрос такой)?

Baha
ATLab:

Предусмотрен в программе плавный разгон (я то с CNC софтом не знаком, мне предстоит самому его писать, поэтому и вопрос такой)?

Да, есть опция где шаг разгона можно выставлять. И зачем писать, есть отличный TurboCNC, бесплатный поддерживает 8 координат. Простой до чертиков. 😃

ATLab
Baha:

Да, есть опция где шаг разгона можно выставлять. И зачем писать, есть отличный TurboCNC, бесплатный поддерживает 8 координат. Простой до чертиков. 😃

Может попробовать поманипулировать разгоном?

Моя задачка отличается от CNC в том смысле, что не фрезер/гравер/сверлилка/струна и т.п.
Нужно просто перемещать головку от заданной координаты к другой с максимально возможной скоростью и плавностью. Управление должно быть обязательно под Windows. По моему, проще написать специальную программу, которая бы просто слала очередные координаты контроллеру, а он уж сам крутил движок, чем приспосабливать TurboCNC. Хотя не буду утверждать категорически.