Main Content

모델 축소기

LTI(선형 시불변) 모델의 복잡도 줄이기

설명

모델 축소기 앱을 사용하면 높은 차수 모델의 차수를 축소한 근사 모델을 계산할 수 있습니다. 낮은 차수의 모델로 작업하면 분석 및 제어 설계를 단순화할 수 있습니다. 또한 모델이 단순할수록 이해하고 조작하기가 더 쉽습니다. 플랜트에 사용할 제어기를 설계하기 전에, 관련 동특성에 집중하기 위해 플랜트 모델을 축소할 수 있습니다. 또는 모델 축소를 통해 전차수 제어기를 단순화할 수 있습니다.

모델 축소기에서 다음 방법을 사용해 응용 사례에서 중요시되는 모델 특성을 보존하면서도 모델 차수를 축소할 수 있습니다.

  • 균형 절단 — 에너지 기여가 상대적으로 적은 상태를 제거합니다.

  • 모드 선택 — 관심 주파수 범위를 지정해 모드를 선택합니다.

  • 극점-영점 단순화 — 상쇄하거나 거의 상쇄하는 극점-영점 쌍을 제거합니다.

모델 축소기는 차수가 축소된 모델이 중요한 동특성을 보존하는지 확인하는 데 도움이 되도록 응답 플롯과 오차 플롯을 제공합니다. 모델 축소와 모델 축소가 유용한 이유에 대한 자세한 내용은 Model Reduction Basics 항목을 참조하십시오.

모델 축소기 앱의 대체 방법으로 대화형 방식으로 모델 축소를 수행하고 라이브 스크립트를 위한 코드를 생성할 수 있는 방법에 대한 내용은 라이브 편집기에서의 Reduce Model Order 작업을 참조하십시오.

Model Reducer app

모델 축소기 앱 열기

  • MATLAB® 툴스트립: 탭의 제어 시스템 설계 및 분석 아래에서 앱 아이콘을 클릭합니다.

  • MATLAB 명령 프롬프트: modelReducer를 입력합니다.

파라미터

균형 절단 탭

축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.

  • 적정 tf, ss 또는 zpk 모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.

    • 연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저 pade를 사용해 시간 지연을 모델 동특성으로 근사하십시오.

    • 이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에 absorbDelay를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.

  • 일반화된 모델(예: genss 모델). 모델 축소기 앱은 model에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue 참조).

참고

모델 축소기는 모델 시간 단위(모델의 TimeUnit 속성에 지정됨)가 초 단위라고 가정합니다. 모델의 시간 단위가 TimeUnit = 'seconds'가 아닌 경우 chgTimeUnit을 사용해 모델을 초 단위로 변환하십시오.

차수가 축소된 모델의 상태 개수를 지정합니다. 모델의 불안정 상태 개수와 원래 모델의 상태 개수 사이의 값이라면 모두 허용됩니다. 단일 값을 지정할 경우 모델 축소기는 해당 차수의 모델의 응답을 계산하여 표시합니다. 여러 값을 지정할 경우 모델 축소기는 지정된 모든 차수의 모델을 계산하여 동일한 플롯에 응답을 표시합니다. 축소된 모델을 데이터 브라우저에 저장하려면 을 클릭하십시오.

자세한 내용은 Balanced Truncation Model Reduction 항목을 참조하십시오.

예: 5

예: 4:7

예: [3,7,10]

오차 범위에서 적절한 옵션을 선택하여 절대 오차와 상대 오차 중에서 선택할 수 있습니다. 옵션을 절대로 설정하면 절대 오차 GGr가 제어되고, 상대로 설정하면 상대 오차 G1(GGr)가 제어됩니다. 상대 오차는 주파수에서의 일치율을 높여주고, 절대 오차는 이득이 가장 높은 영역을 강조합니다.

자세한 내용은 Balanced Truncation Model Reduction 항목을 참조하십시오.

DC 이득 유지를 선택하면 축소된 모델의 DC 이득이 원래 모델의 DC 이득과 같아집니다. 응용 사례에서 모델의 DC 동작이 중요한 경우 이 옵션을 선택된 채로 두십시오. 고주파수 동작의 일치율을 높이려면 이 옵션을 선택 취소하십시오.

자세한 내용은 Balanced Truncation Model Reduction 항목을 참조하십시오.

기본적으로 모델 축소기는 모든 주파수에 걸쳐 한켈 특이값을 분석합니다. 특정 응용 사례의 관심 영역을 벗어나는 모드가 모델에 있다는 것을 알고 있을 때는 이 분석을 특정 주파수 범위로 제한하는 것이 도움이 됩니다. 주파수 제한을 적용할 경우 모델 축소기는 지정된 주파수 범위 내에서만 에너지 기여를 고려하여 어떤 상태가 낮은 에너지 상태여서 잘라야 하는지를 결정합니다. 중점 범위오차 범위절대로 설정된 경우에만 사용할 수 있습니다.

상태 기여 분석을 특정 주파수 범위로 제한하려면 중점 범위를 선택하십시오. 그런 다음 응답 플롯에 세로 커서를 끌어서 놓고 관심 주파수 범위를 지정합니다. 또는 텍스트 상자에 주파수 범위를 [fmin,fmax] 형식의 벡터로 입력합니다. 단위는 rad/TimeUnit입니다. 여기서 TimeUnit은 축소하려는 모델의 TimeUnit 속성입니다.

모드 선택 탭

축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.

  • 적정 tf, ss 또는 zpk 모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.

    • 연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저 pade를 사용해 시간 지연을 모델 동특성으로 근사하십시오.

    • 이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에 absorbDelay를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.

  • 일반화된 모델(예: genss 모델). 모델 축소기 앱은 model에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue 참조).

자세한 내용은 Mode-Selection Model Reduction 항목을 참조하십시오.

참고

모델 차수 축소에서는 모델 시간 단위(모델의 TimeUnit 속성에 지정됨)가 초 단위라고 가정합니다. 모델의 시간 단위가 TimeUnit = 'seconds'가 아닌 경우 chgTimeUnit을 사용해 모델을 초 단위로 변환하십시오.

축소된 모델에 보존할 가장 느린 동특성의 주파수를 입력합니다. 이 차단 주파수 아래에 있는 고유 주파수를 갖는 극점은 축소된 모델에서 제거됩니다.

축소된 모델에 보존할 가장 빠른 동특성의 주파수를 입력합니다. 이 차단 주파수 위에 있는 고유 주파수를 갖는 극점은 축소된 모델에서 제거됩니다.

극점-영점 단순화 탭

축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.

  • 적정 tf, ss 또는 zpk 모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.

    • 연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저 pade를 사용해 시간 지연을 모델 동특성으로 근사하십시오.

    • 이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에 absorbDelay를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.

  • 일반화된 모델(예: genss 모델). 모델 축소기 앱은 model에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue 참조).

슬라이더를 사용하거나 텍스트 상자에 값을 입력하여 극점-영점 상쇄에 대한 허용오차를 설정합니다. 이 값에 따라, 모델 축소기가 축소된 모델에서 극점과 영점을 제거하려면 극점과 영점이 얼마나 가까워야 하는지가 결정됩니다. 슬라이더를 왼쪽으로 움직이거나 텍스트 상자에 더 작은 값을 입력하면 더 적은 수의 극점과 영점이 상쇄되기 때문에 모델이 덜 단순화됩니다. 슬라이더를 오른쪽으로 움직이거나 더 큰 값을 입력하면 더 멀리 떨어진 극점과 영점이 상쇄되기 때문에 모델이 더 단순화됩니다.

자세한 내용은 Pole-Zero Simplification 항목을 참조하십시오.

프로그래밍 방식으로 사용

모두 확장

modelReducer데이터 브라우저에 모델이 표시되지 않은 상태로 모델 축소기 앱을 엽니다. MATLAB 작업 공간에서 모델을 가져오려면 모델 가져오기를 클릭하십시오.

modelReducer(model)은 앱을 열고 지정된 LTI 모델을 가져옵니다. model은 다음일 수 있습니다.

  • 적정 tf, ss 또는 zpk 모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.

    • 연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저 pade를 사용해 시간 지연을 모델 동특성으로 근사하십시오.

    • 이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에 absorbDelay를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.

  • 일반화된 모델(예: genss 모델). 모델 축소기 앱은 model에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue 참조).

modelReducer(model1,...,modelN)은 앱을 열고 지정된 모델을 가져옵니다.

modelReducer(sessionFile)은 앱을 열고 이전에 저장된 세션을 불러옵니다. sessionFile은 현재 작업 디렉터리 또는 MATLAB 경로에 있는 세션 데이터 파일의 이름입니다.

디스크에 세션 데이터를 저장하려면 모델 축소기 앱의 모델 축소기 탭에서 세션 저장을 클릭하십시오. 저장된 세션 데이터에는 현재 플롯 구성과 데이터 브라우저에 있는 모든 모델이 포함됩니다.

버전 내역

R2016a에 개발됨

참고 항목

함수

라이브 편집기 작업