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