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