블록선도에서의 피드백 루프

피드백 루프의 기본 개념

시스템 출력을 다시 입력 측에 환류하여 제어 성능을 향상시키는 피드백 제어는 여러 분야에서 가장 핵심적인 구조로 다루어진다. 이 피드백 루프는 블록선도에서 크게 두 가지 경로로 나누어 해석된다. 하나는 외부 입력부터 시작하여 출력에 이르는 정방향 경로이며, 다른 하나는 출력에서 다시 입력으로 되돌아오는 피드백 경로다. 이러한 두 경로가 조합되어 전체 폐루프(closed-loop) 시스템을 형성하며, 이를 통해 시스템은 외란(disturbance)에 대한 응답 특성을 개선하거나, 원하는 동특성(dynamic behavior)을 얻을 수 있다.

피드백 루프를 이해하기 위해 먼저 블록선도의 요소들을 간단히 살펴볼 필요가 있다. 블록선도에서 $G(s)$로 표현되는 블록은 보통 시스템의 주 전달함수를 의미한다. 이는 전기 시스템에서는 회로 소자로 구성된 입력-출력 간의 전달함수일 수도 있고, 기계 시스템에서는 운동 방정식을 라플라스 변환한 뒤 얻어진 전달함수일 수도 있다. 그리고 피드백 경로에서 $H(s)$로 표시되는 블록은 센서나 측정 시스템을 나타내는 경우가 많다. 센서가 측정한 출력을 다시 제어기 입력으로 되돌려주면서, 시스템은 자기 동작을 감지하고 보정할 수 있게 된다.

피드백 루프의 표준 형태

피드백 루프가 존재하는 블록선도의 전형적인 형태를 다음 다이어그램으로 표현할 수 있다.

spinner

여기서 R(s)는 기준 입력 또는 참조 입력을 의미한다. G(s)는 정방향 경로에서의 주 전달함수, H(s)는 피드백 경로에서의 전달함수다. 출력 Y(s)는 센서나 측정계에 의해서 H(s)를 거쳐 다시 합산점(Σ)에 들어오며, 기준 입력 R(s)와 비교된다. 합산점(Σ)은 오차(e)를 계산하는 곳으로, $e = R(s) - \text{(feedback)}$ 형태로 구성되는 경우가 많다.

실제 시스템 설계 시에는 이러한 합산점의 구조나 신호 흐름 방향이 상황에 따라 달라질 수 있으나, 가장 일반적인 형태는 위와 같은 형태다. 정방향 경로의 출력을 $Y(s)$라 할 때, 센서 경로를 통해 피드백으로 돌아오는 신호가 $H(s)Y(s)$가 되므로, 합산점에서 얻어지는 오차 신호 $E(s)$는

E(s)=R(s)H(s)Y(s)E(s) = R(s) - H(s)Y(s)

가 된다. 이 $E(s)$가 다시 $G(s)$에 입력되어 $Y(s)$를 형성하며, 최종 폐루프 전달함수는 다음과 같은 형태로 표현된다.

Gcl(s)=Y(s)R(s)=G(s)1+G(s)H(s)\displaystyle G_{cl}(s) = \frac{Y(s)}{R(s)} = \frac{G(s)}{1 + G(s)H(s)}

위 식에서 분모에 나타나는 $1 + G(s)H(s)$가 바로 폐루프의 극점들을 결정짓는 핵심 인자가 된다. 이 값이 0이 되는 근원을 폐루프 극점이라 하며, 이 폐루프 극점의 위치에 따라 시스템의 안정도나 동적 특성이 결정된다. 반대로 $G(s)H(s)$는 개루프(오픈 루프) 전달함수라고도 부르는데, 이는 아직 출력이 입력에 환류되지 않은 상태에서 바라본 시스템의 전달 특성을 의미한다.

피드백 루프의 직관적 해석

피드백 루프에서는 출력에 대한 정보를 받아들여 시스템이 스스로를 보정한다. 만약 센서를 통해 전달되는 신호가 실제 출력보다 작게 측정된다면, 합산점에서의 오차 $E(s)$가 커져 정방향 블록 $G(s)$로의 입력이 증가한다. 이렇게 증폭된 시스템 출력은 다시 센서로 전달되어 측정값을 교정하게 된다. 반면 출력이 실제보다 크게 측정된다면, 합산점에서의 오차가 상대적으로 작아지므로, 시스템은 출력을 제한하거나 감소시키는 쪽으로 작동한다. 이런 반복 과정을 통해 시스템은 외부 교란이나 불확실성이 있어도 목표 출력에 도달하도록 조정되며, 이를 피드백 제어의 본질이라고 할 수 있다.

오차 신호와 민감도

피드백 루프에서 핵심이 되는 또 다른 개념은 민감도(sensitivity)이다. 민감도는 시스템 출력이 주어진 파라미터 변화(예: 시스템 내부 파라미터, 외부 교란 등)에 얼마나 민감하게 반응하는지를 나타낸다. 예를 들어 폐루프 전달함수 $G_{cl}(s)$에서 $G(s)$가 조금 변할 때, 최종 출력 $Y(s)$가 얼마나 변화하는지 분석하면, 피드백이 얼마나 시스템 동작을 견고하게 만들어 주는지 알 수 있다. 블록선도에서 이 민감도 특성을 시각화하면, 블록 $G(s)$나 $H(s)$에서 발생하는 작은 변화가 실제 시스템 최종 출력에 얼마나 큰 파급 효과를 미치는지 확인할 수 있다. 이를 통해 설계자는 원하는 안정도, 응답 속도, 과도 특성 등을 조절하기 위한 가장 적절한 피드백 경로와 전달함수를 결정하게 된다.

블록선도에서의 합성 및 변환

블록선도는 개별 요소(블록) 간의 입력-출력 관계를 단순화하여 그릴 수 있기 때문에, 복잡한 시스템에서도 흐름도를 추적하기가 상대적으로 쉽다. 다만 실제 설계와 해석을 위해서는 때때로 블록선도를 재배열하거나, 복수의 피드백 루프를 간단한 단일 루프로 변환해야 하는 경우가 많다. 이러한 과정을 일반적으로 블록선도 합성(block diagram reduction)이라고 부른다.

블록선도 합성의 기초 규칙을 먼저 살펴보면, 기본적으로는 블록이 직렬(cascade)로 연결된 경우와 병렬(parallel)로 연결된 경우, 그리고 피드백 형태로 연결된 경우를 각각 단순화할 수 있다. 직렬 연결된 두 블록 $G_1(s)$와 $G_2(s)$가 있다면 이를 곱으로 합성할 수 있고, 병렬 연결 시에는 블록 간의 출력을 단순합으로 표현할 수 있다. 피드백이 있는 구조에 대해서는 앞서 살펴본 것처럼, 개루프 전달함수 $G(s)H(s)$를 이용해 폐루프 전달함수를 $\displaystyle \frac{G(s)}{1 + G(s)H(s)}$ 형태로 나타낼 수 있다.

블록선도 합성에서 여러 합산점과 분기점(신호 분할점)이 동시에 등장하면, 합산점의 위치를 이동시키거나 분기점을 다른 지점으로 옮기는 과정을 거쳐 단일 입력-단일 출력 형태로 재구성할 수 있다. 이때 중요한 것은 신호 흐름이 변하지 않도록 주의 깊게 이동해야 한다는 점이다. 예를 들어 합산점 뒤에 있던 블록을 합산점 앞으로 옮긴다면, 해당 블록이 작용하던 신호가 바뀌어 버릴 수 있다. 이런 문제를 방지하기 위해, 선도 상에서 블록과 합산점의 상대적인 위치 이동 시에는 선도 상에 그려진 화살표와 신호 방향을 면밀히 추적해야 한다.

내부 피드백 루프와 외부 피드백 루프

현실적인 시스템에서는 주 피드백 루프 외에도 내부 피드백 루프가 존재할 수 있다. 예를 들어 제어 대상 내에 내부 고리(inner loop)가 있어서 해당 부분이 먼저 제어를 받은 뒤, 그 출력이 다시 외부 고리(outer loop)로 전달되는 구조를 생각할 수 있다. 이는 항공기 자동조종장치, 로봇 조인트 제어기, 전력전자 회로 등 다양한 곳에서 발견된다. 이런 다중 루프 시스템(multiple-loop system)은 다음과 같이 도식화될 수 있다.

spinner

이러한 다중 루프 구조는 보통 안쪽 루프가 먼저 빠른 응답(fast inner loop)을 담당하고, 바깥 루프가 느리고 큰 틀의 제어를 맡도록 설계한다. 안쪽 루프가 외란을 조기에 억제하여 전체 시스템 안정화를 돕고, 바깥 루프가 원하는 최종 목표를 부과하는 식이다.

블록선도 관점에서 보면, 내부 루프를 먼저 폐루프로 단순화하여 단일 블록 형태로 묶고, 그 결과물에 대해 외부 루프를 해석하는 절차를 밟는다. 예를 들어 내부 루프가 $G_2(s)$와 $H_1(s)$로 구성된 구조라면,

Gin(s)=G2(s)1+G2(s)H1(s)G_{in}(s) = \frac{G_2(s)}{1 + G_2(s)H_1(s)}

와 같은 하나의 폐루프 블록으로 묶인다고 볼 수 있다. 그 뒤 외부 루프 측에서 $G_1(s)$, $G_{in}(s)$, 그리고 $H_2(s)$로 이어지는 경로로 시스템을 단순화하여,

Gout(s)=G1(s)G2(s)1+G2(s)H1(s)1+G1(s)G2(s)1+G2(s)H1(s)H2(s)G_{out}(s) = \frac{G_1(s) \cdot \frac{G_2(s)}{1 + G_2(s)H_1(s)}}{1 + G_1(s) \cdot \frac{G_2(s)}{1 + G_2(s)H_1(s)} H_2(s)}

같은 식으로 최종 폐루프 전달함수를 얻을 수 있다.

피드백 루프와 상호 간섭(Interaction)

다중 루프 시스템에서 주의해야 할 점 중 하나는, 내부 루프와 외부 루프가 서로 간섭(interaction)을 일으킬 수 있다는 것이다. 내부 루프 설계가 완벽하더라도, 외부 루프에서 추가로 제어 신호가 들어오면 내부 루프의 동작이 의도치 않게 변경될 수 있다. 블록선도 해석 시 이런 상호 간섭 관계를 간과하면, 최종 폐루프가 예상치 못한 동특성을 갖게 될 가능성이 높다.

실제로는 내부 루프 안정도와 응답 특성을 일정 수준 확보한 뒤, 외부 루프를 설계하여 최적의 성능을 달성하려는 접근을 많이 쓴다. 내부 루프를 빠른 대역폭으로 맞추고, 외부 루프를 그보다 좁은 대역폭에서 동작시키는 식으로, 주파수 영역 설계를 활용하기도 한다. 이런 주파수 영역 해석은 블록선도에 직접 표현되지는 않지만, 블록 간의 연산 관계와 피드백 경로를 통해 상당 부분 정성적인 이해가 가능하다.

피드백 제어기 설계에서의 블록선도 활용

블록선도는 실제 제어기(controller) 설계 과정에도 활용된다. 예를 들어 $G(s)$가 객체(plant)의 전달함수라 할 때, 우리가 $K(s)$라는 제어기를 추가로 두어 제어 성능을 개선하고자 한다면, 단순히 $G(s)$ 대신 $K(s)G(s)$라는 연결 형태로 블록선도 상에 표현할 수 있다.

그 후 $K(s)$를 어떤 형태로 고를 것인지, 예컨대 PID 제어기(비례-적분-미분), 또는 상태궤환(state feedback)을 활용한 제어기 등을 설계하는 과정에서, 개루프 전달함수 $K(s)G(s)H(s)$가 원하는 크기와 위상을 갖도록 조정한다. 결과적으로 폐루프 전달함수 $G_{cl}(s)$가 안정도를 만족하고 성능 목표를 충족하게 만드는 것이 주된 목표가 된다.

이렇듯 피드백 루프의 구조와 블록선도의 변환은 제어 시스템의 설계에서 필수적인 역할을 한다. 복잡해 보이는 여러 루프도 적절히 합성하면 간단한 형태로 귀결되고, 이를 통해 직관적, 수학적으로 명확한 해석이 가능해진다.

피드백 루프의 안정도 해석

피드백 루프 해석에서 가장 중요한 문제 중 하나는 시스템의 안정도다. 블록선도를 통해 시스템이 닫힌 궤환을 이루고 있다는 사실은, 본질적으로 폐루프 전달함수의 극점(pole)이 어디에 위치하는가로 안정성을 판별할 수 있음을 의미한다. 전형적인 1차 또는 2차 시스템의 경우 직접 폐루프 전달함수 $G_{cl}(s)$를 구한 다음, 그 특성 방정식이 실축의 왼쪽(이산 영역에서는 단위원 내부)에 뿌리를 갖는지 등을 확인한다.

이보다 더 복잡한 고차 시스템에서는 블록선도만으로 직관적인 안정 판별이 어렵기 때문에, 주파수 영역 해석 도구(보드선도, 나이퀴스트 선도 등)나 근궤적(root locus) 기법을 활용한다. 그러나 블록선도 역시 나이퀴스트 선도나 근궤적을 구축하기 전에 어떤 개루프 전달함수 $G(s)H(s)$를 분석해야 하는지를 직관적으로 보여주는 장점이 있다.

예를 들어 개루프 전달함수 $G(s)H(s)$가

GOL(s)=G(s)H(s)G_{OL}(s) = G(s)H(s)

라 할 때, 이 개루프를 직접 주변 주파수 대역에서 보드선도(Bode plot)로 그려보거나, 복소 평면에서 나이퀴스트 궤적을 그려보며 안정 여유를 평가한다. 만약 폐루프 안정도를 개선하고 싶다면, $G_{OL}(s)$의 크기와 위상을 조절하기 위한 보상기(desired compensator)를 추가 설계하게 된다. 그리고 이 과정을 블록선도 상에서 $G(s)$ 앞뒤에 배치하거나, 피드백 경로 $H(s)$를 적절히 변형하는 방식으로 표현한다.

루프 이득과 위상 여유(Gain and Phase Margin)

주파수 영역 설계 시 가장 핵심이 되는 두 개념은 이득 여유(gain margin)와 위상 여유(phase margin)다. 이는 개루프 전달함수 $G_{OL}(s)$의 위상 궤적 또는 크기 궤적을 기준으로 폐루프가 얼마나 안정 여유를 갖고 있는지를 나타낸다.

블록선도에서 $G_{OL}(s)$를 명시적으로 파악하면, 나이퀴스트 선도 혹은 보드선도를 이용해 다음과 같은 판단이 가능하다. 임계 주파수(phase crossover frequency), 즉 $G_{OL}(j\omega)$의 위상이 -180°(또는 -\pi 라디안)가 되는 주파수를 찾아 해당 지점에서 크기가 1(0 dB)이 되는지 확인하면, 여유가 어느 정도인지를 알 수 있다. 이 과정을 통해 주어진 블록선도를 변형 없이 해석하면, 어떤 지점에서 폐루프가 임계적으로 안정한 상태(marginally stable)가 되는지 확인 가능하다. 설계자는 블록선도 상에 별도의 보상 블록 $C(s)$를 추가하거나 피드백 경로를 조정함으로써 목표하는 안정 여유를 확보하도록 유도한다.

근궤적 기법과 블록선도

근궤적(root locus) 기법은 개루프 극점을 고정하고, 피드백 이득을 변화시킴에 따라 폐루프 극점이 복소평면 상에서 어떻게 움직이는지를 살펴보는 강력한 방법이다. 보통은 $K \cdot G_{OL}(s)$ 같은 형태로 개루프 전달함수에서 $K$라는 스칼라 이득을 변수로 두고, $K$가 0에서부터 무한대로 변할 때 폐루프 극점이 그리는 궤적을 그린다.

블록선도 관점에서 이 이득 $K$는 $G(s)$나 $H(s)$ 내부에 삽입할 수 있으며, 간혹 제어기 부분에 $K$를 두기도 하고, 피드백 경로 계수로 두기도 한다. 어디에 두든지 개루프 전달함수에 곱해지는 스칼라로 이해할 수만 있다면, 근궤적 기법을 그대로 적용할 수 있다. 이를 통해 적절한 $K$ 값을 찾거나, 보상기를 포함한 형태인 $C(s)G(s)$에서 $C(s)$의 파라미터를 조절하여 원하는 근궤적을 얻는 전략을 쓴다.

블록선도는 근궤적 기법을 적용할 때, 어떤 경로가 개루프로 설정되어 있는지 명시해 준다. 예컨대 내부 루프가 따로 존재하면, 그 내부 루프를 단순화한 뒤 외부 루프에 대해서 근궤적을 작성할 수도 있고, 반대로 내부 루프의 개루프에 대해 먼저 근궤적을 구할 수도 있다. 이처럼 다층 구조의 시스템에서는 블록선도 해석과 근궤적 기법이 밀접하게 연동되어, 단계적인 분석이 가능해진다.

내부 모델 제어와 블록선도 해석

내부 모델 제어(IMC, Internal Model Control)는 피드백 제어 구조를 조금 변형한 형태로, 블록선도에서 모델 $G_m(s)$과 실제 대상 $G_p(s)$의 차이를 비교하여 보정하는 경로를 추가하는 방식으로 이해할 수 있다. 내부 모델 제어에서 핵심 아이디어는, 제어기가 대상의 동특성을 어느 정도 파악하고 있다는 전제 아래, 모델과 실제 대상 간의 오차를 통해 외란이나 파라미터 불확실성에 대응한다는 것이다.

블록선도로 표현하면, 내부 모델 $G_m(s)$가 병렬 경로로 존재하고, 그 차이값을 새로운 피드백 경로로 돌려 제어 입력을 생성한다. 이 구조 역시 결국은 주 루프와 보조 루프로 나누어 해석 가능한데, 블록선도 합성 기법을 통해 적절히 단순화하면 고전적인 폐루프 시스템과 비슷한 형태로 귀결된다. IMC 방식이 유용한 이유는, 모델링 오차가 클수록 그 오차가 피드백을 통해 교정되어 시스템이 내민성(robustness)을 갖도록 유도하기 때문이다.

MIMO(다변수) 시스템에서의 피드백

여러 입력과 출력을 동시에 제어해야 하는 MIMO(다변수) 시스템에서도 피드백 루프는 여전히 중요하다. 다만 블록선도 해석이 스칼라 $s$-영역 전달함수보다는 행렬 형태의 전달함수를 다루게 되므로 한층 복잡해진다. 예를 들어 2×2 전송 경로가 있으면, 블록선도 내에서 $G(s)$ 대신 $\mathbf{G}(s)$라는 행렬 전송 연산자를 사용해야 한다.

이때도 기본적인 원리는 동일하다. 다만 합산점에서의 신호가 스칼라가 아닌 벡터가 되며, 피드백 경로 역시 행렬 곱으로 표현된다. 폐루프 전달함수는

Gcl(s)=[I+G(s)H(s)]1G(s)\mathbf{G}_{cl}(s) = \bigl[\mathbf{I} + \mathbf{G}(s)\mathbf{H}(s)\bigr]^{-1}\mathbf{G}(s)

의 형태를 갖게 된다. 여기서 $\mathbf{G}(s)$와 $\mathbf{H}(s)$는 각각 적절한 차원의 행렬 전송 연산자다. 이 행렬식 해석은 단일 입력-단일 출력(SISO)와는 달리 행렬의 특성방정식(determinant 등)을 통해 안정성을 분석해야 하므로, 해석이 조금 더 복잡해진다. 하지만 블록선도를 적절히 배치하면, 어떤 항목이 어떤 루프를 통해 결합되고 상호 간섭하는지 한눈에 파악하기가 용이하다.

디지털 제어에서의 피드백 루프

현대 제어 시스템에서는 아날로그 제어기 대신 디지털 제어기를 사용하거나, 적어도 제어 신호를 디지털 프로세서나 마이크로컨트롤러를 통해 처리하는 경우가 지배적이다. 이때는 샘플링(sampling)과 유지(hold) 장치가 필요하며, 시간 영역 해석에서 연속 신호와 이산 신호가 섞여 나타난다. 블록선도로 표현할 때, 아날로그-디지털 변환기(ADC)와 디지털-아날로그 변환기(DAC), 그리고 영(ZOH, Zero-Order Hold)이나 1차 유지(FOH, First-Order Hold) 블록 등을 명시적으로 배치하여 해석을 진행한다.

디지털 제어 시스템의 일반적 블록선도는, 연속 시간 영역에서의 입력과 출력 사이에 디지털 제어기(차분 방정수 형태, $z$-영역 전달함수 등)가 들어가고, 그 앞뒤로 샘플링/유지가 연결된 형태로 나타난다. 예를 들어 다음과 같은 형태를 생각해 볼 수 있다.

spinner

이 블록선도를 수학적으로 다루려면, $s$-영역과 $z$-영역을 넘나들어야 한다. 보통 제어 이론에서는 $z$-영역에서 설계를 진행한 후, 이를 연속 영역으로 환산하여 안정도나 응답을 검토한다. 또는 반대로 연속 영역에서 고전적인 제어 이론을 적용한 뒤, 디지털 구현 시 등가 변환(제로-오더 홀드 등)을 취해 $z$-영역으로 옮긴다. 그 과정에서 피드백 루프 해석의 기본 원리는 동일하나, 합산점이나 피드백 경로에서 샘플링/유지가 신호 흐름을 바꿀 수 있다는 점을 유의해야 한다.

상태방정식과 블록선도

이상적으로는 모든 시스템을 전달함수로만 해석하지 않고, 상태방정식(state-space representation)으로 나타내는 방식이 또 다른 주류를 이룬다. 예컨대 선형 시불변(LTI) 시스템은 다음과 같은 형태로 표현된다.

{x˙(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t),\begin{cases} \dot{\mathbf{x}}(t) = \mathbf{A}\mathbf{x}(t) + \mathbf{B}\mathbf{u}(t), \\ \mathbf{y}(t) = \mathbf{C}\mathbf{x}(t) + \mathbf{D}\mathbf{u}(t), \end{cases}

여기서 $\mathbf{x}(t)$는 상태벡터, $\mathbf{u}(t)$는 입력벡터, $\mathbf{y}(t)$는 출력벡터다. 행렬 $\mathbf{A}, \mathbf{B}, \mathbf{C}, \mathbf{D}$는 각각 시스템 행렬, 입력 행렬, 출력 행렬, 전달 행렬이다. 블록선도 관점에서는 $\mathbf{x}(t)$가 내부 신호로 취급되어, 시스템이 어떤 내부 상태의 축적을 통해 동작하고 있는지 드러난다.

특히 상태공간에서 피드백 제어를 설계한다면, 상태 피드백(state feedback), 관측기(observer) 설계, 관측기 기반 피드백 등 다양한 기법을 활용하게 된다. 이때 블록선도는 크게 다음 두 경로를 표현한다.

  • 내부 상태를 추정하거나 관측하기 위한 경로 (옵저버 루프)

  • 추정된 상태를 다시 입력으로 환류하기 위한 제어기 루프 (상태 피드백)

이를 간단히 시각화하면, 객체(plant)에 대한 관측기와 피드백 제어기가 병렬 혹은 직렬 형태로 결합된 블록 구조를 그릴 수 있다. 가령 다음과 같은 다이어그램을 예로 들 수 있다.

spinner

여기서 실제 출력 $y$와 입력 $u$만으로는 내부 상태를 직접 알 수 없으므로, 옵저버가 추정된 상태 $\hat{x}$를 생성한다. 그 다음 이 추정된 상태를 컨트롤러(K)에 환류한다. 시스템 전체는 여전히 피드백 루프를 형성하지만, 관측기와 실제 대상 사이에 추가적인 보조 루프가 존재한다. 블록선도 변환 방식을 이용하면, 옵저버와 대상(plant)을 하나의 폐루프로 묶어 단순화할 수도 있다.

부분 상태 피드백(Partial State Feedback)

실제로 모든 상태 변수를 측정하기 어려운 경우가 많으므로, 일부 상태만을 직접 피드백하는 방식을 쓰기도 한다. 이 때는 $\mathbf{x}$ 중에서 특정 요소를 골라내어 피드백 이득을 곱해주는 식으로 구현한다. 블록선도에서 이를 나타낼 때는, $\mathbf{x}$가 여러 채널을 갖는 벡터 신호로 표시되고, 그 중 일부 채널만 추출된 뒤 이득 블록을 거쳐 합산점으로 돌아가도록 그려진다.

이렇게 부분 상태 피드백을 하더라도, 잔여 상태 변수가 동작에 어떤 영향을 주는지는 계속 고려해야 한다. 따라서 종종 부분 상태 피드백과 옵저버가 결합되어, 측정되지 않는 상태는 옵저버로 추정하고, 측정 가능한 상태는 직접 피드백한다. 블록선도 관점에서 이는 마치 두 종류의 피드백(직접 피드백과 추정 피드백)이 공존하는 다중 루프 구조처럼 보인다.

강인 제어(Robust Control)와 블록선도

실제 시스템은 파라미터 변화나 외란이 발생하기 마련이므로, 이러한 불확실성(uncertainty)에 대해 일정 수준의 안정성과 성능을 보장하고자 하는 강인 제어 기법이 주목받는다. 강인 제어 이론에서는 불확실성 모델을 명시적으로 정의하고, $H_\infty$ 제어, $\mu$-합성($\mu$-synthesis) 등의 고급 방법론을 적용한다.

블록선도 측면에서, 불확실성은 하나의 블록(예: $\Delta(s)$)으로 두고, 이에 대해 재료(plant)나 센서, 또는 제어기에 교차 결합(interconnection)이 있는 구조를 표현한다. 이를 일반적인 분할(structured or unstructured uncertainty) 형태로 나타내면, 다음과 같은 폐루프 구성을 그릴 수 있다.

spinner

여기서 $\Delta$는 불확실성 블록이고, $P$는 명확히 알려진 공정 혹은 부분 모델, $K$는 설계할 제어기, $z$와 $w$는 성능이나 외란을 나타낸다. 이 구조를 수학적으로 풀어내면, 원하는 강인성(robustness)을 만족하기 위해서는 $K$가 어떤 조건을 만족해야 하는지(예: $H_\infty$ 노름이 특정 한계를 넘지 않도록)를 계산하게 된다.

이렇듯 블록선도는 강인 제어에서도, 어느 경로를 통해 불확실성과 외란이 주입되며, 제어기가 이를 어떻게 감쇠시키는지를 한눈에 파악하도록 돕는다.

노이즈 및 센서 한계

피드백 루프에서 종종 간과하기 쉬운 부분 중 하나가 센서 노이즈다. 센서 노이즈 역시 피드백 경로에서 중요한 영향을 미친다. 노이즈가 큰 경우, 피드백 루프에 의해 증폭되는 문제(노이즈 앰플리케이션)가 발생할 수 있으므로, 이러한 현상을 최소화하려면 필터링이나 노이즈 대비 설계가 필요하다.

블록선도에서 센서 블록 $H(s)$는 이상적으로는 $H(s)=1$ 또는 어떤 간단한 스케일링(scaling)이라고 보기도 하지만, 실제로는 필터, 잡음 특성 등을 고려해야 한다. 노이퀴스트 해석이나 보드 해석을 할 때도, 센서 노이즈가 시스템 응답에 미치는 영향을 주파수 영역에서 평가할 수 있다. 예를 들어 고주파 영역에서 센서 노이즈가 유입되어, 시스템이 불필요하게 빠른 제어 명령을 낼 위험이 있는지 등을 살펴봐야 한다.

비선형 요소와 피드백 루프

여기까지는 주로 선형 시스템을 가정했으나, 현실에서는 서보 모터의 비선형, 마찰, 포화(saturation), 데드존(dead zone) 등의 비선형 요소가 존재한다. 이 경우 블록선도 상에서 비선형 블록($f(\cdot)$ 등)으로 명시해 둔 뒤, 비선형 동작을 근사하거나 해석해야 한다.

비선형 블록이 피드백 루프 내부에 있으면, 초기에 안정적이던 시스템이 특정 입력 크기 이상에서 불안정해지거나, 한계 사이클(limit cycle)이 발생하는 등의 현상이 생길 수 있다. 블록선도는 이러한 비선형이 어느 경로에서 발생하는지를 일목요연하게 보여 준다. 분석은 주파수 해석보다는 위상 평면 분석이나 describing function 기법 등을 사용할 수 있다.

시뮬레이션 기반 접근

복잡한 피드백 루프를 설계할 때, 최종적으로는 시뮬레이션(예: MATLAB/Simulink 등)을 통해 검증하는 것이 일반적이다. 블록선도는 시뮬레이션 툴에서도 핵심 구조로 이용되며, 사용자는 각 블록에 대응하는 전달함수 또는 상태공간 모델을 할당하고, 합산점과 분기점을 연결해 전체 시스템을 구성한다.

시뮬레이션 결과를 통해 폐루프 응답(단위 계단 응답, 임펄스 응답, 외란 응답 등)이 기대 성능을 만족하는지 점검할 수 있다. 특히 주파수 응답이든 근궤적이든, 이론적 해석과 실제 시뮬레이션을 맞물려 보는 과정은 제어기 설계에서 매우 중요하다. 만약 시뮬레이션 결과가 불만족스럽다면, 블록선도 상의 특정 지점에 필터를 추가하거나, 제어기 파라미터를 조정하는 과정을 반복하게 된다.

이처럼 피드백 루프는 단순히 이론적 개념에 그치지 않고, 실제 구현과 시뮬레이션에서 매우 구체적인 형태로 나타난다. 제어 시스템 엔지니어는 블록선도를 통해 시스템을 직관적으로 파악하고, 보다 체계적인 절차에 따라 제어기를 설계 및 검증할 수 있다.

Last updated