eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2023-03-04 10:26 pm

К рампу шаговых двигателей

Всем известно, что традиционный трапециевидный рамп (когда скорость изменяется по трапеции) на траектории движения дает четыре рывка: каждый раз, как ускорение испытывает бесконечный скачок (т.е. в начале движения, при достижении максимальной скорости, в начале торможения и в конце движения). Фактически, в конце движения это не ощущается, т.е. рывка три. И их хорошо слышно (этим неприятным "движением робота"). В моменты рывков вполне возможны пропуски шагов, если мы пытаемся выжать максимальные скорости и приближаем ускорение к предельным возможностям шаговика. А правильней хотя бы сделать трапециевидным ускорение, как на картинке:

Здесь условно обозначены: синим - ускорение, красным - скорость, оранжевым - перемещение.

Расчеты у меня уже третий вечер занимают (из-за рассеянности постоянно какие-то косяки допускаю при интегрировании), но в простейшем случае, когда третья производная численно равна ускорению, немного упрощаются (правда, я еще не добавлял начальной минимальной скорости: стартовать с нуля и тормозить на нуле фактически означает бессмысленную потерю времени; как-нибудь дальше полный расчет сделаю). Для конечного автомата все упрощается обратимостью: на первом участке роста ускорения относительное перемещение равно оному на последнем участке и так далее.
В случае предложенного допущения получаем, что относительные перемещения на обеих трапециях изменения ускорения равны Vmax/2(Vmax/α-1), где α — максимальное ускорение (и, соответственно, скорость изменения ускорения). Можно и время перемещения определить: в данном случае оно составит Vmax/α + S/Vmax + 1 (где S — заданное перемещение). Если участок с максимальной скоростью вырождается в точку, минимальное время будет равно 2(Vmax/α+1). А при вырождении в точку еще и участков с постоянным ускорением — 4 секунды (перемещение при этом составит 10α/6).
Т.о., если в случае трапециевидного рампа у нас было три состояния КА (ускорение, максимальная скорость, замедление), в данном же случае их будет семь! И вариантов движения будет больше (трапеция могла лишь выродиться в треугольник с постепенно уменьшающимся максимумом, а здесь же сначала выродится в точку участок с максимальной скоростью, затем график ускорения выродится в треугольный). Ну и везде предел наступает, когда выгодней движение с постоянной минимальной скоростью. Скажем, за одну секунду с треугольным профилем ускорения будет пройдено α/16 шагов, т.е. если минимальная скорость будет выше этого значения, то выгодней будет двигаться с постоянной минимальной скоростью. И тут вспоминаем, что начинаем-то мы тоже с минимальной скорости (и заканчиваем ею) → в нашем случае треугольный профиль ускорения никогда не выродится в нуль. Узбагаиваемся…
Допуская кучу допущений, получаем все достаточно просто, но в реальности таки надо проверять на реальной системе. Вполне возможно, что скорость изменения ускорения может быть куда выше, и на максимальное ускорение мы сможем выйти быстрей, чем за одну секунду (т.е. введем еще и параметр β — скорость изменения ускорения). Как-нибудь намедни надо будет еще листика 4-5 потратить, да пересчитать все в общих параметрах.
А пока стоит определиться с базовыми вещами: как нам вычислить, скажем, предельное ускорение. Ничего сложного здесь нет: берем данные о максимальном моменте ШД, M.
Если мы крутим турель с моментом I, то получаем второй закон Ньютона в виде M=Iε (ε — угловое ускорение). "На всякий случай" можно еще на 0.7 умножить результат, т.е. ε=0.7M/I. У нас этот параметр не в радианах/с² измеряется, а в шагах/с², т.е. для стандартного двигателя с 200ш/об нужно умножить на 200/(2π), получаем: α=22.3M/I.
Если же двигаем горизонтально (для вертикали нужно еще g добавить для случая движения вверх) платформу массой m, то получаем уже F=ma, и нужно пересчитать момент в F, а ускорение в α. Пусть шаг винта равен δ. Из равенства работ 2πM=Fδ получаем: F=2πM/δ. Умножим еще на те же 0.7 для учета трения (а фактически, возможно, даже 0.3 надо будет использовать): F=4.4M/δ. Линейное ускорение легко преобразуется в шаги: α=200a/δ. Итого: 4.4M/δ=m·δα/200 → α=880M/(δ²m).

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org