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

Пакет Reinforcement Learning Toolbox™ предоставляет несколько предопределенных окружений систем управления, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти окружения для:

  • Изучения концепций обучения с подкреплением.

  • Ознакомьтесь с функциями пакета Reinforcement Learning Toolbox.

  • Тестирования своих агентов обучения с подкреплением.

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

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

Можно также загрузить предопределённые окружения мира сетки MATLAB. Для получения дополнительной информации смотрите Загрузка предопределённых окружений мира сетки.

Окружения тележки с шестом

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

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

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

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

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

  • Непрерывный - Агент может приложить любую силу в область значений [- Fmax, Fmax].

Чтобы создать окружение тележки с шестом, используйте 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 свойство окружения.

  • Непрерывный - Агент может приложить любую силу в область значений [- Fmax, Fmax].

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

  • Дискретное пространство действий

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

    env = rlPredefinedEnv('DoubleIntegrator-Continuous');

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

plot(env)

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

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

Свойства окружения

СвойствоОписаниеДефолт
GainУсиление для double-интегратора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.001ut12)

Здесь:

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

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

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

См. также

|

Похожие темы