Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

sdo.Experiment

실험 I/O 데이터, 모델 파라미터 및 초기 상태 값 지정

설명

입력 데이터와 출력 데이터를 Simulink® 모델의 신호와 연결하기 위해 sdo.Experiment 객체를 사용합니다. 일반적으로 실험에서 수집한 측정 데이터를 모델의 대응하는 신호와 연결합니다.

실험의 createSimulator 함수를 사용하여 시뮬레이션 객체를 만들 수 있습니다. 시뮬레이션 객체는 모델을 시뮬레이션하고 측정된 데이터와 시뮬레이션된 데이터를 비교하기 위해 사용합니다. 시뮬레이션된 응답이 실험 데이터와 일치하지 않는 경우, 모델 응답과 측정된 데이터가 일치하는 모델 파라미터 값을 추정할 수 있습니다.

추정을 위해 모델 파라미터를 지정하려면 먼저 sdo.Experiment 객체와 실험 설계 변수를 사용해 추정 목적 함수를 생성하여 설계 요구 사항을 평가해야 합니다.. 그런 다음 sdo.optimize를 사용하여 설계 요구 사항을 충족하는 파라미터 값을 추정할 수 있습니다. 이 워크플로에 대한 자세한 내용은 모델 파라미터 값 추정하기(코드) 항목과 Write a Cost Function 항목을 참조하십시오.

생성

설명

예제

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에 대한 입력으로 사용하여 추정하려는 파라미터를 지정합니다.

실험 입력 데이터로, 데이터 객체로 지정됩니다. 이 속성을 사용하여 루트 수준 입력 포트에 적용할 신호를 지정합니다. 지원되는 입력 데이터 형식에 대한 자세한 내용은 Forms of Input Data 항목을 참조하십시오.

실험과 연결된 Simulink 모델 이름으로, 문자형 벡터 또는 string형으로 지정됩니다.

모델은 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를 직접 호출하십시오.

    실험별로 모델 파라미터를 추정하고 여러 실험의 데이터를 사용하는 예제는 Estimate Model Parameters Per Experiment (Code) 항목을 참조하십시오.

  • 파라미터 값을 알려진 값(추정하지 않음)으로 지정하려면 Free 속성을 false로 설정합니다.

실험에 대해 추정할 파라미터를 지정한 후 getValuesToEstimate를 사용합니다. getValuesToEstimate는 추정하려는 모든 모델 파라미터와 초기 상태로 구성된 벡터를 반환합니다. 이 벡터를 sdo.optimize에 대한 입력으로 사용하여 추정하려는 파라미터를 지정합니다.

실험 이름으로, 문자형 벡터 또는 string형으로 지정됩니다.

예: 'Exp1'

실험 설명으로, 문자형 벡터 또는 string형으로 지정됩니다.

예: 'Pendulum experiment 1'

객체 함수

createSimulatorCreate simulation object from experiment to compare measured and simulated data
getValuesToEstimateGet model initial states and parameters for estimation from experiment
prepareToDeploy Configure experiment for deployment with Simulink Compiler
setEstimatedValuesUpdate experiments with estimated model initial states and parameter values
updateIODataUpdate experiment input and output data

예제

모두 축소

측정된 실험 데이터를 불러옵니다.

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에 개발됨