Пакет Reinforcement Learning Toolbox™ обеспечивает предопределенный Simulink® окружения, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти окружения для:
Изучения концепций обучения с подкреплением.
Ознакомьтесь с функциями пакета Reinforcement Learning Toolbox.
Тестирования своих агентов обучения с подкреплением.
Можно загрузить следующие предопределённые окружения Simulink с помощью rlPredefinedEnv
функция.
Окружение | Задача агента |
---|---|
Модель Simulink математического маятника | Качание вверх и балансировка простого маятника с помощью дискретного или непрерывного пространства действий. |
Модель Simscape™ тележки с шестом | Балансировка шеста на движущейся тележке путем приложения сил к тележке с помощью дискретного или непрерывного пространства действия. |
Для предопределённых окружений Simulink динамики окружения, наблюдения и сигнал вознаграждения заданы в соответствующей модели Simulink. rlPredefinedEnv
функция создает SimulinkEnvWithAgent
объект, который train
функция используется для взаимодействия с моделью 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 подсистеме,
Здесь:
θt - угол смещения маятника из вертикального положения.
является производной от угла маятника.
ut-1 - усилие по управлению от предыдущего временного шага.
Цель агента в предопределенных окружениях тележки с шестом - сбалансировать шест на движущейся тележке, прикладывая горизонтальные силы к тележке. Считается, что шест успешно сбалансирован, если оба из следующих условий удовлетворены:
Угол шеста остается внутри заданного порога вертикального положения, где вертикальное положение соответствует углу ноль радиан.
Величина положения тележки остается ниже заданного порога.
Модель для этого окружения определяется в 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
подсистема.
Дополнительное вознаграждение для, когда шест находится вблизи вертикального положения, построенное в Environment/near upright reward
подсистема.
A штрафа тележки за выход за пределы, построенная в Environment/x limit penalty
подсистема. Эта подсистема генерирует отрицательное вознаграждение, когда величина положения тележки превышает заданный порог.
Здесь:
x - положение тележки.
θ - угол смещения шеста из вертикального положения.
ut-1 - усилие по управлению от предыдущего временного шага.