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

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

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

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

  3. Дважды кликните блок From Workspace и сконфигурируйте:

    • Данные о рабочей области, чтобы загрузить

    • Формат данных для блока From Workspace выводится

    • Как данные загружены, включая шаг расчета, как обрабатываются данные для пропавших без вести точек данных, и использовать ли обнаружение пересечения нулем

    Предположим, что рабочая область содержит вектор-столбец времен под названием T и вектор-столбец соответствующих значений сигналов под названием U. При вводе выражения [T U] для параметра Data приводит к необходимому входному массиву. Если нужный массив или структура существуют в рабочей области, введите имя структуры или матрицы в параметре Data.

Альтернатива использованию блока From Workspace для загрузки данных о рабочей области должна загрузить данные к входному порту корневого уровня. Для получения дополнительной информации смотрите Входные порты Корневого Уровня.

Задайте данные о рабочей области

Дважды кликните блок From Workspace, и в параметре Data, задайте данные о рабочей области, чтобы загрузить. Задайте выражение MATLAB® (например, имя переменной в рабочем пространстве MATLAB), который оценивает к одному из следующего:

  • Объект MATLAB timeseries

    Действительные сигналы типа, которым double может быть в любом формате, который поддерживает блок From Workspace. Для комплексных сигналов и действительных сигналов типа данных кроме double, используйте любой формат кроме Array.

  • Структура MATLAB объекты timeseries

    Для данных о шине используйте структуру MATLAB объекты timeseries. Совпадайте с иерархией шины и задайте объект timeseries для каждого листового сигнала в шине. Настройте данные тот же путь, как вы делаете для загрузки сигналов шины к входному порту корневого уровня. Для получения дополнительной информации смотрите Данные о Шине Загрузки к Входным портам Корневого Уровня.

  • Структура, с или без времени

    Для получения дополнительной информации смотрите, Задают Данные о Структуре для От Блока Рабочей области.

  • Двумерная матрица

    Можно использовать матрицу, чтобы задать только одномерные сигналы. Первый элемент каждой строки матрицы является меткой времени. Остальная часть каждой строки является скаляром или вектором значений сигналов.

Задайте данные о структуре для от блока рабочей области

Можно использовать структуру для одномерных или многомерных сигналов, с или без временных стоимостей. Для структуры используйте этот формат:

  • Поле signals.values, которое содержит вектор-столбец значений сигналов.

  • Дополнительный массив signals.dimensions, который содержит размерности сигнала.

  • Дополнительный вектор time удваивается, который является вектор-столбцом меток времени.

    n 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]' 

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

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

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

Из Рабочей области, Из Файла и Редактора Сигнала блокирует обнаружение пересечения нулем поддержки. Если входной порт корневого уровня соединяется с одним из тех блоков, можно задать время пересечения нулем при помощи дублирующейся записи времени.

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

  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, извлеките объект MATLAB timeseries от набора данных. Например, если вы используете журналирование сигнала с форматом Dataset и используете выходную переменную по умолчанию logsout, поскольку один регистрируемый сигнал входит:

logsout.get(1).values

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

Можно использовать блок To WorkspaceStructure или форматом Structure With Time) или корневой блок Outport, чтобы регистрировать сигналы переменного размера. Затем используйте переменную To Workspace с блоком From Workspace.

Также создайте структуру MATLAB, которая содержит данные сигнала переменного размера. Для каждого поля values в структуре включайте поле valueDimensions, которое задает размерности во время выполнения для сигнала. Для получения дополнительной информации см., что Модели Simulink Используют Сигналы Переменного Размера.

Храните данные для модели, соединенной со словарем данных

Когда вы используете блок From Workspace в модели, которая соединена со словарем данных, необходимо выбрать местоположение, чтобы хранить данные, к которым относится блок. Установите значение параметра Data на основе рабочей области или словаря, который содержит целевые данные, чтобы загрузить. Для получения дополнительной информации смотрите, что Данные о Загрузке Используют От Блока Рабочей области.

'SampleTime'

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

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

Блоки

Похожие темы