Ivanoff-iv писал(а):какие соотношения х/у планируются?
какие допустимы отклонения?
насколько часты сигналы с энкодера?
(попробую управляющий код накидать)
чтобы не напрягать АЛУ делением, можно оперировать не скоростью, а периодом импульсов (это для ограничения рывков)
и менять этот период (добавлять или убавлять в зависимости от требований) на какую то часть. (например T+=((T>>4)+1);)
Эти параметры зависят от механики станка. Отношение скоростей моторов (скорости измеряются в числе импульсов на один оборот, импульсы - это сигнал энкодера или шаги ШД):
SpeedM2 / SpeedM1 = x /y = spacing / screw_pitch * M2_steps / enc_pulses.
spacing - шаг намотки, пусть будет от 0,01 до 1 мм
screw_pitch - шаг винта, от 1 до 4 мм (больше вряд ли надо)
M2_steps - чиcло микрошагов двигателя укладчика на один оборот, от 200 до 200 * 16 = 3200
enc_pulses - число импульсов с энкодера на один оборот катушки, от 20 до 40
Значения "среднестатистические", просто, чтобы прикинуть.
Итого получается x/y от 0,0125 до 40. Весьма широкий диапазон.
Двигатель намотки вращается со скоростью до 5 об/сек. Поэтому частота импульсов с энкодера небольшая, и вполне можно использовать деление. Но нужно как-то обеспечить точность и повторяемость перемещений. Особенно важно, чтобы при смене направления движения укладчика он возвращался точно в исходное положение поле того же числа оборотов катушки.
Ivanoff-iv писал(а):Погоди.... а намотка тоже шаговиком? и от этого же мк?
тогда всё вообще просто становится...
...
один мотор вращается со скоростью a/x, второй - a/y... отношение скоростей вращения моторов будет x/y.
Намотка шаговиком как раз реализована в той программе, что есть сейчас. Нужно придумать алгоритм для того случая, когда намотка осуществляется коллекторным двигателем, а информацию о положении катушки МК получает с энкодера.
Что-то мне подсказывает, что нормального решения без ПИД-регулятора тут не найти. Может, действительно стоит взять более мощный ШД, и при необходимости добавить ещё и редуктор (например, 1:8, уменьшив при этом микрошаг на драйвере)?