Программное обеспечение Reinforcement Learning Toolbox™ обеспечивает, предопределил среды Simulink®, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти среды для:
Изучите концепции изучения укрепления
Получите знакомство с программными функциями Reinforcement Learning Toolbox
Протестируйте свои собственные агенты изучения укрепления
Можно загрузить следующие предопределенные окружения Simulink с помощью функции rlPredefinedEnv
.
Среда | Задача агента |
---|---|
Модель Simulink математического маятника | Swing и баланс математический маятник с помощью или дискретного или непрерывного пробела действия. |
Полюсная корзиной модель Simscape™ | Сбалансируйте полюс на движущейся корзине, прикладывая силы к корзине с помощью или дискретного или непрерывного пробела действия. |
Для предопределенных окружений Simulink динамика среды, наблюдения и премиальный сигнал заданы в соответствующей модели Simulink. Функция rlPredefinedEnv
создает объект SimulinkEnvWithAgent
, что train
функционирует использование, чтобы взаимодействовать с моделью Simulink.
Эта среда является простым лишенным трения маятником, который первоначально зависает в нисходящем положении. Учебная цель состоит в том, чтобы заставить маятник стоять вертикально, не запинаясь за использование и падая минимального усилия по управлению. Модель для этой среды задана в модели SimplePendulumModel
Simulink.
open_system('SimplePendulumModel')
Существует два варианта среды математического маятника, которые отличаются пробелом действия агента.
Дискретный — Агент может применить крутящий момент или Tmax, 0
или-Tmax к маятнику, где Tmax является переменной max_tau
в рабочем пространстве модели.
Непрерывный — Агент может применить любой крутящий момент в области значений [-Tmax, Tmax].
Чтобы создать среду математического маятника, используйте функцию rlPredefinedEnv
.
Дискретный пробел действия
env = rlPredefinedEnv('SimplePendulumModel-Discrete');
Непрерывный пробел действия
env = rlPredefinedEnv('SimplePendulumModel-Continuous');
Для примеров, которые обучают агенты в среде математического маятника, см.:
В средах математического маятника агент взаимодействует со средой с помощью одного сигнала действия, крутящий момент, примененный в основе маятника. Среда содержит объект спецификации для этого сигнала действия. Для среды с a:
Дискретный пробел действия, спецификация является объектом rlFiniteSetSpec
.
Непрерывный пробел действия, спецификация является объектом rlNumericSpec
.
Для получения дополнительной информации о получении спецификаций действия от среды смотрите getActionInfo
.
В среде математического маятника агент получает следующие три сигнала наблюдения, которые создаются в создать подсистеме наблюдений.
Синус угла маятника
Косинус угла маятника
Производная угла маятника
Для каждого сигнала наблюдения среда содержит спецификацию наблюдения rlNumericSpec
. Все наблюдения непрерывны и неограниченны.
Для получения дополнительной информации о получении спецификаций наблюдения от среды смотрите getObservationInfo
.
Премиальный сигнал для этой среды, которая создается в вычислить премиальной подсистеме:
Здесь:
θt является углом маятника смещения от вертикального положения.
производная угла маятника.
ut-1 является усилием по управлению от предыдущего временного шага.
Цель агента в предопределенных полюсных корзиной средах состоит в том, чтобы сбалансировать полюс на движущейся корзине, прикладывая горизонтальные силы к корзине. Полюс рассматривается успешно сбалансированным, если оба из следующих условий удовлетворены:
Угол полюса остается в данном пороге вертикального положения, где вертикальное положение является нулевыми радианами.
Значение положения корзины остается ниже данного порога.
Модель для этой среды задана в модели CartPoleSimscapeModel
Simulink. Движущие силы этой модели заданы с помощью Simscape Multibody™.
open_system('CartPoleSimscapeModel')
В подсистеме Enviornment образцовые движущие силы заданы с помощью компонентов Simscape, и вознаграждение и наблюдение создаются с помощью блоков Simulink.
open_system('CartPoleSimscapeModel/Environment')
Существует два полюсных корзиной варианта среды, которые отличаются пробелом действия агента.
Дискретный — Агент может прикладывать силу 15
, 0
или -15
к корзине.
Непрерывный — Агент может прикладывать любую силу в области значений [-15
, 15
].
Чтобы создать полюсную корзиной среду, используйте функцию rlPredefinecdEnv
.
Дискретный пробел действия
env = rlPredefinedEnv('CartPoleSimscapeModel-Discrete');
Непрерывный пробел действия
env = rlPredefinedEnv('CartPoleSimscapeModel-Continuous');
Для примера, который обучает агент в этой полюсной корзиной среде, смотрите Train Агент 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 является усилием по управлению от предыдущего временного шага.