bus2RLSpec

Создайте спецификации данных обучения с подкреплением для элементов массива шины Simulink

Описание

пример

specs = bus2RLSpec(busName) создает набор спецификаций данных обучения с подкреплением из Simulink® объект шины, заданный как busName. Один элемент спецификации создается для каждого элемента листа в соответствующей шине Simulink. Используйте эти спецификации для определения действий и наблюдений для окружения обучения с подкреплением Simulink.

пример

specs = bus2RLSpec(busName,Name,Value) задает опции для создания спецификаций с помощью одного или нескольких Name,Value аргументы в виде пар.

Примеры

свернуть все

В этом примере показано, как использовать функцию bus2RLSpec чтобы создать объект спецификации наблюдений из объекта шины Simulink ®.

Создайте объект шины.

obsBus = Simulink.Bus();

Создать три элемента в шине и задать их имена.

obsBus.Elements(1) = Simulink.BusElement;
obsBus.Elements(1).Name = 'sin_theta';
obsBus.Elements(2) = Simulink.BusElement;
obsBus.Elements(2).Name = 'cos_theta';
obsBus.Elements(3) = Simulink.BusElement;
obsBus.Elements(3).Name = 'dtheta';

Создайте объекты спецификаций наблюдений с помощью объекта шины Simulink.

obsInfo = bus2RLSpec('obsBus');

Затем можно использовать obsInfo, вместе с соответствующей моделью Simulink, для создания окружения обучения с подкреплением. Для получения примера смотрите Train DDPG Агента to Swing Up и Balance Mendulum with Bus Signal.

В этом примере показано, как вызвать функцию bus2RLSpec использование пар имя и значение для создания объекта спецификации действия из объекта шины Simulink ®.

Создайте объект шины.

actBus = Simulink.Bus();

Создайте один элемент в шине и укажите имя.

actBus.Elements(1) = Simulink.BusElement;
actBus.Elements(1).Name = 'actuator';

Создайте объекты спецификаций наблюдений с помощью объекта шины Simulink.

actInfo = bus2RLSpec('actBus','DiscreteElements',{'actuator',[-1 1]});

Это задает, что элемент шины 'привода' может нести два возможных значения, -1, и 1.

Затем можно использовать actInfo, вместе с соответствующей моделью Simulink, для создания окружения обучения с подкреплением. В частности, функция, которая создает окружение, использует actInfo, чтобы определить правый выход шины блока агента.

Для получения примера смотрите Train DDPG Агента to Swing Up и Balance Mendulum with Bus Signal.

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

свернуть все

Имя объекта шины Simulink, заданное как строковый или символьный вектор.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'DiscreteElements',{'force',[-5 0 5]} устанавливает 'force' элемент шины, который будет дискретной спецификацией данных с тремя возможными значениями, -5, 0, и 5

Имя модели Simulink, заданное как разделенная разделенными запятой парами, состоящая из 'Model' и строка или вектор символов. Укажите имя модели, когда объект шины определен в глобальной рабочей области модели (для примера, в словаре данных) вместо MATLAB® рабочей области.

Имена элементов шины, для которых необходимо создать спецификации, заданные как разделенная разделенными запятой парами, состоящая из B usElementNames' и строковые массивы. Чтобы создать спецификации наблюдений для подмножества элементов в объекте шины Simulink, задайте BusElementNames. Если вы не задаете BusElementNamesдля каждого листового элемента шины создается спецификация данных.

Примечание

Не указывайте BusElementNames при создании спецификаций на сигналы действия. Блок RL Agent должен выводить полный сигнал шины.

Конечные значения для дискретных элементов шины, заданные как разделенная разделенными запятой парами, состоящая из 'DiscreteElements' и массив ячеек из пар "имя-значение". Каждая пара "имя-значение" состоит из имени листового элемента шины и массива дискретных значений. Заданные дискретные значения должны быть приведены к типу данных заданного сигнала действия.

Если вы не задаете дискретные значения для спецификации элемента, элемент непрерывен.

Пример: 'ActionDiscretElements',{'force',[-10 0 10],'torque',[-5 0 5]} задает дискретные значения для 'force' и 'torque' листовые элементы массива сигнала действия шины.

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

свернуть все

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

  • rlNumericSpec объект для одного непрерывного элемента шины

  • rlFiniteSetSpec объект для одного дискретного элемента шины

  • Массив объектов спецификации данных для нескольких элементов шины

По умолчанию все спецификации данных для элементов шины rlNumericSpec объекты. Чтобы создать дискретную спецификацию для одного или нескольких элементов шины, задайте имена элементов с помощью DiscreteElements Пара "имя-значение".

Введенный в R2019a