Создайте модель Simulink для обучения с подкреплением, с помощью образца модели в качестве среды
создает модель Simulink® с именем, заданным env = createIntegratedEnv(refModel,newModel)newModel и возвращает объект среды обучения с подкреплением, env, для этой модели. Новая модель содержит блок RL Agent и использует образец модели refModel как среда обучения с подкреплением для обучения свойство агента задано этим блоком.
[ возвращает блок path в блок RL Agent в новой модели и технических требованиях данных о наблюдении и действии для образца модели, env,agentBlock,obsInfo,actInfo] = createIntegratedEnv(___)obsInfo и actInfo, соответственно.
[___] = createIntegratedEnv(___, создает модель и интерфейс среды использование порта, наблюдения, и информация о действии задала использование одного или нескольких Name,Value)Name,Value парные аргументы.
В этом примере показано, как использовать createIntegratedEnv создать объект среды, начинающий с модели Simulink, реализующей систему, с которой должен взаимодействовать агент. Такая система часто упоминается как объект, система разомкнутого контура или ссылочная система, в то время как целая (интегрированная) система включая агента часто упоминается как система замкнутого цикла.
В данном примере используйте летающую модель робота, описанную в, Обучают Агента DDPG Управлять Летающим Роботом как ссылкой (разомкнутый контур) система.
Откройте летающую модель робота.
open_system('rlFlyingRobotEnv');Инициализируйте переменные состояния и шаг расчета.
% initial model state variables theta0 = 0; x0 = -15; y0 = 0; % sample time Ts = 0.4;
Создайте модель Simulink IntegratedEnv содержа летающую модель робота, соединенную в замкнутом цикле с блоком агента. Функция также возвращает среду обучения с подкреплением object env, использоваться для обучения.
env=createIntegratedEnv('rlFlyingRobotEnv','IntegratedEnv')
env =
SimulinkEnvWithAgent with properties:
Model : IntegratedEnv
AgentBlock : IntegratedEnv/RL Agent
ResetFcn : []
UseFastRestart : on
Функция может также возвратить блок path в блок RL Agent в новой интегрированной модели, а также технических требованиях данных о наблюдении и действии для образца модели.
[~,agentBlk,observationInfo,actionInfo]=createIntegratedEnv('rlFlyingRobotEnv','IntegratedEnv')
agentBlk = 'IntegratedEnv/RL Agent'
observationInfo =
rlNumericSpec with properties:
LowerLimit: -Inf
UpperLimit: Inf
Name: "observation"
Description: [0x0 string]
Dimension: [7 1]
DataType: "double"
actionInfo =
rlNumericSpec with properties:
LowerLimit: -Inf
UpperLimit: Inf
Name: "action"
Description: [0x0 string]
Dimension: [2 1]
DataType: "double"
Это полезно в случаях, в которых необходимо изменить описания, пределы или имена в observationInfo и actionInfo и позже создайте среду из интегрированной модели IntegratedEnv, использование функционального rlSimulinkEnv.
В этом примере показано, как вызвать функциональный createIntegratedEnv с использованием Имени и пар Значения, чтобы создать интегрированное (замкнутый цикл) окружение Simulink и соответствующий объект среды.
Первый аргумент createIntegratedEnv функция является именем ссылочной модели Simulink, которая содержит систему, с которой должен взаимодействовать агент. Такая система часто упоминается как объект или система разомкнутого контура. В данном примере ссылочная система является моделью бака с водой.
Откройте модель бака с водой разомкнутого контура.
open_system('rlWatertankOpenloop.slx');Установите время выборки дискретного блока интегратора, используемого, чтобы сгенерировать наблюдение, таким образом, симуляция может запуститься.
Ts=1;
Поскольку входной порт называется u (вместо action), и первые и третьи выходные порты называются y и stop (вместо observation и isdone), используйте пары Имени и Значения, чтобы задать правильное имя при вызове функционального createIntegratedEnv.
env=createIntegratedEnv('rlWatertankOpenloop','IntegratedWatertank','ActionPortName','u','ObservationPortName','y','IsDonePortName','stop')
env =
SimulinkEnvWithAgent with properties:
Model : IntegratedWatertank
AgentBlock : IntegratedWatertank/RL Agent
ResetFcn : []
UseFastRestart : on
Это создает новую модель IntegratedWatertank который содержит образец модели, соединенный в замкнутом цикле с блоком агента. Функция также возвращает объект env среды обучения с подкреплением, использоваться для обучения.
refModel — Имя образца моделиИмя образца модели в виде строки или вектора символов. Это - модель Simulink, реализующая систему, с которой должен взаимодействовать агент. Такая система часто упоминается как объект, система разомкнутого контура или ссылочная система, в то время как целая (интегрированная) система включая агента часто упоминается как система замкнутого цикла. Новая модель Simulink использует этот образец модели в качестве динамической модели среды для обучения с подкреплением.
newModel — Новое имя моделиНовое имя модели в виде строки или вектора символов. createIntegratedEnv создает модель Simulink с этим именем, но не сохраняет модель.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'IsDonePortName',"stopSim" устанавливает stopSim порт образца модели как источник isdone сигнал.'ObservationPortName' — Имя выходного порта сигнала наблюдения образца модели"observation" (значение по умолчанию) | представляет в виде строки | вектор символовВыходной порт сигнала наблюдения образца модели называет в виде разделенной запятой пары, состоящей из 'ObservationPortName' и строка или вектор символов. Задайте ObservationPortName когда именем выходного порта сигнала наблюдения образца модели не является "observation".
'ActionPortName' — Имя входного порта действия образца модели"action" (значение по умолчанию) | представляет в виде строки | вектор символовВходной порт действия образца модели называет в виде разделенной запятой пары, состоящей из 'ActionPortName' и строка или вектор символов. Задайте ActionPortName когда именем входного порта действия образца модели не является "action".
'RewardPortName' — Премиальное имя выходного порта образца модели"reward" (значение по умолчанию) | представляет в виде строки | вектор символовПремиальный выходной порт образца модели называет в виде разделенной запятой пары, состоящей из 'RewardPortName' и строка или вектор символов. Задайте RewardPortName когда именем премиального выходного порта образца модели не является "reward".
'IsDonePortName' — Образец модели сделанное имя выходного порта флага"isdone" (значение по умолчанию) | представляет в виде строки | вектор символовОбразец модели сделанное имя выходного порта флага в виде разделенной запятой пары, состоящей из 'IsDonePortName' и строка или вектор символов. Задайте IsDonePortName когда именем сделанного выходного порта флага образца модели не является "isdone".
'ObservationBusElementNames' — Имена наблюдения соединяют шиной листовые элементыИмена наблюдения соединяют шиной листовые элементы, для которых можно создать технические требования в виде массива строк. Чтобы создать спецификации наблюдений для подмножества элементов в объекте шины Simulink, задайте BusElementNames. Если вы не задаете BusElementNames, спецификация данных создается для каждого листового элемента в шине.
ObservationBusElementNames применимо только, когда выходной порт сигнала наблюдения является сигналом шины.
Пример: 'ObservationBusElementNames',["sin" "cos"] создает технические требования для элементов шины наблюдения с именами "sin" и "cos".
'ObservationDiscreteElements' — Конечные значения для спецификаций наблюденийКонечные значения для дискретных элементов спецификации наблюдений в виде разделенной запятой пары, состоящей из 'ObservationDiscreteElements' и массив ячеек пар "имя-значение". Каждая пара "имя-значение" состоит из имени элемента и массива дискретных значений.
Если выходной порт сигнала наблюдения образца модели:
Сигнал шины, задайте имя одного из листовых элементов шины, заданной в ObservationBusElementNames
Сигнал нешины, задайте имя порта наблюдения, как задано ObservationPortName
Заданные дискретные значения должны быть castable к типу данных заданного сигнала наблюдения.
Если вы не задаете дискретные значения для элемента спецификации наблюдений, элемент непрерывен.
Пример: 'ObservationDiscretElements',{'observation',[-1 0 1]} указывает, что дискретные значения для сигнала наблюдения нешины с портом по умолчанию называют observation.
Пример: 'ObservationDiscretElements',{'gear',[-1 0 1 2],'direction',[1 2 3 4]} задает дискретные значения для 'gear' и 'direction' листовые элементы сигнала действия шины.
'ActionDiscreteElements' — Конечные значения для спецификаций действияКонечные значения для дискретных элементов спецификации действия в виде разделенной запятой пары, состоящей из 'ActionDiscreteElements' и массив ячеек пар "имя-значение". Каждая пара "имя-значение" состоит из имени элемента и массива дискретных значений.
Если входной порт действия образца модели:
Сигнал шины, задайте имя листового элемента шины
Сигнал нешины, задайте имя порта действия, как задано ActionPortName
Заданные дискретные значения должны быть castable к типу данных заданного сигнала действия.
Если вы не задаете дискретные значения для элемента спецификации действия, элемент непрерывен.
Пример: 'ActionDiscretElements',{'action',[-1 0 1]} указывает, что дискретные значения для сигнала действия нешины с портом по умолчанию называют 'action'.
Пример: 'ActionDiscretElements',{'force',[-10 0 10],'torque',[-5 0 5]} задает дискретные значения для 'force' и 'torque' листовые элементы сигнала действия шины.
env — Среда обучения с подкреплениемSimulinkEnvWithAgent объектИнтерфейс среды обучения с подкреплением, возвращенный как SimulinkEnvWithAgent объект.
agentBlock — Блок path с блоком агентаБлок path к агенту блокируется в новой модели, возвращенной как вектор символов. Чтобы обучить агента в новой модели Simulink, необходимо создать агента и задать имя агента в блоке RL Agent, обозначенном agentBlock.
Для получения дополнительной информации о создании агентов смотрите Агентов Обучения с подкреплением.
obsInfo — Технические требования данных о наблюденииrlNumericSpec возразите | rlFiniteSetSpec возразите | массив объектов спецификации данныхТехнические требования данных о наблюдении, возвращенные как одно из следующего:
rlNumericSpec объект для одной непрерывной спецификации наблюдений
rlFiniteSetSpec объект для одной дискретной спецификации наблюдений
Массив спецификации данных возражает для нескольких технических требований
actInfo — Технические требования данных о действииrlNumericSpec возразите | rlFiniteSetSpec возразите | массив объектов спецификации данныхТехнические требования данных о действии, возвращенные как одно из следующего:
rlNumericSpec объект для одной непрерывной спецификации действия
rlFiniteSetSpec объект для одной дискретной спецификации действия
Массив спецификации данных возражает для нескольких спецификаций действия
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.