Сигналы доступа в Simulink.sdi.Run
объект, используя имя сигнала
возвращает один или несколько sigs
= getSignalsByName(runObj
,name
)Simulink.sdi.Signal
объекты с именем, заданным в name
.
Simulink.sdi.Signal
Объекты по имениДля доступа к 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'
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
sigs
- Сигналы, совпадающие с заданным именемSimulink.sdi.Signal
объект | массив Simulink.sdi.Signal
объектыОдин или несколько сигналов, совпадающих с заданным именем, возвращаются как Simulink.sdi.Signal
объект или массив Simulink.sdi.Signal
объекты.
getSignalIDsByName
| Simulink.sdi.compareSignals
| Simulink.sdi.deleteSignal
| Simulink.sdi.getSignal
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.