rlSimulinkEnv

Создайте среду обучения с подкреплением с помощью динамической модели, реализованной в Simulink

Описание

пример

env = rlSimulinkEnv(mdl,agentBlock,obsInfo,actInfo) создает объект env среды обучения с подкреплением использование имени модели Simulink® mdl, путь к блоку agentBlock агента, информация о наблюдении obsInfo, и информация о действии actInfo.

env = rlSimulinkEnv(___,'UseFastRestart',fastRestartToggle) создает объект env среды обучения с подкреплением с дополнительной опцией включить быстрый перезапуск.

Примеры

свернуть все

В данном примере рассмотрите rlSimplePendulumModel Модель Simulink. Модель является простым лишенным трения маятником, который первоначально зависает в нисходящем положении.

Откройте модель.

mdl = 'rlSimplePendulumModel';
open_system(mdl)

Присвойте информацию о блоке path агента и создайте rlNumericSpec и rlFiniteSetSpec объекты для получения информации о наблюдении и действии. Можно использовать запись через точку, чтобы присвоить значения свойств rlNumericSpec и rlFiniteSetSpec объекты.

agentBlk = [mdl '/RL Agent'];
obsInfo = rlNumericSpec([3 1])
obsInfo = 
  rlNumericSpec with properties:

     LowerLimit: -Inf
     UpperLimit: Inf
           Name: [0x0 string]
    Description: [0x0 string]
      Dimension: [3 1]
       DataType: "double"

actInfo = rlFiniteSetSpec([2 1])
actInfo = 
  rlFiniteSetSpec with properties:

       Elements: [2x1 double]
           Name: [0x0 string]
    Description: [0x0 string]
      Dimension: [1 1]
       DataType: "double"

obsInfo.Name = 'observations';
actInfo.Name = 'torque';

Создайте среду обучения с подкреплением для модели Simulink с помощью информации, извлеченной на предыдущих шагах.

env = rlSimulinkEnv(mdl,agentBlk,obsInfo,actInfo)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: []
    UseFastRestart: 'on'

Можно также включать функцию сброса, использующую запись через точку. В данном примере рассмотрите случайным образом инициализирующий theta0 в рабочем пространстве модели.

env.ResetFcn = @(in) setVariable(in,'theta0',randn,'Workspace',mdl)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl)
    UseFastRestart: 'on'

Входные параметры

свернуть все

Имя модели Simulink, заданное как строка или вектор символов.

Путь к блоку Agent, заданный как строка или вектор символов. Заданный блок агента может быть в модели - ссылке.

Для получения дополнительной информации о конфигурировании блока агента для обучения с подкреплением смотрите RL Agent.

Информация наблюдения, указанная как массив одного из следующего:

Для получения дополнительной информации смотрите getObservationInfo.

Информация действия, указанная как массив одного из следующего:

Для получения дополнительной информации смотрите getActionInfo.

Опция, чтобы переключить быстрый перезапуск, заданный как любой 'on' или 'off'. Быстрый перезапуск позволяет вам выполнять итеративные симуляции, не компилируя модель или отключая симуляцию каждый раз.

Для получения дополнительной информации о быстром перезапуске смотрите, Как Быстрый Перезапуск Улучшает Итеративные Симуляции (Simulink).

Выходные аргументы

свернуть все

Среда обучения с подкреплением, возвращенная как SimulinkEnvWithAgent объект.

Для получения дополнительной информации о средах обучения с подкреплением смотрите, Создают окружения Simulink для Обучения с подкреплением.

Введенный в R2019a