Control Engineering 1 · Week 11 · Step Response 성능 지표
본인 사본에서 코드와 작성란을 직접 수정하세요. 이름: ⟦직접 입력⟧ / 학번: ⟦직접 입력⟧
실행 방법
Live Editor에서 코드 안을 클릭하고 Run Section으로 현재 Section을 실행하세요(Windows/Linux Ctrl+Enter, Mac ⌘+Enter). Run은 문서 전체를 실행합니다. 설명·작성란은 직접 편집하세요.
처음에는 위에서부터 실행하고, 값을 바꾼 Section은 다시 실행하세요. 변수가 없다는 오류가 나면 앞 Section부터 실행하세요. 출력은 코드 아래 또는 오른쪽에 표시됩니다.
환경: MATLAB Online과 Control System Toolbox.
1. 응답을 수치로 측정
같은 응답을 그래프와 Rise Time·Settling Time·Overshoot로 비교합니다.
실행 전 예상: ⟦직접 입력⟧
s=tf('s');T=4/(s^2+2*s+4);
info=stepinfo(T,'SettlingTimeThreshold',.02);disp(info);
figure;step(T,0:.01:10);grid on;
직접 수행:
Rise Time·Settling Time·Overshoot의 단위를 적고 그래프의 어느 부분을 측정한 것인지 표시하세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
2. 최종값을 잘못 넣은 측정 수정
응답 최종값이 1이 아닌 모델입니다.
실행 전 예상: ⟦직접 입력⟧
T=tf(2,[1 2 4]);t=(0:.01:10)';[y,~]=step(T,t);
correct=stepinfo(y,t,dcgain(T),'SettlingTimeThreshold',.02);
wrong=stepinfo(y,t,1,'SettlingTimeThreshold',.02);
disp(correct);disp(wrong);
직접 수행:
- 실습용 Live Script의 ‘2. 최종값을 잘못 넣은 측정 수정’ 코드의 correct와 wrong에서 Rise Time·Settling Time·Overshoot를 나란히 기록하세요. 두 호출에서 최종값 인자만 다른 점을 설명하세요.
- 분모 [1 2 4]는 유지하고 분자를 1로 바꾸어 T의 DC Gain을 0.25로 만드세요. 같은 시간 vector에서 y를 다시 구하세요.
- 같은 y,t에 최종값을 각각 1과 dcgain(T)로 지정해 stepinfo를 호출하고, 두 결과를 같은 방식으로 기록하세요.
- 모델을 바꾸어 오류를 숨기는 대신, stepinfo의 최종값 인자만 실제 DC Gain으로 수정하세요. 어떤 기준값 때문에 지표가 달라졌는지 적으세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
3. Pole·Zero 조건 변경
같은 분모라도 Zero가 응답을 바꿀 수 있습니다.
실행 전 예상: ⟦직접 입력⟧
s=tf('s');base=4/(s^2+2*s+4);withZero=(s+5)/5*base;slowPole=1/(s+1)*base;
figure;step(base,withZero,slowPole,0:.01:15);legend('base','zero -5','pole -1');grid on;
disp([dcgain(base),dcgain(withZero),dcgain(slowPole)]);
직접 수행:
- base, withZero, slowPole 각각에 대해 dcgain과 stepinfo를 구하세요.
- 모델마다 한 행을 사용해 DC Gain, Rise Time, Settling Time, Overshoot를 기록하세요. 같은 stepinfo 설정을 사용합니다.
- 추가 Zero를 로 바꿀 때는 (s+2)/2*base, 추가 Pole을 으로 바꿀 때는 10/(s+10)*base를 사용하세요. 기준 모델 base는 바꾸지 않습니다.
- 바꾼 두 모델의 결과를 같은 표에 덧붙이세요. 먼저 DC Gain이 base와 같은지 확인합니다. 그런 다음 Zero 변경은 기존 withZero와, Pole 변경은 기존 slowPole과 대조하세요.
- 각 변경에서 Rise Time·Settling Time·Overshoot가 커졌는지 또는 작아졌는지 적으세요. 같은 최종값에서도 Transient Response가 달라지는지 이 결과로 설명하세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
반복 숙달과 제출 전 확인
앞의 직접 수행에서 비교한 조건 세 가지를 아래에 정리하세요. 이미 수행한 실험을 추가로 반복할 필요는 없습니다. 예상은 정확한 수치 대신 증가·감소 방향으로 적어도 됩니다.
반복 1 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 2 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 3 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
선택:
예: 2% Settling Time을 구하면서 20%를 지정한 경우
- 실습용 Live Script의 ‘1. 응답을 수치로 측정’ 코드의 같은 T에서 stepinfo(T,'SettlingTimeThreshold',.02)와 stepinfo(T,'SettlingTimeThreshold',.2)를 계산하세요.
- 두 Settling Time과 사용한 허용 비율을 나란히 적으세요. 2% 기준이 되도록 두 번째 호출의 인자만 .02로 바꾸고 모델은 유지하세요.
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_11주차.mlx.