계단 응답 요구 사항을 충족하기 위한 설계 최적화(GUI)
이 예제에서는 응답 최적화기 앱을 사용하여 계단 응답 설계 요구 사항을 충족하도록 제어기 파라미터를 최적화하는 방법을 보여줍니다. Check Step Response Characteristics 블록에 설계 요구 사항을 지정합니다.
모델 구조
이 예제에서는 watertank_stepinput
모델을 사용합니다. 이 모델은 단일 루프 피드백 시스템에 비선형 Water-Tank System 플랜트와 PI 제어기가 포함되어 있습니다.
모델을 엽니다.
sys = 'watertank_stepinput';
open_system(sys)
물탱크 모델을 보기 위해 Water-Tank System 서브시스템을 엽니다.
이 모델은 다음과 같은 물탱크 시스템을 나타냅니다.
여기서 각각은 다음을 나타냅니다.
은 탱크에 있는 물의 부피입니다.
는 탱크의 단면적입니다.
는 탱크의 물 높이입니다.
는 펌프에 인가되는 전압입니다.
는 탱크 안으로 유입되는 유량과 관련된 상수입니다.
는 탱크 밖으로 유출되는 유량과 관련된 상수입니다.
물은 밸브 개방에 비례하는 비율로 맨 위에서 탱크로 들어갑니다. 밸브 개방은 펌프에 인가되는 전압 에 비례합니다. 물은 물 높이 의 제곱근에 비례하는 비율로 탱크 바닥의 구멍을 통해 빠져나갑니다. 물 유량에 제곱근이 있으면 비선형 플랜트가 됩니다. 물 유량에 따른 탱크 부피의 변화율은 다음과 같습니다.
설계 요구 사항
탱크의 물 높이 H
는 다음 계단 응답 요구 사항을 충족해야 합니다.
상승 시간 2.5초 미만
정착 시간 20초 미만
오버슈트 5% 미만
계단 응답 요구 사항 지정하기
계단 응답 요구 사항을 지정하기 위해 모델에 Check Step Response Characteristics 블록을 추가합니다. 이렇게 하려면 Simulink® 모델 창의 시뮬레이션 탭에서 라이브러리 브라우저를 클릭합니다. Simulink Design Optimization 목록에서 Signal Constraints을 선택합니다.
Check Step Response Characteristics 블록을 모델 창으로 끌어서 놓고 해당 블록을 출력에 연결합니다. 이 블록은 설계 요구 사항을 지정하려는 신호에 연결됩니다.
Check Step Response Characteristics 블록을 더블 클릭하여 블록 파라미터 대화 상자를 열고 다음 요구 사항을 지정합니다.
상승 시간(seconds)에
2.5
를 입력합니다.정착 시간(seconds)에
20
을 입력합니다.% 오버슈트에
5
를 입력합니다.초기값에
1
을 입력합니다.최종 값에
2
를 입력합니다.
확인을 클릭합니다.
시간 영역 요구 사항을 Check 블록들에서 지정하는 대신, 블록을 추가하지 않고 응답 최적화기에서 지정할 수 있습니다. 이 방식을 사용하는 예제는 Design Optimization to Track Reference Signal (GUI) 항목을 참조하십시오.
설계 변수 지정하기
모델 응답을 최적화하면소프트웨어는 설계 요구 사항을 충족하기 위해 설계 변수 값을 수정합니다. 소프트웨어에서 수정 가능한 모델 파라미터를 지정합니다.
이 모델에 대한 응답 최적화기 세션을 열려면 Simulink 모델 창의 앱 갤러리에서 응답 최적화기를 클릭합니다. 또는 Check Step Response Characteristics 블록 파라미터 대화 상자에서 응답 최적화를 클릭합니다.
시간 플롯 1에서 검은색 선분으로 경계가 지정된 영역은 Check Step Response Characteristics 블록에 지정한 계단 응답 요구 사항을 보여줍니다.
설계 변수 세트를 만들려면 설계 변수 세트 목록에서 새로 만들기를 선택합니다.
설계 변수 세트 만들기 대화 상자에는 설계 변수로 사용할 수 있는 모델 파라미터가 나타나며 모델 파라미터의 모델 내 위치가 표시됩니다.
설계 변수 세트에 파라미터를 추가하려면 Ki
와 Kp
를 선택하고 을 클릭합니다.
설계 변수 목록에는 다음의 변수 설정이 표시됩니다.
변수 — 변수 이름
값 — 현재 변수 값
최솟값 및 최댓값 — 변수 범위
스케일 — 변수에 대한 스케일링 인자
설계 변수를 양의 값으로 제한합니다. 이렇게 하려면 해당 최솟값 필드에서 각 변수의 최솟값에 0
을 입력하고 키보드의 Enter 키를 누릅니다.
확인을 클릭합니다. 새로운 설계 변수 DesignVars
가 생성되고 응답 최적화기의 데이터 영역에 표시됩니다. 이 변수를 클릭하여 변수 미리보기 영역에서 내용을 확인할 수 있습니다.
모델에 파라미터가 많이 있는 경우, 먼저 민감도 분석을 사용하여 최적화할 가장 영향력 있는 파라미터를 확인하거나 설계 변수에 대한 초기 추측값을 구할 수 있습니다. 자세한 내용은 민감도 분석이란? 항목을 참조하십시오. 민감도 분석기 앱을 사용하면, 설계 변수를 변경하여 응답 최적화 설계 공간을 탐색하고 최적화 문제에 가장 큰 영향을 미치는 파라미터를 식별하고 초기값을 계산할 수 있습니다.
모델 응답 최적화하기
모델의 현재 응답을 보기 위해 모델 응답 플로팅을 클릭합니다.
플롯에서 파란색 선으로 그려진 모델 출력은 지정된 계단 응답의 영역 외부에 있음을 나타냅니다.
모델 응답을 최적화하기 위해 최적화를 클릭합니다. 디폴트 최적화 솔버 Gradient descent
(fmincon
)는 각 반복마다 설계 변수를 변경하여 시뮬레이션된 응답이 설계 요구 사항 선분 내에 위치하도록 합니다. 자세한 내용은 How the Optimization Algorithm Formulates Minimization Problems 항목을 참조하십시오.
최적화 진행률 리포트에서 메시지 Optimization converged
는 최적화 솔버가 허용오차 및 파라미터 범위 내에서 설계 요구 사항을 충족하는 해를 구했음을 나타냅니다. 최적화 시 표시되는 출력에 대해 자세히 알아보려면 반복 과정 표시 항목을 참조하십시오.
모델 출력이 계단 응답 요구 사항을 충족하는지 확인합니다.
플롯에는 마지막 5회 반복이 표시됩니다. 최적화된 변수 파라미터를 사용하는 최종 응답은 굵은 파란색 선으로 표시되어 있습니다. 최적화된 응답은 설계 요구 사항 선분으로 둘러싸인 흰색 영역 내에 있으므로 요구 사항을 충족합니다.
최적화된 파라미터 값을 보려면 모델 작업 공간에서 DesignVars
를 클릭하고 변수 미리보기 영역에서 업데이트된 값을 확인합니다. 설계 변수의 최적화된 값은 Simulink 모델에서 자동으로 업데이트됩니다.
세션 저장하기
설계 요구 사항이 충족되도록 모델 응답을 최적화한 후, 최적화된 파라미터 값을 포함하는 응답 최적화기 세션을 저장할 수 있습니다.
응답 최적화기의 응답 최적화 탭에 있는 세션 저장 드롭다운 목록에서 모델 작업 공간에 저장을 선택합니다.
세션 저장 창에서 세션 필드에 세션 이름을 지정합니다.
저장된 세션을 열려면, 모델에 대한 응답 최적화기의 세션 열기 드롭다운 목록에서 모델 작업 공간에서 열기 옵션을 클릭합니다.