Расчет разгона/замедления ШД (SMSD-8.0)
 

Расчет разгона/замедления ШД (SMSD-8.0)

Автор strav, 14 февраля 2018, 17:19:51

« назад - далее »

strav

Добрый день.
Пытаюсь плавно разогнать, а затем остановить ШД (FL86STH118-4208А, блок управления SMSD-8.0).

Программа такая:
LD1*
BG*
EN*
SS1*
SD4000*
AL+1000*
MV10000*
AL-1000*
SD1*
MV8000*
ED*
ST*

Двигатель разгоняется, затем замедляется, а затем более 20 мин работает на скорости 1 ш/с.
Я рассчитал (по формулам из школьного курса физики), что замедление с 4000 ш/с до 1/с со скоростью 1000 ш/с2 будет выполнено за 8000 шагов. Но, вероятно, в блоке управления заложена другая математика и в итоге я ошибся более чем на 1000 шагов.
Вопросы такие:

  • Почему двигатель замедлился за меньшее кол-во шагов
  • Можно ли рассчитать сколько шагов займет ускорение/замедление со скорости V1 до скорости V2 с ускорением A?

Administrator

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

В Вашем случае проще известную величину подкорректировать путем подбора так, чтобы двигатель остановился, достигнув приемлемой для системы скорости. Если двигатель вращается 20 минут со скоростью 1 шаг в секунду, значит, в величине перемещения лишние 1200 шагов (60 * 20  * 1). Попробуйте перемещение 6800 шагов. Далее подкорректрируйте, если нужно будет.

strav

То что Вы советуете я уже сделал. У меня получилось 6648 шагов. Но для этого потребовалось не менее десяти итераций корректировки программы.
Делать это с каждым замедлением/ускорением в каждой программе будет довольно трудно.
Поэтому я и спрашиваю: можно ли это рассчитать?
То что "перемещение ШД - это раскладка на множество микроперемещений" я понимаю. И даже пытался прикинуть (сымитировать в программе на C), как блок управления мог бы выполнять раскладку ускорения/замедления на шаги. Но получить такой же результат, какой дает блок управления у меня не получилось.
Если прошивка блока управления написана на C или чем то похожем, возможно, меня бы устроил исходный код, относящийся к расчету величины шага при ускорении.

Administrator

Кусок кода отправлен Вам в личном сообщении.

ZharTheMad

Здравствуйте!
Чтобы не плодить тем, напишу в эту.
Не могли бы Вы объяснить:
1) Есть ли универсальный критерий "плавного" разгона? Есть шаговый актуатор с дискретностью перемещения 1,5 мкм и контроллер SMSD-1.5 с блоком питания на 24В. Для актуатора известно только максимально допустимое усилие на штоке в зависимости от частоты шагов (95Н при 200 шагов/сек, 75Н при 1200 шагов/сек). Скорее всего, я таких усилий не достигну, но для перестраховки хочу обеспечить наиболее плавный разгон до конечной скорости 1000 шагов/сек. Я хочу реализовать его таким образом:
LD1*
BG*
EN*
DL*
SS1*
SD100*
AL50*
SD200*
AL100*
SD1000*
AL200*
Если я всё реализовал правильно, сначала двигатель разгоняется с 1 до 100 шагов/сек с ускорением 50 шагов/сек^2, затем сразу, без паузы, со 100 до 200 шагов/сек с ускорением 100 шагов/сек^2, потом – с 200 до 1000 шагов/сек с ускорением 200 шагов/сек^2. Будет ли это считаться плавным разгоном?
2) Как всё-таки рассчитать число шагов, которые двигатель пройдёт за время ускорения? Топикстартер, можете поделиться алгоритмом раскладки ускорения на шаги?
3) Я правильно понимаю, что микрошаг не влияет на скорость вращения, он изменяет только разрешение, т.е. при дроблении ¼, 1 шаг/5 мсек превращается в 1 «шаг»/1,25 мсек, но и то и то - 1 оборот/мин? Также микрошаг снижает момент на данной скорости, а, значит, при одной и той же нагрузке, допустимую скорость?

Administrator

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

Алгоритм разгона отправим Вам в личном сообщении. Выкладывать его сюда не нужно.

Микрошаг физически влияет на угол поворота за один импульс. Т.е. при одной и той же установке скорости командой при разных величинах дробления фактическая скорость вращения вала будет разной.