제1부 시스템 모델링과 동특성
1.3 시간 응답
제1부 시스템 모델링과 동특성 · 응답 읽기. 1.2의 극·영점이 시간영역에서 실제로 어떤 곡선을 그리는지 본다. 1차·2차 응답, 과도 사양(상승·정착시간·오버슈트), 정상상태 오차 — 제어 사양을 정량으로 말하는 언어다.
이 장을 마치면 극 위치만 보고 응답의 모양(빠르기·진동·오버슈트)을 어림하고, "오버슈트 10% 이하, 정착 2초 이내" 같은 사양을 극 위치로 번역할 수 있어야 한다. 이 번역이 제2·4부 설계의 출발점이다.
1.3.1 왜 시간영역 — 사양은 시간으로 말한다
엘리베이터는 "목표 층을 1% 넘게 지나치지 말고, 3초 안에 멈춰라". 제어 사양은 대개 시간으로 표현된다. 그래서 시스템에 표준 시험입력을 넣고 나오는 곡선을 잰다.
| 시험입력 | $R(s)$ | 보는 것 |
|---|---|---|
| 임펄스 $\delta(t)$ | 1 | 자연 모드(임펄스 응답 = $g(t)$) |
계단 1 | $1/s$ | 과도·정상상태 (가장 많이 씀) |
| 램프 $t$ | $1/s^2$ | 추종 능력(속도 추종 오차) |
| 포물선 $t^2/2$ | $1/s^3$ | 가속 추종 오차 |
이 장의 중심 주제는 계단응답이다 — 과도(transient)와 정상상태(steady-state)를 한 번에 보여 준다.
1.3.2 1차계 계단응답 — 시정수 τ 하나로
$G(s) = K/(\tau s+1)$에 단위 계단을 넣으면(역라플라스):
$$y(t) = K\cdot(1 - e^{-t/\tau})$$
- 시정수 $\tau$가 전부다 — 작을수록 빠르다. $t=\tau$에서 63.2%, $4\tau$에서 98%, $5\tau$에서 99.3% 도달.
- 상승시간 $T_r \approx2.2\tau$ (10→90%), 정착시간 $Ts \approx4\tau$ (2% 기준) / $3\tau$ (5% 기준).
- 오버슈트 없음(극이 음의 실수 하나뿐, 진동 모드 없음). 정상상태값 = $K = G(0)$.
직관: 1차계의 모든 시간 지표는 $\tau$의 배수다. DC모터 속도(1.1.7.1)가 이 곡선이다.
1.3.3 2차계 계단응답 — ωₙ·ζ가 정하는 응답
$G(s) = K\cdot\omega_n^2 / (s^2 + 2\zeta\omega_n\cdot s + \omega_n^2)$. 극은 $s = -\zeta\omega_n \pm j\omega_n\sqrt{1-\zeta^2}$. 감쇠비 $\zeta$가 응답 성격을 결정한다.
1.3.3.1 감쇠 네 경우
| $\zeta$ | 극 | 응답 | 별명 |
|---|---|---|---|
| $\zeta> 1$ | 음의 실근 둘 | 진동 없이 느리게 도달 | 과감쇠(overdamped) |
| $\zeta= 1$ | 음의 중근 | 진동 없이 가장 빠르게(오버슈트 직전) | 임계감쇠(critical) |
| $0 < \zeta< 1$ | 복소켤레쌍 | 감쇠 진동(오버슈트 후 정착) | 저감쇠(underdamped) |
| $\zeta= 0$ | 허수축 위 | 멈추지 않는 진동 | 무감쇠 |
1.3.3.2 저감쇠 응답과 과도 사양
$0<\zeta<1$의 계단응답은 감쇠하는 사인이다. 감쇠진동수 $\omega_d = \omega_n\sqrt{1-\zeta^2}$.
$$y(t) = K\cdot[\,1 - (e^{-\zeta\omega_n t}/\sqrt{1-\zeta^2})\cdot\sin(\omega_d\cdot t + \varphi)\,], \qquad \varphi = \operatorname{arccos}\zeta$$
핵심 과도 사양(저감쇠 2차계 공식):
| 사양 | 공식 | 무엇에 좌우 |
|---|---|---|
| 피크시간 $T_p$ | $\pi/ \omega_d$ | 허부(빠른 진동일수록 짧음) |
| 오버슈트 $M_p$ | $\exp(-\zeta\pi/\sqrt{1-\zeta^2})$, $\%\mathrm{OS}=100\cdot M_p$ | 오직 $\zeta$ |
| 정착시간 $Ts$ | $\approx4/(\zeta\omega_n)$ (2%), $3/(\zeta\omega_n)$ (5%) | 실부 $\sigma=\zeta\omega_n$ |
| 상승시간 $T_r$ | $(\pi-\varphi)/\omega_d$ (0→100%), 대략 $\approx1.8/\omega_n$ (ζ≈0.5) | $\omega_n$ |
외울 한 줄: 오버슈트는 $\zeta$만, 정착은 실부 $\zeta\omega_n$만, 피크는 허부 $\omega_d$만 본다. 흔한 설계 표적 $\zeta\approx0.7$ → 오버슈트 ≈ 5%로 "빠르면서 안 지나치는" 균형점.
1.3.3.3 설계 역산 — 사양에서 ζ·ωₙ로
사양이 주어지면 거꾸로 $\zeta, \omega_n$을 정한다.
- $\%\mathrm{OS}$ 로부터: $\zeta = -\ln(M_p) / \sqrt{\pi^2 + \ln^2(M_p)}$ ($M_p = \%\mathrm{OS}/100$)
- $T_s(2\%)$ 로부터: $\zeta\omega_n = 4 / T_s$ → $\omega_n = 4 / (\zeta\cdot T_s)$
예: "오버슈트 ≤ 10%, 정착(2%) ≤ 2 s" → $M_p=0.1$에서 $\zeta\approx0.59$, $\zeta\omega_n=4/2=2$ → $\omega_n\approx3.4 \,\mathrm{rad/s}$. 이 $\zeta,\omega_n$이 곧 원하는 극 위치가 된다(다음 절).
1.3.4 극 위치 ↔ 응답 — s-평면 설계 지도
저감쇠 극 $s = -\sigma\pm j\omega_d$($\sigma=\zeta\omega_n$)를 복소평면에 놓고 보면, 위치가 곧 응답 사양이다.
- 왼쪽으로 갈수록(σ↑): 빨리 정착(
Ts↓). 정착 사양 = "이 수직선보다 왼쪽". - 실축에 가까울수록(각 β↓, ζ↑): 오버슈트↓. 오버슈트 사양 = "이 방사선 안쪽(원점 기준 좁은 쐐기)".
- 원점에서 멀수록(ωₙ↑): 전체적으로 빠름. $\omega_n$일정 = 원호.
그래서 "오버슈트 ≤10% & 정착 ≤2s"는 s-평면에서 쐐기(ζ) ∩ 수직선 왼쪽(σ) 영역이 된다. 제어 설계 = 폐루프 극을 이 영역으로 옮기는 일 — 근궤적(2.2)·극배치(4.3)가 그 방법이다.
1.3.5 극·영점이 더 있으면 — 지배극과 보정
실제 시스템은 극이 둘보다 많다. 그래도 위 2차 직관을 쓰는 근거가 지배극(dominant pole)이다.
- 지배극 근사: 다른 극이 지배극보다 (실부 기준) 5배 이상 왼쪽에 있으면, 그 빠른 모드는 빠르게 사라져 응답이 사실상 2차계처럼 보인다. 그래서 가장 오른쪽 극(쌍)으로 어림한다.
- 영점이 가까이 있으면: 오버슈트가 커지고 응답이 빨라진다. 특히 우반평면 영점은 초기 역응답(undershoot)을 만든다(1.2.2.3).
- 극이 더 가까이 추가되면: 응답이 느려지고 오버슈트가 줄어든다.
⚠️ 정직: 지배극 근사는 근사다. 추가 극·영점이 지배극에 가까우면 공식이 어긋난다 — 최종 확인은 시뮬레이션(1.3.7)으로. 공식은 설계의 출발 어림, 시뮬레이션은 검증.
1.3.5.1 수치 예 — 영점 하나가 응답을 얼마나 바꾸나
1.3.7에서 쓸 극($\omega_n=3.4, \zeta=0.59$ → 극 $s\approx-2.01\pm j2.75$)을 그대로 놓고, DC이득을 1로 맞춘 영점을 하나 추가해 보자(영점을 더한 표준형: $G(s) = \omega_n^2(s+z) / [z\cdot(s^2+2\zeta\omega_ns+\omega_n^2)]$). 영점이 극에서 얼마나 먼가에 따라 결과가 크게 달라진다.
| 경우 | 영점 위치 | 오버슈트 | 정착시간(2%) | 피크시간 |
|---|---|---|---|---|
| 영점 없음 (기준) | — | 10.1% | 1.77 s | 1.15 s |
| 영점, 극 실부와 거의 같은 거리 | s=−2 | 43.6% | 2.16 s | 0.56 s |
| 영점, 극 실부보다 훨씬 먼 거리 | s=−10 | 10.8% | 1.63 s | 1.01 s |
읽는 법: s=−2처럼 영점이 극(실부 −2.01)에 매우 가까우면 오버슈트가 10%→44%로 폭증하고 피크시간은 절반으로 단축된다 — 지배극 근사가 완전히 성립하지 않는다. 반대로 s=−10처럼 영점이 극보다 5배 가까이 멀면(1.3.5의 5배 규칙과 대칭) 오버슈트·정착시간이 영점 없는 경우와 거의 같다 — 지배극 근사가 살아 있다는 뜻. (python-control 0.10.2로 step_info 직접 계산해 검증됨.)
1.3.6 정상상태 오차 — 시스템 형(type)과 오차상수
과도가 끝난 뒤 목표와 얼마나 어긋나 머무는가(e_ss = lim_{t→∞}(r−y)). 0.1.4.1에서 P 제어 난방이 24 ℃에 못 미친 채 머문 그 잔류 오차의 원인이다.
1.3.6.1 정의와 도구
단위 피드백($H=1$), 개루프 $L(s)=C(s)G(s)$, 오차 E=R−Y=R/(1+L). 최종값 정리:
$$e_{ss} = \lim_{s\to 0} s\cdot E(s) = \lim_{s\to 0} s\cdot R(s) / (1 + L(s))$$
(안정할 때만 유효 — 1.2.2.4.)
1.3.6.2 형(type)과 오차상수
개루프 $L(s)$가 원점에 가진 적분기(1/s) 개수 $N$가 시스템 형(type)이다. 형이 입력별 추종 능력을 정한다.
오차상수: 위치 Kp = lim_{s→0}L(s), 속도 Kv = lim_{s→0}sL(s), 가속 $K_a = \lim_{s\to0}s^2L(s)$.
계단 입력 e_ss | 램프 입력 e_ss | 포물선 입력 e_ss | |
|---|---|---|---|
| 형 0 (적분기 0) | $1/(1+K_p)$ (유한) | ∞ | ∞ |
| 형 1 (적분기 1) | 0 | $1/K_v$ (유한) | ∞ |
| 형 2 (적분기 2) | 0 | 0 | $1/K_a$ (유한) |
읽는 법: 각 적분기가 오차의 "급(級)"을 하나씩 소거한다. 형 0은 계단에도 오차가 남고, 형 1은 계단은 완벽 추종하나 램프에는 오차가 남고, 형 2는 램프까지 완벽.
1.3.6.3 적분기가 오차를 제거한다 — 0.1의 그 함정
0.1.4.1의 P 제어 난방은 형 0이었다(개루프에 적분기 없음). 그래서 계단(일정 목표)에도 $1/(1+K_p)$만큼 잔류 오차가 남았다. 이를 없애려면 개루프에 적분기를 넣어 형을 높이면 된다 — 그것이 PID의 적분(I) 항($1/s$)이다(2.5). 즉 "정상상태 오차 0"을 원하면 적분기를 더하라.
트레이드오프: 적분기는 오차를 제거하지만 위상을 늦춰 안정 여유를 잠식한다(2.4). 대가가 따른다 — 2.5에서 균형을 다룬다.
1.3.7 도구로 — 응답과 사양 자동 추출
# step_specs.py — 2차계 계단응답과 과도 사양
import control as ct
wn, zeta = 3.4, 0.59 # 사양 역산 예(오버슈트 10%, 정착 2s)
G = ct.tf([wn**2], [1, 2*zeta*wn, wn**2])
info = ct.step_info(G) # 상승·정착·피크시간·오버슈트 자동
for k in ["RiseTime","SettlingTime","PeakTime","Overshoot"]:
print(k, "=", info[k])
import numpy as np, matplotlib.pyplot as plt
t, y = ct.step_response(G, T=np.linspace(0, 4, 400))
plt.plot(t, y); plt.grid(True); plt.show()
step_info가 손공식(1.3.3.2) 대신 사양을 도출해 준다. 손공식으로 어림하고 step_info로 검증하는 습관을 들여라. (출력값·곡선은 여러분 환경에서 재현해 확인 — ✅ control 0.10.2 검증됨; 재현 권장.)
1.3.8 정직 — 이상 2차계와 현실
위 공식들은 이상적인 2차계 가정 위에 있다. 현실은:
- 추가 동특성: 극·영점이 더 있어 지배극 근사가 어긋날 수 있다(1.3.5).
- 포화·비선형: 액추에이터 한계로 큰 계단에서는 공식보다 느리다(전압·토크 포화). 작은 신호에서는 맞다가 큰 신호에서 맞지 않는다.
- 잡음·외란: 측정 잡음이 섞여 정착 판정이 불안정해진다.
따라서 손공식은 설계 목표를 설정하는 도구이고, 실제 성능은 시뮬레이션·실측으로 확인한다. 공식과 측정이 다르면, 무엇을 무시했는지(1.1.11) 다시 점검하라.
1.3.9 정리 — 그리고 다음 장
- 사양은 시간으로 말한다. 1차계는 $\tau$ 하나($Ts\approx4\tau$, 오버슈트 없음), 2차계는 $\omega_n\cdot\zeta$(오버슈트는 $\zeta$만, 정착은 $\zeta\omega_n$만, 피크는 $\omega_d$만).
- 극 위치 = 응답 사양: 왼쪽=빠른 정착, 실축에 가까움=낮은 오버슈트. 사양을 s-평면 영역으로 번역하는 것이 설계의 출발점(1.3.4).
- 정상상태 오차는 개루프 적분기 수(형)가 정한다 — 적분기가 오차의 급을 하나씩 소거한다(1.3.6). 단 안정 여유와 트레이드오프.
다음 1.4에서는 모델을 데이터로 얻는 시스템 식별을 다룬다 — 계단·주파수 응답을 측정해 $\tau, \omega_n, \zeta$를 역으로 추정하고 모델을 검증하는 법. 제1부를 마무리한다.
1.3.10 연습·생각해 볼 것
- 1차계 읽기. $G=5/(2s+1)$의 계단응답에서 $K, \tau, Ts(2\%), T_r$를 구하라. $t=2$초에서 출력은 최종값의 몇 %인가?
- 2차 사양. $G = 25/(s^2+4s+25)$에서 $\omega_n, \zeta, \omega_d$를 구하고
%OS, Tp, Ts(2%)를 계산하라. 저감쇠인가? - 역산 설계. "오버슈트 ≤ 5%, 정착(2%) ≤ 1초"를 만족하는 $\zeta, \omega_n$과 원하는 극 위치 $-\sigma\pm j\omega_d$를 구하라. 이 극이 s-평면의 어느 영역에 있는지 말로 설명하라. (1.3.3.3·1.3.3.4)
- 극 옮기기. 극을 $-2\pm j2$에서 $-4\pm j2$로 옮기면 $\%\mathrm{OS}\cdot Ts$는 각각 어떻게 변하나? $-2\pm j4$로 옮기면? 각 변화를 "실부/허부/각" 언어로 설명하라. (1.3.4)
- 정상상태 오차. 개루프 $L(s)=10/[s(s+2)]$인 단위 피드백계의 형(type)은? 계단·램프 입력에 대한
e_ss를 각각 구하라. (1.3.6) - 0.1 복습. 0.1.4.1의 P 제어 난방이 왜 형 0이라 잔류 오차를 남겼는지, 그리고 적분기를 더하면 왜 그 오차가 0이 되는지 1.3.6으로 설명하라. 대가는 무엇인가?
- (손으로)
step_specs.py로 3번에서 구한 $\zeta,\omega_n$의 응답을 그려, 손계산 $\%\mathrm{OS}\cdot Ts$와step_info값이 맞는지 비교하라. 다르면 왜일지 추측하라. (1.3.7·1.3.8)
막히면 1.3.4의 지도로 돌아가라 — "왼쪽=빠름, 실축 가까움=덜 지나침"이 거의 모든 직관의 뿌리다.