exponenta event banner

signalbuilder

(Не рекомендуется) Создание блоков построителя сигналов и доступ к ним

Блок построителя сигналов не рекомендуется. Вместо этого используйте блок редактора сигналов.

Синтаксис

Описание

пример

[time,data] = signalbuilder(block) возвращает время и данные блока Signal Builder, block.

[time,data,signames] = signalbuilder(block) возвращает имена сигналов, signamesвремя и данные.

[time,data,signames,groupnames] = signalbuilder(block) возвращает имена сигналов, signamesи имена групп, groupnamesвремя и данные.

пример

block = signalbuilder(path,'create',time,data) создает новый блок построителя сигналов в path с указанными временем и данными. По умолчанию используются имена сигналов и групп.

пример

block = signalbuilder(path,'create',time,data,signames,groupnames) создает новый блок построителя сигналов в path с указанием времени и данных, имен сигналов и имен групп.

block = signalbuilder(path,'create',time,data,signames,groupnames,vis) создает новый блок построителя сигналов и устанавливает видимые сигналы в каждой группе на основе значений матрицы vis.

block = signalbuilder(path,'create',time,data,signames,groupnames,vis,pos) создает новый блок Signal Builder и устанавливает положение блока на pos.

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

block = signalbuilder(path,'create',time,data,signames,groupnames,vis,pos,{openui openmodel}) создает новый блок Signal Builder и открывает или незаметно загружает модель и окно блока Signal Builder.

пример

block = signalbuilder(block,'appendgroup',time,data,signames,groupnames) добавляет новые группы (groupnames) содержащий signames к блоку Построитель сигналов, block. time и data аргументы должны иметь то же количество сигналов, что и существующий блок.

signalbuilder(block,'appendgroup',ds) добавляет один набор данных.

signalbuilder(block,'appendgroup',[ds1 ...dsN]) добавляет N наборов данных.

пример

signalbuilder(block,'appendsignal',time,data,signames) добавляет новые сигналы ко всем группам сигналов в блоке Signal Builder, block. Можно добавлять одни и те же сигналы ко всем группам или добавлять разные сигналы к разным группам. Независимо от добавляемых сигналов добавьте одинаковое количество сигналов ко всем группам. Добавление сигналов ко всем группам в блоке; нельзя добавлять сигналы к подмножеству групп. Соответственно, предоставить time и data аргументы для одной группы (добавить одну и ту же информацию ко всем группам) или для разных групп time и data аргументы для разных групп.

signalbuilder(block,'showsignal',signal,group) делает signals которые скрыты от видимого блока Построителя сигналов. По умолчанию сигналы в текущей активной группе отображаются при создании.

пример

signalbuilder(block,'hidesignal',signal, group) выдает сигналы, signal, скрыто от блока Построитель сигналов. По умолчанию все сигналы отображаются при создании.

[time,data] = signalbuilder(block,'get',signal,group) получает значения времени и данных для указанных сигналов и групп .

ds = signalbuilder(block,'get',group) получает один или несколько наборов данных для одной запрошенной группы построителя сигналов. r получает N наборов данных для N запрошенных групп построителя сигналов.

[ds, …dsN] = signalbuilder(block,'get',group) получает N наборов данных для N запрошенных групп построителя сигналов.

пример

signalbuilder(block,'set',signal,group,time,data) устанавливает значения времени и данных для указанного сигнала и группы. Использовать пустые значения time и data для удаления групп и сигналов. Чтобы удалить группу сигналов, необходимо также удалить все сигналы в этой группе одной и той же командой.

пример

signalbuilder(block,'set',group,ds) устанавливает один набор данных для запрошенной группы Signal Builder. При указании пустого набора данных удаляются группы, указанные в group.

signalbuilder(block,'set',group,[ds1 ...dsN]) устанавливает N наборов данных для N запрошенных групп.

index = signalbuilder(block,'activegroup') получает индекс активной группы.

[index, activeGroupLabel] = signalbuilder(block,'activegroup') получает значение метки активной группы.

signalbuilder(block,'activegroup',index) устанавливает активную группу в индексированную активную группу.

signalbuilder(block,'annotategroup') управляет отображением текущего имени группы на маске блока Signal Builder. 'annotategroup' принимает одно из следующих значений:

  • on - отображает текущее имя группы;

  • off - скрывает текущее имя группы;

signalbuilder(block,'print',config,printArgs) печатает текущую активную группу сигналов или группу сигналов, которая config указывает. Используйте config для настройки внешнего вида группы сигналов.

figh = signalbuilder(block,'print',config,'figure') печатает текущую активную группу сигналов или группу сигналов, которая config указывает на новый дескриптор скрытой фигуры, figh.

Примеры

свернуть все

Создайте блок Signal Builder в окне редактора новой модели.

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});

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

[time, data, signames, groupnames] = signalbuilder(block)
time =

  2×1 cell array

    {1×2 double}
    {1×2 double}

data =

  2×1 cell array

    {1×2 double}
    {1×2 double}

signames =

  1×2 cell array

    {'Signal 1'}    {'Signal 2'}

groupnames =

  1×1 cell array

    {'Group 1'}

Блок Signal Builder содержит два сигнала в одной группе. Изменение второго сигнала в группе.

signalbuilder(block, 'set', 2, 1, [0 5], [2 0]);

Чтобы внести то же самое изменение с использованием имени сигнала и имени группы:

signalbuilder(block, 'set', 'Signal 2', 'Group 1', [0 5], [2 0])

Создайте блок Signal Builder с двумя группами сигналов и удалите одну из групп.

block = signalbuilder([], 'create', [0 2], {[0 1],[1 0]});

Блок Signal Builder имеет две группы, каждая из которых содержит сигнал.

Для удаления второй группы также удалите ее сигнал.

signalbuilder(block, 'set', 1, 2, [], [])

Создайте блок Signal Builder с двумя группами, каждая из которых содержит три сигнала.

block = signalbuilder([], 'create', [0 1], ...
         {[0 0],[1 1];[1 0],[0 1];[1 1],[0 0]});

Создайте блок Signal Builder в окне редактора новой модели.

block = signalbuilder([],'create',{[0 10],[0 20]},{[6 -6],...
[2 5]});

Блок Signal Builder имеет две группы. Каждая группа содержит один сигнал.

Добавление новой сигнальной группы к существующему блоку.

block = signalbuilder(block,'appendgroup',[0 30],[10 -10]);

Добавьте новый сигнал, sig3, всем группам.

signalbuilder(block,'appendsignal',[0 30],[0 10],'sig3');

Создайте блок Signal Builder в окне редактора новой модели.

time = [0 1];
data = {[0 0],[1 1];[1 0],[0 1];[1 1],[0 0]};
block = signalbuilder([], 'create', time, data);

Блок Signal Builder имеет две группы. Каждая группа содержит три сигнала.

Удалите вторую группу. Для удаления группы сигналов также удалите все сигналы в группе.

signalbuilder(block, 'set',[1,2,3],'Group 2',[]);

Создайте блок Signal Builder в новом окне редактора модели и скройте сигнал.

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});

Блок Signal Builder имеет одну группу, содержащую два сигнала.

Скрыть сигнал, Signal 1.

signalbuilder(block,'hidesignal','Signal 1', 'Group 1')

Signal 1 больше не отображается в блоке Signal Builder.

Сделать Signal 1 снова виден.

signalbuilder(block,'showsignal','Signal 1', 'Group 1')

Создайте два блока Signal Builder в новых окнах редактора модели.

block = signalbuilder([], 'create', [0 5], {[2 2];[0 2]});
block1 = signalbuilder('untitled/Signal Builder1', 'create', [1 2], {[1 2];[0 10]});

Получить набор данных для группы 1 из block.

ds=signalbuilder(block,'get',1);

Получить набор данных для группы 1 из block1.

ds1=signalbuilder(block1,'get',1);

Установка набора данных для группы 1 из block кому ds1.

signalbuilder(block,'set',1,ds1);

Добавить исходный набор данных для группы 1 из block (dsКому block.

signalbuilder(block,'appendgroup',ds);

Создание третьей группы в block, добавить ds1 до конца групп в block.

signalbuilder(block,'appendgroup',ds1);

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

свернуть все

Дескриптор или имя блока построителя сигналов. При указании [] для этого аргумента блок имеет путь 'untitled/Signal Builder'.

Пример: 'untitled/Signal Builder'

Пример: block_handle = gcbh

Типы данных: char | string

Определить time в зависимости от конфигурации блока.

Если data является массивом ячеек и time является вектором, time значения дублируются для каждого элемента data. Каждый вектор в пределах time и data должна быть одинаковой длины и иметь по крайней мере два элемента. Если time является массивом ячеек, все элементы в столбце должны иметь одно и то же начальное и конечное значение.

Конфигурация

Формат времени

1 сигнал, 1 группа

Вектор строки точек разрыва.

> 1 сигнал, 1 группа

Вектор ячейки столбца, где каждый элемент соответствует отдельному сигналу и содержит вектор строки точек.

1 сигнал, > 1 группа

Вектор ячейки строки, где каждый элемент соответствует отдельной группе и содержит вектор строки точек.

> 1 сигнал, > 1 группа

Матрица ячейки, где каждый элемент (i, j) соответствует сигналу i и группе j.

Зависимости

Если signalbuilder вызывается для существующего блока, time аргумент должен иметь то же количество сигналов, что и существующий блок.

Типы данных: double

Определить data в зависимости от конфигурации блока.

Если data является массивом ячеек и time является вектором, time значения дублируются для каждого элемента data. Каждый вектор в пределах time и data должна быть одинаковой длины и иметь по крайней мере два элемента. Если time является массивом ячеек, все элементы в столбце должны иметь одно и то же начальное и конечное значение.

Конфигурация

Формат времени/данных

1 сигнал, 1 группа

Вектор строки точек разрыва.

> 1 сигнал, 1 группа

Вектор ячейки столбца, где каждый элемент соответствует отдельному сигналу и содержит вектор строки точек.

1 сигнал, > 1 группа

Вектор ячейки строки, где каждый элемент соответствует отдельной группе и содержит вектор строки точек.

> 1 сигнал, > 1 группа

Матрица ячейки, где каждый элемент (i, j) соответствует сигналу i и группе j.

Типы данных: double

Структура конфигурации, содержащая инструкции по отображению информации о группе сигналов на маске блока. Настройте структуру с помощью одного или нескольких этих полей перед печатью.

ОбластьОписаниеПримерное значение
groupIndex

Скалярный индекс группы сигналов для печати

2
timeRange

Двухэлементный вектор, указывающий временной диапазон для печати (не должен превышать временной диапазон блока)

[3 6]
visibleSignals

Вектор, указывающий индекс печатаемых сигналов

[1 2]
yLimits

Массив ячеек, задающий пределы для оси y каждого сигнала

{[-1 1],
 [0 1]}

extent

Двухэлементный вектор вида:

[width, height]

задание размеров (в пикселях) области для печати сигналов

[500 300]
showTitle

Логическое значение, определяющее необходимость печати заголовка: true (1) печатает заголовок

false

Например, для печати только группы 2 с использованием структуры конфигурации, configstruct, настройте структуру следующим образом. Другие поля указывать не требуется.

configstruct.groupIndex=1

Пример: configstruct

Типы данных: char | string

Создание нового блока построителя сигналов.

Типы данных: char | string

Имена сигналов, указанные как ' ', {}, символьный вектор или массив ячеек символьных векторов.

Если указано значение ' ' или {}, функция использует существующие имена сигналов для новых групп.

Типы данных: char | string

Имена групп, определяемые как символьный вектор или массив ячеек символьных векторов.

Типы данных: char | string

Путь блока, указанный как полный путь блока. Чтобы создать блок построителя сигналов в новой модели, untitled, с именем Signal Builder, укажите [].

Типы данных: char | string

Видимость сигнала, заданная как матрица. Блок Signal Builder отображает сигналы в каждой группе на основе значений матрицы vis. Эта матрица должна иметь тот же размер, что и массив ячеек, data. Невозможно создать блоки построителя сигналов, в которых все сигналы невидимы. Например, если задать vis параметр для всех сигналов 0первый сигнал все еще виден.

Типы данных: double

Позиция блока в модели, заданная как [x y правое дно ].

Типы данных: double

Открытие диалогового окна блока Signal Builder при создании signalbuilder функция, указанная как 0 или 1.

Типы данных: double

Открыть модель при создании signalbuilder функция, заданная как одна из:

  • 0 - Загрузить модель, но не открывать ее.

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

Типы данных: double

Добавление новых сигналов ко всем группам сигналов в блоке Signal Builder. Можно добавлять одни и те же сигналы ко всем группам или добавлять разные сигналы к разным группам. Независимо от добавляемых сигналов добавьте одинаковое количество сигналов ко всем группам. Добавление сигналов ко всем группам в блоке. Нельзя добавлять сигналы к подмножеству групп.

Типы данных: char | string

Добавьте новые группы сигналов, количество временных и сигнальных элементов которых совпадает с существующими группами сигналов в блоке Signal Builder.

Для showsignal и hidesignal методы, если не указано значение для group аргумент, signalbuilder применяет операцию ко всем сигналам и группам.

Типы данных: char

Установка значений на основе входных аргументов.

  • time и data - Возвращает значения времени и данных.

  • ds Вернуть Simulink.SimulationData.Dataset объектов.

Типы данных: char

Получение значений на основе выходных аргументов.

  • [time, data] - Возвращает значения времени и данных.

  • [ds, ...dsN] Вернуть Simulink.SimulationData.Dataset объектов.

Типы данных: char | string

Сделайте один или несколько сигналов видимыми в группе сигналов. Если группа не указана, отображаются все сигналы и группы.

Типы данных: char | string

Скрыть один или несколько сигналов в группе сигналов. Если группа не указана, все сигналы и группы скрыты.

Типы данных: char

Набор данных элементов временных рядов, указанный как Simulink.SimulationData.Dataset объект.

Типы данных: double

Один или несколько наборов данных элементов временных рядов, указанных как Simulink.SimulationData.Dataset объекты.

Пример: [ds1 ds2 ds3]

Типы данных: double

Сигнал, заданный как имя сигнала, скалярный индекс или массив индексов сигнала.

Типы данных: char | double | string

Группа сигналов, заданная как имя группы, скалярный индекс или массив индексов группы.

Типы данных: char | double | string

Индекс группы активных сигналов.

Типы данных: double

Получить активную в данный момент группу сигналов.

Типы данных: char | string

Отображение имени активной группы сигналов в маске блока построителя сигналов:

  • 'on' - Отображение имен активных групп сигналов на маске блока.

  • 'off' - Не отображать имена активных групп сигналов на маске блока.

Типы данных: char | string

Печать группы сигналов.

Типы данных: char | string

Настройка параметров печати (см. print).

Для печати всего содержимого блока Signal Builder укажите [].

Типы данных: char | string

Создайте рисунок, содержащий содержимое блока Signal Builder.

Типы данных: char | double | string

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

свернуть все

Время для блока Signal Builder, возвращаемое как вектор строки, вектор ячейки столбца, вектор ячейки строки или матрица ячейки. Для блока Signal Builder временем является координата X.

time возвращает в различных форматах в зависимости от конфигурации блока.

Конфигурация

Формат времени

1 сигнал, 1 группа

Вектор строки точек разрыва.

> 1 сигнал, 1 группа

Вектор ячейки столбца, где каждый элемент соответствует отдельному сигналу и содержит вектор строки точек.

1 сигнал, > 1 группа

Вектор ячейки строки, где каждый элемент соответствует отдельной группе и содержит вектор строки точек.

> 1 сигнал, > 1 группа

Матрица ячейки, где каждый элемент (i, j) соответствует сигналу i и группе j.

Данные блока Signal Builder, возвращаемые в виде одномерного массива. Для блока Signal Builder временем является координата y.

data принимает различные форматы в зависимости от конфигурации блока.

Конфигурация

Формат данных

1 сигнал, 1 группа

Вектор строки точек разрыва.

> 1 сигнал, 1 группа

Вектор ячейки столбца, где каждый элемент соответствует отдельному сигналу и содержит вектор строки точек.

1 сигнал, > 1 группа

Вектор ячейки строки, где каждый элемент соответствует отдельной группе и содержит вектор строки точек.

> 1 сигнал, > 1 группа

Матрица ячейки, где каждый элемент (i, j) соответствует сигналу i и группе j.

Наборы данных должны иметь то же количество элементов, что и сигналы в группе сигналов. Ограничения формата набора данных для set, append, и appendgroup функции включают в себя:

  • Элементами должны быть данные временных рядов MATLAB ®.

    Данные временных интервалов и/или время не могут быть пустыми.

  • Данные временных рядов должны иметь тип double.

  • Данные временных рядов должны быть 1-D (скалярное значение в каждый момент времени).

Имена сигналов, возвращаемые в виде символьного вектора или массива ячеек символьных векторов.

Путь или дескриптор блока Конструктора сигналов, возвращаемый командами создания блока или добавления.

Набор данных элементов временных рядов, возвращаемый как Simulink.SimulationData.Dataset объект.

Один или несколько наборов данных элементов временных рядов, возвращенных как Simulink.SimulationData.Dataset объекты.

Индекс группы активных сигналов.

Метка активной группы, возвращенная как индекс.

Дескриптор рисунка, возвращаемый при печати содержимого блока Signal Builder на скрытом рисунке.

Подробнее

свернуть все

Интерполяция отсутствующих значений данных

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

t = 0.2*[0:49]';
Представлен в R2007a