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

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. Хотя не буду утверждать категорически.

GOOD

GOOD DAY

ATLab, при всем уважении
По моему разумению двигатель шаговый
и естно должен шагать или полушагать.
Дальнейшее дробление шага никакой практической
пользы для шаговика не имеет. (потеря мощности, нестабильность при нагрузках и т.п.)
Пусть кто нить напишет что он режет на 1/16 шага или 1/4 шага?
Например при шаге винта 2мм (в режиме полного шага)
получим точность 2/200= 0,01мм, в полушаге 2/400=0,005мм
думаю достаточно для станка хобийного класса.
для плавности муфты (судя по постам) вполне достаточно.

Это не высказывание против Вашей идеи
но было бы неплохо сделать разгон на 1/16 шага
и плавно переходить на 1/8 - 1/4 - 1/2 - полный шаг.
для контроллера работающего в линейном режиме
это возможно?
такой режим думаю был бы не плох.

GOOD LUCK

STEPMOTOR

Это не высказывание против Вашей идеи
но было бы неплохо сделать разгон на 1/16 шага
и плавно переходить на 1/8 - 1/4 - 1/2 - полный шаг.
для контроллера работающего в линейном режиме
это возможно?
такой режим думаю был бы не плох.

GOOD LUCK

Я против нечеого не имею ,но думаю что это невозможно ! т.к Вы в софт-е ставите кол-во шагов на оборот а следовательно если Ваш контроллер будет менять это значение то и будет получаться на выходе некорректное изделие. Есть конечно вариант сделать умный контроллер жрущий Ж-код и конролирующий изменение дробления шага.

ATLab
GOOD:

По моему разумению двигатель шаговый
и естно должен шагать или полушагать.
Дальнейшее дробление шага никакой практической
пользы для шаговика не имеет. (потеря мощности, нестабильность при нагрузках и т.п.)
Пусть кто нить напишет что он режет на 1/16 шага или 1/4 шага?

А я и не собираюсь резать, у меня совсем другая задача. Я так и написал об этом в предыдущем посте.
Насчет потери мощности и нестабильности не совсем согласен: наоборот, момент всегда имеет постоянное значение (в идеале), тогда как в полушаговом режиме без компенсации момента (обычное дело в простых контроллерах на L297) имеет место постоянное колебание величины момента - из-за того, что под током находится 2 или 1 катушка.

Например при шаге винта 2мм (в режиме полного шага)
получим точность 2/200= 0,01мм, в полушаге 2/400=0,005мм
думаю достаточно для станка хобийного класса.
для плавности муфты (судя по постам) вполне достаточно.

Это у Вас винт с шагом 2 (4) мм, и скорость перемещения, скажем, 10 (20) мм/сек.
А мне нужно хотя бы 300 мм/сек.

Это не высказывание против Вашей идеи
но было бы неплохо сделать разгон на 1/16 шага
и плавно переходить на 1/8 - 1/4 - 1/2 - полный шаг.
для контроллера работающего в линейном режиме
это возможно?
такой режим думаю был бы не плох.

Переключение размера шага при достижении определенной скорости можно сделать и в контроллере,
репу почесать и сделать. Проблема в другом - как это будет стыковаться с управляющей программой?
По-моему, никак. Все доступные мне схемы задают параметр шага перемычками/переключателями, в управляющих сигналах видел только DIR/STEP, изредка переход на пониженную мощность при простое. Я, правда, не знаток CNC софта, пусть меня поправят, если не то ляпнул 😃

Режим регулирования тока - ШИМ или линейный - никак не влияет на функционал контроллера.