getSignalsByName

Сигналы доступа в Simulink.sdi.Run объект, используя имя сигнала

Описание

пример

sigs = getSignalsByName(runObj,name) возвращает один или несколько Simulink.sdi.Signal объекты с именем, заданным в name.

Примеры

свернуть все

Для доступа к Simulink.sdi.Signal можно использовать программный интерфейс Данные Моделирования Inspector объекты, которые соответствуют записанным или импортированным данным. Использование getSignalsByName функция, можно задать имя сигнала, который вы хотите получить от Simulink.sdi.Run объект. Вы можете получить доступ к данным для отдельных сигналов и составных сигналов.

Создание данных в Данные моделирования Inspector

Этот пример использует модель импульсного счетчика, чтобы создать данные моделирования в Simulation Data Inspector. Модель имеет два входных сигналов, которые задают верхний и нижний предел для счетчика, и один входной импульсный сигнал с импульсами для подсчета. Модель использует шины, чтобы отправить данные в Bus Counter подсистема и из нее в блок Outport. Модель сконфигурирована, чтобы записать импульсный сигнал, inputи выход, соединенный с блоком Outport.

Симулируйте модель, чтобы создать запуск, которая содержит записанные данные в Данных моделирования Inspector.

out = sim('ex_pulse_counter');

Сигналы доступа в Данные моделирования Inspector

Для доступа к записанным данным используйте программный интерфейс Данные Моделирования Inspector. The Simulink.sdi.Run.getLatest функция возвращает Simulink.sdi.Run объект, который соответствует последнему созданному запуску.

countRun = Simulink.sdi.Run.getLatest;

Используйте getSignalsByName функция для доступа к input сигнал. Проверьте Name свойство возвращенного Simulink.sdi.Signal объект.

inSig = getSignalsByName(countRun,'input');
inSig.Name
ans = 
'input'

The input сигнал не является составным сигналом, поэтому Children свойство Signal объект пуст.

inChildren = inSig.Children;
size(inChildren)
ans = 1×2

     0     0

Теперь используйте getSignalsByName функция для доступа к выходу сигналу, OUT. OUT - сигнал шины, который содержит выходной сигнал от счетчика, output, и пределы сигналов, upper_limit и lower_limit, во вложенной шине с именем LIMITBUS.

outSig = getSignalsByName(countRun,'OUT');

Проверьте Name и Children свойства для возвращенного Signal объект. The Children значение свойства содержит два Signal объекты, которые соответствуют сигналам на следующем уровне иерархии в OUT шина.

outSig.Name
ans = 
'OUT'
outChildren = outSig.Children;
size(outChildren)
ans = 1×2

     1     2

Потому что Signal outSig объекта соответствует составному сигналу, вы не можете построить график данных сигнала в Данные моделирования Inspector с помощью Checked свойство или plotOnSubPlot функция. Чтобы построить данные в составном сигнале, получите доступ к индивидууму Signal объекты.

Сигналы доступа внутри составного сигнала

Вы можете получить доступ к сигналам внутри OUT шина и LIMITBUS путем индексации в Children свойство соответствующего Signal объект. Для примера можно получить доступ к output сигнал от OUT шина Signal объект.

outChildren = outSig.Children;
outputSig = outChildren(1);
outputSig.Name
ans = 
'OUT.output'

Вы также можете получить Signal объект для output сигнал путем определения пути к сигналу через иерархию шины.

outputSig = getSignalsByName(countRun,'OUT.output');
outputSig.Name
ans = 
'OUT.output'

Для доступа к upper_limit задайте полный путь к сигналу в шине.

upper_limitSig = getSignalsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig.Name
ans = 
'OUT.LIMITBUS.upper_limit'

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

свернуть все

Запуск, содержащий сигналы, к которым вы хотите получить доступ, заданный как Simulink.sdi.Run объект.

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

Модель может использовать то же имя сигнала для более чем одного сигнала. В этом случае, когда вы хотите получить доступ к определенному сигналу, можно включить путь блока для блока, который производит сигнал в name аргумент. Для примера задайте name как 'slexAircraftExample.Pilot.Stick' для доступа к сигналу с именем Stick это выход Pilot блок в slexAircraftExample модель.

Для доступа к сигналам внутри составных сигналов задайте путь к сигналу через иерархию составного сигнала. Для примера задайте name как 'COUNTERBUS.LIMITBUS.lower_limit' для доступа к lower_limit сигнал внутри шины LIMITBUS который вложен в шину COUNTERBUS.

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

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

свернуть все

Один или несколько сигналов, совпадающих с заданным именем, возвращаются как Simulink.sdi.Signal объект или массив Simulink.sdi.Signal объекты.

Введенный в R2020a