Доступ к данным сигнала и метаданным
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 каждому запуску и сигналу.
RunID
— Запустите идентификаторЭто свойство доступно только для чтения.
Запустите идентификатор для запуска, который содержит сигнал, возвращенный как целое число. Инспектор Данных моделирования присваивает уникальный числовой ID каждому запуску и сигналу.
Name
— Имя сигналаИмя сигнала в виде вектора символов или строки. Когда Signal
объект содержит данные, регистрируемые от симуляции, имя совпадает с именем, заданным для сигнала в модели. Если модель не задает имя, имя сигнала является блоком path с блоком, который производит сигнал.
Пример: 'fuel'
Domain
— Тип сигнала'Signals'
| 'Outports'
| 'States'
| 'Data Store Memory'
| 'Parameters'
| ...Тип сигнала в виде одной из этих опций:
'Signals'
— Данные о регистрации сигнала.
'Outports'
— Выведите данные о регистрации.
'States'
— Состояния, регистрирующие данные.
'Data Store Memory'
— Данные о регистрации памяти хранилища данных.
'Parametrs'
— Регистрируемые данные о параметре.
'Stateflow'
— Данные Stateflow®.
'Simscape'
— Данные Simscape™.
'Assessments'
— Данные об оценке Simulink® Test™.
'Profiling'
— Выполнение профильные данные.
Область
свойство пусто для данных, не созданных путем логгирования данных моделирования.
Description
— Описание сигнала''
(значение по умолчанию) | вектор символов | строкаОписание сигнала в виде вектора символов или строки. Можно использовать Description
свойство аннотировать сигнал или идентифицировать содержимое сигнала вне Name
. Когда вы регистрируете данные Simscape Инспектору Данных моделирования, Description
свойство заполняется автоматически для каждого узла.
Stored Units
— Модули данных сигнала сохранены на дискеЭто свойство доступно только для чтения.
Модули данных сигнала, сохраненных на диске в виде вектора символов или строке. Для сигналов, сгенерированных от симуляции модели, сохраненных модулей Signal
объекты используют модули, заданные в модели. Когда вы задаете дисплеи для сигнала без модулей, те же модули используются, чтобы установить сохраненные модули. Чтобы анализировать сигнал вместе с другим, который использует различные модули, измените дисплеи для сигнала. Инспектор Данных моделирования выполняет преобразование, чтобы отобразить данные на графике с помощью дисплеев.
Можно преобразовать сохраненные единицы для сигнала с помощью convertUnits
функция. Сохраненное модульное преобразование не поддерживает отмену и может привести к потере точности.
Пример: 'g/s'
Display Units
— Модули раньше отображали данные сигнала в Инспекторе Данных моделированияМодули раньше отображали данные сигнала в Инспекторе Данных моделирования в виде вектора символов или строки. Дисплеи для сигнала могут отличаться от сохраненных модулей, которые отражают данные, хранимые на диске. Измените дисплеи сигнала, чтобы анализировать данные в Инспекторе Данных моделирования. Модульные настройки в Инспекторе Данных моделирования могут изменить дисплеи для регистрируемых и импортированных данных сигнала. Для получения дополнительной информации смотрите Дисплеи Сигнала.
Пример: 'm/s'
Data Type
— Тип данных для данных сигналаЭто свойство доступно только для чтения.
Тип данных данных сигнала, возвращенных как вектор символов или строка.
Пример: 'double'
Complexity
— Сложность данных сигнала"real"
| "complex"
Это свойство доступно только для чтения.
Сложность данных сигнала, возвращенных как "real"
или "complex"
.
Пример: "real"
SampleTime
— Шаг расчета сигналаЭто свойство доступно только для чтения.
Шаг расчета сигнала, возвращенный как вектор символов или скаляр. Значение 'Continuous'
указывает на симуляцию переменного шага.
Пример: 'Continuous'
Пример: '0.1'
Model
— Имя модели, которая произвела сигналЭто свойство доступно только для чтения.
Имя модели, которая произвела сигнал, возвратилось как вектор символов. Model
свойство пусто для Signal
объекты, которые содержат данные, которые не были произведены путем симуляции модели.
Пример: 'sldemo_fuelsys'
BlockPath
— Блок path для блока, который произвел сигналЭто свойство доступно только для чтения.
Блок path для блока, который произвел сигнал, возвратился как символьный массив. BlockPath
свойство является относительным путем, который не включает иерархию модели. BlockPath
свойство пусто для Signal
объекты, которые содержат данные, которые не были произведены путем симуляции модели.
Пример: 'sldemo_fuelsys/Engine Gas Dynamics'
FullBlockPath
— Полный блок path для блока, который произвел сигналЭто свойство доступно только для чтения.
Полный блок path для блока, который произвел сигнал, включая полную иерархию модели, возвратился как вектор символов. Для сигналов в моделях, на которые ссылаются, FullBlockPath
массив ячеек, который содержит полный путь. Для других сигналов, FullBlockPath
идентично BlockPath
. FullBlockPath
свойство пусто для Signal
объекты, которые содержат данные, которые не были произведены путем симуляции модели.
BlockName
— Имя блока, который произвел сигналЭто свойство доступно только для чтения.
Имя блока, который произвел сигнал, возвратилось как вектор символов. BlockName
свойство пусто для Signal
объекты, которые содержат данные, которые не были произведены путем симуляции модели.
Пример: 'Engine Gas Dynamics'
PortIndex
— Блокируйте индекс портаЭто свойство доступно только для чтения.
Индекс выходного порта, соединенного с сигналом на блоке, который производит сигнал. PortIndex
свойство пусто для Signal
объекты, которые содержат данные, которые не были произведены путем симуляции модели.
Пример 1
Dimensions
— Размерности сигналаЭто свойство доступно только для чтения.
Размерности сигнала, возвращенные как целочисленный или целочисленный массив.
Пример: [1 2]
Channel
— Индекс сигнала в матрицеЭто свойство доступно только для чтения.
Индекс сигнала в матрице, возвращенной как целочисленный массив.
NumPoints
— Количество выборок в сигналеЭто свойство доступно только для чтения.
Количество выборок в сигнале, возвращенном как целое число.
Values
— Значения сигналовtimeseries
| структураВременные стоимости и значения данных для сигнала, возвращенного как timeseries
объект для сигналов нешины или структуры, совпадающей с иерархией шины для сигналов шины.
RootSource
— Высокоуровневая структура, которая содержит импортированный сигналЭто свойство доступно только для чтения.
Имя высокоуровневой структуры, содержащей сигнал, возвращенный как вектор символов. RootSource
свойство только имеет значение для импортированных сигналов.
Пример: Когда вы импортируете Simulink.SimulationOutput
объект simOut
содержа структуру xout
, RootSource
'simOut.get('xout')'
TimeSource
— Источник импортированных данных времени сигналаЭто свойство доступно только для чтения.
Путь к данным времени сигнала, возвращенным как вектор символов. TimeSource
свойство только имеет значение для импортированных сигналов.
Пример: Когда вы импортируете Simulink.SimulationOutput
объект simOut
содержа структуру xout
, TimeSource
'simOut.get('xout').time'
DataSource
— Источник импортированных данных сигналаЭто свойство доступно только для чтения.
Путь к демонстрационным значениям сигнала, возвращенным как символьный массив. DataSource
свойство только имеет значение для импортированных сигналов.
Пример: Когда вы импортируете Simulink.SimulationOutput
объект simOut
содержа структуру xout
, DataSource
'simOut.get('xout').signals(1).values'
Children
— Сигналы содержатся в составном сигналеSimulink.sdi.Signal
векторЭто свойство доступно только для чтения.
Сигналы содержатся в составном сигнале, возвращенном как Simulink.sdi.Signal
объекты. Children
свойство пусто для скалярных сигналов.
ComplexFormat
— Формат отображения для комплексных сигналов"real-imaginary"
| "magnitude"
| "magnitude-phase"
| "phase"
Сложный формат раньше отображал комплексные данные сигнала в Инспекторе Данных моделирования в виде одного из следующих значений. Можно изменить ComplexFormat
свойство для Signal
возразите, чтобы измениться, как Инспектор Данных моделирования отображает данные сигнала, когда объект содержит данные для комплексного сигнала.
"real-imaginary"
— Действительные и мнимые компоненты отображения сигнала вместе, когда вы строите сигнал. Мнимый компонент сигнала построен с различным оттенком Line Color.
"magnitude"
— Величина сигнала отображается, когда вы строите сигнал.
"magnitude-phase"
— Величина и фаза отображения сигнала вместе, когда вы строите сигнал.
"phase"
— Фаза сигнала отображается, когда вы строите сигнал. Фаза построена с различным оттенком Line Color.
Типы данных: char |
string
Checked
— Построен ли сигнал
или false
(значение по умолчанию) | 1
или true
Построен ли сигнал в виде логического значения. Установка Checked
к false
очищает сигнал от всех подграфиков. Установка Checked
к true
строит сигнал на активном подграфике.
Типы данных: логический
LineColor
— Цвет сигнальной линии
- 3
векторЦвет сигнала в графиках в виде 1
- 3
Вектор RGB со значениями между 0
и 1
.
Пример: [0 0.5 0.5]
Типы данных: double
LineDashed
— Стиль сигнальной линии'-'
| '--'
| ':'
| '-.'
Стиль сигнальной линии использовал, когда сигнал построен в Инспекторе Данных моделирования в виде одной из этих опций:
'-'
— Тело
'--'
— Пунктирный
':'
— Точечный
'-.'
— Отмеченный точкой тире
LineWidth
— Ширина сигнальной линии
(значение по умолчанию) | целое число между 1
и 20
Ширина сигнальной линии использовала, когда сигнал построен в Инспекторе Данных моделирования в виде целого числа между 1
и 20
, включительно.
InterpMethod
метод интерполяции'linear'
(значение по умолчанию) | 'zoh'
| 'none'
Метод интерполяции используется в визуализации данных и шаге синхронизации сравнений в виде одного из следующих значений:
'zoh'
— Нулевой порядок содержит интерполяцию
'linear'
— Линейная интерполяция
'none'
— Никакая интерполяция
Для получения дополнительной информации об опциях интерполяции, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
AbsTol
— Абсолютная погрешность
(значение по умолчанию) | скалярАбсолютная погрешность, чтобы использовать в сравнениях сигнала в виде скаляра с положительным знаком.
Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol
свойство установлено в 1
или true
. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.1
Типы данных: double
RelTol
— Относительная погрешность
(значение по умолчанию) | скалярОтносительная погрешность, чтобы использовать в сравнениях сигнала в виде скаляра с положительным знаком. Относительная погрешность описывается как дробный множитель. Например, 0.1
задает 10-процентный допуск.
Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol
свойство установлено в 1
или true
. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.05
Типы данных: double
TimeTol
— Допуск времени
(значение по умолчанию) | скалярДопуск времени к сигналу используется в сравнениях сигнала в виде скаляра с положительным знаком. Задайте допуск времени в секундах.
Инспектор Данных моделирования использует допуски, заданные в свойствах сигнала базового сигнала когда OverrideGlobalTol
свойство установлено в 1
или true
. Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.1
Типы данных: double
OverrideGlobalTol
— Используют ли сравнения допуск сигнала
или false
(значение по умолчанию) | 1
или true
Используют ли сравнения значения допуска сигнала вместо глобальных значений допуска в виде логического значения. Установите OverrideGlobalTol
свойство к 1
или true
использовать значения допуска, заданные в Signal
свойства объектов. Установите свойство на 0
или false
использовать глобальные значения допуска.
Для получения дополнительной информации о допусках в Инспекторе Данных моделирования, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Типы данных: логический
SyncMethod
— Метод синхронизации'union'
(значение по умолчанию) | 'intersection'
Метод раньше синхронизировал сигналы в сравнениях в виде '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
функция.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.