signalbuilder

Создайте и блоки Signal Builder доступа

Синтаксис

[time, data] = signalbuilder(block)
[time, data, signames] = signalbuilder(block)
[time, data, signames, groupnames] = signalbuilder(block)
block = signalbuilder([], 'create', time, data, signames, groupnames)
block = signalbuilder(path, 'create', time, data, signames, groupnames)
block = signalbuilder(path,'create', time, data, signames, groupnames, vis)
block = signalbuilder(path,'create', time, data, signames, groupnames, vis, pos)
block = signalbuilder(path,'create', time, data, signames, groupnames, vis, pos,{openui openmodel})
block = signalbuilder(block, 'append', time, data, signames, groupnames)
block = signalbuilder(block, 'appendgroup', time, data, signames, groupnames)
signalbuilder(block,'append',ds)
signalbuilder(block,'appendgroup',ds)
signalbuilder(block,'append',[ds ds2])
signalbuilder(block,'appendgroup',[ds ds2])
signalbuilder(block,'appendsignal', time, data, signames)
signalbuilder(block, 'showsignal', signal, group)
signalbuilder(block, 'hidesignal', signal, group)
[time, data] = signalbuilder(block, 'get', signal, group)
ds=signalbuilder(block,'get',group)
[ds1 ds2] =signalbuilder(block,'get',group)
signalbuilder(block, 'set', signal, group, time, data)
signalbuilder(block,'set',groupid,ds)
signalbuilder(block,'set',groupid,[ds1 ds2])
index = signalbuilder(block, 'activegroup')
[index, activeGroupLabel]= signalbuilder(block, 'activegroup')
signalbuilder(block, 'activegroup', index)
signalbuilder(block, 'annotategroup', onoff)
signalbuilder(block, 'print', [])
signalbuilder(block, 'print', config, printArgs)
figh = signalbuilder(block, 'print', config, 'figure')

Описание

Примечание

Блок Signal Builder не рекомендуется. Используйте блок Signal Editor вместо этого.

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

Примечание

Когда вы используете команду signalbuilder, чтобы взаимодействовать с блоком Signal Builder, кнопки Undo last edit и Redo last edit на диалоговом окне блока отображаются серым. Вы не можете отменить результаты использования команды signalbuilder.

Создание и доступ к блокам Signal Builder

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

Выходные аргументы, time и data, берут различные форматы в зависимости от настройки блока:

Настройка

Время/Формат данных

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

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

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

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

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

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

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

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

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

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

block = signalbuilder([], 'create', time, data, signames, groupnames) создает блок Signal Builder в новой модели Simulink® использование заданных значений. Предыдущая таблица описывает допустимые форматы time и data. Если data является массивом ячеек, и time является вектором, значения time дублированы для каждого элемента data. Каждый вектор в time и data должен быть той же длиной и иметь по крайней мере два элемента. Если time является массивом ячеек, все элементы в столбце должны иметь то же начальное и окончательное значение. Имена сигнала, signames, и названия группы, groupnames, могут быть не использованы, чтобы использовать значения по умолчанию. Функция возвращает путь к новому блоку, block. Всегда обеспечивайте time и data при использовании команды create. Эти два параметра всегда требуются.

block = signalbuilder(path, 'create', time, data, signames, groupnames) создает новый блок Signal Builder в path с помощью заданных значений. Если path пуст, функция создает блок в новой модели, которая имеет имя по умолчанию. Если data является массивом ячеек, и time является вектором, значения time дублированы для каждого элемента data. Каждый вектор в time и data должен быть той же длиной и иметь по крайней мере два элемента. Если time является массивом ячеек, все элементы в столбце должны иметь то же начальное и окончательное значение. Имена сигнала, signames, и названия группы, groupnames, могут быть не использованы, чтобы использовать значения по умолчанию. Функция возвращает путь к новому блоку, block. Всегда обеспечивайте time и data при использовании команды create. Эти два параметра всегда требуются.

block = signalbuilder(path,'create', time, data, signames, groupnames, vis) создает новый блок Signal Builder и устанавливает видимые сигналы в каждой группе на основе значений матричного vis. Эта матрица должна быть одного размера как массив ячеек, data. Всегда обеспечивайте time и data при использовании команды create. Эти два параметра всегда требуются. Вы не можете создать блоки Signal Builder, в которых все сигналы невидимы. Например, если вы устанавливаете параметр vis для всех сигналов к 0, первый сигнал все еще видим.

block = signalbuilder(path,'create', time, data, signames, groupnames, vis, pos) создает новый блок Signal Builder и устанавливает положение блока на pos. Всегда обеспечивайте time и data при использовании команды create. Эти два параметра всегда требуются. Вы не можете создать блоки Signal Builder, в которых все сигналы невидимы. Например, если вы устанавливаете параметр vis для всех сигналов к 0, первый сигнал все еще видим.

Если вы создаете сигналы, которые меньше, чем отображение располагается или не запускается от 0, блок Signal Builder экстраполирует неопределенные данные сигнала. Это делает так путем содержания окончательного значения.

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

  • Установите openui на 1 открывать окно блока Signal Builder, когда вы создадите блок Signal Builder. Установите openui на 0, сохраняют это окно закрытым после создания блока.

  • Установите openmodel на 1 открывать модель, когда вы создадите блок Signal Builder. Установите openmodel на 0 невидимо загружать модель после создания блока.

Добавление новых групп

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

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

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

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

  • Элементы должны быть данными о timeseries MATLAB®.

  • Данные о timeseries и/или время не должны быть пустыми.

  • Данные о timeseries должны быть типа double.

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

Примечание

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

  • Если вы не задаете значение для groupnames, функция создает новые группы сигнала с шаблоном названия группы по умолчанию, GROUP # n.

Работа с сигналами

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

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

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

Примечание

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

Используя Добираются/Методы установки для Определенных Сигналов и Групп

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

ds=signalbuilder(block,'get',group) получает один набор данных для одной требуемой группы Signal Builder.

[ds1 ds2] =signalbuilder(block,'get',group) добирается наборы данных N для N запросили группы Signal Builder.

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

signalbuilder(block,'set',groupid,ds) наборы один набор данных для требуемой группы Signal Builder. Определение пустого набора данных удаляет группы, заданные в groupid.

signalbuilder(block,'set',groupid,[ds1 ds2]) наборы наборы данных N для N запросили группы.

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

  • Элементы должны быть данными о timeseries MATLAB.

  • Данные о timeseries и/или время не должны быть пустыми.

  • Данные о timeseries должны быть типа double.

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

Примечание

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

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

Примечание

Функция signalbuilder не позволяет вам изменять и удалять данные в том же вызове. Это также не позволяет вам удалять все сигналы и группы из приложения.

Если вы устанавливаете сигналы, которые меньше, чем отображение располагается или не запускается от 0, блок Signal Builder экстраполирует неопределенные данные сигнала путем содержания окончательного значения.

Запрос, маркируя и устанавливая активную группу

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

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

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

Включение текущего отображения группы

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

Значение onoffОписание
'on'Значение по умолчанию. Отображает текущее название группы на маске блока.
'off'Не отображает текущее название группы на маске блока.

Распечатывающие группы сигнала

signalbuilder(block, 'print', []) распечатывает в настоящее время активную группу сигнала.

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

Поле ОписаниеЗначение в качестве примера
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=2

printArgs дополнительного аргумента позволяет вам конфигурировать опции печати (см. print в Ссылке функции MATLAB).

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

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

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

t = 0.2*[0:49]';

Примеры

Пример 1

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

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

Получите данные о Signal Builder из этого блока.

[time, data, signames, groupnames] = signalbuilder('untitled/Signal Builder')
time = 

    [1x2 double]
    [1x2 double]

data = 

    [1x2 double]
    [1x2 double]

signames = 

    'Signal 1'    'Signal 2'

groupnames = 

    'Group 1'

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

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

Вносить это то же изменение с помощью имени сигнала и названия группы:

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

Удалите первый сигнал из группы:

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

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

signalbuilder(block, 'append', [0 2.5 5], [0 2 0], 'Signal 2', 'Group 2');

Добавьте другую группу с новым сигналом с помощью appendgroup:

signalbuilder(block, 'appendgroup', [0 2.5 5], [0 2 0], 'Signal 2', 'Group 3');

Пример 2

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

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

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

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

Пример 3

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

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

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

Пример 4

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

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

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

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

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

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

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

Пример 5

Создайте блок 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',[]);

Пример 6

Создайте блок 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')

Пример 7

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

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

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

Создайте структуру, configstruct, чтобы настроить блок Signal Builder, который вы хотите распечатать.

configstruct.groupIndex = 2;
configstruct.timeRange = [0 2];
configstruct.visibleSignals = 1;
configstruct.yLimits = {[0 1]};
configstruct.extent = [500 300];
configstruct.showTitle = true;

Эта последовательность заполняет все поля структуры configstruct.

Распечатайте представление блока Signal Builder к принтеру по умолчанию. Структура configstruct задает представление, чтобы распечатать.

signalbuilder(block,'print',configstruct)

Распечатайте с опциями печати, например, -dps.

signalbuilder(block,'print',configstruct,'-dps')

Распечатайте представление блока Signal Builder, как задано структурой configstruct к новому скрытому указателю фигуры, figH.

figH = signalbuilder(block,'print',configstruct,'figure')
figure(figH)

Пример 8

Создайте два блока 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,'append',ds);

Чтобы создать третью группу в block, добавьте ds1 в конец групп в block.

signalbuilder(block,'appendgroup',ds1);

Представленный в R2007a