exponenta event banner

sdo. Эксперимент

Укажите экспериментальные данные ввода/вывода, параметры модели и значения начального состояния

Описание

Использовать 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 свойство параметра to true.

    При наличии нескольких экспериментов для данной модели можно:

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

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

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

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

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

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

Пример: 'Exp1'

Описание эксперимента, указанное как символьный вектор или строка.

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

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

createSimulatorСоздание объекта моделирования из эксперимента для сравнения измеренных и смоделированных данных
getValuesToEstimateПолучение исходных состояний модели и параметров для оценки из эксперимента
prepareToDeploy Настройка эксперимента для развертывания с помощью компилятора Simulink
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