Stability와 Performance Index 비교
제어공학1 · 14주차
이번 주 목표 · Pole·Steady-State Error·유한 구간 성능지수를 구분합니다.
실행: MathWorks 로그인 후 내 작업 공간의 .mlx를 엽니다. 코드 안 클릭 → Live Editor → Run Section으로 한 Section씩 실행하세요. Run은 전체 실행입니다. 값 수정 후에는 관련 Section을 다시 실행해야 합니다. ⟦직접 입력⟧ 작성란은 설명을 직접 수정하며 실행하지 않습니다. Windows/Linux는 Ctrl+Enter, Mac은 ⌘+Enter를 사용할 수 있습니다.
1. 먼저 응답이 안정한지 확인
BIBO Stability는 크기가 제한된 입력에 출력의 크기도 제한되는 성질입니다. 이 실습의 연속시간 Proper Transfer Function에서는 상쇄 후 모든 Pole의 실수부가 음수인지 확인합니다. 내부 안정성은 숨은 불안정 모드까지 고려하는 더 강한 조건입니다.
먼저 응답이 안정한지 확인
Routh 표의 첫 열 부호 변화는 우반평면 근 개수를 알려줍니다. 첫 원소가 0이거나 행 전체가 0인 특수 경우는 별도 처리가 필요하며 무조건 안정으로 표시하면 안 됩니다.
2. 비단위 Feedback에서 오차 정의
는 목표값 r에서 실제 출력 y까지의 관계입니다. Tracking Error 는 목표값에서 실제 출력을 뺀 값입니다. 센서를 거친 측정값 Hy를 목표값에서 빼면 이며, Controller는 이 값을 받습니다. 센서가 신호의 크기나 시간에 따른 변화를 바꾸면 두 오차가 다를 수 있습니다. 이번 실습에서는 실제 출력이 목표에 가까운지 보려고 를 사용합니다.
비단위 Feedback에서 오차 정의
K=4,G=1/(s+2),H=2/(s+4)를 사용합니다. 1−dcgain(T)와 1−H(0)dcgain(T)를 따로 계산해 차이를 확인하세요.
3. 같은 시간 구간에서 Performance Index 비교
오차가 얼마나 오래, 얼마나 크게 남는지를 하나의 수치로 비교합니다. 는 큰 오차에 더 큰 비중을 주고, 는 오차 크기를 그대로 더합니다. 는 같은 크기의 오차라도 늦게 남아 있으면 더 크게 반영합니다. =1,2,4 비교에서는 모든 모델에 같은 0~20초, 같은 시간 간격을 사용하고 trapz로 적분합니다.
같은 시간 구간에서 지수 비교
Steady-State Error가 0이 아니면 무한 시간 ISE는 발산할 수 있습니다. 여기서 구하는 값은 0~20초 동안 쌓인 오차만을 반영합니다. 자동으로 선택된 서로 다른 시간축을 비교하면 공정하지 않습니다.
4. 최적화와 저차 근사의 조건
는 K3>0에서 비교합니다. 미분으로 구한 후보와 격자 탐색을 대조하세요. 과 의 step 응답도 비교합니다.
최적화와 저차 근사의 조건
최적화는 선택한 지수와 허용 범위에서의 최적입니다. 저차 근사는 모든 입력과 주파수에서 원 모델과 같다는 뜻이 아니므로 최대 오차와 최종값을 함께 확인합니다.
학습 내용 확인
- 코드에 넣을 값은 무엇이며, 결과 배열의 각 행·열은 무엇을 뜻하나요? 물리량을 계산한다면 단위도 확인했나요?
- 조건을 하나 바꿨을 때 다시 실행해야 하는 부분을 찾을 수 있나요?
- 실행 결과가 예상과 맞나요? 다르다면 출력값이나 그래프를 보고 이유를 설명할 수 있나요?
실습 자료
- Control_Engineering_1_Week14_Stability.mlxmlx 스크립트 미리보기 · mlx 스크립트 다운로드