Алгоритмы планировщиков движения электропривода
Добавлено: 22 фев 2019, 08:41
Здравствуйте.
В работе над нашими изделиями возникла необходимость реализации управления не только по заданию скорости (с джойстика, например) или указания двигаться в конкретную точку и в ней "стоять", но также и двигаться по четко заданному маршруту. В предыдущих проектах мы данную возможность реализовали с помощью задатчика интенсивности - суть интерполятора положения, который целевой линейный маршрут разбивал на шаги и "скармливал" их на вход регулятора положения сервопривода (речь идет о трехконтурной системе подчиненного регулирования ДПТ, а в дальнейшем и BLDC). В целом, если честно, результат был так себе: если интервалы между шагами были меньше постоянной времени сервопривода в целом (с точки зрения управления по положению), то рабочий орган в итоге вырисовывал "лесенку" вместо прямой линии, если же больше - то ввиду своей инерционности сервопривод сглаживал шаги, но также возникало запаздывание рабочего органа и на "изломах" маршрута опять-таки острые углы либо сглаживались, либо разбивать такие маршруты на несколько прямых отрезков, между которыми привод останавливался. В целом, ввиду того, что в предыдущих проектах эти системы применялись в автоматизированных установках полива (для помывки техники и пожаротушения), то, можно сказать, эта система работала на отлично - для нее 1.5 - 2 градуса отклонения от маршрута, пока она его отрабатывает - это отлично, а переход в конечную точку или отработка задания по скорости выполнялись с еще большей точностью.
Однако, в целях самообразования и также в связи с тем, что в дальнейшем нам, возможно, придется иметь дело с более прецизионными системами позиционирования, в задачи которых будет входить и четкое следование маршруту, и слежение за целью, хотелось бы тему планирования движения освоить глубже. К сожалению, информации о планировщиках движения в сети очень мало нашел - может быть плохо искал, но все же. Поэтому, во-первых, хотел бы попросить направить и помочь с тем, где можно подробнее узнать о существующих планировщиках движения. А во-вторых, посоветоваться на счет того, верно ли мое собственное видение такого планировщика или нет.
Мое видение заключается в том, чтобы явно регулятор положения исключить, а задачи регулирования положения возложить непосредственно на планировщик. Так, скажем, в первом приближении, задачей планирования и слежения за положением мог бы заниматься, скажем, фильтр Калмана, которому бы на вход "скармливался" текущий маршрут линейного перемещения рабочего органа, который бы преобразовывался в задания скоростей для приводов. Далее, в реальном времени, фильтр производил бы оценку состояния по модели используемого сервопривода, а в качестве измерения на текущем шаге использовал бы обратную связь с датчика положения рабочего органа. Ну и далее, все классически, на основании оценки состояния и реального измерения, фильтр в реальном времени производил бы коррекцию задания скоростей на сервоприводы, чтобы минимизировать ошибку позиционирования. Мои соображения, почему непосредственно ПИ-регулятор положения стоило бы исключить в явном виде и задачи регулирования возложить на планировщик, следующие:
1) если планировщик, скажем, реализовать с помощью фильтра Калмана, то в случае трехконтурной системы подчиненного регулирования оценку состояния пришлось бы производить для всех трех контуров регулирования, что усложняло бы модель и увеличивало бы нагрузку на контроллер;
2) поскольку при настройке на технический оптимум (а у нас пока что это удавалось) регулятор положения вообще вырождается в П-регулятор, то, очевидно, с задачей пропорционального регулирования фильтр Калмана мог бы справиться без труда.
Хотел бы уточнить у вас, насколько верны мои мысли. Сразу прошу прощения, если где-то напутал с терминологией касательно фильтра Калмана, т.к. довольно давно им уже не занимался.
В работе над нашими изделиями возникла необходимость реализации управления не только по заданию скорости (с джойстика, например) или указания двигаться в конкретную точку и в ней "стоять", но также и двигаться по четко заданному маршруту. В предыдущих проектах мы данную возможность реализовали с помощью задатчика интенсивности - суть интерполятора положения, который целевой линейный маршрут разбивал на шаги и "скармливал" их на вход регулятора положения сервопривода (речь идет о трехконтурной системе подчиненного регулирования ДПТ, а в дальнейшем и BLDC). В целом, если честно, результат был так себе: если интервалы между шагами были меньше постоянной времени сервопривода в целом (с точки зрения управления по положению), то рабочий орган в итоге вырисовывал "лесенку" вместо прямой линии, если же больше - то ввиду своей инерционности сервопривод сглаживал шаги, но также возникало запаздывание рабочего органа и на "изломах" маршрута опять-таки острые углы либо сглаживались, либо разбивать такие маршруты на несколько прямых отрезков, между которыми привод останавливался. В целом, ввиду того, что в предыдущих проектах эти системы применялись в автоматизированных установках полива (для помывки техники и пожаротушения), то, можно сказать, эта система работала на отлично - для нее 1.5 - 2 градуса отклонения от маршрута, пока она его отрабатывает - это отлично, а переход в конечную точку или отработка задания по скорости выполнялись с еще большей точностью.
Однако, в целях самообразования и также в связи с тем, что в дальнейшем нам, возможно, придется иметь дело с более прецизионными системами позиционирования, в задачи которых будет входить и четкое следование маршруту, и слежение за целью, хотелось бы тему планирования движения освоить глубже. К сожалению, информации о планировщиках движения в сети очень мало нашел - может быть плохо искал, но все же. Поэтому, во-первых, хотел бы попросить направить и помочь с тем, где можно подробнее узнать о существующих планировщиках движения. А во-вторых, посоветоваться на счет того, верно ли мое собственное видение такого планировщика или нет.
Мое видение заключается в том, чтобы явно регулятор положения исключить, а задачи регулирования положения возложить непосредственно на планировщик. Так, скажем, в первом приближении, задачей планирования и слежения за положением мог бы заниматься, скажем, фильтр Калмана, которому бы на вход "скармливался" текущий маршрут линейного перемещения рабочего органа, который бы преобразовывался в задания скоростей для приводов. Далее, в реальном времени, фильтр производил бы оценку состояния по модели используемого сервопривода, а в качестве измерения на текущем шаге использовал бы обратную связь с датчика положения рабочего органа. Ну и далее, все классически, на основании оценки состояния и реального измерения, фильтр в реальном времени производил бы коррекцию задания скоростей на сервоприводы, чтобы минимизировать ошибку позиционирования. Мои соображения, почему непосредственно ПИ-регулятор положения стоило бы исключить в явном виде и задачи регулирования возложить на планировщик, следующие:
1) если планировщик, скажем, реализовать с помощью фильтра Калмана, то в случае трехконтурной системы подчиненного регулирования оценку состояния пришлось бы производить для всех трех контуров регулирования, что усложняло бы модель и увеличивало бы нагрузку на контроллер;
2) поскольку при настройке на технический оптимум (а у нас пока что это удавалось) регулятор положения вообще вырождается в П-регулятор, то, очевидно, с задачей пропорционального регулирования фильтр Калмана мог бы справиться без труда.
Хотел бы уточнить у вас, насколько верны мои мысли. Сразу прошу прощения, если где-то напутал с терминологией касательно фильтра Калмана, т.к. довольно давно им уже не занимался.