Загрузка предопределённых окружений Simulink

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

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

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

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

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

ОкружениеЗадача агента
Модель Simulink математического маятникаКачание вверх и балансировка простого маятника с помощью дискретного или непрерывного пространства действий.
Модель 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');

Для примера, который обучает агента в этом окружении тележки с шестом, смотрите Train DDPG Agent to Swing Up и Balance Cart-Pole System.

Действия

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

  • Дискретное пространство действий, спецификация является 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)

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

    rp=100(|x|3.5)

Здесь:

  • x - положение тележки.

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

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

См. также

Блоки

Функции

Похожие темы