Создание модели Simulink для обучения армированию с использованием ссылочной модели в качестве среды
создает модель Simulink ® с именем, указанным env = createIntegratedEnv(refModel,newModel)newModel и возвращает объект среды обучения усиления, env, для этой модели. Новая модель содержит блок агента RL и использует ссылочную модель refModel как среда обучения усилению для обучения агента, указанного этим блоком.
[ возвращает путь к блоку агента RL в новой модели и спецификации данных наблюдения и действий для ссылочной модели, env,agentBlock,obsInfo,actInfo] = createIntegratedEnv(___)obsInfo и actInfoсоответственно.
[___] = createIntegratedEnv(___, создает модель и интерфейс среды с использованием информации о портах, наблюдениях и действиях, указанной с помощью одного или нескольких Name,Value)Name,Value аргументы пары.
В этом примере используются:
В этом примере показано, как использовать createIntegratedEnv создание объекта среды, начиная с модели Simulink, реализующей систему, с которой работает агент. Такую систему часто называют установкой, системой с разомкнутым контуром или эталонной системой, в то время как всю (интегрированную) систему, включающую агент, часто называют системой с замкнутым контуром.
Для этого примера используйте модель летающего робота, описанную в документе Train DDPG Agent to Control Flying Robot, в качестве эталонной системы (с разомкнутым контуром).
Откройте модель летающего робота.
open_system('rlFlyingRobotEnv')Инициализируйте переменные состояния и время выборки.
% initial model state variables theta0 = 0; x0 = -15; y0 = 0; % sample time Ts = 0.4;
Создание модели Simulink IntegratedEnv содержит модель летающего робота, соединенную по замкнутому контуру с блоком агента. Функция также возвращает объект среды обучения армированию. env используется для обучения.
env = createIntegratedEnv('rlFlyingRobotEnv','IntegratedEnv')
env =
SimulinkEnvWithAgent with properties:
Model : IntegratedEnv
AgentBlock : IntegratedEnv/RL Agent
ResetFcn : []
UseFastRestart : on
Функция также может вернуть путь к блоку агента RL в новой интегрированной модели, а также спецификации наблюдения и действий для ссылочной модели.
[~,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 использование пар имя-значение для указания имен портов.
Первый аргумент createIntegratedEnv - имя ссылочной модели Simulink, содержащей систему, с которой должен взаимодействовать агент. Такую систему часто называют установкой или системой с разомкнутым контуром. В этом примере система отсчета является моделью резервуара для воды.
Откройте модель резервуара для воды с разомкнутым контуром.
open_system('rlWatertankOpenloop.slx')Установите время выборки блока дискретного интегратора, используемого для генерации наблюдения, чтобы можно было выполнить моделирование.
Ts = 1;
Порт ввода называется u (вместо action), а первый и третий выходные порты называются y и stop (вместо observation и isdone). Укажите имена портов с помощью пар имя-значение.
env = createIntegratedEnv('rlWatertankOpenloop','IntegratedWatertank',... 'ActionPortName','u','ObservationPortName','y','IsDonePortName','stop')
env =
SimulinkEnvWithAgent with properties:
Model : IntegratedWatertank
AgentBlock : IntegratedWatertank/RL Agent
ResetFcn : []
UseFastRestart : on
Новая модель IntegratedWatertank содержит ссылочную модель, соединенную замкнутым контуром с блоком агента. Функция также возвращает объект среды обучения усиления, который будет использоваться для обучения.
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' - Имя порта вывода флага done эталонной модели"isdone" (по умолчанию) | строка | символьный векторИмя выходного порта done flag ссылочной модели, указанное как разделенная запятыми пара, состоящая из 'IsDonePortName' и вектор строки или символа. Определить IsDonePortName если имя выходного порта done flag ссылочной модели не "isdone".
'ObservationBusElementNames' - Наименования элементов листа шины наблюденияИмена элементов листа шины наблюдения, для которых необходимо создать спецификации, указанные как строковый массив. Чтобы создать спецификации наблюдения для подмножества элементов в объекте шины Simulink, укажите BusElementNames. Если не указать BusElementNamesдля каждого листового элемента в шине создается спецификация данных.
ObservationBusElementNames применяется только в том случае, если выходной порт наблюдения является сигналом шины.
Пример: 'ObservationBusElementNames',["sin" "cos"] создает спецификации для элементов шины наблюдения с именами "sin" и "cos".
'ObservationDiscreteElements' - Конечные значения для спецификаций наблюденияКонечные значения для элементов спецификации дискретного наблюдения, определяемые как разделенная запятыми пара, состоящая из 'ObservationDiscreteElements' и массив ячеек пар имя-значение. Каждая пара имя-значение состоит из имени элемента и массива дискретных значений.
Если выходной порт наблюдения ссылочной модели:
Сигнал шины, укажите имя одного из элементов листа шины, указанного в ObservationBusElementNames
Сигнал без шины, укажите имя порта наблюдения, как указано ObservationPortName
Указанные дискретные значения должны быть привязаны к типу данных указанного сигнала наблюдения.
Если дискретные значения для элемента спецификации наблюдения не указаны, элемент является непрерывным.
Пример: 'ObservationDiscretElements',{'observation',[-1 0 1]} задание дискретных значений для сигнала наблюдения, не связанного с шиной, с именем порта по умолчанию observation.
Пример: 'ObservationDiscretElements',{'gear',[-1 0 1 2],'direction',[1 2 3 4]} задает дискретные значения для 'gear' и 'direction' листовые элементы сигнала действия шины.
'ActionDiscreteElements' - Конечные значения для спецификаций действийКонечные значения для элементов спецификации дискретного действия, определяемые как разделенная запятыми пара, состоящая из 'ActionDiscreteElements' и массив ячеек пар имя-значение. Каждая пара имя-значение состоит из имени элемента и массива дискретных значений.
Если входной порт действия ссылочной модели:
Сигнал шины, укажите имя листового элемента шины
Сигнал без шины, укажите имя порта действия, как указано ActionPortName
Указанные дискретные значения должны быть привязаны к типу данных указанного сигнала действия.
Если дискретные значения для элемента спецификации действия не указаны, элемент является непрерывным.
Пример: 'ActionDiscretElements',{'action',[-1 0 1]} задание дискретных значений для сигнала без действия шины с именем порта по умолчанию 'action'.
Пример: 'ActionDiscretElements',{'force',[-10 0 10],'torque',[-5 0 5]} задает дискретные значения для 'force' и 'torque' листовые элементы сигнала действия шины.
env - Усиливающая среда обученияSimulinkEnvWithAgent объектИнтерфейс среды обучения для усиления, возвращенный как SimulinkEnvWithAgent объект.
agentBlock - Путь блокировки к блоку агентаПуть блокировки к блоку агента в новой модели, возвращаемый в виде символьного вектора. Чтобы обучить агента в новой модели Simulink, необходимо создать агента и указать его имя в блоке агента RL, указанном agentBlock.
Дополнительные сведения о создании агентов см. в разделе Усиление агентов обучения.
obsInfo - Спецификации данных наблюденийrlNumericSpec объект | rlFiniteSetSpec object | массив объектов спецификации данныхТехнические характеристики данных наблюдения, возвращаемые как одно из следующих:
rlNumericSpec объект для одной спецификации непрерывного наблюдения
rlFiniteSetSpec объект для одной спецификации дискретного наблюдения
Массив объектов спецификации данных для нескольких спецификаций
actInfo - Спецификации данных действийrlNumericSpec объект | rlFiniteSetSpec object | массив объектов спецификации данныхСпецификации данных действий, возвращаемые как одно из следующих:
rlNumericSpec объект для одной спецификации непрерывного действия
rlFiniteSetSpec объект для одной спецификации дискретного действия
Массив объектов спецификации данных для нескольких спецификаций действий
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.