Энергетика, техника управления, оптимизация и машинное обучение — I

В своем первом посте я хочу поделиться некоторыми своими мыслями о связи между различными темами, с которыми я столкнулся. По образованию я инженер-механик, а затем специализировался на теории управления роботами-манипуляторами во время моей магистерской программы, где я начал свое путешествие с AI/ML.

Существует множество объединяющих теорий между этими различными дисциплинами, и я часто размышляю о себе, пытаясь определить эти области, чтобы лучше понять каждую тему. Это может быть полезно, скажем, инженеру по управлению, который хочет окунуться в машинное обучение или наоборот, или людям, которые просто хотят взглянуть на другие области.

Сначала отказ от ответственности: этот пост предназначен только для того, чтобы поделиться некоторыми из моих интуитивных представлений в этой области, и, следовательно, он написан без особой академической строгости. Есть много книг, в которые хочется копнуть глубже. Лично я большой поклонник Математического введения в роботизированные манипуляции Мюррея et al. Глава 4 дает отличный обзор динамики роботов, а также теории управления, связанной с функциями Ляпунова.

Энергия

Мы знаем, что мир имеет тенденцию эволюционировать в состояние с меньшей энергией: вода течет вниз, тепло передается от горячих объектов к холодным и т. д. Давайте остановимся на двух конкретных примерах: мяч, катящийся по чашеобразной поверхности, и простой маятник. Вообще говоря, мяч в конце концов остановится на дне чаши, а маятник перестанет качаться в положении, направленном вниз, потому что наше общепринятое мнение говорит нам, что это состояния с низкой энергией.

Но как насчет сохранения энергии? Разве нам не говорили, что энергия сохранится? В наших примерах да, будут преобразования между потенциальной энергией и кинетической энергией, когда шар или маятник колеблются, но общая энергия (кинетическая + потенциальная) будет уменьшаться из-за трения. Мы знаем, что в конце концов они остановятся, а это означает, что кинетическая энергия в конце концов станет равной нулю, поэтому в этом случае предпочтение будет отдано состоянию с наименьшей потенциальной энергией.

Инженерия управления

Техника управления — это обширная область со многими сложными темами. В этом блоге я исхожу из точки зрения управления, основанного на Ляпунове. Для тех, кто не знает, что такое Ляпунов — не волнуйтесь, мы скоро поговорим об этом.

Возьмем пример с маятником. Скажем, если у нас есть двигатель в центре маятника и мы можем контролировать крутящий момент, как мы можем использовать двигатель, чтобы маятник можно было стабилизировать под любым желаемым углом? (Эта задача отличается от классической задачи о перевернутом маятнике, в которой цель состоит только в том, чтобы заставить маятник оставаться в вертикальном положении — простое линейное ПИД-управление поможет решить эту задачу при разумных начальных условиях.)

Есть разные подходы к этому, и я предлагаю мышление, основанное на энергии. Мы знаем, что без управляющего воздействия маятник в конечном итоге будет направлен вниз из-за того, что он находится в состоянии с наименьшей энергией, или, точнее, из-за воздействия потенциальной (или гравитационной) энергии. Тогда давайте подробнее рассмотрим гравитацию. В точке поворота маятника сила тяжести проявляется в виде момента/крутящего момента mgLsin(θ)/2, действующего по часовой стрелке.

Подумайте об этом — что, если мы воспользуемся мотором, чтобы противодействовать этому моменту, т. е. применив крутящий момент mgLsin(θ)/2 против часовой стрелки? Будет как будто гравитации нет! Маятник будет вести себя так, как если бы он был помещен на горизонтальную поверхность. Он останется в любой произвольной позиции, в которую вы его поместите. Это называется «компенсация гравитации» и широко используется в управлении роботом.

Мы на полпути — как заставить его сходиться к любой желаемой ориентации θ_d? Мы пока выяснили, как компенсировать гравитационный эффект, но можем ли мы сделать больше? Подумайте вот о чем: помимо компенсации гравитации, что, если мы добавим mgLsin(θ_d - θ)/2 по часовой стрелке? Обратите внимание, что в отсутствие контроля гравитационный эффект представляет собой крутящий момент mgLsin(θ)/2, который заставляет θ сходиться к 0 (направление вниз). По сути, мы заменили θ на θ_d−θ, что означает, что этот входной крутящий момент заставит θd−θ сходиться к 0! Маятник будет действовать так, как если бы θ=θ_d был нисходящей конфигурацией.

Напомним: мы знаем, что система естественным образом переходит в состояние с наименьшей потенциальной энергией. Чтобы использовать это поведение, мы использовали двигатель, чтобы (1) устранить гравитационный эффект и (2) заменить его нашей собственной версией «потенциальной энергии», которая имеет минимум при θ=θ_d. Этот подход имеет очень подходящее название «управление формированием энергии», или, в данном случае, «управление формированием потенциальной энергии».

В данном примере эту искусственную энергию, которую мы создали, можно принять за нашу функцию Ляпунова. В двух словах (и в общих чертах) для заданного закона управления, если вы можете найти гладкую функцию, которая является наименьшей при желаемой конфигурации и увеличивается при удалении, и доказать, что значение этой функции уменьшается по времени для замкнутой системы, то эта искомая конфигурация гарантированно является устойчивым равновесием, а использованная вами функция является функцией Ляпунова. Евклидово расстояние от цели является обычной формой функции Ляпунова, и для физических систем, таких как маятник, часто удобно использовать энергию в качестве функции Ляпунова.

На приведенном выше примере функция Ляпунова представляет собой чашеобразную поверхность, а кривая ниже представляет собой проекцию траектории системы. Вы можете думать об этом как о шаре, катящемся ко дну чаши с некоторой начальной горизонтальной скоростью. Вертикальную ось можно понимать как высоту или, что-то вроде того, потенциальную энергию.

Помимо системной динамики, замкнутых систем и т. д., очевидно, что функция Ляпунова тесно связана с оптимизацией — в некотором смысле это функция потерь, которую вы хотите минимизировать. Однако точка зрения отличается, потому что иногда инженеры по управлению тратят большую часть своего времени на определение подходящей функции Ляпунова, тогда как функция затрат/потери/целевой функции обычно хорошо определена для задач оптимизации. Я буду обсуждать больше в моем следующем посте.