Simulink.sdi.Signal

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

Описание

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

Создание

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

  • Simulink.sdi.getSignal функция возвращает Signal объект, который соответствует ID сигнала, который вы обеспечиваете.

  • getSignal функция возвращает Signal объект с заданным ID сигнала в заданном Run объект.

  • getSignalByIndex функция возвращает Signal объект в заданном индексе в заданном Run объект.

Свойства

развернуть все

Свойства сигнала

Это свойство доступно только для чтения.

Уникальный номер, идентифицирующий сигнал, возвращенный как целое число. Инспектор Данных моделирования присваивает уникальный числовой ID каждому запуску и сигналу.

Это свойство доступно только для чтения.

Запустите идентификатор для запуска, который содержит сигнал, возвращенный как целое число. Инспектор Данных моделирования присваивает уникальный числовой ID каждому запуску и сигналу.

Имя сигнала в виде вектора символов или строки. Когда Signal объект содержит данные, регистрируемые от симуляции, имя совпадает с именем, заданным для сигнала в модели. Если модель не задает имя, имя сигнала является блоком path с блоком, который производит сигнал.

Пример: 'fuel'

Тип сигнала в виде одной из этих опций:

  • 'Signals' — Данные о регистрации сигнала.

  • 'Outports' — Выведите данные о регистрации.

  • 'States' — Состояния, регистрирующие данные.

  • 'Data Store Memory' — Данные о регистрации памяти хранилища данных.

  • 'Parametrs' — Регистрируемые данные о параметре.

  • 'Stateflow' — Данные Stateflow®.

  • 'Simscape' — Данные Simscape™.

  • 'Assessments' — Данные об оценке Simulink® Test™.

  • 'Profiling' — Выполнение профильные данные.

Область свойство пусто для данных, не созданных путем логгирования данных моделирования.

Описание сигнала в виде вектора символов или строки. Можно использовать Description свойство аннотировать сигнал или идентифицировать содержимое сигнала вне Name. Когда вы регистрируете данные Simscape Инспектору Данных моделирования, Description свойство заполняется автоматически для каждого узла.

Это свойство доступно только для чтения.

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

Можно преобразовать сохраненные единицы для сигнала с помощью convertUnits функция. Сохраненное модульное преобразование не поддерживает отмену и может привести к потере точности.

Пример: 'g/s'

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

Пример: 'm/s'

Это свойство доступно только для чтения.

Тип данных данных сигнала, возвращенных как вектор символов или строка.

Пример: 'double'

Это свойство доступно только для чтения.

Сложность данных сигнала, возвращенных как "real" или "complex".

Пример: "real"

Это свойство доступно только для чтения.

Шаг расчета сигнала, возвращенный как вектор символов или скаляр. Значение 'Continuous' указывает на симуляцию переменного шага.

Пример: 'Continuous'

Пример: '0.1'

Это свойство доступно только для чтения.

Имя модели, которая произвела сигнал, возвратилось как вектор символов. Model свойство пусто для Signal объекты, которые содержат данные, которые не были произведены путем симуляции модели.

Пример: 'sldemo_fuelsys'

Это свойство доступно только для чтения.

Блок path для блока, который произвел сигнал, возвратился как символьный массив. BlockPath свойство является относительным путем, который не включает иерархию модели. BlockPath свойство пусто для Signal объекты, которые содержат данные, которые не были произведены путем симуляции модели.

Пример: 'sldemo_fuelsys/Engine Gas Dynamics'

Это свойство доступно только для чтения.

Полный блок path для блока, который произвел сигнал, включая полную иерархию модели, возвратился как вектор символов. Для сигналов в моделях, на которые ссылаются, FullBlockPath массив ячеек, который содержит полный путь. Для других сигналов, FullBlockPath идентично BlockPath. FullBlockPath свойство пусто для Signal объекты, которые содержат данные, которые не были произведены путем симуляции модели.

Это свойство доступно только для чтения.

Имя блока, который произвел сигнал, возвратилось как вектор символов. BlockName свойство пусто для Signal объекты, которые содержат данные, которые не были произведены путем симуляции модели.

Пример: 'Engine Gas Dynamics'

Это свойство доступно только для чтения.

Индекс выходного порта, соединенного с сигналом на блоке, который производит сигнал. PortIndex свойство пусто для Signal объекты, которые содержат данные, которые не были произведены путем симуляции модели.

Пример 1

Это свойство доступно только для чтения.

Размерности сигнала, возвращенные как целочисленный или целочисленный массив.

Пример: [1 2]

Это свойство доступно только для чтения.

Индекс сигнала в матрице, возвращенной как целочисленный массив.

Это свойство доступно только для чтения.

Количество выборок в сигнале, возвращенном как целое число.

Временные стоимости и значения данных для сигнала, возвращенного как timeseries объект для сигналов нешины или структуры, совпадающей с иерархией шины для сигналов шины.

Это свойство доступно только для чтения.

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

Пример: Когда вы импортируете Simulink.SimulationOutput объект simOut содержа структуру xout, RootSource 'simOut.get('xout')'

Это свойство доступно только для чтения.

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

Пример: Когда вы импортируете Simulink.SimulationOutput объект simOut содержа структуру xout, TimeSource 'simOut.get('xout').time'

Это свойство доступно только для чтения.

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

Пример: Когда вы импортируете Simulink.SimulationOutput объект simOut содержа структуру xout, DataSource 'simOut.get('xout').signals(1).values'

Это свойство доступно только для чтения.

Сигналы содержатся в составном сигнале, возвращенном как Simulink.sdi.Signal объекты. Children свойство пусто для скалярных сигналов.

Свойства визуализации

Сложный формат раньше отображал комплексные данные сигнала в Инспекторе Данных моделирования в виде одного из следующих значений. Можно изменить ComplexFormat свойство для Signal возразите, чтобы измениться, как Инспектор Данных моделирования отображает данные сигнала, когда объект содержит данные для комплексного сигнала.

  • "real-imaginary" — Действительные и мнимые компоненты отображения сигнала вместе, когда вы строите сигнал. Мнимый компонент сигнала построен с различным оттенком Line Color.

  • "magnitude" — Величина сигнала отображается, когда вы строите сигнал.

  • "magnitude-phase" — Величина и фаза отображения сигнала вместе, когда вы строите сигнал.

  • "phase" — Фаза сигнала отображается, когда вы строите сигнал. Фаза построена с различным оттенком Line Color.

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

Построен ли сигнал в виде логического значения. Установка Checked к false очищает сигнал от всех подграфиков. Установка Checked к true строит сигнал на активном подграфике.

Типы данных: логический

Цвет сигнала в графиках в виде 1- 3 Вектор RGB со значениями между 0 и 1.

Пример: [0 0.5 0.5]

Типы данных: double

Стиль сигнальной линии использовал, когда сигнал построен в Инспекторе Данных моделирования в виде одной из этих опций:

  • '-' — Тело

  • '--' — Пунктирный

  • ':' — Точечный

  • '-.' — Отмеченный точкой тире

Ширина сигнальной линии использовала, когда сигнал построен в Инспекторе Данных моделирования в виде целого числа между 1 и 20, включительно.

Метод интерполяции используется в визуализации данных и шаге синхронизации сравнений в виде одного из следующих значений:

  • 'zoh' — Нулевой порядок содержит интерполяцию

  • 'linear' — Линейная интерполяция

  • 'none' — Никакая интерполяция

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

Свойства сравнения

Абсолютная погрешность, чтобы использовать в сравнениях сигнала в виде скаляра с положительным знаком.

Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol свойство установлено в 1 или true. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.

Пример: 0.1

Типы данных: double

Относительная погрешность, чтобы использовать в сравнениях сигнала в виде скаляра с положительным знаком. Относительная погрешность описывается как дробный множитель. Например, 0.1 задает 10-процентный допуск.

Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol свойство установлено в 1 или true. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.

Пример: 0.05

Типы данных: double

Допуск времени к сигналу используется в сравнениях сигнала в виде скаляра с положительным знаком. Задайте допуск времени в секундах.

Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol свойство установлено в 1 или true. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.

Пример: 0.1

Типы данных: double

Используют ли сравнения значения допуска сигнала вместо глобальных значений допуска в виде логического значения. Установите OverrideGlobalTol свойство к 1 или true использовать значения допуска, заданные в Signal свойства объектов. Установите свойство на 0 или false использовать глобальные значения допуска.

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

Типы данных: логический

Метод раньше синхронизировал сигналы в сравнениях в виде 'union' или 'intersection'. Для получения дополнительной информации об опциях синхронизации, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.

Функции объекта

convertUnits Преобразуйте единицы Simulink.sdi.Signal объект
export Экспортируйте Simulink.sdi.Signal возразите против рабочей области или файла
getAsTall Создайте длинное расписание из Simulink.sdi.Signal объект
plotOnSubPlot Постройте Simulink.sdi.Signal объект на Инспекторе Данных моделирования подграфик

Примеры

свернуть все

Можно программно задать значения допуска сигнала, чтобы использовать в сравнениях, выполняемых с помощью Инспектора Данных моделирования. В этом примере вы сравниваете данные, собранные путем симуляции модели самолета продольная система управления полетом. Каждая симуляция использует различное значение для входной постоянной времени фильтра и регистрирует сигналы ввода и вывода. Вы анализируете эффект изменения постоянной времени путем сравнения результатов с помощью Инспектора Данных моделирования и допусков сигнала.

Во-первых, загрузите файл сеанса, который содержит данные моделирования.

Simulink.sdi.load('AircraftExample.mldatx');

Файл сеанса содержит четыре запуска. В этом примере вы сравниваете данные из первых двух запусков в файле. Доступ к Simulink.sdi.Run объекты для первых двух запусков загружены из файла.

runIDs = Simulink.sdi.getAllRunIDs;
runIDTs1 = runIDs(end-3);
runIDTs2 = runIDs(end-2);

Теперь сравните два запуска, не задавая допусков.

noTolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);

Используйте getResultByIndex функционируйте, чтобы получить доступ к результатам сравнения для q и alpha сигналы.

qResult = getResultByIndex(noTolDiffResult,1);
alphaResult = getResultByIndex(noTolDiffResult,2);

Проверяйте Status из каждого результата сигнала видеть, находился ли результат сравнения в пределах нашего из допуска.

qResult.Status
ans = 
OutOfTolerance
alphaResult.Status
ans = 
OutOfTolerance

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

Можно далее анализировать эффект постоянной времени путем определения значений допуска для сигналов. Задайте допуски путем установки свойств для Simulink.sdi.Signal объекты, которые соответствуют сравниваемым сигналам. Сравнения используют допуски, заданные для базовых сигналов. Этот пример задает допуск времени и абсолютную погрешность.

Задавать допуск, первый доступ Signal объекты от базового запуска.

runTs1 = Simulink.sdi.getRun(runIDTs1);
qSig = getSignalsByName(runTs1,'q, rad/sec');
alphaSig = getSignalsByName(runTs1,'alpha, rad');

Задайте абсолютную погрешность 0.1 и допуск времени 0.6 для q сигнал с помощью AbsTol и TimeTol свойства.

qSig.AbsTol = 0.1;
qSig.TimeTol = 0.6;

Задайте абсолютную погрешность 0.2 и допуск времени 0.8 для alpha сигнал.

alphaSig.AbsTol = 0.2;
alphaSig.TimeTol = 0.8;

Сравните результаты снова. Доступ к результатам сравнения и проверки Status свойство для каждого сигнала.

tolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
qResult2 = getResultByIndex(tolDiffResult,1);
alphaResult2 = getResultByIndex(tolDiffResult,2);

qResult2.Status
ans = 
WithinTolerance
alphaResult2.Status
ans = 
WithinTolerance

В этом примере показано, как получить Simulink.sdi.Signal возразите и измените его свойства с помощью Инспектора Данных моделирования программируемый интерфейс.

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

Когда вы симулируете модель, что данные логов, запуск создается в Инспекторе Данных моделирования, чтобы содержать записанные данные. Можно также создать запуск в Инспекторе Данных моделирования путем импортирования данных. Этот пример симулирует slexAircraftExample модель и регистрирует данные в Dataset формат.

simOut = sim('slexAircraftExample','SaveFormat','Dataset');

Получите Simulink.sdi.Signal Объект

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

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

aircraftRun = Simulink.sdi.getCurrentSimulationRun('slexAircraftExample');

Можно использовать getAllSignals функционируйте, чтобы получить доступ к Signal объекты для всех сигналов в запуске. От возвращенного массива Signal объекты, выберите первый сигнал.

signals = getAllSignals(aircraftRun);
sig = signals(1);

Измените свойства сигнала

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

sig.LineColor = [1 0.4 0.6];
sig.LineDashed = '-';

Simulink.sdi.setSubPlotLayout(1,1)
plotOnSubPlot(sig,1,1,true)

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

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

Во-первых, загрузите сеанс, который содержит данные.

Simulink.sdi.load('AircraftExample.mldatx');

Используйте Simulink.sdi.Run.getLatest функционируйте, чтобы получить доступ к последнему запуску в данных.

aircraftRun = Simulink.sdi.Run.getLatest;

Затем можно использовать Simulink.sdi.getSignalsByName функционируйте, чтобы получить доступ к Stick сигнал, который представляет вход контроллеру и alpha, rad сигнал, который представляет выход.

stick = getSignalsByName(aircraftRun,'Stick');
alpha = getSignalsByName(aircraftRun,'alpha, rad');

Прежде чем вы сравните сигналы, можно задать значение допуска, чтобы использовать для сравнения. Сравнения используют значения допуска, заданные для базового сигнала в сравнении, таким образом установите значение абсолютной погрешности 0.1 на Stick сигнал.

stick.AbsTol = 0.1;

Теперь сравните сигналы с помощью Simulink.sdi.compareSignals функция. Stick сигнал является базовой линией и alpha, rad сигнал является сигналом выдержать сравнение с базовой линией.

comparisonResults = Simulink.sdi.compareSignals(stick.ID,alpha.ID);
match = comparisonResults.Status
match = 
OutOfTolerance

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

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

Создайте запущенную симуляцию и доступ к Run Объект

ex_vdp модель регистрирует два сигнала. Чтобы создать симуляцию, запущенную содержащий записанные данные, симулируйте модель.

sim('ex_vdp');

Инспектор Данных моделирования отслеживает запуски путем присвоения уникального числового ID запуска каждому запуску, созданному симуляцией, импортирования данных или открытия сеанса. Чтобы получить доступ к объекту запуска для симуляции, вы только выполнили, используйте Simulink.sdi.getAllRunIDs функционируйте и возьмите последний ID запуска в возвращенном векторе.

runIDs = Simulink.sdi.getAllRunIDs;
runID = runIDs(end);

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

vdpRun = Simulink.sdi.getRun(runID);

vdpRun.SignalCount
ans = int32
    2

Отобразите данные на графике Используя Signal Объекты

Используйте getSignalByIndex функционируйте, чтобы получить доступ к сигналам от Run объект, fuelRun.

signal1 = getSignalByIndex(vdpRun,1);
signal2 = getSignalByIndex(vdpRun,2);

Используйте Simulink.sdi.setSubPlotLayout функция, чтобы задать размещение 3 на 1.

Simulink.sdi.setSubPlotLayout(2,1)

Прежде, чем отобразить данные на графике, используйте Simulink.sdi.clearAllSubPlots функционируйте, чтобы очистить любые данные, которые уже отображены на графике.

Simulink.sdi.clearAllSubPlots

Постройте один сигнал на каждом подграфике. Чтобы построить сигналы на первом подграфике, можно установить checked свойство для сигнала. Чтобы построить сигналы на подграфиках кроме первого подграфика, используйте plotOnSubPlot функция.

signal1.Checked = true;
plotOnSubPlot(signal2,2,1,true);

Просмотрите отображенные на графике данные

Чтобы просмотреть графики, вы только создали, откройте Инспектора Данных моделирования, использующего Simulink.sdi.view функция.

Представленный в R2012b