Simulink.sdi.Signal

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

Описание

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

Создание

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

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

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

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

Свойства

расширить все

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

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

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

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

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

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

Пример: 'fuel'

Тип сигнала, заданный как один из следующих опций:

  • 'Signals' - Данные логгирования сигналов.

  • 'Outports' - Выход данных логгирования.

  • 'States' - Состояния данных каротажа.

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

  • 'Parametrs' - Зарегистрированные данные параметра.

  • 'Stateflow' - Stateflow® данные.

  • 'Simscape' - Simscape™ данных.

  • 'Assessments' - Simulink® Test™ данные оценки.

  • 'Profiling' - Данные профилирования выполнения.

The Domain свойство пусто для данных, не созданных при регистрации данных моделирования.

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

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

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

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

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

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

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

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

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

Пример: 'double'

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

Комплексность данных сигнала, возвращаемая следующим "real" или "complex".

Пример: "real"

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

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

Пример: 'Continuous'

Пример: '0.1'

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

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

Пример: 'sldemo_fuelsys'

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

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

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

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

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

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

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

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

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

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

Пример: 1

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

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

Пример: [1 2]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Является ли сигнал нанесенным, задается как логическое значение. Настройка Checked на false очищает сигнал от всех подграфиков. Настройка Checked на true строит график сигнала на активной подграфике.

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

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

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

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

Стиль линии сигнала, используемый, когда сигнал нанесен на график в Данные Моделирования Inspector, заданный как один из следующих опций:

  • '-' - Твердое тело

  • '--' - Штриховая

  • ':' - Пунктирная

  • '-.' - Штрих-пунктирная

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

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

  • 'zoh' - Интерполяция удержания нулевого порядка

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

  • 'none' - Нет интерполяции

Для получения дополнительной информации об опциях интерполяции см. Раздел «Как Данные моделирования Inspector сравнивает Данные».

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

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

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

Пример: 0.1

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

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

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

Пример: 0.05

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

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

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

Пример: 0.1

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

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

Для получения дополнительной информации о допусках в Данные моделирования Inspector см. Раздел «Как Данные моделирования Inspector сравнивает Данные».

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

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

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

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

Примеры

свернуть все

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

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

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 объект и изменение его свойств с помощью программного интерфейса Данные Моделирования Inspector.

Создание данных в Данные моделирования Inspector

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

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

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

Программная симуляция возвращает записанные данные в переменной рабочей области simOut. Вы можете получить доступ к записанным данным в этой переменной. Однако, чтобы использовать программный интерфейс Данные Моделирования Inspector, необходимо получить доступ к записанным данным 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);

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

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

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

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

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

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

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

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 функция. The Stick сигнал является базовой линией, и alpha, rad сигнал является сигналом для сравнения с базовой линией.

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

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

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

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

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

sim('ex_vdp');

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

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

Если у вас есть идентификатор запуска для запуска, можно использовать 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);

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

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

Введенный в R2012b