getSignalsByName

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

Описание

пример

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

Примеры

свернуть все

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

Создайте данные в инспекторе данных моделирования

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

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

out = sim('ex_pulse_counter');

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

Используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к записанным данным. 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'

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 объект. Children значение свойства содержит два Signal объекты, которые соответствуют сигналам на следующем уровне иерархии в OUT шина.

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

     1     2

Поскольку Signal объект outSig соответствует составному сигналу, вы не можете построить данные сигнала в Инспекторе Данных моделирования, использующем 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 объект.

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

Модель может использовать то же имя сигнала больше чем для одного сигнала. В этом случае, когда это необходимо, чтобы получить доступ к определенному сигналу, можно включать блок path для блока, который производит сигнал в 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