Загрузите предопределенные окружения Simulink

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

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

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

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

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

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

Для предопределенных окружений Simulink динамика среды, наблюдения и сигнал вознаграждения заданы в соответствующей модели Simulink. rlPredefinedEnv функция создает SimulinkEnvWithAgent возразите что train функционируйте использование, чтобы взаимодействовать с моделью Simulink.

Математический маятник модель Simulink

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

open_system('rlSimplePendulumModel')

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

  • Дискретный — Агент может применить крутящий момент любого Tmax, 0, или-Tmax к маятнику, где Tmax является max_tau переменная в рабочем пространстве модели.

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

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

  • Дискретный пробел действия

    env = rlPredefinedEnv('SimplePendulumModel-Discrete');
  • Непрерывный пробел действия

    env = rlPredefinedEnv('SimplePendulumModel-Continuous');

Для примеров, которые обучают агентов в среде математического маятника, см.:

Действия

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

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

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

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

Наблюдения

В среде математического маятника агент получает следующие три сигнала наблюдения, которые создаются в подсистеме create observations.

  • Синус угла маятника

  • Косинус угла маятника

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

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

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

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

Сигнал вознаграждения для этой среды, которая создается в подсистеме calculate reward:

rt=(θt2+0.1θ˙t2+0.001ut12)

Здесь:

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

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

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

Полюсная корзиной модель Simscape

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

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

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

Модель для этой среды задана в rlCartPoleSimscapeModel Модель Simulink. Движущие силы этой модели заданы с помощью Simscape Multibody™.

open_system('rlCartPoleSimscapeModel')

В подсистеме Environment движущие силы модели заданы с помощью компонентов Simscape, и вознаграждение и наблюдение создаются с помощью блоков Simulink.

open_system('rlCartPoleSimscapeModel/Environment')

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

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

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

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

  • Дискретный пробел действия

    env = rlPredefinedEnv('CartPoleSimscapeModel-Discrete');
  • Непрерывный пробел действия

    env = rlPredefinedEnv('CartPoleSimscapeModel-Continuous');

Для примера, который обучает агента в этой полюсной корзиной среде, смотрите, Обучают Агента DDPG к Swing и Балансу полюсная Корзиной Система.

Действия

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

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

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

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

Наблюдения

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

  • Синус угла полюса

  • Косинус угла полюса

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

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

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

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

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

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

Сигнал вознаграждения для этой среды является суммой трех компонентов (r = rqr + rn + rp):

  • Квадратичный регулятор управляет вознаграждением, созданным в Environment/qr reward подсистема.

    rqr=(0.1x2+0.5θ2+0.005ut12)

  • Дополнительное вознаграждение за то, когда полюс около вертикального положения, созданного в Environment/near upright reward подсистема.

    rn=10(|θ|<0.175)

  • Предельный штраф корзины, созданный в Environment/x limit penalty подсистема. Эта подсистема генерирует отрицательное вознаграждение, когда величина положения корзины превышает данный порог.

    rp=100(|x|3.5)

Здесь:

  • x является положением корзины.

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

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

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

Блоки

Функции

Похожие темы