P와 PI의 Steady-State Error 비교하기

제어공학1 · 13주차

이번 주 목표 · Pole의 영향과 System Type(시스템 형)에 따른 추종 오차를 구분합니다.

실행: MathWorks 로그인 후 내 작업 공간의 .mlx를 엽니다. 코드 안 클릭 → Live Editor → Run Section으로 한 Section씩 실행하세요. Run은 전체 실행입니다. 값 수정 후에는 관련 Section을 다시 실행해야 합니다. ⟦직접 입력⟧ 작성란은 설명을 직접 수정하며 실행하지 않습니다. Windows/Linux는 Ctrl+Enter, Mac은 ⌘+Enter를 사용할 수 있습니다.

최종 오차를 정한 뒤 비교하기

이번 실습은 e(t)=r(t)−y(t)로 Tracking Error를 정의합니다. P는 현재 Error에 비례하고, PI는 여기에 Error를 시간에 따라 누적한 값을 더합니다. 다음 주에는 Non-unity Feedback에서 Error를 정의하는 방법을 살펴보고, Performance Index로 응답 전체의 오차를 비교합니다. 여기서는 Unity Feedback의 Step·Ramp를 먼저 구별하세요.

1. Pole 위치와 Transient Response

Pole의 음의 실수부는 감쇠 속도, 허수부는 Oscillation Frequency(진동 주파수)와 연결됩니다. 같은 Pole을 가진 모델도 분자가 다르면 응답의 높이나 모양이 달라질 수 있습니다. 따라서 Pole 위치와 실제 응답 그래프를 함께 확인하세요.

Pole 위치와 Transient Response

이번 두 모델은 분모 [1 2 10]과 [1 10 100]입니다. 실수부와 허수부, Damping Ratio가 동시에 달라집니다. 관찰된 차이를 한 요소만의 효과로 해석하지 마세요.

2. System Type은 루프의 원점 Pole 수

표준 단위 Negative Feedback(음의 Feedback)에서 루프 Transfer Function L의 원점 Pole 수가 System Type입니다. Closed-loop가 안정하다면 Type에 따라 일정한 목표값(Step)을 따라갈 때와 일정한 속도로 증가하는 목표값(Ramp)을 따라갈 때 남는 오차가 달라집니다.

System Type은 루프의 원점 Pole 수

System Type은 분모의 차수가 아니라 s=0s=0인 Pole의 개수입니다. 분자와 분모에서 같은 인수가 약분되는지 확인한 뒤 원점 Pole을 세세요. 불안정하면 표준 Steady-State Error 표를 그대로 적용할 수 없습니다.

3. 같은 plant에 P와 PI 연결

G=10.5s+1G=\frac1{0.5s+1}, P=10, CPI=10+5sC_{\mathrm{PI}}=10+\frac5s를 비교합니다. P는 step 오차가 남고 PI는 안정한 경우 step 오차가 0으로 갑니다. ramp에서는 PI도 일반적으로 일정 오차가 남습니다.

같은 plant에 P와 PI 연결

적분기는 누적된 오차에 반응합니다. 단, 실제 시스템의 포화·적분 windup은 이 선형 예제에 포함되지 않습니다. 여기서 확인한 성능의 가정을 기억하세요.

4. 유한 시간의 오차와 극한값

이 예의 PI에서는 오차의 일부가 천천히 줄어들기 때문에 5초 시점에도 최종값에 도달하지 않을 수 있습니다. 관측 시간을 늘려 오차가 더 이상 달라지지 않는지 확인하세요. Unit Step의 이론 오차는 1−dcgain(T), Unit Ramp의 이론 오차는 1Kv\frac1{K_v}로 계산해 그래프와 비교합니다.

유한 시간의 오차와 극한값

이 실습의 Plant DC Gain K는 1입니다. KpK_p를 20으로 바꾸는 과제에서는 Unit Step의 이론 오차 1/(1+KpK_p×K)를 계산합니다. 재실행 때 모델도 새로 만들어야 변경된 Controller(제어기)가 반영됩니다.

학습 내용 확인

  1. 코드에 넣을 값은 무엇이며, 결과 배열의 각 행·열은 무엇을 뜻하나요? 물리량을 계산한다면 단위도 확인했나요?
  2. 조건을 하나 바꿨을 때 다시 실행해야 하는 부분을 찾을 수 있나요?
  3. 실행 결과가 예상과 맞나요? 다르다면 출력값이나 그래프를 보고 이유를 설명할 수 있나요?

MATLAB 공식 문서 · Control System Toolbox

실습 자료