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

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

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

  • Ознакомления с особенностями пакета Reinforcement Learning Toolbox.

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

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

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

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

Смотрите также

|

Похожие темы