13주차 · P와 PI의 Steady-State Error 비교하기
실습 전에
01 계속 남는 오차
목표보다 조금 낮은 값에서 더 이상 가까워지지 않습니다. 이 차이가 계속 남는다는 사실을 조작에 활용할 수 있을까요?
설명
- 시간에 따라 누적된 Error
- PI는 현재 Error와 누적 Error를 활용. 효과 판단의 전제는 Closed-loop 안정성
02 움직이는 목표 따라가기
정해진 속도를 유지하는 것과 계속 높아지는 목표 속도를 따라가는 것은 같은 문제일까요? 제어 방법을 비교할 때 무엇이 달라질까요?
설명
- Step과 Ramp는 서로 다른 추종 문제
- 목표 신호와 System Type을 함께 고려하여 Steady-State Error 판단
실습
1. Steady-State Error 계산
- 실습용 Live Script의 ‘3. P와 PI의 Step 추종’ 코드에서 와 를 사용하세요.
- 실행 전에 와 에서 얻는 특성다항식을 손으로 쓰세요.
- 2차 다항식의 세 계수가 양수이면 두 Pole의 실수부가 음수라는 기준으로 안정성을 확인하세요.
여기서 는 Position Error Constant입니다. 뒤의 Controller 식에서 로 표시한 비례 Gain과 구분해 계산하세요.
- L의 원점 Pole 수로 System Type을 정하고 , 를 구하세요.
- 안정성을 확인한 뒤 Unit Step 오차 와 Unit Ramp 오차 를 계산하고 실행 결과와 비교하세요.
- 이 계산을 =5의 기준 기록으로 사용합니다.
2. Pole 위치 비교
실습용 Live Script의 ‘2. Pole 위치 비교’ 코드의 모델은 T1=tf(10,[1 2 10]), T2=tf(100,[1 10 100])입니다.
- 각 분모를 에 대응시켜 를 구하고 두 행으로 기록하세요.
T1의 를 유지하고 만 T2의 값으로 바꾼 모델을 만드세요. 분자는 로 두어 DC Gain을 유지합니다.- 같은 시간축에서
T1과 새 모델의 Step Response를 겹쳐 그리고 stepinfo의 Rise Time·Settling Time·Overshoot를 표로 적으세요. 원래 T1·T2 비교와 달리 이번에 고정한 계수가 무엇인지 적으세요.
3. P와 PI의 Step 추종
- 기준 Plant
G=1/(0.5*s+1)는 유지하고 P Gain 의 Closed-loop를 만드세요. 이론적인 Unit Step 오차 와 1-dcgain(Tp)를 나란히 기록하세요. - PI의 은 유지하고 을 각각 적용하세요. 같은 시간축에 Unit Step 곡선 세 개를 그리고 범례에 를 적으세요.
- 별로
1-dcgain(Tpi), stepinfo(Tpi)의 Settling Time·Overshoot를 기록하세요. 최종 오차와 Transient Response 지표를 나누어 대조합니다.
4. Ramp 추종
- 실습용 Live Script의 ‘4. Ramp 추종’ 코드의 Loop 를 만들고, 분모의 원점 Pole 수로 System Type을 정하세요. 는 앞 활동과 같습니다.
- 를 구하고 Unit Ramp 오차 를 계산하세요.
- 같은 시간축과 Ramp 입력을 유지하고, 이 활동에 주어진 적분 Gain 10을 사용하도록 코드의 적분 Gain 5를 바꾸어 PI 모델을 다시 만드세요. 이어서
lsim으로 출력 를 구하세요. 마지막 표본의 와 계산한 를 나란히 적고 두 값의 절대 차이를 기록하세요.
제출·저장
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_13주차.mlx.
실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.
선택 실습
예: PI Controller에서 적분 항을 상수로 쓴 경우
- 실습용 Live Script의 ‘3. P와 PI의 Step 추종’ 코드 복사본에서
PI=10+5/s를 PI=10+5로 바꾸고, feedback(PI*G,1)를 다시 만드세요. - 변경 전후의
1-dcgain(Tpi)를 기록하고, 원점 Pole이 있는지 대조하세요. Controller 정의 줄만 10+5/s로 바꾸세요.