sdo. Класс эксперимента

Пакет: sdo

Задайте данные о вводе-выводе эксперимента, параметры модели и значения начального состояния

Описание

experiment задает входные и выходные данные для модели Simulink®. Можно также задать значения начального состояния и параметры модели.

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

Конструкция

exp = sdo.Experiment(modelname)

Создает объект sdo.Experiment. Это присваивает заданное имя модели свойству ModelName и значения по умолчанию к остающимся свойствам.

Входные параметры

modelname

Имя модели Simulink, заданное как вектор символов или строка. Например, 'spe_engine_throttle'.

Модель должна или быть открыта или появиться на пути MATLAB®.

Свойства

InitialStates

Образцовое начальное состояние для эксперимента, заданного как объект param.State.

Чтобы задать несколько начальных состояний, используйте вектор объектов param.State.

Чтобы получить образцовые начальные состояния, используйте sdo.getStateFromModel.

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

  • Чтобы оценить значение начального состояния, установите свойство Free начального состояния к true.

    Когда у вас есть несколько экспериментов для данной модели, можно оценить образцовые начальные состояния на основе на эксперимент. Для этого задайте образцовые начальные состояния для каждого эксперимента. Можно опционально задать исходное предположение для значений начального состояния для любого из экспериментов с помощью свойства Value параметров состояния.

  • Чтобы задать значение начального состояния как, известное количество, не быть оцененным, установило свое свойство Free на false.

После определения начальных состояний, которые вы оцениваете для эксперимента, используйте sdo.Experiment.getValuesToEstimate. sdo.Experiment.getValuesToEstimate возвращает вектор всех параметров модели и начальных состояний, которые вы хотите оценить. Вы используете этот вектор в качестве входа к sdo.optimize, чтобы задать параметры, которые вы хотите оценить.

Значение по умолчанию: []

InputData

Входные данные эксперимента.

Задайте сигналы примениться к входным портам корневого уровня. Для получения информации о поддерживаемых формах входных данных смотрите Формы Входных данных (Simulink).

Значение по умолчанию: []

ModelName

Имя модели Simulink сопоставлено с экспериментом, заданным как вектор символов. Например, 'sldo_model1'.

Модель должна появиться на пути MATLAB.

Значение по умолчанию: ''

OutputData

Выходные данные эксперимента, заданные как объект Simulink.SimulationData.Signal.

Чтобы задать несколько выходных сигналов, используйте вектор объектов Simulink.SimulationData.Signal.

Значение по умолчанию: []

Parameters

Значение параметра модели для эксперимента, заданного как объект param.Continuous.

Чтобы задать значения для нескольких параметров, используйте вектор объектов param.Continuous.

Чтобы получить параметры модели, используйте sdo.getParameterFromModel.

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

  • Чтобы оценить значение параметра, установите свойство Free параметра к true.

    Когда у вас есть несколько экспериментов для данной модели, вы можете:

    • Оцените параметр модели на основе на эксперимент. Для этого задайте параметр модели для каждого эксперимента. Можно опционально задать исходное предположение для значения параметров для любого из экспериментов с помощью свойства Value.

    • Оцените одно значение для параметра модели с помощью всех экспериментальных данных. Для этого не задавайте параметр модели для экспериментов. Вместо этого вызовите sdo.optimize с параметром модели непосредственно.

    Для примера оценки параметров модели на основе на эксперимент и использовании данных из нескольких экспериментов, смотрите Оценочные Параметры модели На Эксперимент (Код).

  • Чтобы задать значение параметров как, известное количество, не быть оцененным, установило свое свойство Free на false.

После определения параметров, которые вы оцениваете для эксперимента, используйте sdo.Experiment.getValuesToEstimate. sdo.Experiment.getValuesToEstimate возвращает вектор всех параметров модели и начальных состояний, которые вы хотите оценить. Вы используете этот вектор в качестве входа к sdo.optimize, чтобы задать параметры, которые вы хотите оценить.

Значение по умолчанию: []

Name

Имя эксперимента, заданное как вектор символов. Например, 'Exp1'.

Значение по умолчанию: ''

Description

Описание эксперимента, заданное как вектор символов. Например, 'Pendulum experiment 1'.

Значение по умолчанию: ''

Методы

createSimulatorСоздайте объект симуляции из эксперимента, чтобы сравнить измеренные и моделируемые данные
getValuesToEstimateПолучите образцовые начальные состояния и параметры для оценки из эксперимента
setEstimatedValuesОбновите эксперименты с предполагаемыми образцовыми начальными состояниями и значениями параметров

Копировать семантику

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

Загрузите измеренные данные об эксперименте.

load sdoBattery_ExperimentData

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

Задайте эксперимент для модели.

modelname = 'sdoBattery';
exp = sdo.Experiment(modelname);
exp.Name = 'Charging';
exp.Description = 'Battery charging data collected on March 15, 2013.';

Задайте входные данные для эксперимента.

exp.InputData = timeseries(Charge_Data(:,2),Charge_Data(:,1));

Задайте выходные данные для эксперимента.

VoltageSig = Simulink.SimulationData.Signal;
VoltageSig.Name      = 'Voltage';
VoltageSig.BlockPath = 'sdoBattery/SOC -> Voltage';
VoltageSig.PortType  = 'outport';
VoltageSig.PortIndex = 1;
VoltageSig.Values    = timeseries(Charge_Data(:,3),Charge_Data(:,1));

exp.OutputData = VoltageSig;