정상상태 오차
시스템형과 입력으로 오차가 정해진다
금색 곡선은 t = 0부터 12까지의 추종 오차 e(t) = r(t) − y(t), 곧 목표 입력과 닫힌 루프 출력의 차이이고, 점선은 그 오차가 시간이 지나 다다르는 정상상태 값이다. 입력은 계단(상수), 램프(직선), 포물선(가속) 가운데서, 시스템형은 0형, 1형, 2형(열린 루프가 원점에 가진 극의 수) 가운데서 고르며, 오차가 0으로 가면 곡선이 초록, 끝없이 커지면 빨강으로 바뀌어요. 처음에는 램프 입력에 1형, K = 2라 오차가 2/K = 1에 멈춘다. 시스템형이 입력보다 한 단계 이상 높으면 오차가 0으로 가라앉고, 정확히 같으면 0이 아닌 일정한 값에 멈추며(K를 키우면 줄지만 0은 되지 않는다), 낮으면 끝없이 커진다. 1형 시스템 K/(s(s + 1)(s + 2))는 F1 ~ F6 유닛 내내 쓴 바로 그 플랜트이고, 이 슬라이더는 K = 5까지라 K = 6의 불안정은 나타나지 않아요.
최종값 정리로 오차를 읽다
정상상태 오차는 최종값 정리로 깔끔하게 구할 수 있다. 단위 피드백에서 오차의 라플라스 변환은 E(s) = R(s)/(1 + L(s))이고, 시간이 무한히 흐른 뒤의 값은 e_ss = lim_{t→∞} e(t) = lim_{s→0} s·E(s) = lim_{s→0} s·R(s)/(1 + L(s))다. 계단 입력은 R = 1/s, 램프는 R = 1/s², 포물선은 R = 1/s³이라 s·R은 각각 1, 1/s, 1/s²이 돼요. 그러면 오차는 s → 0에서 1 + L(s)가 얼마나 커지는지에 달리는데, L(s)가 원점에 극을 가지면 s → 0에서 L이 무한대로 커져 오차가 0이 된다. 결국 오차를 0으로 보내는 힘은 L이 원점에 가진 극, 곧 적분기의 수에서 나온다. 다만 이 정리는 닫힌 루프가 안정할 때만 쓸 수 있어요.
세 오차 상수와 시스템형의 표
입력마다 오차를 좌우하는 양에 붙인 이름이 오차 상수다. 계단 입력에는 위치 오차 상수 K_p = lim_{s→0} L(s), 램프 입력에는 속도 오차 상수 K_v = lim_{s→0} s·L(s), 포물선 입력에는 가속도 오차 상수 K_a = lim_{s→0} s²·L(s)가 대응하고, 오차는 계단에서 1/(1 + K_p), 램프에서 1/K_v, 포물선에서 1/K_a로 정리된다. 시스템형은 이 상수들이 유한한지 무한한지를 한꺼번에 정해요. 0형은 K_p만 유한하고 K_v와 K_a는 0이라 계단에는 유한 오차, 램프와 포물선에는 무한 오차가 남는다. 1형은 K_p가 무한(계단 오차 0), K_v가 유한(램프 유한 오차), K_a가 0(포물선 무한 오차)이고, 2형은 K_p와 K_v가 무한(계단, 램프 오차 0), K_a가 유한(포물선 유한 오차)이다. 이 3 × 3 표가 정상상태 오차의 전부이고, 첫 화면의 표시 칸에는 지금 고른 시스템의 세 상수가 적혀 있어요.
오차를 줄이는 두 손잡이, 그리고 대가
정상상태 오차를 줄이는 길은 둘이다. 하나는 시스템형을 올리는 것, 곧 제어기에 적분기를 더해 원점에 극을 보태는 것이고, 그러면 해당 입력의 오차가 통째로 0이 된다(F5 유닛의 적분 항). 다른 하나는 오차 상수를 키우는 것으로, 이득을 올리거나 F6 유닛의 지상 보상처럼 원점 가까이에 극을 두어 낮은 주파수 이득을 키우는 방법인데, 유한 오차를 줄일 뿐 없애지는 못해요. 두 길 모두 공짜가 아니다. 원점의 극은 위상을 90° 늦춰 위상여유를 깎으므로 시스템을 불안정 쪽으로 밀고(F3, F6 유닛에서 본 위상 손실), 이득을 키우면 어느 선을 넘는 순간 닫힌 루프가 불안정해진다. 1형 플랜트 K/(s(s + 1)(s + 2))가 K = 6에서 불안정해진 F1 ~ F4 유닛의 그 경계가 여기서도 그대로 살아 있다. 그래서 실제 설계는 정상상태 정확도와 안정성, 응답 속도 사이의 줄다리기이고, 적분기는 진상 보상으로 위상을 메워 가며 꼭 필요한 만큼만 더해요.
첫 화면으로 돌아가서
첫 화면에서는 추종 오차 e(t)를 직접 띄워 놓고 입력과 시스템형을 바꿔 가며 그 끝값을 살폈다. 시스템형이 입력의 차수보다 높으면 오차가 0으로 사라지고, 같으면 1/(1 + K_p), 1/K_v, 1/K_a 같은 유한한 값에 멈추고, 낮으면 끝없이 벌어졌어요. 그 모든 경우가 최종값 정리 e_ss = lim_{s→0} s·R/(1 + L) 하나에서 나왔고, 원점에 놓인 극의 수가 1 + L을 얼마나 키우는지가 오차를 0으로 보낼지를 정했다. 이득 K는 유한 오차의 크기만 바꿀 뿐 차수의 벽은 넘지 못했다. F5 유닛의 적분 항은 이 표에서 시스템형을 한 칸 올려 오차를 지운 것이고, F6 유닛의 지상 보상은 같은 칸에서 오차 상수를 키워 오차를 줄인 것이다.
이것으로 제어 챕터의 한 바퀴가 끝났다. 라우스로 안정을 판정하고(F1), 근궤적으로 극의 길을 따라가고(F2), 보드 선도의 두 여유로 거리를 재고(F3), 나이퀴스트 선도로 −1을 감싸는지 보고(F4), PID로 응답을 빚고(F5), 진상·지상 보상으로 위상을 모양 잡고(F6), 이제 정상상태 오차로 추종의 한계를 읽었어요(F7). 안정성, 응답 속도, 정상상태 정확도라는 세 목표가 서로 줄다리기하며 하나의 설계로 묶이는 것이 고전 제어의 줄기다. 여기서 더 나아가면 여러 입출력을 한꺼번에 다루는 상태공간과 극을 원하는 곳에 놓는 극 배치, 샘플링된 신호로 제어하는 디지털 제어, 비용을 최소화하는 최적 제어가 기다린다. 그 모든 길도 이 챕터에서 본 극, 영점, 여유, 오차의 언어 위에 세워진다.