reanon
33960-12010 (33960-12030)
zis100
Ты поднял актуальную тему. Попробовал твой алгоритм, у меня аналогичный контроллер коллекторных двигателей - фигово получилось, действительно плохое позиционирование.
Chip
Может ты нам с zis100 подскажешь как оптимально отпозиционировать привод. В PID регулировании я не совсем понял, что можно подбирать.
Сейчас имеем:
Обратная связь по датчику положения.
В нашей ситуации, можно управлять скоростью и временем. Током и напряжением контроллер сам управляет, не давая возможности их регулировки. Можно управлять частотой, но там градация 20кГц, 10кГц и ниже.
Причем скорость в начальный момент времени нужно сделать максимальной, чтобы стронуть привод (проверено).
По идее можно на короткий промежуток времени (мс) выдать максимальную скорость, затем накат (скорость 0), реверс или торможение, и так в цикле. Но у меня это не получилось, двигатель просто стоит и воет, увеличение времени запуска с максимальной скоростью приводит к банальному пролету двигателя...
Пока оптимальный такой вариант в цикле:
do
{
ReadSensors(); // чтение положения привода SelectGearSensor1
dystance=abs(SelectGearSensor1-End_position); // End_position - к чему стремимся
.... тут проверка на соотвествие позиции
....
и самое главное:
Pololuqik.setM1Speed(127); // макс скорость
delayMicroseconds(500);
Pololuqik.setM1Speed(127/2); // снижение скорости
delayMicroseconds(500);
} while
Точность позиционирования средняя, хотелось бы выше, да и сбои бывают.




Ответить с цитированием