Загрузите предопределенные окружения 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');

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

Действия

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

  • Дискретное пространство действий, спецификация 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 и Системе Тележки с шестом Баланса.

Действия

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

  • Дискретное пространство действий, спецификация 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 является усилием по управлению от предыдущего временного шага.

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

Блоки

Функции

Похожие темы