sdo.Experiment

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

Описание

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

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

Чтобы задать параметры модели для оценки, сначала создайте целевую функцию оценки, с помощью sdo.Experiment возразите и экспериментируйте переменные проекта, чтобы оценить конструктивные требования. Можно затем использовать sdo.optimize оценить значения параметров, которые удовлетворяют конструктивным требованиям. Для получения дополнительной информации о рабочем процессе, смотрите Запись Значения Параметра модели Функции стоимости и Оценки (Код).

Создание

Описание

пример

exp = sdo.Experiment(modelname) создает sdo.Experiment объект и наборы ModelName свойство. Остающиеся свойства имеют значения по умолчанию.

Свойства

развернуть все

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

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

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

Чтобы получить начальные состояния модели из модели Simulink, использовать sdo.getStateFromModel.

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

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

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

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

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

Входные данные эксперимента в виде объекта данных. Используйте это свойство задать сигналы примениться к входным портам корневого уровня. Для получения информации о поддерживаемых формах входных данных смотрите Формы Входных данных.

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

Модель должна быть доступной на MATLAB® path.

Пример: 'spe_engine_throttle'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 'Exp1'

Описание эксперимента в виде вектора символов или строки.

Пример: 'Pendulum experiment 1'

Функции объекта

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

Примеры

свернуть все

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

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;
Представленный в R2012b