Загрузите данные Используя от блока рабочей области

Загружать данные сигнала с блоком From Workspace:

  1. Создайте переменную рабочей области с данными сигнала, которые вы хотите загрузить.

  2. Добавьте блок From Workspace в модель. Соедините блок From Workspace с блоком, которому блок From Workspace предоставляет вход.

  3. Дважды кликните блок 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 элементом является метка времени nth 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 смотрите, Создают Массив структур.

Данные сигналаРекомендация данных времени

Равномерно распределенные дискретные сигналы

Используйте выражение в этой форме:

timeVector = timeStep * [startTime:numSteps-1]' 

Вектор транспонирован. Кроме того, потому что время начала является временным шагом, вы должны задать количество шагов, которые вы хотите минус 1. Например, чтобы задать 50 временных стоимостей на 0,2 временных шагах:

T1 = 0.2 * [0:49]' 

Примечание

Не используйте выражение в этой форме:

timeVector = [startTime:timeStep:endTime]' 

Например, не используйте:

T2 = [0:0.2:10]' 

Эта форма временного вектора не эквивалентна форме, которая умножается временными шагами (T1), из-за округления с двойной точностью используется компьютерами. Simulink® ожидает точные значения без округления с двойной точностью. Используя T2 форма может привести к неожиданным результатам симуляции.

Неравномерно распределенные значения

Используйте любое допустимое выражение с массивами MATLAB; например, [1:5 5:10] или (1 6 10 15).

From Workspace, From File и Signal Editor блокируют обнаружение пересечения нулем поддержки. Если входной порт корневого уровня соединяется с одним из тех блоков, можно задать время пересечения нулем при помощи дублирующейся записи времени.

Если вы загружаете структуру, которая не задает временной вектор:

  1. Установите Sample time (-1 for inherited) на значение кроме 0 (непрерывный).

  2. Очистите Interpolate data.

  3. Установите 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 и transpose команды с MAT-файлом. Чтобы постараться не транспонировать данные снова, повторно сохраните транспонированные данные.

Загрузите данные о наборе данных

Использовать данные о рабочей области, которые находятся в Simulink.SimulationData.Dataset формат, извлеките timeseries или timetable объект от Dataset объект. Например, если вы используете логгирование сигнала с Dataset формат и использование выходная переменная по умолчанию logsout, поскольку один регистрируемый сигнал входит:

logsout.get(1).values

Определение сигналов Переменного Размера

Можно использовать блок To WorkspaceStructure или 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 обнаруживает нулевые пересечения через все листовые элементы шины.

Смотрите также

Блоки

Похожие темы