Основы теории управления
Last updated
Was this helpful?
Last updated
Was this helpful?
Изучению общих принципов управления автоматическими системами (частным случаем которых являются роботы) посвящена отдельная научная дисциплина, которая называется: Теория Автоматического Управления (ТАУ). Те из вас, кто при поступлении в высшие учебные заведения выбрал (или выберет) себе инженерно-техническую специализацию, скорее всего, будут изучать эту дисциплину подробно. Мы никоим образом не претендуем на то, чтобы объяснять вам теорию управления в каком-либо значимом объеме. В данном уроке разберем самые начальные и простые основы этой теории, которые позволят нам в дальнейшем лучше понимать ROS. По сути мы возьмем основные определения и принципы теории управления и будем ими пользоваться для объяснения подходов при написании программ для ROS.
Что же мы понимаем под словом «управлять»? Что это значит в привычном нам смысле?
Управлять – это значит при помощи каких-то инициируемых нами воздействий заставлять управляемый объект делать то, что мы хотим.
Или классическое определение звучит следующим образом:
Управление – это такая организация технологического процесса, которая обеспечивает достижение поставленной цели.
Давайте рассмотрим пример с роботом, чтобы на нем понять, из чего складывается процесс управления.
Итак, допустим, мы хотим, чтобы робот ехал “прямо”.
Абстрагируясь от того, как именно будет реализовываться управление роботом, давайте представим, что вообще нужно, чтобы заставить робота двигаться в направлении «прямо»?
Для начала нам надо определить, что вообще такое направление “прямо”. Представим, что есть система координат, связанная с роботом, начало которой расположено в центре робота, таким образом что ось X направлена прямо по направлению движения робота вперед, а оси Y и Z ориентированы по правилу правой руки, т.е. Y - влево, а Z - вверх.
Как вы видите, наш робот устроен так, что он может ехать только вперед или назад и поворачивать вокруг оси Z. При этом оси данной системы привязаны к роботу и следовательно при любой ориентации робота в пространстве, передняя часть робота всегда направлен вдоль оси Х связанной с роботом.
Очевидно, что для того, чтобы измерять текущую ориентацию робота, нам надо иметь какую-то еще одну систему отсчета, с которой мы и будем сравнивать наше текущее положение.
Такой системой отсчета выбирается начальное положение робота. Расположим оси этой системы так же, как и оси робота, по правилу правой руки. Но сделаем их неподвижными – прикрепим их к полу.
Таким образом текущее направление это и есть угол между осями Х неподвижной системы координат и подвижной системы, привязанной к роботу.
А направление “прямо” в нашем случае – это такое направление робота, что оси Х этих систем отсчета параллельны.
Теперь давайте поймем, что нам нужно для того, чтобы робот ехал прямо.
Во-первых, мы должны зафиксировать целевое направление, в котором мы хотим, чтобы робот двигался, то есть, нам надо сделать так, чтобы робот помнил это направление и не изменял его до получения нового целевого направления.
Во-вторых, нам надо знать, куда робот направлен в данный момент. И в случае, если текущее направление движения робота совпадает с целевым – нам ничего не нужно делать. А вот если текущая ориентация робота отличатся?
Тогда, мы должны дать роботу команду на поворот в сторону противоположную от отклонения, то есть, если робот отклонился влево от первоначального направления, нам надо чтобы он повернул вправо. И наоборот.
Итак что же у нас получается? Есть некий объект – робот, мы определили параметр объекта, которым хотим управлять, – это направление его движения, и определили способ управления этим параметром – это поворот, определили цель - направление прямо, а также условие, которое определяет необходимость воздействия на робота в зависимости от изменяющейся ситуации - поворачиваться против отклонения от цели.
Как раз в этом и заключается один из основных принципов управления автоматической системой – так называемый принцип обратной связи (или как еще его называют – принцип управления по отклонению).
Обратная связь — одно из основных понятий теории управления, а принцип управления с обратной связью получил наибольшее распространение в связи с простотой его реализации на практике.
Теперь сформулируем то, что сейчас разобрали в виде терминов и в дальнейшем будем применять их при решении задач управления роботом.
Объект управления – робот (или его часть), автоматическая система или любой иной объект, состоянием которого мы хотим управлять;
Состояние объекта управления – некая характеристика (параметр), которую мы измеряем и сравниваем с целевым значением для понимания, какое управляющее воздействие требуется. В нашем случае это - “направление”;
Цель (или в некоторых источниках вы можете встретить определение «уставка») – целевое значение состояния объекта управления. В нашем случае цель – "прямо":
Регулятор – некоторое устройство, реализующее правила управления. В нашем случае это, собственно, правило парировать отклонение от цели поворотом.
В дальнейшем мы будем часто использовать такие понятия как входные и выходные сигналы. Тут необходимо уточнить такой момент: один и тот же сигнал может быть как входным, так и выходным. Все зависит от того, с какой «стороны» мы на него смотрим. Например, выходной сигнал регулятора о повороте направо является входным сигналом для робота. И, наоборот, выходной сигнал о текущей ориентации робота является входным для регулятора.
В логике ROS мы будем говорить о входных сигналах как о сигналах, поступающих на регулятор, и выходных сигналах как о сигналах, выходящих из регулятора и, соответственно, поступающих на робота.
Весь этот механизм, благодаря которому регулятор получает входные сигналы и передает на объект управления выходные сигналы, мы будем называть контуром обратной связи.
Давайте разберем следующую схему, иллюстрирующую контур обратной связи, и переформулируем нашу изначальную задачу в терминах теории управления, которые мы описали:
Объект управления – наш робот. Мы будем управлять его характеристикой “Направление”;
Цель – направление прямо;
Регулятор – программа, входным сигналом для которой будет значение направления, а выходным сигналом – угол поворота робота.
На данной схеме мы видим еще один элемент, про который раньше не говорили. Это возмущающее воздействие. Что это такое?
Возмущающее воздействие - это воздействие на объект управления, которое приводит к отклонению состояние объекта управления от целевого. У нас это могут быть неровности пола, неидеальность приводов колес, столкновение с препятствием, то есть всё, что будет мешать роботу двигаться прямолинейно.
Таким образом сформулированный нами принцип управления роботом соответствует классическому определению управления автоматической системой с обратной связью.