Загружать данные сигнала с блоком From Workspace:
Создайте переменную рабочей области с данными сигнала, которые вы хотите загрузить.
Добавьте блок From Workspace в модель. Соедините блок From Workspace с блоком, которому блок From Workspace предоставляет вход.
Дважды кликните блок From Workspace и сконфигурируйте:
Данные о рабочей области, чтобы загрузить
Формат данных для блока From Workspace выводится
Как данные загружены, включая шаг расчета, как обрабатываются данные для пропавших без вести точек данных, и использовать ли обнаружение пересечения нулем
Предположим, что рабочая область содержит вектор-столбец времен под названием T
и вектор-столбец соответствующих значений сигналов под названием U
. Ввод выражения [T U]
для Data параметр дает к необходимому входному массиву. Если нужный массив или структура существуют в рабочей области, введите имя структуры или матрицы в параметре Data.
Альтернатива использованию блока From Workspace для загрузки данных о рабочей области должна загрузить данные к входному порту корневого уровня. Для получения дополнительной информации смотрите Корневой Уровень Input port.
Дважды кликните блок From Workspace, и в параметре Data, задайте данные о рабочей области, чтобы загрузить. Задайте выражение MATLAB® (например, имя переменной в рабочем пространстве MATLAB), который оценивает к одному из следующего:
timeseries
или timetable
объект
Действительные сигналы типа double
может быть в любом формате, который поддерживает блок From Workspace. Для комплексных сигналов и действительных сигналов типа данных кроме double
, используйте любой формат кроме Array
.
Структура timeseries
или timetable
объекты
Для данных о шине используйте структуру timeseries
или timetable
объекты. Совпадайте с иерархией шины и задайте timeseries
или timetable
объект для каждого листа сигнализирует в шине. Настройте данные тот же путь, как вы делаете для загрузки сигналов шины с блоком Inport корневого уровня. Для получения дополнительной информации смотрите Данные о Шине Загрузки к Корневому Уровню Input port.
Структура, с или без времени
Для получения дополнительной информации смотрите, Задают Данные о Структуре для От Блока Рабочей области.
Двумерная матрица
Можно использовать матрицу, чтобы задать только одномерные сигналы. Первым элементом каждой строки матрицы является метка времени. Остальная часть каждой строки является скаляром или вектором значений сигналов.
Когда вы задаете timetable
данные, чтобы загрузить, каждый timetable
объект может содержать данные только для одного сигнала.
Можно использовать структуру в одномерных или многомерных сигналах, с или без временных стоимостей. Для структуры используйте этот формат:
signals.values
поле, которое содержит вектор-столбец значений сигналов.
Дополнительный signals.dimensions
массив, который содержит размерности сигнала.
Дополнительный time
вектор удваивается, который является вектор-столбцом меток времени.
Затем
th time
элементом является метка времени n
th signals.values
элемент.
Форма структуры, которую вы используете, зависит от того, импортируете ли вы данные для:
Дискретные сигналы (сигнал задан в равномерно расположенных с интервалами значениях времени) — Использование структура, которая имеет пустой временной вектор.
Непрерывные сигналы (сигнал задан для всех значений времени) — подход, который вы используете, зависит от того, представляют ли данные плавную кривую или кривую, которая имеет разрывы (скачки) в ее области значений.
Для примеров см.:
И для дискретных и для непрерывных сигналов, задайте signals
поле, которое содержит массив подструктур, каждая из которых соответствует входному порту модели.
Каждый signals
подструктура должна содержать два поля: values
и dimensions
.
values
поле должно содержать массив входных параметров для соответствующего входного порта. Если вы задаете временной вектор, каждый вход должен соответствовать временной стоимости, заданной в time
поле .
Если входные параметры для порта являются скалярными или векторными значениями, values
полем должен быть M-by-N
массив. Если вы задаете временной вектор, M
должно быть количество моментов времени, заданных time
поле и N
продолжительность каждого векторного значения.
Если входные параметры для порта являются матрицами (2D массивы), values
полем должен быть M-by-N-by-T
массив. M
и N
размерности каждого матричного входа и T
количество моментов времени. Предположим, что вы хотите ввести в 51 раз выборки 4 5 матричного сигнала в один из ваших входных портов модели. Затем соответствующий dimensions
поле структуры рабочей области должно равняться [4 5]
и values
массив должен иметь размерности 4-by-5-by-51
.
dimensions
поле задает размерности входа. Если каждый вход является скаляром или вектором (1D массив) значение, dimensions
поле должно быть скалярным значением, которое задает длину вектора (1 для скаляра). Если каждый вход является матрицей (2D массив), dimensions
поле должно быть двухэлементным вектором, первый элемент которого задает количество строк в матрице и чей второй элемент задает количество столбцов.
Для непрерывных сигналов можно задать time
поле, которое содержит временной вектор. Как вы указываете, что временные стоимости зависят от вида данных сигнала, которые вы хотите.
Для получения информации об определении структур MATLAB смотрите, Создают Массив структур (MATLAB).
Данные сигнала | Рекомендация данных времени |
---|---|
Равномерно распределенные дискретные сигналы | Используйте выражение в этой форме: timeVector = timeStep * [startTime:numSteps-1]' Вектор транспонирован. Кроме того, потому что время начала является временным шагом, вы должны задать количество шагов, которые вы хотите минус 1. Например, чтобы задать 50 временных стоимостей на 0,2 временных шагах: T1 = 0.2 * [0:49]' ПримечаниеНе используйте выражение в этой форме: timeVector = [startTime:timeStep:endTime]' Например, не используйте: T2 = [0:0.2:10]' Эта форма временного вектора не эквивалентна форме, которая умножается временными шагами ( |
Неравномерно распределенные значения | Используйте любое допустимое выражение с массивами MATLAB; например, From Workspace, From File и Signal Editor блокируют обнаружение пересечения нулем поддержки. Если входной порт корневого уровня соединяется с одним из тех блоков, можно задать время пересечения нулем при помощи дублирующейся записи времени. |
Если вы загружаете структуру, которая не задает временной вектор:
Установите Sample time (-1 for inherited) на значение кроме 0
(непрерывный).
Очистите Interpolate data.
Установите Form output after final data value by на значение кроме Extrapolation
.
Можно использовать блок From Workspace, чтобы загрузить данные, экспортированные блоком To Workspace в предыдущей симуляции для использования в более поздней симуляции. Сохраните данные о блоке To Workspace в любом Timeseries
или Structure with Time
формат. Загрузка данных, которые были экспортированы в файл использованием блока To File MATLAB timeseries
не требует, чтобы вы изменили данные.
Если вы устанавливаете блок To File параметр Save format на Array
, транспонируйте экспортируемые данные массива. Данные, сохраненные блоком To File, содержат столбцы с последовательными метками времени, сопровождаемыми соответствующими данными. Транспонированные данные содержат строки с последовательными метками времени, сопровождаемыми соответствующими данными. Чтобы обеспечить требуемый формат, используйте MATLAB
и load
команды с MAT-файлом. Чтобы постараться не транспонировать данные снова, повторно сохраните транспонированные данные.transpose
Использовать данные о рабочей области, которые находятся в Simulink.SimulationData.Dataset
формат, извлеките timeseries
или timetable
объект от Dataset
объект. Например, если вы используете логгирование сигнала с Dataset
формат и использование выходная переменная по умолчанию logsout
, поскольку один регистрируемый сигнал входит:
logsout.get(1).values
Можно использовать блок To Workspace (с Structure
или Structure With Time
формат) или корневой блок Outport, чтобы регистрировать сигналы переменного размера. Затем используйте переменную To Workspace с блоком From Workspace.
В качестве альтернативы создайте структуру MATLAB, которая содержит данные сигнала переменного размера. Для каждого values
поле в структуре, включайте valueDimensions
поле, которое задает размерности во время выполнения для сигнала. Для получения дополнительной информации см., что Модели Simulink Используют Сигналы Переменного Размера.
Когда вы используете блок From Workspace в модели, которая соединена со словарем данных, необходимо выбрать местоположение, чтобы хранить данные, к которым относится блок. Установите значение параметра Data на основе рабочей области или словаря, который содержит целевые данные, чтобы загрузить. Для получения дополнительной информации смотрите, что Данные о Загрузке Используют От Блока Рабочей области.
Блок From Workspace параметр Sample time задает шаг расчета, чтобы загрузить данные из рабочей области. Метки времени в данных о рабочей области должны монотонно не уменьшаться. Для получения дополнительной информации см. Настройку времени выборки.
Чтобы использовать линейную лагранжевую интерполяцию, чтобы вычислить значения данных для хитов времени, которые находятся между хитами времени, для которых рабочая область снабжает данными, выберите Interpolate data.
Для сигналов переменного размера очистите Interpolate data.
Чтобы определить блок выход после прошлого раза, хит, для которого данные о рабочей области доступны, комбинирует настройки этих параметров:
Interpolate data
Form output after final data value by
В документации блока From Workspace смотрите параметр Form output after final data value by.
По умолчанию блок From Workspace не включает обнаружение пересечения нулем. Обнаружение пересечения нулем определяет местоположение разрывов, не обращаясь к чрезмерно маленьким временным шагам.
Параметр Enable zero-crossing detection применяется, только если шаг расчета непрерывен (0
).
Если вы выбираете параметр Enable zero-crossing detection, и если входной массив содержит многократные въезды для того же хита времени, Simulink обнаруживает нуль, пересекающий в то время хит.
Для сигналов шины Simulink обнаруживает нулевые пересечения через все листовые элементы шины.