Control Engineering 1 · Week 12 · Second-Order System의 Damping Ratio와 Natural Frequency
본인 사본에서 코드와 작성란을 직접 수정하세요. 이름: ⟦직접 입력⟧ / 학번: ⟦직접 입력⟧
실행 방법
Live Editor에서 코드 안을 클릭하고 Run Section으로 현재 Section을 실행하세요(Windows/Linux Ctrl+Enter, Mac ⌘+Enter). Run은 문서 전체를 실행합니다. 설명·작성란은 직접 편집하세요.
처음에는 위에서부터 실행하고, 값을 바꾼 Section은 다시 실행하세요. 변수가 없다는 오류가 나면 앞 Section부터 실행하세요. 출력은 코드 아래 또는 오른쪽에 표시됩니다.
환경: MATLAB Online과 Control System Toolbox.
1. 성능 조건과 설계 범위 계산
아래 계산을 먼저 수행한 뒤 MATLAB 결과와 비교하세요.
- 코드의 wn 초기값 4를 이 활동의 조건인 5로 바꾸세요.실습용 Live Script의 ‘4. 설계 후 검증’ 코드의 첫 실행은 로 하세요.
- 먼저 [%], 로 Overshoot와 Settling Time을 손으로 구하세요.
- 수치 비교에는 을 사용하세요.
- , s를 각각 만족하는지 판단하고, 을 유지할 때 조건을 만족하는 의 범위를 부등식으로 구하세요.
- 그 뒤 을 5로 수정하고 stepinfo를 실행해 근사식과 측정 결과를 비교하세요.
- 이 조건을 기존 설계 조합 중 한 개로 기록하세요.
코드 실행 전 — 손으로 계산한 식과 값: ⟦여기에 계산을 적으세요⟧
코드 실행 후 — 비교할 MATLAB 출력값: ⟦출력값을 적으세요⟧
2. 표준형 변환
K1=25,K2=4부터 시작합니다.
실행 전 예상: ⟦직접 입력⟧
K1=25;K2=4;G=tf(K1,[1 K2 0]);T=feedback(G,1);
wn=sqrt(K1);zeta=K2/(2*wn);disp([wn,zeta]);
figure;step(T,0:.005:15);title(sprintf('wn=%.2f, zeta=%.2f',wn,zeta));grid on;
disp(stepinfo(T,'SettlingTimeThreshold',.02));
직접 수행:
- 다음 두 조합에서 Natural Frequency 과 Damping Ratio 를 계산하세요: , .
- 조합별 , ζ, Damping 유형을 한 행에 기록하세요. Damping 유형은 계산한 ζ를 기준으로 판별합니다.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
3. Damping Ratio 비교
Natural Frequency를 고정합니다.
실행 전 예상: ⟦직접 입력⟧
wn=5;zeta_list=[.1 .3 .7 1.2];
figure;hold on;
for zeta=zeta_list
T=tf(wn^2,[1 2*zeta*wn wn^2]);[y,t]=step(T,0:.005:20);plot(t,y,'DisplayName',sprintf('zeta=%.1f',zeta));
info=stepinfo(T);disp([zeta info.Overshoot info.SettlingTime]);
end
legend;grid on;
직접 수행:
- 같은 ζ에서 만 두 배로 바꾸고, 변경 전후 모델의 stepinfo를 구하세요.
- ζ, , Overshoot, Rise Time, Settling Time을 변경 전후 두 행에 기록하세요.
- Overshoot가 거의 같은지, 두 시간 지표가 원래 값의 약 절반이 되는지 비교하세요. Damping Ratio를 고정했을 때 Natural Frequency가 주로 어느 지표를 바꾸는지 적으세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
4. 설계 후 검증
근사식은 초기 선택용이며 실제 지표를 검사합니다.
실행 전 예상: ⟦직접 입력⟧
zeta=.7;wn=4;T=tf(wn^2,[1 2*zeta*wn wn^2]);
info=stepinfo(T,'SettlingTimeThreshold',.02);
passes=info.SettlingTime<=2 && info.Overshoot<=10;disp(info);disp(passes);
직접 수행:
- 기준 조합 이외에 ζ, 조합 두 개를 정해, 기존 조건인 Overshoot , Settling Time s를 만족하도록 설계하세요.
- 각 모델의 stepinfo에서 Overshoot·Settling Time을 읽어 두 조건의 충족 여부를 각각 적으세요. 계산한 근사식만으로 판정하지 말고 모델의 지표와 대조합니다.
- 조건을 만족하지 않는 조합도 하나 기록하세요. 표의 열은 ζ, , Overshoot, Settling Time, 각 조건의 충족 여부로 구성하고, 실패한 지표를 표시하세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧
반복 숙달과 제출 전 확인
앞의 직접 수행에서 비교한 조건 세 가지를 아래에 정리하세요. 이미 수행한 실험을 추가로 반복할 필요는 없습니다. 예상은 정확한 수치 대신 증가·감소 방향으로 적어도 됩니다.
반복 1 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 2 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 3 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
선택:
예: Second-Order 분모에서 Natural Frequency를 빠뜨린 경우
- zeta=.7, wn=4를 유지한 채, 분모 [1 2*zeta*wn wn^2]를 [1 2*zeta wn^2]로 바꾼 모델을 별도로 만드세요.
- 두 모델의 Pole과 stepinfo의 Settling Time·Overshoot를 나란히 기록하세요. 분모의 두 번째 계수만 2*zeta*wn으로 바꾸어 다시 계산하세요.
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_12주차.mlx.





