강의자료 · 제어공학1

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. 설계 후 검증’ 코드의 첫 실행은 ζ=0.7,ωn=5\zeta=0.7,\quad\omega_n=5로 하세요.
  • 먼저 Mp=100e−πζ/1−ζ2M_p=100e^{-\pi\zeta/\sqrt{1-\zeta^2}} [%], Ts≈4ζωnT_s\approx\frac{4}{\zeta\omega_n}로 Overshoot와 Settling Time을 손으로 구하세요.
  • 수치 비교에는 e−0.7π/0.51≈0.046e^{-0.7\pi/\sqrt{0.51}}\approx0.046을 사용하세요.
  • Mp≤10%M_p\le10\%, Ts≤2T_s\le2 s를 각각 만족하는지 판단하고, ζ=0.7\zeta=0.7을 유지할 때 TsT_s 조건을 만족하는 ωn\omega_n의 범위를 부등식으로 구하세요.
  • 그 뒤 ωn\omega_n을 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));
직접 수행:
  1. 다음 두 조합에서 Natural Frequency ωn=K1\omega_n=\sqrt{K_1}과 Damping Ratio ζ=K2/(2ωn)\zeta=K_2/(2\omega_n)를 계산하세요: (K1,K2)=(9,3)(K_1,K_2)=(9,3), (16,8)(16,8).
  2. 조합별 ωn\omega_n, ζ, 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;
직접 수행:
  1. 같은 ζ에서 ωn\omega_n만 두 배로 바꾸고, 변경 전후 모델의 stepinfo를 구하세요.
  2. ζ, ωn\omega_n, Overshoot, Rise Time, Settling Time을 변경 전후 두 행에 기록하세요.
  3. 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);
직접 수행:
  1. 기준 조합 이외에 ζ, ωn\omega_n 조합 두 개를 정해, 기존 조건인 Overshoot ≤10%\le10\%, Settling Time ≤2\le2 s를 만족하도록 설계하세요.
  2. 각 모델의 stepinfo에서 Overshoot·Settling Time을 읽어 두 조건의 충족 여부를 각각 적으세요. 계산한 근사식만으로 판정하지 말고 모델의 지표와 대조합니다.
  3. 조건을 만족하지 않는 조합도 하나 기록하세요. 표의 열은 ζ, ωn\omega_n, Overshoot, Settling Time, 각 조건의 충족 여부로 구성하고, 실패한 지표를 표시하세요.
% ✍ 직접 작성: 아래에 본인 코드를 추가하세요.
바꾼 조건: ⟦직접 입력⟧
실제 결과: ⟦직접 입력⟧
예상과 차이 및 원인: ⟦직접 입력⟧

반복 숙달과 제출 전 확인

앞의 직접 수행에서 비교한 조건 세 가지를 아래에 정리하세요. 이미 수행한 실험을 추가로 반복할 필요는 없습니다. 예상은 정확한 수치 대신 증가·감소 방향으로 적어도 됩니다.
반복 1 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 2 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
반복 3 — 조건: ⟦직접 입력⟧ / 예상: ⟦직접 입력⟧ / 실제: ⟦직접 입력⟧
선택:
예: Second-Order 분모에서 Natural Frequency를 빠뜨린 경우
  1. zeta=.7, wn=4를 유지한 채, 분모 [1 2*zeta*wn wn^2]를 [1 2*zeta wn^2]로 바꾼 모델을 별도로 만드세요.
  2. 두 모델의 Pole과 stepinfo의 Settling Time·Overshoot를 나란히 기록하세요. 분모의 두 번째 계수만 2*zeta*wn으로 바꾸어 다시 계산하세요.
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_12주차.mlx.