exponenta event banner

createInputDataset

Создание объекта набора данных для портов Inport или элементов шины корневого уровня в модели

Описание

пример

[inports_dataset] = createInputDataset(model) генерирует Simulink.SimulationData.Dataset объект из блоков Inport корневого уровня или портов элементов шины в модели. Сигналы в сформированном наборе данных имеют свойства корневых входов и соответствующие значения земли в момент начала и окончания модели. Можно создавать timetable или timeseries объекты для времени и значений сигналов, для которых требуется загрузить данные для моделирования. Другие сигналы используют наземные значения.

[inports_dataset] = createInputDataset(model,'DatasetSignalFormat',signalFormat) генерирует Simulink.SimulationData.Dataset объект, сигнальными элементами которого являются либо timeseries или timetable.

Примеры

свернуть все

В этом примере показано, как создать набор данных с элементами для четырех блоков Inport корневого уровня в модели. Используйте этот набор данных в качестве основы для создания набора данных для загрузки данных сигнала в модель.

Блок In1 выдает двойное значение, In2 и In3 каждый выводит невиртуальную шину, и In4 выводит int16.

mdl = 'ex_dataset_for_inports';
open_system(mdl)

Создать Dataset объект для корневого уровня Inport блоки.

ds = createInputDataset(mdl)
ds = 

Simulink.SimulationData.Dataset '' with 4 elements

                             Name  BlockPath 
                             ____  _________ 
    1  [1x1 timeseries]      In1   ''       
    2  [1x1 struct    ]      In2   ''       
    3  [1x1 struct    ]      In3   ''       
    4  [1x1 timeseries]      In4   ''       

  - Use braces { } to access, modify, or add elements using index.

Замените значение местозаполнителя для первого сигнала в Dataset с фактическими значениями сигналов, которые необходимо загрузить в модель.

ds{1} = ds{1}.delsample('Index',[1,2]);
ds{1} = ds{1}.addsample('time',[1 3 3 10]','data',[1 1 5 5]');

Осмотрите In2 сигнал.

ds{2}
ans = 

  struct with fields:

    a: [1x1 timeseries]
    b: [1x1 timeseries]

Для In2 , создание данных для элементов шины a и b.

ds{2}.a = ds{2}.a.delsample('Index',[1,2]);
ds{2}.a = addsample(ds{2}.a,'time',[1:10]','data',[1:10]');
ds{2}.b = timeseries((1:10)',0.1:.1:1,'Name','sig2_b');

Для In3, укажите данные для элемента a шины и использовать значения грунта для элемента b.

ds{3}.a = timeseries((1:10)',0.1:.1:1,'Name','sig3_a');

График ds.

plot(ds)

Задайте для параметра конфигурации Input значение ds. Для установки параметра «Ввод» можно также использовать инструмент «Сопоставление корневого ввода».

set_param(mdl,'LoadExternalInput','on');
set_param(mdl,'ExternalInput','ds');

Запустите моделирование. Inport блоки используют данные сигнала, указанные в ds или наземные значения для элементов, не имеющих указанных сигнальных данных.

sim(mdl)

Входные аргументы

свернуть все

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

Формат сигнала для элементов сигнала набора данных, указанный как 'timedata' или 'timeseries'.

Типы данных: char | string

Выходные аргументы

свернуть все

Набор данных с элементом для каждого блока Inport корневого уровня, возвращаемый как Simulink.SimulationData.Dataset объект.

Представлен в R2017a