Можно загрузить данные из рабочей области в порт ввода корневого уровня, смоделированный с помощью одного из следующих блоков:
Эти блоки импортируют данные из рабочей области на основе значения параметра «Параметры конфигурации» > «Импорт/экспорт данных» > «Ввод».
Совет
Чтобы импортировать много сигналов на входные порты корневого уровня, воспользуйтесь средством сопоставления корневого ввода. Дополнительные сведения см. в разделе Сопоставление данных входного сигнала корня.
Можно также импортировать данные из рабочей области с помощью блока «Из рабочей области». Дополнительные сведения см. в документации «Из рабочей области» и «Загрузить данные для входного тестового примера».
Входные данные можно указать вручную с помощью параметра конфигурации Ввод (Input). Чтобы загрузить много сигналов на входные порты корневого уровня, рекомендуется использовать инструмент «Сопоставление корневого входа», который автоматически задает в параметре «Ввод» данные, отображаемые с помощью этого инструмента. Дополнительные сведения см. в разделе Сопоставление данных с помощью инструмента сопоставления корневого ввода.
Выберите Параметры конфигурации > Импорт/экспорт данных > Параметр ввода.
Примечание
Использование параметра Input configuration не зависит от настройки параметра Format configuration для сохранения зарегистрированных данных.
Введите внешнюю спецификацию ввода в соседнее поле редактирования и нажмите кнопку Применить (Apply). Список форм данных, которые можно указать, см. в разделе Формы входных данных.
В поле «Ввод» укажите входной сигнал, используя один из следующих подходов:
Создание данных во время выполнения для каждого шага времени моделирования с использованием входных данных u = UT(t) для функции MATLAB ® (выраженной в виде строки) или для выражения MATLAB.
Укажите данные непосредственно с помощью одной из форм входных данных, описанных в разделе Формы входных данных.
При указании Dataset данные, укажите только один Dataset для параметра Input. Не включайте его в список, разделенный запятыми.
Каждая переменная или выражение должна вычисляться для соответствующего объекта, соответствующего определенному входному порту корневого уровня в модели. Каждая переменная или выражение в списке должны вычисляться до соответствующего объекта, соответствующего одному из входных портов корневого уровня модели. Первый элемент соответствует первому входному порту корневого уровня, второй - второму входному порту корневого уровня и т.д. Размеры каждого образца данных должны соответствовать размерам данных, указанным в параметре входного блока.
Для блока Enable или Trigger сигнал, управляющий портом enable или trigger, должен быть последним элементом в списке, разделенном запятыми. При наличии порта enable и trigger укажите:
Порт enable в качестве следующего по последнему элемента списка
Порт триггера как последний элемент
Используйте пустую матрицу для задания значений заземления для порта. Например, для загрузки данных для входных портов in1 и in3и использовать значения земли для порта in2введите в поле Input (Ввод) следующее:
in1, [], in3
Входные данные можно предоставить в следующих форматах:
Simulink.SimulationData.Dataset - Сбор зарегистрированных данных в MATLAB timeseries формат. Дополнительные сведения см. в разделе Загрузка данных набора данных на входы корневого уровня.
MATLAB timeseries - Для получения дополнительной информации см.:
Simulink.SimulationData.DatasetRef - Дополнительные сведения см. в разделе Загрузка больших данных для моделирования
MATLAB timetable - Дополнительные сведения см. в разделе Загрузка данных расписания MATLAB на входы корневого уровня.
Массив - См. раздел Загрузка массивов данных на входы корневого уровня.
Simulink.SimulationData.Signal - Дополнительные сведения см. в разделе Загрузка данных, зарегистрированных в другом моделировании.
matlab.io.datastore.SimulationDatastore - Дополнительные сведения см. в разделе Работа с большими данными для моделирования.
Структура - для упрощения спецификации внешних входных данных можно загрузить данные для подмножества блоков входных портов корневого уровня. Этот подход позволяет избежать необходимости создания структур данных для портов, для которых требуется использовать базовые значения. Сведения о наземных значениях см. в разделе Инициализация сигналов и дискретных состояний. Дополнительные сведения о загрузке данных структуры см. в разделе Загрузка структур данных на входы корневого уровня.
Структурный массив, содержащий данные для всех входных портов.
Пустая матрица - используйте пустую матрицу для портов, для которых требуется использовать базовые значения, без необходимости создания значений данных.
Выражение времени - дополнительные сведения см. в разделе Загрузка выражений времени MATLAB в корневые порты.
Примечание
При указании timetable данные для загрузки, timetable должен содержать данные только для одного сигнала.
Сведения об импорте данных шины см. в разделе Загрузка данных шины в порты ввода на корневом уровне.
Значения времени, указанные в параметре Ввод (Input), не управляют временем, которое использует решатель. Решатели имеют собственную логику для распространения времени и могут требовать входные данные в произвольном значении времени. Параметр Интерполяция (Interpolate) для входного блока корневого уровня (например, блока корневого уровня Inport) указывает, как обрабатывать вывод во время шагов, для которых не существует соответствующих данных рабочей области.
Значения времени, указанные в параметре Input, не могут быть разреженными или включать NAN или Inf значения.
Если для соответствующего блока Inport, Enable или Trigger выбрана опция Интерполяция данных (Interpolate data), Simulink ® выполняет линейную интерполяцию или экстраполяцию входных значений по мере необходимости.
Simulink разрешает символы, используемые в спецификации внешнего ввода, как описано в разделе Разрешение символов. sim предоставляет некоторые возможности импорта данных, доступные только для программного моделирования.
Если используется Simulink.SimulationData.Dataset объект, включающий matlab.io.datastore.SimulationDatastore объект как элемент, затем данные, хранящиеся в постоянном хранилище, передаются из файла в поток. Дополнительные сведения см. в разделе Загрузка больших данных для моделирования.
Объект Dataset можно использовать в качестве значения параметра «Параметры конфигурации» > «Импорт/экспорт данных» > «Ввод». Укажите только один Dataset и не включать его в список, разделенный запятыми. Количество элементов в Dataset должно соответствовать количеству входных портов корневого уровня.
A Dataset объект может включать элементы с различными типами данных.
Для отдельных данных сигналов, не относящихся к шине, можно указать эти типы данных для Dataset элементы:
timeseries
timetable
matlab.io.datastore.SimulationDatastore
double векторы или структура double данные
a Simulink.SimulationData.Signal, Simulink.SimulationData.State, или Simulink.SimulationData.DataStoreMemory объект
Массив, удовлетворяющий одному из следующих требований:
Массив со временем в первом столбце и остальных столбцах, каждый из которых соответствует входному порту. См. раздел Загрузка массивов данных на входы корневого уровня.
Один nx1 массив для корневого входа, который управляет подсистемой вызова функций.
Структура - См. раздел Загрузка структур данных на входы корневого уровня.
Для сигналов шины используйте структуру с элементом данных для каждого листового сигнала, используя один из следующих форматов:
MATLAB timeseries объект
MATLAB timetable объект
A matlab.io.datastore.SimulationDatastore объект
Пустая матрица
Другая структура, с элементами данных для каждого сигнала, которые согласуются с этими требованиями для структуры для данных шины
Примечание
При указании timetable данные для загрузки, timetable может содержать данные только для одного сигнала.
Для создания Simulink.SimulationData.Dataset из блоков Inport корневого уровня в модели, можно использовать createInputDataset функция. Сигналы в сгенерированном наборе данных имеют свойства блоков Inport и соответствующие значения земли в момент начала и окончания модели. Можно создавать timeseries и timetableобъекты для времени и значения для сигналов для загрузки. Другие сигналы используют наземные значения. Каждый timetable объект должен содержать данные только для одного сигнала.
Можно загрузить данные входного порта корневого уровня, указанные в MATLAB объект, находящийся в рабочей области.timeseries
Примечание
Эта документация по импорту данных временных рядов MATLAB содержит примеры корневых блоков Inport. Если не указано иное, примеры применимы к корневым блокам Enable, Trigger и From Workspace.
При создании MATLAB timeseries объект для импорта данных в Simulink, измерение времени (количество отсчетов времени) зависит от измерения и типа данных сигнала.
| Измерение или тип данных сигнала | Выравнивание измерения времени | Пример конструктора временных рядов |
|---|---|---|
Скалярный или 1D вектор | Сначала | Конструктор для скалярного сигнала. Время выравнивается с первым размером. t = (0:10)'; ts = timeseries(sin(t), t); |
2D (включая векторы строк и столбцов) или более | В последний раз | Конструктор для матричного сигнала. Время выравнивается с последним размером. t = 0; ts = timeseries([1 2; 3 4], t); |
2D вектор строки, и существует только один шаг времени | В последний раз | t = 0;
ts = timeseries([1 2], t, 'InterpretSingleRowDataAs3D', true); |
При указании enum в timetable очистите параметр Interpolate data для соответствующего блока Inport.
Как правило, можно загрузить MATLAB. timetable данные точно так же, как и MATLAB timeseries данные. Каждый timetable должен содержать данные только для одного сигнала.
Данные входного порта корневого уровня можно загрузить из рабочей области в виде структуры, имя которой указано в параметре «Параметры конфигурации» > «Импорт/экспорт данных» > «Ввод». Сведения об определении структур MATLAB см. в разделе Структурные массивы.
Можно указать структуры для модели в целом или для каждого порта. Сведения об указании структур для каждого порта для параметра «Input» см. в разделе Структуры для всех портов или для каждого порта.
Структура всегда включает подструктуру сигналов, которая содержит поле значений и поле измерений. В зависимости от задачи моделирования, которую требуется выполнить, структура может также включать поле времени. Форма используемой структуры зависит от типа сигналов, для которых импортируются данные:
Дискретные сигналы (сигнал определяется при равномерно разнесенных значениях времени) - использовать структуру, имеющую пустой временной вектор. Укажите signals поле, содержащее массив подструктур, каждая из которых соответствует входному порту модели.
Непрерывные сигналы (сигнал определяется для всех значений времени) - используемый подход зависит от того, представляют ли данные плавную кривую (непрерывную) или кривую, которая имеет разрывы (скачки) в диапазоне (дискретные). Укажите signals поле, содержащее массив подструктур, каждая из которых соответствует входному порту модели. Можно указать time , которое содержит вектор времени. См. раздел Указание временных данных.
Примеры импорта данных для дискретных и непрерывных сигналов см. в:
Можно указать одну структуру, чтобы обеспечить ввод для всех портов ввода на корневом уровне в модели, или можно указать отдельную структуру для каждого порта.
Формат структуры для каждого порта состоит из отдельной структуры с временем или структуры без времени для каждого порта. Структура входных данных для каждой имеет только одну signals поле. Чтобы задать этот параметр, введите имена структур в текстовом поле «Ввод» в виде списка, разделенного запятыми. in1, in2,..., inN. Стоимость in1 - данные для первого входного порта в модели, in2 для второго входного порта и т.д.
Чтобы указать одну структуру для всех портов:
values поле должно содержать массив входов для соответствующего входного порта. При указании вектора времени каждый ввод должен соответствовать значению времени, указанному в time поле.
Если входы для порта являются скалярными или векторными значениями, values поле должно быть M-by-N массив. Если задан вектор времени, M должно быть числом моментов времени, указанных time поле и N - длина каждого значения вектора.
Если входами для порта являются матрицы (массивы 2-D), values поле должно быть M-by-N-by-T массив. M и N - размеры каждого ввода матрицы и T - количество моментов времени. Например, предположим, что требуется ввести 51 отсчет времени матричного сигнала 4 на 5 в один из входных портов модели. Затем, соответствующий dimensions поле структуры рабочей области должно равняться [4 5] и values массив должен иметь размеры 4-by-5-by-51.
dimensions в поле указываются размеры входных данных. Если каждый вход является скалярным или векторным (1-D массив) значением, dimensions поле должно быть скалярным значением, определяющим длину вектора (1 для скаляра). Если каждый вход является матрицей (массивом 2-D), dimensions поле должно быть двухэлементным вектором, в котором:
Первый элемент указывает количество строк в матрице
Второй элемент указывает количество столбцов
В качестве части импортируемой структуры данных можно указать вектор времени двойников. Например, укажите вектор времени при импорте данных сигнала для представления непрерывного производства или создания тестового случая. Чтобы проверить дискретный алгоритм, используйте структуру с пустым вектором времени. В этой таблице представлены дополнительные рекомендации по определению значений времени на основе типа загружаемых данных сигнала.
| Сигнальные данные | Рекомендация по временным данным |
|---|---|
Блок ввода или триггера с дискретным временем выборки | Не указывайте вектор времени. Simulink загружает одно значение сигнала на каждом временном шаге. |
Равномерно разнесенные дискретные сигналы | Используйте выражение в этой форме: timeVector = timeStep * [startTime:numSteps-1]' Вектор транспонируется. Кроме того, поскольку время начала является шагом времени, необходимо указать количество шагов, которое требуется - минус 1. Например, чтобы задать 50 временных значений в 0,2 временных шага: T1 = 0.2 * [0:49]' Примечание Не использовать выражение в этой форме: timeVector = [startTime:timeStep:endTime]' Например, не используйте: T2 = [0:0.2:10]' Эта форма вектора времени не эквивалентна форме, которая умножается на временные шаги ( |
Неравномерно разнесенные значения | Используйте любое допустимое выражение массива MATLAB; например, Блоки «Из рабочего пространства», «Из файла» и «Редактор сигналов» поддерживают обнаружение пересечения нулей. Если входной порт корневого уровня подключен к одному из этих блоков, можно указать время пересечения нулей с помощью повторяющейся записи времени. |
В первом примере рассмотрим следующую модель, которая имеет один входной порт:

Создание входной структуры для загрузки 11 временных выборок двухэлементного вектора сигнала типа int8 в модель:
N = 10 Ts = 0.1 a.time = Ts*[0:N]'; c1 = int8([0:1:10]'); c2 = int8([0:10:100]'); a.signals(1).values = [c1 c2]; a.signals(1).dimensions = 2;
В окне «Параметры конфигурации» > «Импорт/экспорт данных» > «Параметры ввода» укажите переменную. a.
В диалоговом окне «Блок ввода» на вкладке «Атрибуты сигнала» задайте для параметра «Размеры порта» значение 2 и тип данных для int8.
В качестве другого примера рассмотрим модель с двумя входами.

Предположим, что вы хотите ввести синусоидальную волну в первый порт и косинусоидальную волну во второй порт. Определите структуру, a, в рабочей области MATLAB:
a.time = 0.1*[0:1]'; a.signals(1).values = sin(a.time); a.signals(1).dimensions = 1; a.signals(2).values = cos(a.time); a.signals(2).dimensions = 1;
Введите имя структуры (a) в окне «Параметры конфигурации» > «Импорт/экспорт данных» > «Параметры ввода».
Примечание
В этой модели нет необходимости указывать измерение и тип данных, поскольку значения по умолчанию: 1 и double.
Данные входного порта корневого уровня можно загрузить из рабочей области в виде массива данных, который задается в параметре «Параметры конфигурации» > «Импорт/экспорт данных» > «Ввод».
Этот формат импорта состоит из вещественной (не сложной) матрицы типа данных double. Первый столбец матрицы должен быть вектором раз в порядке возрастания. В остальных столбцах указаны входные значения.
Каждый столбец представляет входные данные для различных сигналов Inport или Trigger block (в последовательном порядке).
Каждая строка является входным значением для соответствующего момента времени.
Для триггерного блока сигнал, управляющий триггерным портом, должен быть последним элементом данных.
Общее число столбцов входной матрицы должно равняться n + 1, где n - общее количество сигналов, поступающих на входные порты модели.
Входное выражение по умолчанию для модели: [t,u] и формат ввода по умолчанию: Array. При определении t и u в рабочей области MATLAB просто выберите Параметры конфигурации (Configuration Parameters) > Импорт/экспорт данных (Data Import/Export) > Входной параметр (Input) для ввода данных из рабочей области модели.
Предположим, что имеется модель с двумя блоками ввода:
In1 блок принимает два сигнала (для блока установлен параметр «Размеры порта» 2).
In2 блок принимает один сигнал (блок использует значение по умолчанию для параметра «Размеры порта»).
Определение t и u в рабочей области MATLAB:
numSteps = 9; timeStep = 0.1; t = (timeStep*(0:numSteps))'; u = [sin(t),cos(t),4*cos(t)];
При выполнении моделирования данные сигнала sin(t) и cos(t) присвоены In1 и данные сигнала 4*cos(t) присвоен In2. Данные сигнала вводятся в течение 100 моментов времени.
Примечание
Входной формат массива позволяет загружать только реальные (не сложные) скалярные или векторные данные типа double. Используйте формат структуры для ввода комплексных данных, данных матрицы (2-D) и типов данных, отличных от double.
Можно использовать массив для управления подсистемой вызова функций через входной порт корневого уровня. Можно использовать массив или массив, являющийся элементом Dataset объект. Массив должен быть nx1 массив. Для блока ввода корневого уровня выберите параметр Output function call.
Например, это Dataset объект имеет элемент массива x:
ds = Simulink.SimulationData.Dataset; x = [1 3 7 8]'; ds = ds.addElement(x,'theElementName');
В этой модели используется ds набор данных в разделе Параметры конфигурации > Импорт/экспорт данных > Параметр ввода.


При моделировании модели значения времени регистрируемых сигнальных данных в подсистеме Function-Call показывают, что подсистема Function-Call была запущена только для времени, указанного в массиве, хранящемся в ds.
>> logsout{1}.Values.Time
ans =
1
3
7
8Выражение времени MATLAB можно использовать для загрузки данных из рабочей области в порт ввода корневого уровня. Чтобы использовать временное выражение, введите выражение в виде строки (заключенной в одинарные кавычки) в поле Ввод (Input) панели Импорт/экспорт данных (Data Import/Export). Временным выражением может быть любое выражение MATLAB, которое вычисляет вектор строки, равный по длине количеству сигналов, поступающих во входные порты модели. Предположим, что модель имеет один вектор Inport, который принимает два сигнала. Также предположим, что timefcn - определяемая пользователем функция, возвращающая вектор строки длиной в два элемента. Вот допустимые выражения времени ввода для такой модели:
'[3*sin(t), cos(2*t)]' '4*timefcn(w*t)+7'
Выражение вычисляется на каждом этапе моделирования, применяя результирующие значения к входным портам модели. Simulink определяет переменную t при выполнении моделирования. Кроме того, можно опустить переменную времени в выражениях для функций одной переменной. Например, выражение sin интерпретируется как sin(t).