rlSimulinkEnv

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

Синтаксис

env = rlSimulinkEnv(mdl,agentBlock,obsInfo,actInfo)
env = rlSimulinkEnv(___,'UseFastRestart',fastRestartToggle)

Описание

пример

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 для получения информации о наблюдении и действии. Можно использовать запись через точку, чтобы присвоить значения свойств объектов rlFiniteSetSpec и rlNumericSpec.

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

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

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

       Elements: [2 1]
           Name: [0×0 string]
    Description: [0×0 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.

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

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте