Пакет Reinforcement Learning Toolbox™ обеспечивает, предопределил среды Simulink®, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти среды для:
Изучения концепции обучения с подкреплением
Ознакомления с особенностями Reinforcement Learning Toolbox
Тестирования своих собственных агентов обучения с подкреплением
Можно загрузить следующие предопределенные окружения Simulink с помощью rlPredefinedEnv
функция.
Среда | Задача агента |
---|---|
Модель Simulink математического маятника | Swing и баланс математический маятник с помощью или дискретного или непрерывного пробела действия. |
Полюсная корзиной модель 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');
Для примеров, которые обучают агентов в среде математического маятника, см.:
В средах математического маятника агент взаимодействует со средой с помощью одного сигнала действия, крутящий момент, примененный в основе маятника. Среда содержит объект спецификации для этого сигнала действия. Для среды с a:
Дискретный пробел действия, спецификацией является 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');
Для примера, который обучает агента в этой полюсной корзиной среде, смотрите, Обучают Агента DDPG к Swing и Балансу полюсная Корзиной Система.
В полюсных корзиной средах агент взаимодействует со средой с помощью одного сигнала действия, сила применилась к корзине. Среда содержит объект спецификации для этого сигнала действия. Для среды с a:
Дискретный пробел действия, спецификацией является rlFiniteSetSpec
объект.
Непрерывный пробел действия, спецификацией является rlNumericSpec
объект.
Для получения дополнительной информации о получении спецификаций действия средой смотрите getActionInfo
.
В полюсной корзиной среде агент получает следующие пять сигналов наблюдения.
Синус угла полюса
Косинус угла полюса
Производная угла маятника
Положение корзины
Производная положения корзины
Для каждого сигнала наблюдения среда содержит rlNumericSpec
спецификация наблюдения. Все наблюдения непрерывны и неограниченны.
Для получения дополнительной информации о получении спецификаций наблюдения средой смотрите getObservationInfo
.
Сигнал вознаграждения для этой среды является суммой трех компонентов (r = rqr + rn + rp):
Квадратичный регулятор управляет вознаграждением, созданным в Environment/qr reward
подсистема.
Дополнительное вознаграждение за то, когда полюс около вертикального положения, созданного в Environment/near upright reward
подсистема.
Предельный штраф корзины, созданный в Environment/x limit penalty
подсистема. Эта подсистема генерирует отрицательное вознаграждение, когда величина положения корзины превышает данный порог.
Здесь:
x является положением корзины.
θ является углом полюса смещения от вертикального положения.
ut-1 является усилием по управлению от предыдущего временного шага.