이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
모델 축소기
LTI(선형 시불변) 모델의 복잡도 축소
설명
모델 축소기 앱을 사용하면 높은 차수의 LTI 모델 및 희소 LTI 모델에 대해 축소된 차수 근사를 계산할 수 있습니다. 낮은 차수의 모델로 작업하면 분석 및 제어 설계를 단순화할 수 있습니다. 또한 모델이 단순할수록 이해하고 조작하기가 더 쉽습니다. 플랜트에 사용할 제어기를 설계하기 전에, 관련 동특성에 집중하기 위해 플랜트 모델을 축소할 수 있습니다. 또는 모델 축소를 통해 전차수 제어기를 단순화할 수 있습니다.
모델 축소기에서 다음 방법을 사용해 응용 사례에서 중요시되는 모델 특성을 보존하면서도 모델 차수를 축소할 수 있습니다.
균형 절단 — 에너지 기여가 상대적으로 적은 상태를 제거합니다.
모드 절단 — 모드의 위치 또는 DC 기여에 따라 모드를 삭제합니다.
극점-영점 단순화 — 상쇄하거나 거의 상쇄하는 극점-영점 쌍을 제거합니다.
모델 축소기는 차수가 축소된 모델이 중요한 동특성을 보존하는지 확인하는 데 도움이 되도록 응답 플롯과 오차 플롯을 제공합니다. 모델 축소와 모델 축소가 유용한 이유에 대한 자세한 내용은 Model Reduction Basics 항목을 참조하십시오.
모델 축소기 앱의 대체 방법으로 대화형 방식으로 모델 축소를 수행하고 라이브 스크립트를 위한 코드를 생성할 수 있는 방법에 대한 내용은 라이브 편집기에서의 Reduce Model Order 작업을 참조하십시오.
모델 축소기 앱 열기
MATLAB® 툴스트립: 앱 탭의 제어 시스템 설계 및 분석 아래에서 앱 아이콘을 클릭합니다.
MATLAB 명령 프롬프트:
modelReducer
를 입력합니다.
예제
파라미터
모델
— 축소하기 위해 현재 선택한 모델
모델 이름
축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.
적정
tf
,ss
또는zpk
모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저
pade
를 사용해 시간 지연을 모델 동특성으로 근사하십시오.이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에
absorbDelay
를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.
일반화된 모델(예:
genss
모델). 모델 축소기 앱은model
에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue
참조).희소 상태공간 모델(예:
sparss
및mechss
모델).
참고
모델 축소기는 모델 시간 단위(모델의 TimeUnit
속성에 지정됨)가 초 단위라고 가정합니다. 모델의 시간 단위가 TimeUnit = 'seconds'
가 아닌 경우 chgTimeUnit
을 사용해 모델을 초 단위로 변환하십시오.
축소 기준
— 축소된 모델의 상태 개수
차수
| 최대 오차
| 최소 에너지
모델 차수 축소 기준을 지정합니다. 모델의 불안정 상태 개수와 원래 모델의 상태 개수 사이의 값이라면 모두 허용됩니다. 단일 값을 지정할 경우 모델 축소기는 해당 차수의 모델의 응답을 계산하여 표시합니다. 여러 값을 지정할 경우 모델 축소기는 지정된 모든 차수의 모델을 계산하여 동일한 플롯에 응답을 표시합니다. 축소된 모델을 데이터 브라우저에 저장하려면 축소 모델 저장을 클릭합니다.
자세한 내용은 Balanced Truncation Model Reduction 항목을 참조하십시오.
비교 플롯
— 비교 플롯 유형
모델 응답
| 절대 오차 플롯
| 상대 오차 플롯
비교 플롯 유형을 지정합니다.
모델 응답
— 모델 주파수 응답을 플로팅합니다. 이러한 주파수 응답 비교는 SISO 모델의 경우 보드 플롯이고 MIMO 모델의 경우 특이값 플롯입니다.절대 오차 플롯
— 절대 오차 의 주파수 응답을 플로팅합니다.상대 오차 플롯
— 상대 오차 의 주파수 응답을 플로팅합니다.
자세한 내용은 Balanced Truncation Model Reduction 항목을 참조하십시오.
분석 플롯
— 분석 플롯 유형
한켈 특이값
(디폴트 값) | 에너지
분석 플롯 유형을 지정합니다.
한켈 특이값
— 한켈 특이값 및 관련된 오차 범위의 막대 차트.에너지
— 정규화된 상태 에너지의 막대 차트.
모델
— 축소하기 위해 현재 선택한 모델
모델 이름
축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.
적정
tf
,ss
또는zpk
모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저
pade
를 사용해 시간 지연을 모델 동특성으로 근사하십시오.이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에
absorbDelay
를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.
일반화된 모델(예:
genss
모델). 모델 축소기 앱은model
에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue
참조).희소 상태공간 모델(예:
sparss
및mechss
모델).
자세한 내용은 Modal Truncation Model Reduction 항목을 참조하십시오.
참고
모델 차수 축소에서는 모델 시간 단위(모델의 TimeUnit
속성에 지정됨)가 초 단위라고 가정합니다. 모델의 시간 단위가 TimeUnit = 'seconds'
가 아닌 경우 chgTimeUnit
을 사용해 모델을 초 단위로 변환하십시오.
주파수 범위
— 주파수 범위
요소를 2개 가진 벡터
관심 주파수 범위로, [Fmin,Fmax] 형식의 벡터로 지정됩니다. 이 알고리즘은 이 범위 밖에 있는 모든 모드를 삭제합니다.
감쇠 범위
— 감쇠 범위
요소를 2개 가진 벡터
관심 감쇠 범위로, [ζmin,ζmax] 형식의 벡터로 지정됩니다. 이 알고리즘은 이 범위 밖에 있는 모든 모드를 삭제합니다.
최소 DC 기여
— 최소 DC 기여 범위
음이 아닌 스칼라
차수 축소 모델에 대한 최소 DC 기여 범위로, 음이 아닌 스칼라로 지정됩니다. 이 알고리즘은 이 값보다 작은 정규화된 DC 기여를 가진 모든 모드를 삭제합니다.
비교 플롯
— 비교 플롯 유형
모델 응답
| 절대 오차 플롯
| 상대 오차 플롯
| 모드 위치
비교 플롯 유형을 지정합니다.
모델 응답
— 모델 주파수 응답을 플로팅합니다. 이러한 주파수 응답 비교는 SISO 모델의 경우 보드 플롯이고 MIMO 모델의 경우 특이값 플롯입니다.절대 오차 플롯
— 절대 오차 의 주파수 응답을 플로팅합니다.상대 오차 플롯
— 상대 오차 의 주파수 응답을 플로팅합니다.모드 위치
— 원래 모델과 축소된 모델의 극점 위치를 비교합니다.
분석 플롯
— 분석 플롯 유형
DC 기여
(디폴트 값) | 모드 위치
| 모드 감쇠와 고유 주파수
비교 플롯 유형을 지정합니다.
DC 기여
— 정규화된 DC 기여의 막대 차트.모드 위치
— 극점의 위치를 플로팅합니다.모드 감쇠와 고유 주파수
— 극점의 감쇠와 고유 주파수를 플로팅합니다.
모델
— 축소하기 위해 현재 선택한 모델
모델 이름
축소할 모델을 모델 드롭다운 목록에서 선택하여 지정합니다. 목록에는 현재 데이터 브라우저에 있는 모든 모델이 들어 있습니다. MATLAB 작업 공간에서 데이터 브라우저로 모델을 가져오려면 모델 축소기 탭에서 모델 가져오기를 클릭하십시오. 다음과 같은 모델을 가져올 수 있습니다.
적정
tf
,ss
또는zpk
모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저
pade
를 사용해 시간 지연을 모델 동특성으로 근사하십시오.이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에
absorbDelay
를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.
일반화된 모델(예:
genss
모델). 모델 축소기 앱은model
에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue
참조).
극점-영점 쌍의 단순화
— 극점-영점 상쇄에 대한 허용오차
양의 스칼라
슬라이더를 사용하거나 텍스트 상자에 값을 입력하여 극점-영점 상쇄에 대한 허용오차를 설정합니다. 이 값에 따라, 모델 축소기가 축소된 모델에서 극점과 영점을 제거하려면 극점과 영점이 얼마나 가까워야 하는지가 결정됩니다. 슬라이더를 왼쪽으로 움직이거나 텍스트 상자에 더 작은 값을 입력하면 더 적은 수의 극점과 영점이 상쇄되기 때문에 모델이 덜 단순화됩니다. 슬라이더를 오른쪽으로 움직이거나 더 큰 값을 입력하면 더 멀리 떨어진 극점과 영점이 상쇄되기 때문에 모델이 더 단순화됩니다.
자세한 내용은 Pole-Zero Simplification 항목을 참조하십시오.
비교 플롯
— 비교 플롯 유형
모델 응답
| 절대 오차 플롯
| 상대 오차 플롯
비교 플롯 유형을 지정합니다.
모델 응답
— 모델 주파수 응답을 플로팅합니다. 이러한 주파수 응답 비교는 SISO 모델의 경우 보드 플롯이고 MIMO 모델의 경우 특이값 플롯입니다.절대 오차 플롯
— 절대 오차 의 주파수 응답을 플로팅합니다.상대 오차 플롯
— 상대 오차 의 주파수 응답을 플로팅합니다.
프로그래밍 방식으로 사용
modelReducer
modelReducer
는 데이터 브라우저에 모델이 표시되지 않은 상태로 모델 축소기 앱을 엽니다. MATLAB 작업 공간에서 모델을 가져오려면 모델 가져오기를 클릭하십시오.
modelReducer(model
)
model
)modelReducer(
은 앱을 열고 지정된 LTI 모델을 가져옵니다. model
)model
은 다음일 수 있습니다.
적정
tf
,ss
또는zpk
모델. SISO 또는 MIMO 모델이거나 연속 또는 이산 모델일 수 있습니다.연속시간 모델은 시간 지연을 갖지 않아야 합니다. 시간 지연을 갖는 연속시간 모델을 축소하려면 먼저
pade
를 사용해 시간 지연을 모델 동특성으로 근사하십시오.이산시간 모델은 시간 지연을 가질 수 있습니다. 균형 절단 축소 방법을 사용할 경우 앱은 모델 축소 전에
absorbDelay
를 사용해 지연을 z = 0에 있는 극점으로 변환합니다. 응답 플롯과 한켈 특이값 플롯에 추가 상태가 반영됩니다.
일반화된 모델(예:
genss
모델). 모델 축소기 앱은model
에 있는 모든 제어 설계 블록의 현재 값 또는 공칭 값을 사용합니다(getValue
참조).희소 상태공간 모델(예:
sparss
및mechss
모델).
modelReducer(model1
,...,modelN
)
model1
,...,modelN
)modelReducer(
은 앱을 열고 지정된 모델을 가져옵니다.model1
,...,modelN
)
modelReducer(sessionFile
)
sessionFile
)modelReducer(
은 앱을 열고 이전에 저장된 세션을 불러옵니다. sessionFile
)sessionFile
은 현재 작업 디렉터리 또는 MATLAB 경로에 있는 세션 데이터 파일의 이름입니다.
디스크에 세션 데이터를 저장하려면 모델 축소기 앱의 모델 축소기 탭에서 세션 저장을 클릭하십시오. 저장된 세션 데이터에는 현재 플롯 구성과 데이터 브라우저에 있는 모든 모델이 포함됩니다.
버전 내역
R2016a에 개발됨R2024a: sparss
모델과 mechss
모델에 대한 차수 축소 모델 구하기
이제 모델 축소기 앱을 사용하여 희소 상태공간 모델의 차수 축소 모델을 대화형 방식으로 계산할 수 있습니다. 다음 방법을 사용하는 희소 모델 차수 축소를 지원합니다.
균형 절단 — 기여가 낮은 상태를 삭제하여 저차 근사를 구합니다.
모드 절단 — 원치 않는 모드를 삭제하여 저차 근사를 구합니다.
R2024a: [모드 선택] 방법이 이제 [모드 절단]으로 대체됨
모델 축소기 앱에서 모드 선택 방법이 모드 절단 방법으로 대체됩니다. 모드 절단 방법은 모드 삭제 기준을 선택하는 데 있어서 더 유연합니다.
R2023b: 새로운 모델 차수 축소 워크플로를 사용하여 코드 생성
모델 축소기 앱은 이제 새로운 모델 차수 축소 워크플로를 사용하여 코드를 생성합니다. 그 예로, 다음 표에는 생성된 코드에서 모델 차수 축소 워크플로의 변경 사항이 설명되어 있습니다.
방법 | R2023b 이전의 생성 코드 | R2023b의 생성 코드 |
---|---|---|
균형 절단 | %% Reduce LTI model order using balanced truncation System = G; % Define System to reduce Order = 14; % Create option set for balred command Options = balredOptions(); % Offset for the stable/unstable boundary Options.Offset = 1e-05; % Compute reduced order approximation ReducedSystem = balred(System,Order,Options); % Create comparison plot bode(System,ReducedSystem); | %% Reduce LTI model order using balanced truncation System = G; % Define System to reduce % Compute reduced order approximation R = reducespec(System,'balanced'); % Set options for Balanced Truncation specification % Offset for the stable/unstable boundary R.Options.Offset = 1e-05; % Compute MOR data once R = process(R); % Get reduced-order model ReducedSystem = getrom(R,Order=14); % Create comparison plot bode(System,ReducedSystem); |
모드 선택 | %% Reduce LTI model order using mode selection System = G; % Define System to reduce UpperCutoffFrequency = 100; LowerCutoffFrequency = 10; % Create option set for freqsep command Options = freqsepOptions(); % Accuracy loss factor for stable/unstable decomposition Options.SepTol = 100; % Select modes between lower and upper cutoff frequencies ReducedSystem = freqsep(System,... [LowerCutoffFrequency UpperCutoffFrequency],Options); % Create comparison plot bode(System,ReducedSystem); | %% Reduce LTI model order using mode selection System = G; % Define System to reduce % Select modes between lower and upper cutoff frequencies R = reducespec(System,'modal'); % Set options for Modal Truncation specification % Accuracy loss factor for stable/unstable decomposition R.Options.SepTol = 1e-11; % Compute MOR data once R = process(R); % Get reduced-order model ReducedSystem = getrom(R,Frequency=[10 100],Method='truncate'); % Create comparison plot bode(System,ReducedSystem); |
새 워크플로에 대한 자세한 내용은 reducespec
및 Task-Based Model Order Reduction Workflow 항목을 참조하십시오.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)