AEGLOSLAB 제어공학 종합 핸드북

제2부 고전 제어: 해석과 설계

2.2 근궤적법 (Root Locus)

제2부 고전 제어: 해석과 설계 · 극의 길. 이득 $K$가 $0\to\infty$로 변할 때 폐루프 극이 복소평면에서 그리는 길을 근궤적이라 한다. 2.1이 "어느 $K$까지 안정?"에 점으로 답했다면, 근궤적은 극의 이동 경로 전체를 보여 줘 설계 직관을 준다.

이 장을 마치면 개루프 극·영점만 보고 근궤적의 개형을 손으로 스케치하고, 원하는 응답($\zeta$)을 주는 $K$를 궤적에서 읽으며, 2.1의 임계이득이 근궤적의 허수축 교차와 같은 사건임을 알아야 한다.

2.2.1 무엇을, 왜

폐루프 극은 성능을 정한다(1.3). 그 극은 제어 이득 $K$에 따라 움직인다(1.2.5.3에서 본 그것). 근궤적은 $K$를 0에서 ∞로 키울 때 폐루프 극이 지나는 자취다.

(−) R Σ K G(s) Y H(s)

특성방정식: $1 + K\cdot L(s) = 0$, $L(s) = G(s)H(s)$.

  • 특성방정식 $1 + K\cdot L(s) = 0$의 근이 $K$의 함수다. $K=0$이면 근 = 개루프 극, $K\to\infty$이면 근 = 개루프 영점(또는 무한대).
  • 한 장의 그림으로 "이득을 키우면 극이 어디로 가나 → 빨라지나? 진동하나? 언제 불안정해지나?"를 다 본다. 그래서 이득 선택과 보상기 설계(2.6)의 직관 도구다.

2.2.2 두 조건 — 각 조건과 크기 조건

$1+KL(s)=0$ ⇔ $K\cdot L(s) = -1$. $K>0$이므로 어떤 점 $s$가 궤적 위에 있으려면:

  • 각 조건(angle condition): $\angle L(s) = \pm180^\circ(2k+1)$ (−1의 위상). 궤적 위 점인지 판별.
  • 크기 조건(magnitude condition): $K = 1/\vert L(s)\vert= \prod\vert s-p_i\vert/ \prod\vert s-z_j\vert$. 그 점에서의 이득값을 준다.

실용: 각 조건으로 궤적의 모양을 그리고, 원하는 극 위치를 정한 뒤 크기 조건으로 그 $K$를 구한다. ($K>0$은 180° 궤적, 양피드백·음이득은 0° 궤적 — 부호만 다르다.)

2.2.3 손으로 스케치하는 규칙

개루프 극 $n$개, 영점 $m$개라 하자. 핵심 규칙:

  • R1 — 가지 수·시종점: 가지(branch)는 $n$개. $K=0$에서 개루프 극에서 출발해, $K\to\infty$에서 $m$개는 개루프 영점으로, 나머지 n−m개는 무한대(점근선)로 간다.
  • R2 — 실축 구간: 실축 위의 점은, 그 오른쪽에 있는 실수 극·영점의 총 개수가 홀수면 궤적 위에 있다.
  • R3 — 대칭: 궤적은 실축에 대해 대칭(복소근은 켤레쌍).
  • R4 — 점근선: 무한대로 가는 n−m개 가지의 점근선
    • 각도 $\theta = \pm 180^\circ(2k+1)/(n-m)$, $k=0,1,\ldots$
    • 교점 $\sigma_a = (\sum$극 ${}- \sum$영점$)/(n-m)$ (실축 위 한 점에서 갈라짐)
  • R5 — 분기점(breakaway/break-in): 두 가지가 실축에서 만나 갈라지는(또는 합쳐지는) 점. $dK/ds = 0$을 풀어 구한다(실축 구간 위의 해만 유효).
  • R6 — 허수축 교차: 궤적이 허수축을 넘는 점 = 불안정해지는 순간. Routh-Hurwitz(2.1)로 임계 $K$와 그때 $\omega$를 구한다 — 2.1.6의 그 사건.
  • R7 — 출발·도착각: 복소 극·영점에서 궤적이 떠나는/닿는 각도는 각 조건으로 구한다.

2.2.4 완전 예제 — 2.1의 그 시스템

$L(s) = 1/[s(s+1)(s+2)]$ (단위 피드백, 이득 $K$). 2.1.6에서 $0<K<6$에 안정, $K=6$에서 $\pm j\sqrt2$였다. 근궤적으로 전체 그림을 그려 보자.

극 0, −1, −2 (n=3), 영점 없음 (m=0).

  1. R1: 가지 3개, 모두 무한대로(영점이 없으니). 출발점 0, −1, −2.
  2. R2 실축 구간: 오른쪽 극·영점 개수가 홀수인 구간 → 0 ~ −1 사이, −2의 왼쪽.
  3. R4 점근선: n−m=3 →
    • 각도 $\theta = 60^\circ, 180^\circ, 300^\circ(-60^\circ)$
    • 교점 $\sigma_a = (0 + (-1) + (-2) - 0)/3 = -1$
  4. R5 분기점: $K = -s(s+1)(s+2) = -(s^3+3s^2+2s)$, $dK/ds = -(3s^2+6s+2)=0$
    • $s = (-6 \pm \sqrt{12})/6 = -1 \pm 0.577$ → $s \approx -0.42$ 또는 $-1.58$

실축 궤적 구간(0~−1)에 드는 $s\approx-0.42$만 유효 → 분기점 −0.42.

  1. R6 허수축 교차: 2.1.6의 Routh → $K=6$에서 $\pm j\sqrt2$. ($\omega=\sqrt2$에서 불안정 진입.)

종합 개형:

−3 −2 −1 0 1 −3 −2 −1 0 1 2 3 Re Im K = 6,  ± j√2
근궤적 $1/[s(s+1)(s+2)]$

읽는 법: $K$가 커지면 — 0과 −1에서 출발한 두 극이 서로 다가가 −0.42에서 만나(분기) 복소평면으로 갈라져 위·아래로 휘며, $K=6$에서 허수축 $\pm j\sqrt2$를 넘어 불안정해진다. −2에서 출발한 극은 실축을 따라 왼쪽(−∞)으로 간다. — 2.1이 점으로 준 $K=6$이, 여기서는 궤적이 허수축을 통과하는 사건으로 보인다.

2.2.4.1 R7 적용 예제 — 복소극에서 출발각 구하기

2.2.4의 시스템은 실극뿐이라 R7(출발·도착각)을 쓸 일이 없었다. 복소극이 있는 $L(s) = 1/[s(s^2+2s+5)]$로 R7을 실제로 적용해 보자.

극: $s^2+2s+5=0 \to s=-1\pm2j$, 그리고 $s=0$. 즉 $p_1=0, p_2=-1+2j, p_3=-1-2j$ (n=3), 영점 없음(m=0). R3(대칭)에 따라 $p_3$의 출발각은 $p_2$의 출발각과 부호만 반대이므로, $p_2=-1+2j$에서의 출발각만 구하면 된다.

각 조건으로 출발각 구하기: 궤적이 $p_2$를 떠나는 순간, $p_2$에 아주 가까운 점 $s$에서 여전히 각 조건 $\Sigma\angle(s-p_i) = 180^\circ$가 성립해야 한다. $s\to p_2$일 때 다른 두 극에서 본 각도는 $p_2$로 수렴하고, $p_2$ 자신에서 본 각도가 곧 출발각 $\theta_{\mathrm{dep}}$이 된다:

$$\angle(p_2-p_1) + \angle(p_2-p_3) + \theta_{\mathrm{dep}} = 180^\circ \quad (\mathrm{mod}\ 360^\circ)$$

$$\theta_{\mathrm{dep}} = 180^\circ - \angle(p_2-p_1) - \angle(p_2-p_3)$$

계산:

  • $\angle(p_2-p_1) = \angle(-1+2j - 0) = \angle(-1+2j) = 180^\circ-\operatorname{arctan}(2/1) = 180^\circ-63.43^\circ = 116.57^\circ$
  • $\angle(p_2-p_3) = \angle((-1+2j)-(-1-2j)) = \angle(4j) = 90^\circ$
  • $\theta_{\mathrm{dep}} = 180^\circ - 116.57^\circ - 90^\circ = -26.57^\circ$

즉 극 −1+2j에서 궤적은 약 −26.6° 방향(오른쪽 아래로 약간 기울며)으로 출발한다. 대칭인 −1−2j에서는 +26.6° 방향으로 출발한다.

검증(docker ce-verify): 극 $p_2$ 주변 반지름 $10^{-4}$에서 각도를 조밀하게 스캔해 각 조건($\angle L(s)=\pm180^\circ$)을 가장 잘 만족하는 방향을 수치로 찾으면 $\theta\approx-26.56^\circ$로 나와 손계산과 소수점 셋째 자리까지 일치한다. ✅ 검증됨.

감각: 출발각이 $-26.6^\circ$로 (음의 실축 방향인 $180^\circ$가 아니라) 원점 쪽을 향해 비스듬히 나온다는 것은, 이 복소극 쌍이 초반부터 상당히 "옆으로 누운" 방향으로 움직인다는 뜻이다 — 극 배치·보상기 설계(2.6)에서 이 초기 방향이 궤적 전체 모양을 좌우한다.

2.2.5 설계에 쓰기 — 궤적에서 K 고르기

근궤적은 원하는 극을 주는 $K$를 고르는 도구다.

  1. 사양 → 극 영역(1.3.4): 예 "$\zeta=0.5$" → 음의 실축과 $60^\circ$를 이루는 방사선.
  2. 그 방사선과 근궤적의 교점이 원하는 폐루프 극.
  3. 그 점에서 크기 조건(2.2.2)으로 $K = \prod\vert s-p_i\vert$를 계산 → 쓸 이득.

한계: 근궤적의 기존 가지 위에서만 극을 고를 수 있다. 원하는 극이 궤적 밖이면 궤적 자체를 바꿔야 한다 — 개루프에 극·영점을 더해(Lead·Lag 보상기) 궤적을 끌어당기거나 미는 것이 2.6이다. 예컨대 영점을 더하면 궤적이 그 영점 쪽(왼쪽)으로 휘어 안정·속응성이 개선된다.

2.2.6 도구로 — rlocus

# rlocus_demo.py — 2.2.4 시스템의 근궤적
import control as ct
import matplotlib.pyplot as plt

L = ct.tf([1], [1, 3, 2, 0])      # 1/[s(s+1)(s+2)] = 1/(s³+3s²+2s)
ct.root_locus(L, grid=True)        # ζ·ωₙ 격자(sgrid)와 함께
plt.show()

# 특정 극 위치에서의 이득은 인터랙티브 클릭 또는:
# ct.root_locus_map(L) 등으로 K 대 극 관계를 수치로 확인

grid=True의 방사선(일정 $\zeta$)·원호(일정 $\omega_n$)에 궤적을 겹쳐, 사양을 만족하는 교점과 그 $K$를 바로 읽는다. (출력·궤적은 여러분 환경에서 재현 — 검증 필요.)

2.2.7 정직 — 근궤적의 효용과 한계

  • 한 파라미터: 표준 근궤적은 하나의 변수(보통 이득 $K$)가 변할 때다. 두 파라미터를 동시에 보려면 따로 다뤄야 한다.
  • 근사가 아니라 정확하되, 손스케치는 개형: 규칙으로 그린 손그림은 경향을 정확히 포착하지만 세부 좌표는 어림이다 — 정밀값은 rlocus·numpy.roots로.
  • 지배극 가정: "교점 극으로 응답을 어림"은 다른 극·영점이 멀 때만 유효(1.3.5). 가까우면 시뮬레이션으로 확인.
  • 시간지연에는 안 맞는다: R1~R7은 $L(s)$가 유리함수(다항식/다항식)라는 전제 위에 있다. 지연 $e^{-s\tau}$(2.3.8)가 섞이면 극이 무한해져 점근선·분기점 규칙이 그대로 안 통한다 — 지연이 지배적인 계는 주파수영역(Bode·Nyquist)이 자연스러운 대안이다(세 관점 비교는 2.4.9.2).
  • 현대적 대안: 원하는 극을 임의로 배치하려면 상태피드백 극배치(4.3)가 더 직접적이다. 그래도 근궤적은 "이득·보상기가 극을 어느 방향으로 움직이나"라는 직관에서 여전히 독보적이다.

2.2.8 정리 — 그리고 다음 장

  • 근궤적 = 이득 $K: 0\to\infty$에서 폐루프 극이 그리는 자취. $K=0$ 개루프 극에서 출발, $K\to\infty$ 영점·무한대로(2.2.1).
  • 각 조건으로 모양을, 크기 조건으로 그 점의 $K$를 얻는다(2.2.2). 손스케치 7규칙(R1~R7, 2.2.3)으로 개형을 그린다.
  • 허수축 교차 = 2.1의 임계이득. 근궤적은 안정성·속응성·진동을 이득의 함수로 한눈에 본다.
  • 설계는 사양($\zeta$)이 주는 방사선과의 교점에서 $K$를 고르는 일이며, 궤적 밖 극이 필요하면 보상기로 궤적을 바꾼다(2.6).

다음 2.3에서는 같은 안정성·성능을 주파수영역에서 보는 Bode 선도로 넘어간다 — 시간·s영역과 또 다른 관점이다.

2.2.9 연습·생각해 볼 것

  1. 개형 스케치. $L(s)=1/[s(s+4)]$의 근궤적을 손으로 그려라. 실축 구간, 점근선(각·교점), 분기점을 구하라. 이 시스템은 모든 $K>0$에서 안정한가? (n=2, m=0)
  2. 영점의 효과. $L(s)=(s+3)/[s(s+1)]$의 근궤적을 그려라. 1번과 달리 영점이 생기면 가지 하나가 어디로 가나? 영점이 궤적을 어느 쪽으로 끌어당기나?
  3. 분기점. $L(s)=1/[(s+1)(s+3)]$의 분기점을 $dK/ds=0$으로 구하라. 그 점에서 두 실근이 만나 복소근으로 갈라지는 $K$값은? (크기 조건)
  4. 2.1 연결. 2.2.4의 시스템에서 $K=3$일 때 폐루프 극을 numpy.roots로 구하고, 근궤적 상의 위치(분기 후 복소 가지 vs 실축 가지)와 일치하는지 확인하라. 안정한가? (검증 필요)
  5. 설계. 2.2.4 시스템에서 $\zeta=0.5$(방사선 60°)를 주는 폐루프 극과 그 $K$를 (그래픽 또는 rlocus로) 어림하라. 그 $K$는 임계이득 6보다 작은가? 왜 그래야 하나?
  6. 궤적 바꾸기. 5번에서 원하는 극이 더 왼쪽(더 빠른 정착)이라면, 기존 궤적으로는 닿지 못할 수 있다. 개루프에 무엇을(극? 영점?) 더하면 궤적을 왼쪽으로 끌 수 있을지 추측하라 — 2.6의 예고. (2.2.5)

막히면 "K=0은 극, K=∞는 영점, 실축은 오른쪽 홀수, 무한대는 점근선" 네 마디로 개형의 뼈대를 파악하라.