Регистрация
 
Добро пожаловать на форум об электродвигателях!

Расчет разгона/замедления ШД (SMSD-8.0)
Прочитано 476 раз
* 14 Февраля 2018, 17:19:51
Добрый день.
Пытаюсь плавно разогнать, а затем остановить ШД (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?

Записан


* 15 Февраля 2018, 10:09:56
#1
Шаговый двигатель перемещается дискретно, поэтому закон непрерывного линейного движения в этом случае не работает.
Если нужно именно рассчитать - нужно иметь ввиду, что все перемещение ШД - это раскладка на множество микроперемещений, каждое из которых можно рассматривать как отдельный отрезок движения величиной в один микрошаг.

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

Записан


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

Записан


* 16 Февраля 2018, 15:33:05
#3
Кусок кода отправлен Вам в личном сообщении.

Записан