sdo.Experiment class

Пакет: 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;