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® путь.

Пример: 'spe_engine_throttle'

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

  • Чтобы задать один выходной сигнал, используйте 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