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

В этом примере показано, как загрузить входные данные симуляции из файла MAT с помощью блока From File, включая то, как создать и отформатировать входные данные. Можно программно создать данные, вы загружаете, загружаете данные, регистрируемые от другой симуляции, или загружаете реальные данные, собранные от датчиков или в лаборатории. Можно использовать код от каждого раздела формата как шаблон, чтобы изучить, как отформатировать собственные входные данные симуляции.

Исследуйте модель

Этот пример использует простую модель. Два Из Файла блокирует данные о загрузке из двух различных файлов MAT, чтобы создать сигналы, которые соединяются с двумя блоками Выходного порта. Один блок From File загружает данные для скалярного сигнала, и только параметр Имени файла для того блока изменяется от значения по умолчанию. Другой блок From File сконфигурирован, чтобы загрузить данные для шины. Два блока Осциллографа Инструментальной панели отображают выходные сигналы, созданные каждым блоком From File. Модель также содержит три блока Кнопки Коллбэка, которые можно использовать, чтобы сгенерировать файлы с входными данными с помощью каждого формата, поддержанного блоком From File.

Модель использует PreLoadFcn коллбэк к:

  • Создайте и сохраните timeseries данные в файле inputData.mat.

  • Создайте и сохраните входные данные для шины в файле busData.mat.

  • Создайте Simulink.Bus объект, который задает тип выходных данных для блока From File, который загружает данные для шины.

Используйте блоки Кнопки Коллбэка, чтобы создать данные в нужном формате до симуляции модели. Чтобы создать данные, щелкните, чтобы выбрать блок Callback Button и щелкнуть еще раз, чтобы запустить код. Можно просмотреть код для каждого блока Callback Button в диалоговом окне блока или Property Inspector.

Создайте время и данные сигнала

Поддержки блока From File, загружающие данные, сохранены в timeseries объекты и данные сохранены в массиве. Данные вы загружаете использование блока From File, должны содержать временную стоимость, чтобы соответствовать каждому демонстрационному значению. Этот пример создает и загружает десять секунд данных, которые представляют синусоиду.

Во-первых, создайте временной вектор. Когда вы загружаете данные с помощью блока From File, типом данных для временных стоимостей должен быть double, и временные стоимости должны увеличиться монотонно.

sampleTime = 0.01;
numSteps = 1001;
time = sampleTime*(0:numSteps-1);

Используйте выражение в этом примере, чтобы создать равномерно расположенный с интервалами временной вектор для входного сигнала, особенно при моделировании дискретных входных сигналов. MATLAB® поддерживает несколько других методов для создания равномерно расположенного с интервалами временного вектора, но другие методы могут ввести погрешности округления с двойной точностью в данных времени, которые могут привести к неожиданным результатам симуляции.

Теперь создайте данные сигнала с помощью sin функция. Демонстрационные значения вы загружаете использование блока From File, не должны содержать NaNInf, или -Inf значения.

data = sin(2*pi/3*time);

Загрузите timeseries Данные

Загрузка Simulink® и логгирование обоих обычно используют timeseries объекты передать данные временных рядов в и из симуляций. Поддержки блока From File, загружающие множество входных данных, когда вы сохраняете данные в файле MAT как объект timeseries. Значения сигналов, которые вы загружаете, могут быть:

  • Встроенный тип числовых данных кроме halfint64, и uint64; тип данных с фиксированной точкой с до 32-битного размера слова; или перечислимый тип данных.

  • Действительный или комплексный.

  • Скаляр, вектор, или многомерный.

Когда вы загружаете данные в timeseries объект с помощью блока From File, необходимо сохранить timeseries данные в файле MAT Версии 7.3. Блок To File сохраняет данные к файлу MAT Версии 7.3. Когда вы загружаете данные из файла, созданного с помощью блока To File, вы не должны преобразовывать версию файла.

Код для блока Callback Button пометил Create file with timeseries data to load:

  1. Создает время и данные сигнала как векторы-строки.

  2. Транспонирует векторы-строки к вектор-столбцам, как требуется чтобы создать timeseries объект со скалярными значениями данных.

  3. Создает timeseries объект содержать данные.

  4. Сохраняет timeseries объект в файле MAT Версии 7.3.

sampleTime = 0.01;
numSteps = 1001;
time = sampleTime*[0:(numSteps-1)];
data = sin(2*pi/3*time);
time = time';
data = data';
inputData = timeseries(data,time);
save("inputData.mat","inputData","-v7.3");

Загружать timeseries данные, можно запустить код, чтобы создать inputData.mat файл с помощью командного окна MATLAB или выбора затем нажимает Create file with timeseries data to load Блок Callback Button. Затем симулируйте модель и просмотрите загруженные данные по блоку Dashboard Scope.

Загрузите данные массива

Можно использовать блок From File, чтобы загрузить скалярные или векторные данные сигнала, отформатированные как массив, где первая строка содержит данные времени, и последующие строки содержат демонстрационные значения. Когда вы загружаете данные массива с помощью блока From File, демонстрационные значения должны быть действительными и double. Блок From File может загрузить данные массива от любых версий файла MAT.

Код для блока Callback Button пометил Create file with array data to load создает время и данные сигнала, конкатенирует векторы-строки в массив и сохраняет массив в файл MAT Версии 7.

sampleTime = 0.01;
numSteps = 1001;
time = sampleTime*[0:(numSteps-1)];
data = sin(2*pi/3*time);
inputData = [time;data];
save("inputData.mat","inputData")

Чтобы загрузить данные массива, можно запустить код, чтобы создать inputData.mat файл с помощью командного окна MATLAB или выбора затем нажимает Create file with array data to load Блок Callback Button. Затем симулируйте модель и просмотрите загруженные данные по блоку Dashboard Scope.

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

Поддержки блока From File, загружающие структуру, которая содержит timeseries объекты как входные данные для шины. Каждый timeseries объект в структуре может содержать любой вид данных, поддержанных при загрузке данных из одного timeseries объект.

Когда вы загружаете данные о шине с помощью блока From File, необходимо задать параметр типа Выходных данных как Simulink.Bus объект, который задает шину. Иерархия и имена полей в структуре, которая содержит данные о шине, должны совпадать с иерархией и именами элементов Bus объект, который задает тип выходных данных.

Блок From File, который загружает данные о шине, имеет свою установку типа Выходных данных, сконфигурированную как Bus: SinusoidBus. PreLoadFcn коллбэк для модели и кода для Create file with bus data to load Блок Callback Button оба задает SinusoidBus объект.

Bus объект задает иерархию шины, а также свойства элементов в шине, таких как имя и тип данных. Bus объект в этом примере задает иерархию шины, имена для сигналов, содержавшихся в шине и типе данных для вложенной шины. Шина, SinusoidBus, содержит один сигнал, Cosine, и вложенная шина под названием SineBus, который содержит два сигнала, Sine и BigSine.

elems(1) = Simulink.BusElement;
elems(1).Name = 'Sine';
elems(2) = Simulink.BusElement;
elems(2).Name = 'BigSine';
SineBus = Simulink.Bus;
SineBus.Elements = elems;

clear elems;
elems(1) = Simulink.BusElement;
elems(1).Name = 'SineBus';
elems(1).DataType = 'Bus: SineBus';
elems(2) = Simulink.BusElement;
elems(2).Name = 'Cosine';
SinusoidBus = Simulink.Bus;
SinusoidBus.Elements = elems;

Для получения дополнительной информации об определении шин с помощью Simulink.Bus объекты, смотрите Specify Bus Properties с Типами данных Object Simulink.Bus.

Create bus data to load Блок Callback Button создает структуру timeseries объекты с иерархией и именами полей, которые совпадают с иерархией и именами элементов SinusoidBus возразите и сохраняет структуру в файл MAT Версии 7.3.

sampleTime = 0.01;
numSteps = 1001;
time = sampleTime*[0:(numSteps-1)];
time = time';

data = sin(2*pi/3*time);
cosdata = cos(2*pi/3*time);
ampdata = 2*data;

busData.Cosine = timeseries(cosdata,time);
busData.SineBus.Sine = timeseries(data,time);
busData.SineBus.BigSine = timeseries(ampdata,time);

save("busData.mat","busData","-v7.3");

Чтобы загрузить данные о шине, можно запустить код, чтобы создать busData.mat файл с помощью командного окна MATLAB или выбора затем нажимает Create bus data to load Блок Callback Button. Затем симулируйте модель и просмотрите загруженные данные по блоку Dashboard Scope.

Когда вы загружаете входные данные для шины с помощью блока From File, вы не должны обеспечивать данные для каждого элемента в шине. Чтобы частично задать входные данные для шины, можно не использовать соответствующее поле в структуре или задать ее значение как []. Когда вы частично задаете данные для шины, которая включает вложенную шину, можно задать целую вложенную шину как [] и блок From File вводит наземные значения для всех элементов вложенной шины.

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

Блоки

Объекты

Функции

Похожие темы