exponenta event banner

Загрузка предопределенных сред системы управления

В программном обеспечении Ampilation Learning Toolbox™ предусмотрено несколько предварительно определенных сред системы управления, для которых уже определены действия, наблюдения, вознаграждения и динамика. Эти среды можно использовать для:

  • Изучите концепции обучения усилению.

  • Познакомьтесь с функциями ПО для обучения по усилению.

  • Протестируйте собственные агенты обучения усилению.

Следующие предварительно определенные среды системы управления MATLAB ® можно загрузить с помощью rlPredefinedEnv функция.

Окружающая средаЗадача агента
Тележка-столбУравновешивание полюса на движущейся тележке путем приложения усилий к тележке с использованием дискретного или непрерывного пространства действия.
Двойной интеграторУправление динамической системой второго порядка с помощью дискретного или непрерывного пространства действия.
Простой маятник с наблюдением изображенияКачаться вверх и уравновешивать простой маятник с помощью дискретного или непрерывного пространства действия.

Также можно загрузить предварительно определенные среды сеток MATLAB. Дополнительные сведения см. в разделе Загрузка предопределенных сред Grid World.

Среды Cart-Pole

Целью агента в предварительно определенных средах полюсов тележки является уравновешивание полюса на движущейся тележке путем приложения горизонтальных сил к тележке. Полюс считается успешно сбалансированным, если выполняются оба следующих условия:

  • Угол полюса остается в пределах заданного порога вертикального положения, где вертикальное положение равно нулю радиан.

  • Величина положения тележки остается ниже заданного порога.

Существует два варианта среды cart-pole, которые отличаются пространством действия агента.

  • Дискретный - агент может приложить силу Fmax или -Fmax к корзине, где Fmax - MaxForce свойство среды.

  • Continuous - агент может применять любую силу в пределах диапазона [-Fmax, Fmax].

Для создания среды cart-pole используйте rlPredefinedEnv функция.

  • Пространство дискретного действия

    env = rlPredefinedEnv('CartPole-Discrete');
  • Пространство непрерывного действия

    env = rlPredefinedEnv('CartPole-Continuous');

Можно визуализировать среду полюса тележки с помощью plot функция. На графике корзина отображается в виде синего квадрата, а полюс - в виде красного прямоугольника.

plot(env)

Для визуализации среды во время обучения звоните plot перед тренировкой и держать фигуру визуализации открытой.

Примеры обучения агентов в средах тележек см. в следующих разделах:

Свойства среды

СобственностьОписаниеДефолт
GravityУскорение от силы тяжести в метрах в секунду9.8
MassCartМасса тележки в килограммах1
MassPoleМасса полюса в килограммах0.1
LengthПоловина длины полюса в метрах0.5
MaxForceМаксимальная величина горизонтальной силы в ньютонах10
TsВремя выборки в секундах0.02
ThetaThresholdRadiansПорог угла полюса в радианах0.2094
XThresholdПорог положения корзины в метрах2.4
RewardForNotFallingВознаграждение за каждый временной шаг полюс сбалансирован1
PenaltyForFallingВознаграждение штраф за неспособность сбалансировать столб

Дискретный - -5

Непрерывный - -50

State

Состояние среды, указанное как вектор столбца со следующими переменными состояния:

  • Положение корзины

  • Производная от положения тележки

  • Угол полюса

  • Производная угла полюса

[0 0 0 0]'

Действия

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

  • Дискретное пространство действия, спецификация является rlFiniteSetSpec объект.

  • Непрерывное пространство действий, спецификация является rlNumericSpec объект.

Дополнительные сведения о получении спецификаций действий из среды см. в разделе getActionInfo.

Наблюдения

В системе тележек агент может наблюдать все переменные состояния окружающей среды в env.State. Для каждой переменной состояния среда содержит rlNumericSpec спецификация наблюдения. Все состояния непрерывны и неограниченны.

Дополнительные сведения о получении спецификаций наблюдения из среды см. в разделе getObservationInfo.

Вознаграждение

Сигнал вознаграждения для этой среды состоит из двух компонентов.

  • Положительное вознаграждение за каждый временной шаг, что полюс сбалансирован, то есть тележка и полюс оба остаются в пределах своих заданных пороговых диапазонов. Это вознаграждение накапливается на протяжении всего учебного эпизода. Чтобы контролировать размер этого вознаграждения, используйте RewardForNotFalling свойство среды.

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

Среды двойной интеграции

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

Обучающие эпизоды для этих сред заканчиваются, когда происходит одно из следующих событий:

  • Масса перемещается от начала координат за заданный порог.

  • Норма вектора состояния меньше заданного порога.

Существуют два варианта среды двойного интегратора, которые отличаются пространством действия агента.

  • Дискретный - агент может приложить силу Fmax или -Fmax к корзине, где Fmax - MaxForce свойство среды.

  • Continuous - агент может применять любую силу в пределах диапазона [-Fmax, Fmax].

Чтобы создать среду двойного интегратора, используйте rlPredefinedEnv функция.

  • Пространство дискретного действия

    env = rlPredefinedEnv('DoubleIntegrator-Discrete');
  • Пространство непрерывного действия

    env = rlPredefinedEnv('DoubleIntegrator-Continuous');

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

plot(env)

Для визуализации среды во время обучения звоните plot перед тренировкой и держать фигуру визуализации открытой.

Примеры обучения агентов в средах с двойной интеграцией см. в следующих разделах:

Свойства среды

СобственностьОписаниеДефолт
GainВыигрыш для двойного интегратора1
TsВремя выборки в секундах0.1
MaxDistanceПорог величины расстояния в метрах5
GoalThresholdПорог государственной нормы0.01
QВесовая матрица для компонента наблюдения сигнала вознаграждения[10 0; 0 1]
RВесовая матрица для компонента действия сигнала вознаграждения0.01
MaxForceМаксимальная входная сила в ньютонах

Дискретные: 2

Непрерывный: Inf

State

Состояние среды, указанное как вектор столбца со следующими переменными состояния:

  • Массовое положение

  • Производная положения массы

[0 0]'

Действия

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

  • Дискретное пространство действия, спецификация является rlFiniteSetSpec объект.

  • Непрерывное пространство действий, спецификация является rlNumericSpec объект.

Дополнительные сведения о получении спецификаций действий из среды см. в разделе getActionInfo.

Наблюдения

В системе двойного интегратора агент может наблюдать обе переменные состояния среды в env.State. Для каждой переменной состояния среда содержит rlNumericSpec спецификация наблюдения. Оба государства непрерывны и неограниченны.

Дополнительные сведения о получении спецификаций наблюдения из среды см. в разделе getObservationInfo.

Вознаграждение

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

reward=−∫ (x 'Qx + u' Ru) dt

Здесь:

  • Q и R - свойства среды.

  • x - вектор состояния среды.

  • u - входная сила.

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

Простые маятниковые среды с наблюдением изображений

Эта среда представляет собой простой бесфрикционный маятник, который первоначально висит в нижнем положении. Цель тренировки состоит в том, чтобы сделать маятник стоящим вертикально, не падая при минимальном усилии управления.

Существуют два простых варианта маятниковой среды, которые отличаются пространством действия агента.

  • Дискретный - Агент может прикладывать крутящий момент -2, -1, 0, 1, или 2 к маятнику.

  • Непрерывно - Агент может применять любой крутящий момент в пределах диапазона [-2,2].

Для создания простой маятниковой среды используйте rlPredefinedEnv функция.

  • Пространство дискретного действия

    env = rlPredefinedEnv('SimplePendulumWithImage-Discrete');
  • Пространство непрерывного действия

    env = rlPredefinedEnv('SimplePendulumWithImage-Continuous');

Примеры обучения агента в этой среде см. в следующих разделах:

Свойства среды

СобственностьОписаниеДефолт
MassМаятниковая масса1
RodLengthДлина маятника1
RodInertiaМаятниковый момент инерции0
GravityУскорение от силы тяжести в метрах в секунду9.81
DampingRatioДемпфирование маятникового движения0
MaximumTorqueМаксимальный входной крутящий момент в ньютонах2
TsВремя выборки в секундах0.05
State

Состояние среды, указанное как вектор столбца со следующими переменными состояния:

  • Угол маятника

  • Угловая скорость маятника

[0 0 ]'
QВесовая матрица для компонента наблюдения сигнала вознаграждения[1 0;0 0.1]
RВесовая матрица для компонента действия сигнала вознаграждения1e-3

Действия

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

  • Дискретное пространство действия, спецификация является rlFiniteSetSpec объект.

  • Непрерывное пространство действий, спецификация является rlNumericSpec объект.

Дополнительные сведения о получении спецификаций действий из среды см. в разделе getActionInfo.

Наблюдения

В простой маятниковой среде агент принимает следующие сигналы наблюдения:

  • изображение положения маятника в градациях серого 50 на 50

  • Производная угла маятника

Для каждого сигнала наблюдения среда содержит rlNumericSpec спецификация наблюдения. Все наблюдения непрерывны и неограниченны.

Дополнительные сведения о получении спецификаций наблюдения из среды см. в разделе getObservationInfo.

Вознаграждение

Сигнал вознаграждения для этой среды

rt = (θt2+0.1∗θ˙t2+0.001∗ut−12)

Здесь:

  • startt - угол перемещения маятника из вертикального положения.

  • θ˙t - производная угла маятника.

  • ut-1 - контрольное усилие от предыдущего временного шага.

См. также

|

Связанные темы