Получение идентификаторов сигналов внутри Simulink.sdi.Run объект с использованием имени сигнала
возвращает один или несколько идентификаторов сигналов в sigIDs = getSignalIDsByName(runObj,name)Simulink.sdi.Run объект с указанным именем, name.
Вы можете получить доступ к идентификаторам сигналов внутри Simulink.sdi.Run путем указания имени сигнала, для которого требуется идентификатор сигнала. Идентификатор сигнала можно использовать для сравнения сигналов с помощью Simulink.sdi.compareSignals функция, доступ к Simulink.sdi.Signal объект для сигнала с помощью Simulink.sdi.getSignal или удалить сигнал из инспектора данных моделирования с помощью Simulink.sdi.deleteSignal функция.
В этом примере показано, как использовать getSignalIDsByName функция доступа к сигналу с использованием его имени или пути к блоку и способ доступа к идентификатору сигнала для сигнала, содержащегося внутри шины.
Создание данных в инспекторе расчетных данных
В этом примере используется модель счетчика импульсов для создания данных моделирования в инспекторе данных моделирования. Модель содержит два входных сигнала, определяющих верхний и нижний пределы счетчика, и один входной импульсный сигнал с импульсами для подсчета. Модель использует шины для отправки данных в Bus Counter и из нее в блок Outport. Модель сконфигурирована для регистрации импульсного сигнала, inputи выходной сигнал, OUT, который подключен к блоку Outport.

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