validateEnvironment

Подтвердите пользовательскую среду обучения укрепления

Синтаксис

validateEnvironment(env)

Описание

пример

validateEnvironment(env) подтверждает среду обучения укрепления. Эта функция полезна когда:

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

  • Вы используете среду, вы создали из модели Simulink® использование rlSimulinkEnv.

validateEnvironment сбрасывает среду, генерирует начальное наблюдение и действие, и моделирует среду для одного или двух шагов (см. Алгоритмы). Если нет никаких ошибок во время этих операций, валидация успешна, и validateEnvironment не возвращает результата. Если ошибки происходят, эти ошибки появляются в командном окне MATLAB®. Используйте ошибки определить, что измениться в вашей спецификации наблюдения, спецификации действия, пользовательских функциях или модели Simulink.

Примеры

свернуть все

Создайте и подтвердите и среда для модели rlwatertank, которая представляет систему управления, содержащую агент изучения укрепления. (Для получения дополнительной информации об этой модели, смотрите, Создают Агент окружения Simulink и Train.)

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

open_system('rlwatertank')

Создайте наблюдение и спецификации действия для среды.

obsInfo = rlNumericSpec([3 1],...
    'LowerLimit',[-inf -inf 0  ]',...
    'UpperLimit',[ inf  inf inf]');
obsInfo.Name = 'observations';
obsInfo.Description = 'integrated error, error, and measured height';
numObservations = obsInfo.Dimension(1);

actInfo = rlNumericSpec([1 1]);
actInfo.Name = 'flow';
numActions = numel(actInfo);

Создайте среду из модели. Затем используйте validateEnvironment, чтобы проверять, сконфигурирована ли модель правильно.

env = rlSimulinkEnv('rlwatertank','rlwatertank/RL Agent',obsInfo,actInfo);
validateEnvironment(env)
Error using rl.env.SimulinkEnvWithAgent/validateEnvironment (line 187)
Simulink environment validation requires an agent in the MATLAB base workspace 
or in a data dictionary linked to the model. Specify the agent in the Simulink model.

validateEnvironment пытается скомпилировать модель, инициализировать среду и агент, и моделировать модель. В этом случае блок RL Agent сконфигурирован, чтобы использовать агент под названием agent, но никакая такая переменная не существует в рабочем пространстве MATLAB. Таким образом функция возвращает ошибку при указании на проблему.

Создайте соответствующий агент для этой системы с помощью команд, детализированных в Создать Агенте окружения Simulink и Train. Затем выполнение validateEnvironment снова.

validateEnvironment(env)

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

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

свернуть все

Среда, чтобы подтвердить, заданный как объект среды обучения укрепления, такой как:

  • Пользовательская среда MATLAB вы создаете с rlCreateEnvTemplate. В этом случае validateEnvironment проверяет, что наблюдения и действия, сгенерированные во время симуляции среды, сопоставимы в размере, типе данных и диапазоне значений со спецификацией наблюдения и спецификацией действия. Это также проверяет что ваш пользовательский step и функции reset, запущенные без ошибки. (Когда вы создаете пользовательскую среду с помощью rlFunctionEnv, программное обеспечение запускает validateEnvironment автоматически.)

  • Пользовательское окружение Simulink вы создаете использование rlSimulinkEnv. Если вы используете окружение Simulink, необходимо было также задать агент и сопоставленный с блоком RL Agent в модели. Для модели Simulink validateEnvironment проверяет, что модель скомпилировала и запустила без ошибки. Функция не делает грязный ваша модель.

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

Алгоритмы

свернуть все

validateEnvironment работает путем выполнения краткой симуляции среды и проверки, что сгенерированные сигналы совпадают с наблюдением и спецификациями действия, которые вы обеспечили, когда вы создали среду.

Среды MATLAB

Для сред MATLAB валидация включает следующие шаги.

  1. Сбросьте среду с помощью функции reset, сопоставленной со средой.

  2. Получите первое наблюдение и проверяйте, сопоставимо ли это с размерностью, типом данных и областью значений значений в спецификации наблюдения.

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

  4. Моделируйте среду для одного шага с помощью сгенерированного действия и функции step, сопоставленной со средой.

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

Если какая-либо из этих операций генерирует ошибку, validateEnvironment возвращает ошибку. Если validateEnvironment не возвращает результата, то валидация успешна.

Окружения Simulink

Для окружений Simulink валидация включает следующие шаги.

  1. Сбросьте среду.

  2. Моделируйте модель для двух временных шагов.

Если какая-либо из этих операций генерирует ошибку, validateEnvironment возвращает ошибку. Если validateEnvironment не возвращает результата, то валидация успешна.

validateEnvironment выполняет эти шаги без dirtying модель и оставляет все параметры модели в состоянии, они были в том, когда вы вызвали функцию.

Введенный в R2019a

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