Получите идентификаторы сигнала для сигналов в Simulink.sdi.Run
объект с помощью имени сигнала
возвращает один или несколько идентификаторов сигнала для сигналов в sigIDs
= getSignalIDsByName(runObj
,name
)Simulink.sdi.Run
объект с указанным именем, name
.
Можно получить доступ к идентификаторам сигнала для сигналов в Simulink.sdi.Run
объект путем определения имени сигнала, для которого вы хотите ID сигнала. Можно использовать ID сигнала, чтобы сравнить сигналы с помощью Simulink.sdi.compareSignals
функция, получите доступ к Simulink.sdi.Signal
объект для сигнала с помощью Simulink.sdi.getSignal
функция, или удаляют сигнал от Инспектора Данных моделирования, использующего Simulink.sdi.deleteSignal
функция.
В этом примере показано, как использовать getSignalIDsByName
функционируйте, чтобы получить доступ к сигналу с помощью его имени или его блока path и как получить доступ к ID сигнала для сигнала, содержавшего в шине.
Создайте данные в инспекторе данных моделирования
Этот пример использует модель импульса в противоречии с, создают данные моделирования в Инспекторе Данных моделирования. Модель имеет два входных сигнала, которые задают верхнее и нижние пределы для счетчика и один входной сигнал импульса с импульсами, чтобы рассчитать. Модель использует шины, чтобы отправить данные в Bus Counter
подсистема и из него с блоком Outport. Модель сконфигурирована, чтобы регистрировать импульсный сигнал, input
, и выходной сигнал, OUT
, который соединяется с блоком Outport.
Симулируйте модель, чтобы создать запуск, который содержит записанные данные в Инспекторе Данных моделирования.
out = sim('ex_pulse_counter');
Доступ к идентификаторам сигнала
Используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к записанным данным. Simulink.sdi.Run.getLatest
функция возвращает Simulink.sdi.Run
объект, который соответствует последний раз созданному запуску. Можно получить доступ к идентификаторам сигнала для регистрируемых сигналов от Simulink.sdi.Run
объект.
countRun = Simulink.sdi.Run.getLatest;
Используйте getSignalIDsByName
функционируйте, чтобы получить доступ к ID сигнала для input
сигнал.
inSigID = getSignalIDsByName(countRun,'input');
В более сложной модели несколько сигналов могут иметь то же имя. В этом случае, с помощью только имя сигнала с getSignalIDsByName
функционируйте результаты в массиве идентификаторов сигнала для всех регистрируемых сигналов в модели то использование то имя. Чтобы избежать дублирующихся результатов, можно задать блок path и предупредить об имени вместе. Используйте точки, чтобы разделить элементы блока path вместо наклонных черт. Например, чтобы получить доступ к ID сигнала для input
сигнал, вы могли также задать имя как 'ex_pulse_counter.Pulse Generator.input'
.
inSigID = getSignalIDsByName(countRun,'ex_pulse_counter.Pulse Generator.input');
Доступ к идентификаторам сигнала для сигналов в составных сигналах
Выход вошел в систему ex_pulse_counter
модель является сигналом шины. Можно получить доступ к ID сигнала, который соответствует главному сигналу шины, OUT
, вложенная шина, LIMITBUS
, и индивидуум предупреждает в шине: output
, upper_limit
, и lower_limit
.
Чтобы получить доступ к ID сигнала для лучшей шины, задайте имя сигнала, OUT
.
OUTSigID = getSignalIDsByName(countRun,'OUT');
Чтобы получить доступ к ID сигнала для вложенной шины, задайте путь к сигналу в иерархии шины.
LIMITBUSSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS');
Чтобы получить доступ к ID сигнала для одного из отдельных сигналов, задайте путь к сигналу в иерархии шины. Вы не можете получить доступ к сигналу с помощью только имя сигнала. Name
свойство Signal
объект включает иерархию шины.
upper_limitSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig = Simulink.sdi.getSignal(upper_limitSigID);
upper_limitSig.Name
ans = 'OUT.LIMITBUS.upper_limit'
runObj
— Запуститесь содержащий сигналы с идентификаторами, к которым вы хотите получить доступSimulink.sdi.Run
объектЗапуститесь содержащий сигналы с идентификаторами сигнала, к которым вы хотите получить доступ в виде Simulink.sdi.Run
объект.
name
— Имя сигнала с ID вы хотите получить доступИмя сигнала с ID сигнала вы хотите получить доступ в виде вектора символов или строки.
Модель может использовать то же имя сигнала больше чем в одном сигнале. В этом случае, когда это необходимо, чтобы получить доступ к ID сигнала для определенного сигнала, можно включать блок path для блока, который производит сигнал в name
аргумент. Например, задайте name
как 'slexAircraftExample.Pilot.Stick'
получить доступ к ID сигнала для сигнала под названием Stick
это - выход Pilot
блокируйтесь в slexAircraftExample
модель.
К сигналам доступа в составных сигналах задайте путь к сигналу через иерархию составного сигнала. Например, задайте name
как 'COUNTERBUS.LIMITBUS.lower_limit'
получить доступ к ID сигнала для lower_limit
предупредите в шине о LIMITBUS
это вкладывается в шине COUNTERBUS
.
Типы данных: char |
string
sigIDs
— Идентификаторы сигнала для сигналов с указанным именемОдин или несколько идентификаторов сигнала для сигналов с указанным именем, возвращенным как скаляр или массив.
Simulink.sdi.compareSignals
| Simulink.sdi.deleteSignal
| Simulink.sdi.getSignal
| getSignalsByName
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.