exponenta event banner

Simulink.sdi. Сигнал

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

Описание

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

Создание

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

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

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

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

Свойства

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

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

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

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

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

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

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

Пример: 'fuel'

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

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

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

  • 'States' - Состояния данных регистрации.

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

  • 'Parametrs' - Данные регистрируемых параметров.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 'double'

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

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

Пример: "real"

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

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

Пример: 'Continuous'

Пример: '0.1'

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

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

Пример: 'sldemo_fuelsys'

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

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

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

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

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

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

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

  • "phase" - фаза сигнала отображается при построении графика сигнала. Фаза выводится на печать с другим оттенком цвета линии.

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

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

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

Цвет сигнала на графиках, указанный как 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 для использования глобальных значений допуска.

Дополнительные сведения о допусках в инспекторе расчетных данных см. в разделе Как инспектор расчетных данных сравнивает данные.

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

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

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

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 используется для открытия инспектора данных моделирования и просмотра выводимого на печать сигнала.

Программный интерфейс Simulation Data 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 функция. 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');

Инспектор данных моделирования отслеживает выполнение, присваивая уникальный числовой идентификатор выполнения каждому выполнению, созданному путем моделирования, импорта данных или открытия сеанса. Для доступа к объекту прогона только что выполненного моделирования используйте 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);

Просмотр выводимых на печать данных

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

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