主要内容

sdo。实验

指定实验I/O数据、模型参数和初始状态值

描述

使用一个sdo。实验对象来将输入和输出数据与Simulink中的信号关联起来万博1manbetx®模型。通常,您将从实验中收集到的测量数据与模型中相应的信号相关联。

你可以使用createSimulator创建模拟对象的实验函数。利用仿真对象对模型进行仿真,并将实测数据与模拟数据进行比较。如果模拟响应与实验数据不匹配,您可以估计模型响应与测量数据匹配的模型参数值。

为指定用于估计的模型参数,首先创建一个估计目标函数sdo。实验对象和实验设计变量,以评估设计要求。你可以使用sdo.optimize估计满足设计要求的参数值。有关工作流的更多信息,请参见编写成本函数估算模型参数值(代码)

创建

描述

例子

经验值= sdo。实验(modelname创建一个sdo。实验对象,并设置ModelName财产。其余属性具有默认值。

属性

全部展开

模型实验的初始状态,指定为参数。状态物体或向量参数。状态对象。

  • 要指定单个初始状态,请使用参数。状态对象。

  • 要指定多个初始状态,请使用向量参数。状态对象。

要从Simulink模型中获取模型初始状态,请使用万博1manbetxsdo.getStateFromModel

此属性仅用于指定与模型中定义的初始状态值不同的初始状态。

  • 要估计初始状态的值,请设置免费的初始状态的性质真正的

    当您对一个给定的模型有多个实验时,您可以在每个实验的基础上估计模型的初始状态。为此,为每个实验指定模型的初始状态。属性可以任意指定任何实验的初始状态值的初始猜测价值状态参数的属性。

  • 若要将初始状态值指定为一个已知的、不需要估计的量,请设置其值免费的财产

在指定您为实验估计的初始状态后,使用getValuesToEstimategetValuesToEstimate返回要估计的所有模型参数和初始状态的向量。你用这个向量作为输入sdo.optimize以指定要估计的参数。

实验输入数据,指定为数据对象。使用此属性可指定要应用于根级输入端口的信号。有关支持的输入数据形式的信息,请参见万博1manbetx输入数据的形式

万博1manbetx与实验相关的Simulink模型名称,指定为字符向量或字符串。

模型必须在MATLAB上可用®路径。

例子:“spe_engine_throttle”

实验输出数据,指定为万博1manbetxSimulink.SimulationData.Signal物体或向量万博1manbetxSimulink.SimulationData.Signal对象。

  • 要指定单个输出信号,请使用万博1manbetxSimulink.SimulationData.Signal对象。

  • 要指定多个输出信号,请使用的向量万博1manbetxSimulink.SimulationData.Signal对象。

模型参数值为实验,指定为参数。连续物体或向量参数。连续对象。

  • 要为单个参数指定值,请使用参数。连续对象。

  • 若要为多个参数指定值,请使用参数。连续对象。

要从Simulink模型中获取模型参数,请使用万博1manbetxsdo.getParameterFromModel

仅在指定与模型中定义的参数值不同的参数值时使用此属性。

  • 要估计参数的值,请将免费的属性真正的

    当你对一个给定的模型有多个实验时,你可以:

    • 在每个实验的基础上估计一个模型参数。为此,为每个实验指定模型参数。属性可以任意指定任何实验的参数值的初始猜测价值财产。

    • 用所有的实验数据估计模型参数的一个值。要这样做,不要指定实验的模型参数。相反,叫sdo.optimize直接使用模型参数。

    有关在每个实验的基础上估计模型参数和使用来自多个实验的数据的示例,请参见每次实验估计模型参数(代码)

  • 若要将参数值指定为已知的量(不进行估计),请设置其值免费的财产

在指定为实验估计的参数后,使用getValuesToEstimategetValuesToEstimate返回要估计的所有模型参数和初始状态的向量。你用这个向量作为输入sdo.optimize以指定要估计的参数。

实验名称,指定为字符向量或字符串。

例子:“Exp1”

实验描述,指定为字符向量或字符串。

例子:“摆实验1”

对象的功能

createSimulator 从实验中创建仿真对象来比较测量数据和模拟数据
getValuesToEstimate 从实验中得到模型的初始状态和估计参数
prepareToDeploy 配置用于部署的实验万博1manbetx编译器
setEstimatedValues 用估计的模型初始状态和参数值更新实验
updateIOData 更新实验输入和输出数据

例子

全部折叠

加载测量的实验数据。

负载sdoBattery_ExperimentData

的变量Charge_Data,其中包含电池充电实验期间的测量数据,加载到MATLAB®工作空间中。第一列包含时间数据。第二列和第三列分别包含电流和电压数据。

为模型指定一个实验。

modelname =“sdoBattery”;经验= sdo.Experiment (modelname);exp.Name =“充电”;exp.Description =“2013年3月15日收集的电池充电数据。”

指定实验的输入数据。

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

指定实验的输出数据。

VoltageSig = 万博1manbetxSimulink.SimulationData.Signal;VoltageSig。Name =“电压”;VoltageSig。BlockPath =“sdoBattery / SOC - >电压”;VoltageSig。PortType =“输出港”;VoltageSig。PortIndex = 1;VoltageSig。价值s = timeseries(Charge_Data(:,3),Charge_Data(:,1)); exp.OutputData = VoltageSig;
介绍了R2012b