Main Content

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

모델 파라미터 값 추정하기(GUI)

이 예제에서는 실험 데이터를 사용하여 모델 파라미터를 추정하는 방법을 보여줍니다. 엔진 스로틀 시스템의 파라미터를 추정합니다.

엔진 스로틀 시스템 모델

Simulink® 모델을 엽니다.

open_system('spe_engine_throttle')

스로틀 모델 설명

스로틀은 엔진의 흡기 매니폴드로 유입되는 공기 질량 흐름을 제어합니다. 스로틀 바디에 있는 버터플라이 밸브는 운전자가 액셀러레이터 페달을 밟으면 열립니다. 그러면 더 많은 공기가 실린더에 들어가 엔진에서 더 많은 토크를 생성합니다.

DC 모터는 버터플라이 밸브의 개방 각도를 제어합니다. 또한 DC 모터의 전원이 차단되었을 때 밸브를 닫힘 위치로 되돌리기 위한 스프링이 부착되어 있습니다. 밸브의 회전량은 약 90도로 제한됩니다. 따라서 큰 명령 입력이 모터에 적용되면 밸브가 하드스톱에 부딪혀 더 이상 회전하지 못하게 됩니다.

모터는 파라미터 Kt와 input_delay를 사용하여 토크 이득 및 시간 지연 입력으로 모델링됩니다. 버터플라이 밸브는 파라미터 J, c, k를 사용하여 질량-스프링-댐퍼 시스템으로 모델링됩니다. 이 시스템은 밸브 개방을 90도로 제한하기 위해 하드스톱이 보강되어 있습니다. 모델 컴포넌트는 알려져 있지만 시스템의 파라미터 값은 정확하게 알려져 있지 않습니다.

추정 실험 데이터

사전 구성된 추정 GUI 세션을 열기 위해 "Parameter Estimation with preloaded data" 블록을 더블 클릭합니다.

저장된 추정 프로젝트는 세 가지 실험을 정의합니다. EstimationData 실험은 파라미터 추정에 사용되는 반면 ValidationData1, ValidationData2는 추정된 파라미터의 검증에 사용됩니다. EstimateData 실험이 플로팅되어 있습니다.

실험을 위한 신호 데이터는 MATLAB® 변수, MAT 파일, Excel® 파일 또는 쉼표로 구분된 값 파일을 비롯한 다양한 소스에서 가져올 수 있습니다. 자세한 내용은 Importing and Preprocessing Experiment Data (GUI) 항목을 참조하십시오.

실험 플롯은 측정된 데이터가 현재 모델과 얼마나 일치하는지 확인하는 데에도 사용됩니다. 모델 응답 플로팅을 클릭하여 실험 플롯에 시뮬레이션된 신호 데이터를 표시합니다.

시뮬레이션 결과는 모델이 측정된 데이터와 일치하지 않으며 모델 파라미터를 추정해야 한다는 것을 보여줍니다.

추정된 파라미터

다음 단계는 추정할 파라미터를 정의하는 것입니다. 추정할 모델 파라미터를 선택하는 대화 상자를 열기 위해 파라미터 선택을 클릭합니다. 이 예제에는 알 수 없는 네 개의 파라미터, 즉 버터플라이 밸브 관성 J, 감쇠 계수 c, 리턴 스프링 상수 k, 모터 응답의 시간차 input_delay가 있습니다.

물리적 통찰력을 바탕으로 이러한 파라미터 값이 모두 양수임을 알 수 있으므로 하한을 0으로 설정합니다. 또한 input_delay 파라미터에 상한을 0.1초로 설정합니다. 파라미터의 초기값을 설정할 수도 있습니다. 이러한 값은 파라미터를 결정하는 몇 가지 공식을 빠르게 계산하여 얻을 수 있습니다.

추정 작업

추정을 위한 파라미터를 선택한 후 추정에 사용할 실험을 선택합니다. 실험 선택을 클릭하고 추정을 위해 EstimationData를 선택합니다.

이제 추정을 시작할 수 있지만 먼저 추정 진행률을 모니터링하기 위한 플롯을 생성합니다. 플롯 추가를 클릭하고 파라미터 궤적을 선택합니다. 이렇게 하면 추정하는 동안 추정된 파라미터 값이 어떻게 변하는지 보여주는 플롯이 생성됩니다. 플롯 탭의 오른쪽에 있는 화살표를 클릭하고 모두 타일 형식으로 배열... > 좌/우를 선택하여 Experiment plot:EstimationDataEstimatedParams가 모두 표시되도록 플롯을 배치합니다.

추정 버튼을 클릭하여 추정을 시작합니다. 비용 함수 콤보 상자를 설정하고 추가 옵션을 클릭하여 추정 옵션을 수정할 수 있습니다.

추정이 실행되는 동안 플롯이 업데이트되고 추정 진행률을 보여주는 대화 상자가 나타납니다. 진행률 대화 상자에는 추정 반복, 모델을 평가한 횟수(F-count), 각 반복의 추정 비용이 표시됩니다.

여러 번 반복한 후 추정이 수렴되고 종료됩니다. 모델은 추정된 파라미터로 업데이트되고 추정 결과는 데이터 브라우저에 저장됩니다. 추정 결과의 세부 정보를 보려면 EstimatedParams를 마우스 오른쪽 버튼으로 클릭하고 열기를 선택하십시오.

검증

다른 실험과 비교하여 추정 결과를 검증하는 것이 중요합니다. 성공적인 추정은 추정에 사용된 실험 데이터와 일치할 뿐만 아니라 실험에서 수집된 다른 독립적인 측정 데이터와도 일치할 것입니다.

검증을 위한 실험을 선택하려면 검증 탭을 클릭하고 실험 선택을 클릭합니다. 검증에 사용할 ValidationData1ValidationData2를 모두 선택합니다.

검증할 결과 선택을 클릭하여 검증에 사용할 추정 결과를 선택합니다. EstimatedParams를 선택하고 Use current parameter values를 선택 취소합니다.

검증을 클릭해 검증 실험과 비교하여 추정 결과를 검증합니다. 검증은 추정된 파라미터와 선택된 실험을 사용하여 모델을 시뮬레이션하고 측정된 데이터와 시뮬레이션 데이터를 보여주는 플롯을 생성합니다. Experiment plot:ValidationData1Experiment % plot:ValidationData2가 모두 표시되도록 Experiment plot:ValidationData1 플롯 탭을 왼쪽으로 끌어서 놓습니다.

추정에 성공했다는 것이 검증 플롯을 통해 확인됩니다. 플롯은 또한 추정된 파라미터가 다양한 입력을 처리할 수 있을 만큼 강인하다는 것을 보여줍니다.

관련 예제

sdo.optimize 명령을 사용하여 모델 파라미터를 추정하는 방법을 알아보려면 모델 파라미터 값 추정하기(코드) 항목을 참조하십시오.