단순 회로 예제를 통한 전달함수 도출

회로 개요

단일 RC 회로로부터 전달함수를 유도하는 과정을 살펴보면, 가장 기본적인 능동소자 없이 저항과 커패시터만으로 구성된 간단한 구조에서 어떻게 주파수 응답 특성이 나타나는지 명확하게 이해할 수 있다. 입력 전압을 $v_\mathrm{in}(t)$라 하고 커패시터 양단의 전압을 출력 $v_\mathrm{out}(t)$으로 정의한다. 저항 $R$과 커패시터 $C$가 직렬 연결된 형태로, 출력은 커패시터 양단에 나타나도록 설정한다. 이때 시간영역에서의 미분방정식을 세운 후 라플라스 변환을 적용하면 전달함수를 구할 수 있다. 실제로 어떠한 아날로그 회로가 주어지더라도, 모든 소자를 회로방정식으로 표현하고 그 식을 라플라스 변환하여 함수를 정리하면 $G(s)$ 형태가 얻어진다.

여기서는 가장 기본적인 RC 저역통과 회로를 예로 들어 설명하고, 이후 좀 더 복잡한 RLC 회로나 다른 형태의 회로에서도 동일한 방법으로 접근할 수 있음을 강조한다.

회로 구성과 미분방정식 세우기

회로를 다음과 같은 형태로 간략히 그릴 수 있다.

위와 같은 회로에서 저항 $R$과 커패시터 $C$가 직렬 연결되어 있으며, 커패시터 양단에 나타나는 전압을 $v_\mathrm{out}(t)$이라고 정의한다. 저항에 흐르는 전류 $i(t)$는 곧 커패시터에 흐르는 전류와 동일하다.

커패시터에 대한 전류-전압 관계는 시간영역에서

i(t)=Cdvout(t)dti(t) = C \frac{dv_\mathrm{out}(t)}{dt}

로 표현된다. 또한 저항에 걸리는 전압강하 $v_R(t)$는 옴의 법칙으로부터

vR(t)=Ri(t)v_R(t) = R\,i(t)

로 나타난다. 전체 입력전압 $v_\mathrm{in}(t)$는 저항과 커패시터에 걸리는 전압의 합이므로

vin(t)=vR(t)+vout(t)v_\mathrm{in}(t) = v_R(t) + v_\mathrm{out}(t)

가 성립한다.

위 식들을 종합하면,

vin(t)=Ri(t)+vout(t)v_\mathrm{in}(t) = R\,i(t) + v_\mathrm{out}(t)

이고 $i(t) = C,\frac{dv_\mathrm{out}(t)}{dt}$이므로

vin(t)=RCdvout(t)dt+vout(t)v_\mathrm{in}(t) = R\,C \frac{dv_\mathrm{out}(t)}{dt} + v_\mathrm{out}(t)

라는 1차 미분방정식을 얻을 수 있다. 이 식이 $v_\mathrm{out}(t)$를 출력으로 하는 시간영역에서의 회로 방정식이다.

라플라스 변환과 전달함수 유도

시스템의 전달함수는 라플라스 변환 영역에서 입력 $V_\mathrm{in}(s)$와 출력 $V_\mathrm{out}(s)$ 간의 비로 정의된다. 시간영역의 미분방정식

vin(t)=RCdvout(t)dt+vout(t)v_\mathrm{in}(t) = R\,C \frac{dv_\mathrm{out}(t)}{dt} + v_\mathrm{out}(t)

에 대하여 양변에 라플라스 변환을 취하면, 영점 초기조건이 0이라는 가정 하에

Vin(s)=RCsVout(s)+Vout(s)V_\mathrm{in}(s) = R\,C \,s\,V_\mathrm{out}(s) + V_\mathrm{out}(s)

가 된다. 이를 정리하면

Vin(s)=(RCs+1)Vout(s)V_\mathrm{in}(s) = \bigl(R\,C\,s + 1\bigr)\,V_\mathrm{out}(s)

이고, 전달함수 $G(s) = \dfrac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)}$를 구하면

G(s)=1RCs+1G(s) = \frac{1}{R\,C\,s + 1}

가 얻어진다. 이 결과로부터 알 수 있듯, 단일 RC 회로는 저역통과 특성을 가진 1차 필터로서, 주파수 영역에서 커트오프 주파수 $\omega_c = \frac{1}{RC}$를 기준으로 동작한다.

전달함수로서 $G(s)$를 재해석해보면, $s = j\omega$로 치환했을 때

G(jω)=11+jωRCG(j\omega) = \frac{1}{1 + j\omega\,R\,C}

의 진폭과 위상을 구하면 이 회로가 어떤 주파수 응답을 나타내는지 확인할 수 있다. 저주파 영역에서는 분모가 1에 근접하여 출력이 거의 입력과 같고, 고주파 영역으로 갈수록 분모가 커져 출력이 점차 감소하는 저역통과 거동을 보인다. 제어이론 관점에서 1차 지연요소(first-order lag)로 간주할 수 있으며, 실험적으로는 다양한 센서 회로나 간단한 필터 회로에서 손쉽게 만나볼 수 있는 특성이다.

블록선도로 바라본 해석

전달함수를 구하면 이를 블록선도로 표현할 수도 있다. 간단히 말해 입력 $V_\mathrm{in}(s)$가 하나의 블록(시스템)에 들어가고, 출력 $V_\mathrm{out}(s)$가 나온다고 볼 때, 그 블록이 가지는 전이함수(transfer function)는 위와 같이

1RCs+1\frac{1}{RC\,s + 1}

가 되는 셈이다. 흔히 이는 주파수응답 해석에서 개방 루프 또는 닫힌 루프 해석 시 간단한 1차 다이나믹스의 한 예시로 활용된다.

이렇게 회로가 전달함수 형태로 나타나면, 보다 복잡한 시스템에 이 RC 블록이 포함되었을 때를 생각해볼 수 있고, 단순화된 형태에서 동작 주파수 범위와 위상 응답을 예측할 수 있게 된다. 시뮬레이션으로 계산하거나 실험으로 측정한 결과와 비교하여 모델이 적절한지 판단하는 기초 자료가 되기도 한다.

시뮬레이션 예시 (C++)

아래는 가장 기본적인 RC 저역통과 필터를 시뮬레이션하는 간단한 C++ 코드 예시다. 오일러 방법 등 간단한 수치 적분법으로 시간을 증가시키면서 커패시터 전압 $v_\mathrm{out}$을 계산한다. 매우 기본적이며, 실제 제어 알고리즘과 결합할 때 디지털 시뮬레이션으로 확장할 수 있는 방법을 보여주기 위한 코드로 이해하면 좋다.

코드에서는 계단 입력으로 1[V]를 인가했을 때 커패시터 전압이 점진적으로 입력값에 수렴하는 과정을 수치적으로 계산한다. 이 과정은 위에서 구한 미분방정식

vin(t)vout(t)=RCdvout(t)dtv_\mathrm{in}(t) - v_\mathrm{out}(t) = R\,C \frac{dv_\mathrm{out}(t)}{dt}

을 단순화한 형태의 오일러 적분으로 구현한 것이다. 미분항 $\frac{dv_\mathrm{out}(t)}{dt}$을 전류 $i/C$로 대체하고, 일정 시간 간격 $dt$마다 $v_\mathrm{out}(t)$에 누적하여 합산한다.

결과적으로 시간 상에서 출력전압이 지수함수 형태로 상승하여 최종적으로는 $v_\mathrm{in}$에 근접하게 됨을 확인할 수 있다. 이는 아날로그 RC 회로에서도 실제로 측정 가능한 거동이며, 전달함수를 통해 계산된 주파수응답이나 과도응답 해석 결과와 부합한다.

RLC 직렬회로 개요

저항 $R$, 인덕터 $L$, 커패시터 $C$가 직렬로 연결되어 있는 간단한 2차 회로는 제어관점에서 매우 중요한 예시로 간주된다. 전형적인 2차 동특성을 보이며, 시스템의 공진 주파수나 감쇠 계수 등을 분석할 때 유용하다. 입력 전압을 $v_\mathrm{in}(t)$라 하고, 출력은 커패시터 양단의 전압 $v_\mathrm{out}(t)$으로 정의한다. 직렬 회로를 해석함으로써 2차 전달함수를 유도할 수 있고, 이를 통해 공진 현상이나 감쇠 거동 등을 살펴볼 수 있다.

회로 구성은 다음과 같이 나타낼 수 있다.

위 그림에서 $v_\mathrm{in}(t)$는 저항, 인덕터, 커패시터가 직렬로 연결된 지점을 거쳐 흐르는 공통 전류 $i(t)$를 형성한다. 출력 전압 $v_\mathrm{out}(t)$는 커패시터 양단에 나타난 전압이다.

회로 구성과 미분방정식 세우기

각 소자별로 전압-전류 관계를 시간영역에서 정리하면 다음과 같다.

저항에서의 전압강하:

vR(t)=Ri(t)v_R(t) = R\,i(t)

인덕터에서의 전압강하:

vL(t)=Ldi(t)dtv_L(t) = L \frac{di(t)}{dt}

커패시터에서의 전압:

vout(t)=1Ci(t)dtv_\mathrm{out}(t) = \frac{1}{C} \int i(t)\,dt

혹은 미분 형태로 표현하면

i(t)=Cdvout(t)dti(t) = C \frac{dv_\mathrm{out}(t)}{dt}

회로 전체에서 입력 전압 $v_\mathrm{in}(t)$는 세 소자에 걸린 전압들의 합이므로

vin(t)=vR(t)+vL(t)+vout(t).v_\mathrm{in}(t) = v_R(t) + v_L(t) + v_\mathrm{out}(t).

이를 $R$, $L$, $C$에 대한 식으로 대체하면

vin(t)=Ri(t)+Ldi(t)dt+vout(t).v_\mathrm{in}(t) = R\,i(t) + L \frac{di(t)}{dt} + v_\mathrm{out}(t).

또한 $i(t) = C \frac{dv_\mathrm{out}(t)}{dt}$이므로

di(t)dt=Cd2vout(t)dt2.\frac{di(t)}{dt} = C \frac{d^2 v_\mathrm{out}(t)}{dt^2}.

이제 이를 모두 대입하여 $v_\mathrm{out}(t)$에 대한 미분방정식을 얻을 수 있다.

vin(t)=R(Cdvout(t)dt)+L(Cd2vout(t)dt2)+vout(t).v_\mathrm{in}(t) = R\Bigl(C \frac{dv_\mathrm{out}(t)}{dt}\Bigr) + L \Bigl(C \frac{d^2 v_\mathrm{out}(t)}{dt^2}\Bigr) + v_\mathrm{out}(t).

이를 정리하면

vin(t)=RCdvout(t)dt+LCd2vout(t)dt2+vout(t).v_\mathrm{in}(t) = R\,C \frac{dv_\mathrm{out}(t)}{dt} + L\,C \frac{d^2 v_\mathrm{out}(t)}{dt^2} + v_\mathrm{out}(t).

편의상

d2vout(t)dt2=v¨out(t),dvout(t)dt=v˙out(t)\frac{d^2 v_\mathrm{out}(t)}{dt^2} = \ddot{v}_\mathrm{out}(t),\quad \frac{dv_\mathrm{out}(t)}{dt} = \dot{v}_\mathrm{out}(t)

라고 쓰면, 최종적으로

LCv¨out(t)+RCv˙out(t)+vout(t)=vin(t)L\,C\,\ddot{v}_\mathrm{out}(t) + R\,C\,\dot{v}_\mathrm{out}(t) + v_\mathrm{out}(t) = v_\mathrm{in}(t)

라는 2차 선형 미분방정식을 얻는다.

라플라스 변환과 전달함수 유도

위 식을 라플라스 변환 영역으로 옮기면, 영점 초기조건이 0이라고 가정할 때

LCs2Vout(s)+RCsVout(s)+Vout(s)=Vin(s).L\,C \,s^2\,V_\mathrm{out}(s) + R\,C \,s\,V_\mathrm{out}(s) + V_\mathrm{out}(s) = V_\mathrm{in}(s).

이를 인수분해하듯 정리하면

(LCs2+RCs+1)Vout(s)=Vin(s).\bigl(L\,C\,s^2 + R\,C\,s + 1\bigr) \,V_\mathrm{out}(s) = V_\mathrm{in}(s).

따라서 전달함수 $G(s) = \dfrac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)}$는

G(s)=1LCs2+RCs+1.G(s) = \frac{1}{L\,C\,s^2 + R\,C\,s + 1}.

이는 전형적인 2차 계 형태

ω02s2+2ζω0s+ω02\frac{\omega_0^2}{s^2 + 2\zeta \omega_0\,s + \omega_0^2}

로 대응시킬 수 있다. 예컨대

ω0=1LC,2ζω0=RCLC=RL.\omega_0 = \frac{1}{\sqrt{LC}},\quad 2\zeta \omega_0 = \frac{R\,C}{L\,C} = \frac{R}{L}.

따라서 $G(s)$를 다시 쓰면

G(s)=1LC1s2+RLs+1LCG(s) = \frac{1}{L\,C}\cdot \frac{1}{s^2 + \frac{R}{L} s + \frac{1}{L\,C}}

와 같이 나타낼 수도 있다. 이때 감쇠율 $\zeta$, 공진 주파수 $\omega_0$ 등을 통해 시스템의 응답 특성을 직관적으로 파악할 수 있다.

블록선도로 바라본 해석

위에서 구한 전달함수를 간단한 블록선도로 표현하면 다음과 같은 형태다.

이 블록은 2차 저역통과 형태를 가진 동특성을 나타내며, 고유 진동과 댐핑 요소가 함께 존재한다. 회로 관점에서 인덕터와 커패시터가 결합하여 공진주파수를 결정하고, 저항이 그 공진을 감쇠시키는 역할을 한다.

시뮬레이션 예시 (C++)

아래는 RLC 직렬회로에서 계단 입력(또는 임의의 시간함수 입력)을 인가했을 때, 커패시터 전압 $v_\mathrm{out}(t)$가 어떻게 변화하는지 간단히 시뮬레이션해볼 수 있는 예시 코드다. 실제로는 좀 더 안정적이고 정교한 적분 알고리즘(룬게-쿠타 등)이 추천되지만, 여기서는 간단한 오일러 방법으로 시연한다.

위 코드는 매우 기본적인 형태로, 전류 $i$와 커패시터 전압 $v_\mathrm{out}$에 대한 상미분방정식을 각각 시간 간격 $dt$마다 적분하여 해를 구한다. RLC 직렬회로 특성상 어떤 초기 조건에서는 댐핑된 진동이 발생하거나, 저항 값에 따라 과여기(overshoot)나 부족여기(undershoot)가 관찰될 수 있다. 이 모든 현상은 위의 전달함수

G(s)=1LCs2+RCs+1G(s) = \frac{1}{L\,C\,s^2 + R\,C\,s + 1}

로부터 고전적인 2차 시스템 해석 기법으로 설명할 수 있다.

단순 회로 예제를 통한 전달함수 도출

Op Amp 인버팅 증폭기 개요

이상적 연산증폭기(operational amplifier)를 사용한 인버팅 증폭기는 제어공학에서 자주 다루는 기본 블록 중 하나다. 연산증폭기(Op Amp)가 가진 고이득(gain)에 기반하여, 입력 신호를 반전시키고 크기를 조정하는 동작을 수행한다. 주파수 응답 면에서도, 이상적이라 가정할 때는 매우 간단한 1차 방정식(또는 영차 방정식)으로 해석되지만, 실제로는 Op Amp 내부의 극점, 대역폭, 지연요소 등도 영향을 미친다. 여기서는 가장 기초적인 이상적 Op Amp 인버팅 증폭기를 대상으로, 저항 $R_\mathrm{in}$과 $R_f$만을 사용해 전달함수를 도출해본다.

회로는 다음과 같이 구성된다.

이상적 Op Amp로 가정하면 입력단에 전류가 흐르지 않고, 반전(-)단자의 전압은 비반전(+)단자 전압과 같아진다(가상단락, virtual short). 비반전(+) 단자가 그라운드(0[V])에 연결되어 있으므로 반전(-) 단자도 0[V]라 볼 수 있다.

회로 구성과 미분방정식(또는 회로방정식) 세우기

가상단락 가정하에서, 반전(-) 단자의 전압은 0[V]가 된다. 이제 $v_\mathrm{in}(t)$에서 $R_\mathrm{in}$을 거쳐 유입되는 전류는

iin(t)=vin(t)0Rin=vin(t)Rini_\mathrm{in}(t) = \frac{v_\mathrm{in}(t) - 0}{R_\mathrm{in}} = \frac{v_\mathrm{in}(t)}{R_\mathrm{in}}

이다. Op Amp의 입력단에는 전류가 들어갈 수 없으므로, 이 전류는 곧바로 피드백 저항 $R_f$ 방향으로 흘러가게 되며, 그 양단 전압은 $-,v_\mathrm{out}(t)$가 된다(반전 단자가 0[V]이므로, 한 쪽은 0[V], 다른 쪽은 $v_\mathrm{out}(t)$). 따라서 $R_f$에 흐르는 전류는

if(t)=0vout(t)Rf=vout(t)Rf.i_f(t) = \frac{0 - v_\mathrm{out}(t)}{R_f} = -\,\frac{v_\mathrm{out}(t)}{R_f}.

회로에서 전류 보존법칙(KCL)에 의해,

iin(t)=if(t),i_\mathrm{in}(t) = i_f(t),

가 성립하므로

vin(t)Rin=vout(t)Rf.\frac{v_\mathrm{in}(t)}{R_\mathrm{in}} = -\,\frac{v_\mathrm{out}(t)}{R_f}.

이를 정리하면

vout(t)=RfRin  vin(t).v_\mathrm{out}(t) = -\,\frac{R_f}{R_\mathrm{in}}\;v_\mathrm{in}(t).

이 식이 시간영역에서의 직접적인 입력-출력 관계다. 인덕터나 커패시터 등의 energy storage 요소가 없으므로, 추가적인 미분항이 등장하지 않는다.

라플라스 변환과 전달함수 유도

Op Amp 인버팅 증폭기의 전달함수는 라플라스 변환 영역에서도 매우 간단하다. 시간영역에서

vout(t)=RfRinvin(t)v_\mathrm{out}(t) = -\,\frac{R_f}{R_\mathrm{in}}\,v_\mathrm{in}(t)

가 성립하므로, 라플라스 변환을 취하면

Vout(s)=RfRinVin(s).V_\mathrm{out}(s) = -\,\frac{R_f}{R_\mathrm{in}}\,V_\mathrm{in}(s).

따라서 이상적 인버팅 증폭기의 전달함수는

G(s)=Vout(s)Vin(s)=RfRin.G(s) = \frac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)} = -\,\frac{R_f}{R_\mathrm{in}}.

즉, $s$에 대한 의존성이 전혀 없는 영차(0차) 시스템에 해당한다. 이는 Op Amp의 내부 동특성은 완전히 무시한다는 가정 하에서만 성립하므로, 실제 적용 시에는 Op Amp의 개방루프이득, 대역폭 제한, 위상 지연 등을 고려해야 한다. 하지만 제어공학 입문 단계나 이론적 개념 설명에서는, 이상적 Op Amp 가정으로 이처럼 단순한 전달함수를 다룬다.

블록선도로 바라본 해석

회로를 블록선도로 표현하면, 입력 $V_\mathrm{in}(s)$에 대해 출력 $V_\mathrm{out}(s)$가 상수배(반전된 이득)로 연결되어 있는 형태다.

이 블록은 단순히 출력이 입력에 -$\dfrac{R_f}{R_\mathrm{in}}$배가 된다는 의미다. Op Amp의 높은 이득과 적절한 피드백 구조가 만들어낸 결과로서, 제어회로 분석에서 간단한 증폭(또는 감폭) 블록의 역할을 담당한다.

시뮬레이션 예시 (C++)

이상적 Op Amp를 직접 시뮬레이션하기는 다소 까다롭지만, 여기서는 $v_\mathrm{out}(t)$가 $v_\mathrm{in}(t)$의 즉각적인 선형 변환으로 결정된다고 가정하여 간단한 코드를 만들어볼 수 있다. 만일 시간에 따라 입력이 변한다면, 각 시점에서

vout(t)=RfRinvin(t)v_\mathrm{out}(t) = -\,\frac{R_f}{R_\mathrm{in}}\,v_\mathrm{in}(t)

을 계산하면 된다. 아래 예시는 시간에 따라 변하는 $v_\mathrm{in}(t)$가 임의의 함숫값이라고 치고, 매 시점에서 위 식으로 즉시 $v_\mathrm{out}(t)$를 구하는 방식이다.

코드에서 $\sin(2\pi \times 100,t)$ 형태로 100[Hz] 사인 입력을 생성했다. 이상적 인버팅 증폭기에서는 곧바로 출력이 -$\dfrac{R_f}{R_\mathrm{in}}$배만큼 반전되어 나타나게 된다. 실제 회로로 이 동작을 구현하면, Op Amp의 slew rate, open-loop gain, 내부 보상 등에 의해 고주파나 큰 진폭에서 원하는 이득이 온전하게 유지되지 않을 수 있다. 그러나 기본적인 저주파영역 동작에서는 거의 이상적인 거동을 기대할 수 있고, 제어공학적으로는 간단한 부호 반전 및 스케일 조정 블록으로 해석된다.

Op Amp 비인버팅 증폭기 개요

이상적 연산증폭기(operational amplifier)를 사용한 비인버팅 증폭기는 반전(–)단자가 아닌 비반전(+)단자에 입력이 직접 들어가는 구조로서, 높은 입력 임피던스와 위상 반전이 없는 증폭 특성을 가진다. 인버팅 증폭기와 달리 출력이 입력과 같은 위상을 가지며, 입력으로부터 전류가 거의 흐르지 않는 이상적 가정하에서는 매우 간단한 형태의 전압 전달함수를 얻는다. 비인버팅 증폭기는 센서 출력을 증폭하거나 버퍼(buffer)로 활용하는 경우에 많이 이용된다.

회로 구성을 간단히 나타내면 다음과 같다.

여기서 $R_f$와 $R_g$는 편의상 같은 노드(반전단자–출력단 사이)로 연결된 두 저항이라 간주할 수도 있고, 하나의 피드백 저항 $R_f$와 접지에 연결된 분압 저항 $R_g$ 형태로 구현하기도 한다. 핵심은 반전단자(–)에선 출력 전압 $v_\mathrm{out}(t)$을 일부 분압하여 적용하고, 비반전단자(+)는 직접 $v_\mathrm{in}(t)$를 받는 구조다.

회로 해석과 전달함수 도출

이상적 Op Amp를 가정하면, 다음과 같은 성질이 성립한다.

  • 입력단에 전류가 흐르지 않는다.

  • 비반전(+)단자와 반전(–)단자의 전압이 같아진다(가상단락, virtual short).

비인버팅 증폭기에서 비반전(+)단자는 $v_\mathrm{in}(t)$ 전압 그대로를 갖는다. 반면, 반전(–)단자의 전압 역시 $v_\mathrm{in}(t)$와 동일하다.

출력단에서 반전단자로 이어지는 피드백 네트워크를 살펴보면,

vout(t)vin(t)v_\mathrm{out}(t) - v_\mathrm{in}(t)

전압차가 피드백 저항을 통해 흐르게 된다. 회로 형태에 따라 다소 표현이 다를 수 있지만, 일반적으로 저항 $R_1$과 $R_2$ (혹은 $R_f$, $R_g$ 등)로 구성된 경우, 아래와 같은 식이 자주 쓰인다.

일반적인 비인버팅 이득 공식

비인버팅 증폭기의 이득(전달함수)은

G=1+R2R1G = 1 + \frac{R_2}{R_1}

로 알려져 있다. 이를 엄밀하게 유도하려면 반전단자 전압이 $v_\mathrm{in}(t)$라는 점과, 그곳으로 흐르는 전류가 각 저항을 통해 어떤 경로로 흐르는지 추적하면 된다.

가령 아래와 같이 정의해보자.

  • $R_1$은 반전단자에서 접지로 이어진 저항.

  • $R_2$는 반전단자에서 출력단으로 이어진 피드백 저항.

그러면 반전단자의 전압은 $v_\mathrm{in}(t)$, 출력단 전압은 $v_\mathrm{out}(t)$, 접지는 0[V]라 할 때, $R_1$ 양단에 걸리는 전압은

vin(t)0=vin(t),v_\mathrm{in}(t) - 0 = v_\mathrm{in}(t),

$R_2$ 양단에 걸리는 전압은

vout(t)vin(t).v_\mathrm{out}(t) - v_\mathrm{in}(t).

Op Amp 입력단에 전류가 흐르지 않으므로, $R_1$을 통해 흐르는 전류와 $R_2$를 통해 흐르는 전류가 동일하다. 즉,

vin(t)R1=vout(t)vin(t)R2.\frac{v_\mathrm{in}(t)}{R_1} = \frac{v_\mathrm{out}(t) - v_\mathrm{in}(t)}{R_2}.

이를 정리하면

vout(t)vin(t)=R2R1vin(t),v_\mathrm{out}(t) - v_\mathrm{in}(t) = \frac{R_2}{R_1} v_\mathrm{in}(t),

따라서

vout(t)=(1+R2R1)vin(t).v_\mathrm{out}(t) = \Bigl(1 + \frac{R_2}{R_1}\Bigr)\,v_\mathrm{in}(t).

이 식을 라플라스 변환 영역으로 그대로 옮기면

Vout(s)=(1+R2R1)Vin(s),V_\mathrm{out}(s) = \Bigl(1 + \frac{R_2}{R_1}\Bigr)\,V_\mathrm{in}(s),

이므로 이상적 비인버팅 증폭기의 전달함수는

G(s)=1+R2R1.G(s) = 1 + \frac{R_2}{R_1}.

결국 이상적 Op Amp에서 주파수 의존성이 전혀 없는(0차) 이득 블록이 된다. 실제로는 Op Amp 내부 대역폭 제한과 위상지연 등으로 인해 고주파에서 이 이득이 유효하게 유지되지 못한다. 그러나 저주파(또는 Op Amp가 충분히 대응할 수 있는 주파수 범위) 내에서는 이 단순 공식이 정확히 맞아떨어진다.

블록선도로 표현

비인버팅 증폭기는 단순히 입력 $V_\mathrm{in}(s)$가 0차 이득을 통해 증폭되어 출력 $V_\mathrm{out}(s)$가 되는 구조를 가진다.

이 블록은 인버팅 증폭기와 달리 위상이 뒤집히지 않는다. 제어 이론 관점에서는 간단히 한 개의 게인 블록으로 표현되며, 센서 신호나 외부 명령 입력 등을 적절히 증폭하거나 감쇠시키는 데 활용된다.

시뮬레이션 예시 (C++)

이상적 비인버팅 증폭기도 실제 Op Amp의 내부 특성을 배제하면, 입력이 주어졌을 때 단순히

vout(t)=(1+R2R1)vin(t)v_\mathrm{out}(t) = \Bigl(1 + \frac{R_2}{R_1}\Bigr)\,v_\mathrm{in}(t)

이라는 연산만 수행하면 된다. 아래 코드에서는 시간에 따라 변화하는 입력 $v_\mathrm{in}(t)$(예: 사인파)에 대해 즉시 출력값을 계산하는 방식을 보여준다.

코드에서 간단히 확인할 수 있듯, 출력은 입력 사인파와 위상이 같고(반전 없음), 진폭은 $1 + \dfrac{R_2}{R_1}$배로 증폭된다. 실제 Op Amp를 회로에 적용했을 때는, 인버팅·비인버팅 여부와 상관없이 충분히 낮은 주파수대에서만 이상적 거동을 가정할 수 있음을 염두에 둬야 한다. 주파수가 상승하면 내부 보상 및 slew rate 같은 물리적 한계가 영향을 미쳐, 이론적인 공식과 달라질 수 있다.

Op Amp 적분기(Integrator) 개요

연산증폭기(Op Amp)를 이용해 입력 신호를 적분하는 기능을 구현하는 회로는 제어공학에서 매우 중요한 블록으로 간주된다. 시스템 식에서 적분기가 존재하면, 오차를 누적하여 제어하는 동작(예: PI, PID 제어의 I항)을 수행할 수 있다. 하드웨어 관점에서, 저항 $R$ 대신 커패시터 $C$를 피드백 경로에 배치하면, 이상적 Op Amp의 높은 이득과 결합되어 입력 신호가 적분되는 효과가 나타난다.

아래는 가장 전형적인 Op Amp 적분기 회로를 간략히 표현한 것이다.

회로 설명:

  • 반전(-) 단자 쪽으로 입력 신호 $v_\mathrm{in}(t)$가 저항 $R$을 통해 유입된다.

  • 피드백 경로에는 저항 대신 커패시터 $C$가 연결되어 있어, 커패시터에 흐르는 전류가 출력 전압 $v_\mathrm{out}(t)$을 결정한다.

  • 비반전(+) 단자는 그라운드(0[V])에 연결되어 있다(이상적 Op Amp 가정: 가상단락, virtual short 현상).

  • 출력 $v_\mathrm{out}(t)$는 적분 형태의 관계를 갖게 되므로, 시간영역에서나 라플라스영역에서 적분기로 동작한다.

시간영역 해석

이상적 Op Amp의 입력단에는 전류가 흐르지 않는다. 반전 단자의 전압은 비반전 단자 전압(그라운드)과 같으므로 0[V]로 간주할 수 있다. 따라서 입력 저항 $R$에 흐르는 전류는

iR(t)=vin(t)0R=vin(t)R.i_R(t) = \frac{v_\mathrm{in}(t) - 0}{R} = \frac{v_\mathrm{in}(t)}{R}.

반전(-) 단자로 들어간 전류는 Op Amp 입력단으로는 흐르지 않고, 모두 커패시터 $C$ 경로로 흘러간다. 커패시터 양단 전압은 $v_\mathrm{out}(t)$와 반전(-) 단자의 전압(0[V]) 차이이므로, $v_{C}(t) = -,v_\mathrm{out}(t)$ (부호에 유의: 커패시터 한쪽 단자가 0[V], 다른 한쪽이 $v_\mathrm{out}(t)$이므로 전압 강하는 $0 - v_\mathrm{out}(t)$). 커패시터에 흐르는 전류는

iC(t)=Cddt(vC(t))=Cddt(vout(t))=Cdvout(t)dt.i_C(t) = C \frac{d}{dt}\bigl(v_C(t)\bigr) = C \frac{d}{dt}\bigl(-\,v_\mathrm{out}(t)\bigr) = -\,C \frac{dv_\mathrm{out}(t)}{dt}.

전류 보존(KCL)에 의해

iR(t)=iC(t)i_R(t) = i_C(t)

이므로

vin(t)R=Cdvout(t)dt.\frac{v_\mathrm{in}(t)}{R} = -\,C \frac{dv_\mathrm{out}(t)}{dt}.

이를 정리하면

dvout(t)dt=1RCvin(t).\frac{dv_\mathrm{out}(t)}{dt} = -\,\frac{1}{R\,C} \, v_\mathrm{in}(t).

양변을 적분 형태로 쓰면

vout(t)=1RCvin(t)dt+(초기 조건).v_\mathrm{out}(t) = -\,\frac{1}{R\,C} \int v_\mathrm{in}(t)\,dt + \text{(초기 조건)}.

이상적 Op Amp 적분기로서, 출력 전압은 입력 전압을 적분한 결과가 되며, 부호는 반전(–)이 붙는다.

라플라스 변환 및 전달함수

시간영역에서의 식

dvout(t)dt=1RCvin(t)\frac{dv_\mathrm{out}(t)}{dt} = -\,\frac{1}{R\,C}\,v_\mathrm{in}(t)

에 대해 라플라스 변환(초기조건 0 가정)을 취하면,

sVout(s)=1RCVin(s).s\,V_\mathrm{out}(s) = -\,\frac{1}{R\,C}\,V_\mathrm{in}(s).

이를 정리하면

Vout(s)=1RC1sVin(s).V_\mathrm{out}(s) = -\,\frac{1}{R\,C}\,\frac{1}{s}\,V_\mathrm{in}(s).

결국 이상적 Op Amp 적분기의 전달함수는

G(s)=Vout(s)Vin(s)=1RC1s.G(s) = \frac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)} = -\,\frac{1}{R\,C}\,\frac{1}{s}.

즉, $-,\frac{1}{R,C},\dfrac{1}{s}$ 형태로 나타나며, 이는 라플라스 영역에서 전형적인 적분기(폴이 원점에 존재) 특성에 해당한다. 실제로는 Op Amp가 무한 대역폭을 갖는 것이 아니고, DC 영역에서 극도로 큰 이득을 갖게 되면 포화(saturation)가 일어나기 쉽다. 이를 방지하기 위해 대부분의 실제 회로에서는 병렬로 누설저항(대단히 큰 저항)을 달아 DC 게인을 어느 정도 제한하거나, 다른 차단 장치(전원 범위 제한 등)를 둔다.

블록선도

Op Amp 적분기는 입력 대비 출력이 적분 형태로 나타나는 블록으로, 제어블록 선도로는 다음처럼 표현할 수 있다.

위 그림에서 $-,\dfrac{1}{R,C},\dfrac{1}{s}$는 이상적 적분기에 -1/(RC) 배가 추가된 형태를 보여준다. 제어 시스템 해석에서 적분기 블록은 DC 이득이 무한대라는 강력한 특성을 가지며, 영(0) 주파수 근방에서 오차를 제거하는 역할을 한다.

시뮬레이션 예시 (C++)

아래는 매우 단순화된 형태의 오일러 적분을 통해 Op Amp 적분기의 동작을 모사하는 예시 코드다. 실제로는 Op Amp 내부 포화나 초기 조건 등을 고려해야 하지만, 여기서는 이론적 개념을 시각화하는 용도로 보면 된다.

코드에서

dvout(t)dt=1RCvin(t)\frac{dv_\mathrm{out}(t)}{dt} = -\,\frac{1}{R\,C} \,v_\mathrm{in}(t)

을 오일러 방식으로 풀었다. 100[Hz] 사인 입력을 적분하면 90도 위상이 앞선(-90도가 아닌 +90도가 되는) 코사인 파형과 흡사한 형태가 $v_\mathrm{out}(t)$에서 관찰되며, 부호가 반전되어 있기 때문에 실제로는 -코사인에 가까운 결과가 나온다. 물론, 점차 DC 편향(drift)이 쌓이거나, 실험실의 실제 Op Amp에서는 전원 한계를 넘어가면 출력이 포화되어 더 이상 이상적 동작을 하지 않는다.

Op Amp 미분기(Differentiator) 개요

Op Amp를 활용해 입력 신호의 미분값을 출력하는 회로는 제어공학에서 중요한 역할을 한다. 적분기와 반대 개념이며, 주파수 영역에서 고주파 성분을 크게 증폭한다는 특성을 가진다. 이 때문에 노이즈에 민감하고, 실제로는 이상적 미분기를 그대로 구현하기보다는 저역필터나 보상요소를 추가하여 안정적인 동작을 유도한다. 여기서는 이상적 Op Amp와 이상적 소자를 가정한 단순 미분기를 대상으로, 전달함수를 유도하고 시뮬레이션 예시를 살펴본다.

아래는 전형적인 Op Amp 미분기 회로를 간략히 표현한 것이다.

이 회로에서, 반전(-) 단자와 입력 사이에는 커패시터 $C$가 위치하고, 피드백 경로에는 저항 $R$이 위치한다. 비반전(+) 단자는 그라운드로 연결되어 있어, 이상적 가정하에 가상단락(virtual short) 효과로 반전(-) 단자의 전압은 0[V]가 된다.

시간영역 해석

입력 신호 $v_\mathrm{in}(t)$는 커패시터를 통해 반전(-) 단자로 공급된다. 이 때, 반전(-) 단자 전압은 0[V]이므로 커패시터 양단에 걸리는 전압은

vin(t)0=vin(t).v_\mathrm{in}(t) - 0 = v_\mathrm{in}(t).

커패시터 전류는

iC(t)=Cddt(vC(t)),i_C(t) = C \frac{d}{dt}\bigl(v_C(t)\bigr),

이며 $v_C(t)$는 커패시터 양단의 전압, 즉 $v_\mathrm{in}(t)$가 된다. 따라서

iC(t)=Cdvin(t)dt.i_C(t) = C \frac{dv_\mathrm{in}(t)}{dt}.

Op Amp 입력단에는 전류가 흐르지 않으므로, 이 전류는 피드백 저항 $R$ 방향으로 흘러간다. 피드백 저항 양단 전압은 $v_\mathrm{out}(t) - 0[V] = v_\mathrm{out}(t)$이고, 저항에 흐르는 전류는

iR(t)=vout(t)R.i_R(t) = \frac{v_\mathrm{out}(t)}{R}.

전류 보존 법칙(KCL)에 의해

iC(t)=iR(t),i_C(t) = i_R(t),

Cdvin(t)dt=vout(t)R.C \frac{dv_\mathrm{in}(t)}{dt} = \frac{v_\mathrm{out}(t)}{R}.

이를 정리하면

vout(t)=RCdvin(t)dt.v_\mathrm{out}(t) = R\,C \frac{dv_\mathrm{in}(t)}{dt}.

이상적 Op Amp 미분기는 입력 $v_\mathrm{in}(t)$의 시간 미분값을 $R,C$만큼 곱하여 출력한다. 이상적인 가정이므로, 실제 회로에서 필연적으로 발생하는 노이즈 증폭이나 대역폭 제한은 고려되지 않았다.

라플라스 변환 및 전달함수

시간영역 식

vout(t)=RCdvin(t)dtv_\mathrm{out}(t) = R\,C \,\frac{dv_\mathrm{in}(t)}{dt}

에 대하여 라플라스 변환(초기조건 0 가정)을 취하면,

Vout(s)=RC(sVin(s)).V_\mathrm{out}(s) = R\,C \,\bigl(s \,V_\mathrm{in}(s)\bigr).

전달함수 $G(s) = \dfrac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)}$는

G(s)=RCs.G(s) = R\,C\,s.

이는 원점에서 영차(zero)가 존재한다(고주파에서 이득이 계속 증가)고 해석할 수 있다. 주파수영역에서 $|G(j\omega)| = R,C,\omega$이므로, 고주파 성분을 크게 키우는 특성이 있다.

블록선도

Op Amp 미분기는 $s$ 항을 가지는 동작이므로, 블록선도 관점에서 간단히

R C s[라인피드]R,C,s [라인피드]

라는 전달함수를 가진 것으로 표현할 수 있다.

이 블록은 순수 미분기이므로, 이상적 환경에서는 실시간으로 입력 변화율을 출력한다. 제어 측면에서는 미분동작이 중요한 역할을 할 때 종종 사용되지만, 고주파 노이즈를 증폭하기 쉬우므로, 현실적으로는 저역필터를 함께 구성한 형태(예: lead compensator 등)로 사용되는 경우가 많다.

시뮬레이션 예시 (C++)

아래 코드는 매우 단순화된 형태로, $v_\mathrm{out}(t) = R,C,\dfrac{d,v_\mathrm{in}(t)}{dt}$를 오일러 방식으로 근사하여 구현한 예시다. 실제 Op Amp에서는 고주파나 스텝 입력에서 포화(saturation)나 slew rate 제한이 일어나므로, 이론과 달라질 수 있다.

코드에서 $\sin(2\pi \times 100,t)$ 형태 입력에 대해, 실제 결과는 $\cos(2\pi \times 100,t)$를 $2\pi \times 100,R,C$ 배로 증폭한 파형(그리고 시간차로 인한 부호 변화)에 가까워야 한다. 그러나 샘플링 주기 $dt$가 무척 작은 편이 아니면 수치 미분 오차가 발생하고, 노이즈나 이산화 효과로 인해 출력에 잡음이 끼거나 큰 진동이 발생할 수 있다.

현실적인 미분기 회로에서는, 무한대 이득을 피하기 위해 입력단에 저항을 추가하거나, 커패시터와 직렬로 소자를 더 배치하는 식으로 (고주파) 무한증폭 특성을 제한한다. 제어공학적으로도 순수 미분기 대신 대역 제한이 포함된 필터형 미분기(lead filter 등)를 더 자주 쓴다.

Op Amp 합산 회로(Summing Amplifier) 개요

다수의 입력 신호를 서로 더하거나 빼는 연산을 아날로그 방식으로 수행할 때, Op Amp를 이용하면 쉽고 간결하게 합산 회로(가중합)을 구성할 수 있다. 제어공학이나 신호 처리에서, 여러 센서 입력값을 특정 비율로 합산해야 하는 경우에 이 회로가 응용된다. 가장 대표적인 형태는 인버팅형 합산기이며, 반전(-) 단자로 여러 입력이 저항을 통해 모여들고, 공통된 피드백 저항으로 출력이 형성된다.

아래는 대표적인 인버팅형 합산기의 예시다. 입력이 2개라 가정했지만, 필요에 따라 3개 이상도 같은 방식으로 확장 가능하다.

각 입력 $v_{in1}(t)$, $v_{in2}(t)$가 저항 $R_1$, $R_2$를 통해 반전(-) 단자로 유입되며, 피드백 저항 $R_f$가 반전단자와 출력단을 연결한다. 비반전(+)단자는 그라운드에 놓여 있으므로 이상적 Op Amp에서는 반전단자 전압도 0[V]가 된다(가상단락).

회로 해석과 합산 공식 유도

반전단자 전압이 0[V]이므로, $v_{in1}(t)$에서 들어오는 전류는

i1(t)=vin1(t)0R1=vin1(t)R1,i_1(t) = \frac{v_{in1}(t) - 0}{R_1} = \frac{v_{in1}(t)}{R_1},

이고, $v_{in2}(t)$에서 들어오는 전류는

i2(t)=vin2(t)0R2=vin2(t)R2.i_2(t) = \frac{v_{in2}(t) - 0}{R_2} = \frac{v_{in2}(t)}{R_2}.

Op Amp 입력단에는 전류가 들어갈 수 없으므로, 이 두 전류 $i_1(t)$, $i_2(t)$가 모두 피드백 저항 $R_f$ 방향으로 흘러간다. 피드백 저항 $R_f$의 양단 전압은

0vout(t)=vout(t)0 - v_\mathrm{out}(t) = -\,v_\mathrm{out}(t)

이므로, $R_f$에 흐르는 전류는

if(t)=0vout(t)Rf=vout(t)Rf.i_f(t) = \frac{0 - v_\mathrm{out}(t)}{R_f} = -\,\frac{v_\mathrm{out}(t)}{R_f}.

전류 보존(KCL)으로

i1(t)+i2(t)=if(t),i_1(t) + i_2(t) = i_f(t),

vin1(t)R1+vin2(t)R2=vout(t)Rf.\frac{v_{in1}(t)}{R_1} + \frac{v_{in2}(t)}{R_2} = -\,\frac{v_\mathrm{out}(t)}{R_f}.

이를 정리하면

vout(t)=Rf(vin1(t)R1+vin2(t)R2).v_\mathrm{out}(t) = -\,R_f \Bigl(\frac{v_{in1}(t)}{R_1} + \frac{v_{in2}(t)}{R_2}\Bigr).

이 식은 $v_{in1}, v_{in2}$가 동시에 존재할 때, 합산되어 출력이 형성되며, 부호가 반전(-)됨을 보여준다. 더 많은 입력이 있으면 각각 저항을 통해 들어오는 전류를 모두 합하면 되고, 그 합이 $-,\dfrac{v_\mathrm{out}(t)}{R_f}$와 같아진다는 원리다.

라플라스 변환과 전달함수 표현

시간영역에서

vout(t)=Rf(vin1(t)R1+vin2(t)R2)v_\mathrm{out}(t) = -\,R_f \Bigl(\frac{v_{in1}(t)}{R_1} + \frac{v_{in2}(t)}{R_2}\Bigr)

로 표현된 회로를 라플라스 변환 영역으로 옮기면, 이상적 Op Amp 가정하에 각 항이 $s$에 의존하지 않는다(에너지 저장 소자가 없으므로). 즉,

Vout(s)=Rf(Vin1(s)R1+Vin2(s)R2).V_\mathrm{out}(s) = -\,R_f \Bigl(\frac{V_{in1}(s)}{R_1} + \frac{V_{in2}(s)}{R_2}\Bigr).

하나의 출력에 대해 여러 입력이 동시에 존재하므로, 전달함수를 “다중 입력-단일 출력” 형태로 표현할 수 있다. 예를 들어 $v_{in1}$에서 $v_\mathrm{out}$로 가는 경로의 전달함수는

G1(s)=RfR1,G_1(s) = -\,\frac{R_f}{R_1},

이고, $v_{in2}$에서 $v_\mathrm{out}$로 가는 경로의 전달함수는

G2(s)=RfR2.G_2(s) = -\,\frac{R_f}{R_2}.

복수 입력에 대해서,

vout(s)=G1(s)vin1(s)+G2(s)vin2(s).v_\mathrm{out}(s) = G_1(s)\,v_{in1}(s) + G_2(s)\,v_{in2}(s).

블록선도로 바라본 해석

두 입력 $V_{in1}(s)$, $V_{in2}(s)$가 각각 상수 이득 블록($-,\dfrac{R_f}{R_1}$, $-,\dfrac{R_f}{R_2}$)을 거쳐 더해진 후, 하나의 출력 $V_\mathrm{out}(s)$가 형성되는 구조로 볼 수 있다.

단순히 각각의 입력이 -$\dfrac{R_f}{R_i}$ 배 스케일링되고 합쳐진 결과가 출력이 된다. 제어나 신호 처리에서는 가중합을 구현하는 데 이 회로가 널리 사용된다.

시뮬레이션 예시 (C++)

아래 코드는 가장 기본적인 방식으로, 두 개의 입력 $v_{in1}(t), v_{in2}(t)$가 시간적으로 변할 때, 합산회로 출력 $v_\mathrm{out}(t)$가 어떻게 변하는지 계산한다. 실제 Op Amp 회로를 수치해석하는 것이 아니라, 합산 공식

vout(t)=Rf(vin1(t)R1+vin2(t)R2)v_\mathrm{out}(t) = -\,R_f \Bigl(\frac{v_{in1}(t)}{R_1} + \frac{v_{in2}(t)}{R_2}\Bigr)

을 매 시점에서 단순 계산하는 형태다.

코드에서 100[Hz] 사인과 50[Hz] 코사인이 동시에 들어올 때, 출력은 각각 -$\dfrac{R_f}{R_1}$ 배의 사인과 -$\dfrac{R_f}{R_2}$ 배의 코사인이 합쳐진 파형이 된다. 실제 하드웨어 회로로 구성할 경우, 이상적 Op Amp가 아니라면 입력 임피던스나 오프셋 전압, 주파수 특성 등에 의해 이론값과 약간의 오차가 생길 수 있다. 그러나 이상적인 주파수 대역과 환경에서는 실험적으로도 꽤 정확한 가중 합산 동작을 확인할 수 있다.

Op Amp 감산기(Subtractor) 개요

Op Amp를 이용해 두 신호 간의 차를 직접 구하는 기능은 제어공학이나 신호처리에서 필수적인 연산 중 하나다. 이를 간단히 감산회로(혹은 차동 증폭기의 특수 형태)라고 부르며, 두 입력 $v_{in1}(t)$, $v_{in2}(t)$를 받아 $v_\mathrm{out}(t) = A \bigl[v_{in1}(t) - v_{in2}(t)\bigr]$ 형태로 출력한다. 기본적으로 비인버팅 단자(+)와 반전 단자(–)에 각각 적절한 구조의 저항망(resistor network)을 배치하여, 한 쪽 신호는 비인버팅 경로로, 다른 한 쪽 신호는 인버팅 경로로 입력된다.

아래는 전형적인 감산회로(Subtractor)의 예시다.

회로를 단순화해서 바라보면, 비인버팅(+), 반전(–) 경로에 놓인 저항 비율에 따라 최종 출력이 $v_{in1} - v_{in2}$ 형태로 계산되며, 그 계수는 각 저항값으로 결정된다.

대표적인 감산기 공식

두 신호 $v_{in1}(t)$, $v_{in2}(t)$와 저항 $R_1, R_2, R_3, R_4$가 위 그림처럼 연결되어 있다고 하자. 이상적 Op Amp 가정(무한 이득, 무한 입력 임피던스, 0 출력 임피던스) 하에서, 자주 인용되는 감산기 공식은

vout(t)=(R2R1)vin1(t)(R2R1)(R4+R3R3)vin2(t)v_\mathrm{out}(t) = \Bigl(\frac{R_2}{R_1}\Bigr)\,v_{in1}(t) - \Bigl(\frac{R_2}{R_1}\Bigr)\Bigl(\frac{R_4 + R_3}{R_3}\Bigr)\,v_{in2}(t)

과 같은 형태로 나타난다. 그러나 특정 조건(예: $R_1 = R_3$와 $R_2 = R_4$)을 만족시켜 단순화하면

vout(t)=R2R1[vin1(t)vin2(t)]v_\mathrm{out}(t) = \frac{R_2}{R_1}\Bigl[v_{in1}(t) - v_{in2}(t)\Bigr]

처럼 보다 간단한 차동연산이 구현된다. 회로 설계 시, 이와 같은 저항값을 적절히 선정하여 원하는 비(비율)의 감산 기능을 얻는다.

여기서는 대표적으로

R1=R3,R2=R4R_1 = R_3,\quad R_2 = R_4

라 가정하면, 비인버팅 단자를 통해 $v_{in1}(t)$가 스케일 변환 없이 (+) 경로로 들어가고, 반전 단자를 통해 $v_{in2}(t)$가 $-\dfrac{R_2}{R_1}$ 배로 변환되어 감산되는 형태를 간단히 살펴볼 수 있다.

시간영역 해석 (특수 케이스)

$R_1 = R_3,, R_2 = R_4$인 상황에서, Op Amp의 비인버팅(+) 단자는

v+=vin1(t)R1R1+R2+v_+ = v_{in1}(t)\,\frac{R_1}{R_1 + R_2} + \dots

의 형태로 어떤 분압이 걸린다. 반전(–) 단자는 이상적 가정하에서 $v_+ = v_-$(가상단락)이므로, $v_-$도 동일한 전압을 갖는다. 이 상태에서 반전 단자로 들어오는 $v_{in2}(t)$와 $v_\mathrm{out}(t)$ 간의 전류 관계를 살펴보면, 결과적으로

vout(t)=R2R1[vin1(t)vin2(t)]v_\mathrm{out}(t) = \frac{R_2}{R_1}\Bigl[v_{in1}(t) - v_{in2}(t)\Bigr]

가 성립함을 확인할 수 있다. 더 일반적인 경우에는 위 식에 별도의 계수가 곱해지는 형태가 된다.

라플라스 변환에서의 표현

감산회로는 RC 등의 에너지 저장소자가 없다고 가정하면, 라플라스 영역에서도

Vout(s)=R2R1[Vin1(s)Vin2(s)]V_\mathrm{out}(s) = \frac{R_2}{R_1}\,\bigl[V_{in1}(s) - V_{in2}(s)\bigr]

처럼 주파수 의존성이 없는 0차 블록이 된다. 따라서 입력 두 개 각각에 대한 전달함수는

G1(s)=+R2R1,G2(s)=R2R1.G_{1}(s) = +\,\frac{R_2}{R_1},\quad G_{2}(s) = -\,\frac{R_2}{R_1}.

여러 센서 신호 중에서 특정 신호들 간의 차를 얻고자 하거나, 오프셋을 제거하는 등 제어계에서 유용하게 쓰이는 구조다.

블록선도

감산기 블록선도를 그려보면, $v_{in1}(s)$는 $+\dfrac{R_2}{R_1}$의 이득, $v_{in2}(s)$는 $-\dfrac{R_2}{R_1}$의 이득을 거쳐 합쳐진 다음, 최종적으로 $v_\mathrm{out}(s)$가 생성되는 형태다.

시뮬레이션 예시 (C++)

이상적 Op Amp 가정하에서, 감산회로는 단순히 아래 수식을 매 순간 계산하는 것과 동일하다.

vout(t)=R2R1[vin1(t)vin2(t)].v_\mathrm{out}(t) = \frac{R_2}{R_1}\bigl[v_{in1}(t) - v_{in2}(t)\bigr].

아래 코드는 두 입력 $v_{in1}, v_{in2}$가 시간에 따라 변할 때, 출력이 어떤 값을 갖는지 시뮬레이션하는 예시다.

코드에서는 같은 주파수(100[Hz])의 위상이 서로 다른 두 신호(사인과 코사인)를 서로 빼게 된다. 입력 신호 간 차이가 시시각각 변하는 값을 출력으로 얻을 수 있는데, 이론적으로는

sin(ωt)cos(ωt)\sin(\omega t) - \cos(\omega t)

형태에 $\dfrac{R_2}{R_1}$이 곱해진 결과가 되고, 실제 회로에서도 이상적 환경에선 동일하게 동작한다. 다만 고주파나 Op Amp 동작 전원 한계, 열 잡음 등에 의한 영향으로 정확한 감산이 깨질 수 있다.

Op Amp 버퍼(전압 폴로어, Voltage Follower) 개요

연산증폭기(Op Amp)의 가장 기초적인 활용 중 하나가 바로 버퍼(전압 폴로어, voltage follower) 구성이다. 비반전(+)단자에 입력 신호를 직접 연결하고, 출력단을 반전(–)단자에 직결(피드백)하여, 출력이 입력과 정확히 같되(위상 반전 없음), 높은 입력 임피던스와 낮은 출력 임피던스를 얻는 회로다. 센서나 앞단(前段) 신호원을 보호하고, 뒤단(後段) 부하의 영향으로부터 입력을 분리시키는 중요한 역할을 한다.

아래는 간단한 버퍼 구성을 나타낸 회로다.

이상적 Op Amp에서는 비반전단자(+)와 반전단자(–) 간 전압이 0이 되도록 내부 이득이 크게 작용하므로, $v_{-} \approx v_{+}$가 성립한다. 여기서 비반전단자에 $v_\mathrm{in}(t)$가 인가되어 있고, 출력단이 반전단자에 직접 연결되어 있으므로

vout(t)=vin(t).v_\mathrm{out}(t) = v_\mathrm{in}(t).

회로 해석

버퍼 회로는 입력과 출력 사이에 증폭도(이득) 변화가 없는 것처럼 보이지만, 내부적으로 Op Amp의 높은 이득을 통해 입력과 출력 간 전압차를 거의 0으로 유지한다. 다음과 같은 특징을 갖는다.

  • 매우 높은 입력 임피던스: Op Amp 비반전단자에는 거의 전류가 흐르지 않으므로, 입력 소스로부터 전류를 거의 뽑아쓰지 않는다.

  • 매우 낮은 출력 임피던스: Op Amp 출력단은 내부적으로 스스로 전류를 공급·흡수하며, 뒤단 부하에 의해 출력 전압이 크게 떨어지지 않는다.

즉, $v_\mathrm{out}(t)$는 $v_\mathrm{in}(t)$를 그대로 복제하면서도, 실제 전력이나 전류 부담은 Op Amp가 부담한다. 센서 신호가 미세한 전류만 허용되는 경우(고임피던스 소스), 버퍼를 거치면 뒤단에서 큰 부하를 걸어도 입력 신호가 왜곡되지 않는다. 제어공학에서는 시스템에 들어오는 측정신호나 기준신호를 깨끗하게 유지할 때 자주 쓰인다.

전달함수

이상적 Op Amp 가정에서, 버퍼 회로의 입력-출력 관계는

vout(t)=vin(t).v_\mathrm{out}(t) = v_\mathrm{in}(t).

즉, 출력이 입력과 동일하다. 라플라스 변환 영역에서도

Vout(s)=Vin(s).V_\mathrm{out}(s) = V_\mathrm{in}(s).

전달함수 $G(s) = \dfrac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)}$는

G(s)=1.[라인피드]G(s) = 1. [라인피드]

주파수 특성 관점에서는 이상적인 0차 이득 블록이지만, 실제 Op Amp는 무한대역폭을 갖지 않으므로 고주파 범위에서 이득이 서서히 떨어지고 위상 지연이 발생한다. 그러나 대부분의 일반 용도에서, 비교적 낮은 주파수에서 $G(s) \approx 1$이 만족되어 버퍼로서 제대로 기능한다.

블록선도

버퍼를 블록선도로 표현하면 입력 신호가 그저 1배(동일) 이득 블록을 거쳐 출력으로 전달되는 구조다.

이 그림은 입력과 출력이 거의 동일함을 의미하고, 입력 임피던스가 무한대(에 가깝고), 출력 임피던스가 0(에 가깝다)는 Op Amp의 특성이 담겨 있다.

시뮬레이션 예시 (C++)

이상적 버퍼는 시간 영역에서 별도의 미분·적분항이 전혀 없으므로,

vout(t)=vin(t)v_\mathrm{out}(t) = v_\mathrm{in}(t)

로 단순 계산할 수 있다. 하지만 실제 Op Amp가 어느 정도의 slew rate(출력 전압 상승 속도 한계)을 갖는지, 대역폭이 어느 정도인지 등을 살피려면 더 정교한 모델이 필요하다. 여기서는 기본적인 이상적 버퍼로, 입력을 그대로 출력한다고 가정한 간단한 시뮬레이션 예시 코드를 보인다.

코드 결과를 보면, $v_\mathrm{out}(t)$가 $v_\mathrm{in}(t)$와 정확히 동일하게 출력된다. 이상적 모델이므로 Slew Rate, 공급전압 한계, 대역폭 제한 등이 전혀 고려되지 않았다. 실제 Op Amp로 버퍼를 구성할 때는, 입력 신호가 너무 빠르게 변하거나(고주파), 진폭이 Op Amp 전원 범위 이상으로 커질 경우 비이상적 현상(포화, 왜곡, 위상 지연 등)이 발생한다.

그럼에도 불구하고, 충분히 낮은 주파수와 전압 범위 내에서는 이상적인 전압 폴로어로서 동작하여, 고임피던스 입력 신호를 뒤단에서 안정적으로 사용할 수 있게 해준다.

Op Amp 차동 증폭기(Differential Amplifier) 개요

연산증폭기(Op Amp)를 이용해 두 개의 입력 신호 $v_{in1}(t)$, $v_{in2}(t)$의 차이를 증폭시키는 회로는 차동 증폭기(differential amplifier)라고 한다. 감산기(Subtractor)는 두 입력의 차이를 구하긴 하지만, 비인버팅(+) 입력이 반드시 그라운드가 되도록 구성되는 등의 제한이 있다. 차동 증폭기는 입력 두 개 모두가 부궤환 네트워크에 참여하므로, 두 신호가 어떤 기준 전압(예: 그라운드)과도 무관하게 상대적으로 얼마나 다른지(차동 신호)를 증폭한다.

차동 증폭기 회로는 다음과 같이 표현할 수 있다. 각각의 입력($v_{in1}, v_{in2}$)에 대응하는 저항망이 구성되어 있으며, 반전(-) 및 비반전(+) 단자에 모두 신호가 인가된다. 일반적으로 네 개의 저항 $R_1, R_2, R_3, R_4$가 사용된다.

이 회로에서 각 저항값이 어떻게 배치되느냐에 따라, 두 입력 사이의 차이를 어떤 배율로 증폭할지 결정된다. 이상적 Op Amp 가정하에서, $v_{-} = v_{+}$가 성립하며 입력단 전류는 0이다.

전달함수 유도

가장 일반적인 차동 증폭기에서 자주 등장하는 공식은 다음과 같다.

vout(t)=R2R1vin1(t)R2R1R1+R3R3vin2(t)v_\mathrm{out}(t) = \frac{R_2}{R_1} \,v_{in1}(t) - \frac{R_2}{R_1} \,\frac{R_1 + R_3}{R_3}\,v_{in2}(t)

혹은, 사용자가 특정 관계를 만족하도록 저항값을 선택하면(예: $R_1 = R_3,; R_2 = R_4$), 훨씬 간단한 형태의 전달함수가 된다. 대표적인 경우는

vout(t)=(R2R1)[vin1(t)vin2(t)].v_\mathrm{out}(t) = \Bigl(\frac{R_2}{R_1}\Bigr)\Bigl[v_{in1}(t) - v_{in2}(t)\Bigr].

감산기와 달리, 여기서는 $v_{in1}$과 $v_{in2}$ 모두가 부궤환 경로에 참여하기 때문에, 양쪽 입력이 그라운드와 무관한 상태로도 차동 신호를 증폭할 수 있다. 실제로는 공통 모드 억압비(CMRR: Common Mode Rejection Ratio)를 높이기 위해 정밀 저항(오차가 매우 작은 저항)들이 쓰이고, 고급 계측 증폭기(instrumentation amplifier)의 기본이 되기도 한다.

시간영역에서의 회로 해석 (예시)

각 노드 전압을 $v_{-}, v_{+}, v_\mathrm{out}$라 하고, 비인버팅(+) 단자와 반전(-) 단자에 각각 연결된 저항망을 KCL과 가상단락(virtual short) 원리를 적용하여 풀면 위와 같은 결과식이 나온다. 예를 들어, $R_1 = R_3$, $R_2 = R_4$인 경우를 자세히 살펴보면

  • 비인버팅(+) 단자에서는 $v_{+} = v_{in2}(t),\dfrac{R_4}{R_3 + R_4} + v_\mathrm{out}(t),\dfrac{R_3}{R_3 + R_4}$ (분압의 형태)

  • 반전(-) 단자에서는 $v_{-} = v_{in1}(t),\dfrac{R_1}{R_1 + R_2} + v_\mathrm{out}(t),\dfrac{R_2}{R_1 + R_2}$

이상적 Op Amp라면 $v_{-} = v_{+}$가 되므로, 이를 만족하는 $v_\mathrm{out}(t)$를 풀어내면 최종적으로

vout(t)=R2R1[vin1(t)vin2(t)]v_\mathrm{out}(t) = \frac{R_2}{R_1}\bigl[v_{in1}(t) - v_{in2}(t)\bigr]

로 귀결된다. 이를 라플라스 변환하면 $V_\mathrm{out}(s) = \dfrac{R_2}{R_1}[,V_{in1}(s) - V_{in2}(s)\bigr]$, 에너지 저장 소자가 없다면 주파수 의존성 없이 상수배 차동 증폭으로 해석된다.

블록선도

차동 증폭기는 두 입력을 각각 다른 부호와 이득으로 변환하여 합산한 결과를 출력한다. 간단히 표현하면,

위 그림에서 $a$와 $b$는 적절한 저항 비로 결정된다. 일반적으로 $a = b$로 만들면 $v_{in1}(s) - v_{in2}(s)$ 꼴이 되며, $v_{in1}$와 $v_{in2}$가 공통으로 갖는 성분(공통 모드 신호)은 크게 억제된다.

시뮬레이션 예시 (C++)

이상적 차동 증폭기라면, 시뮬레이션에서 곧바로

vout(t)=A[vin1(t)vin2(t)]v_\mathrm{out}(t) = A \,\bigl[v_{in1}(t) - v_{in2}(t)\bigr]

(또는 다른 형태의 공식을) 사용하여 매 순간 출력값을 구하면 된다. 여기서는 단순화된 케이스로 $A = \dfrac{R_2}{R_1}$인 상황을 예시 코드로 보인다.

코드에서는 두 입력이 같은 주파수(100[Hz])지만 위상이 다른 사인파로 설정되었다. 실제 Op Amp로 구성하면 공통 모드 거동(예: $v_{in1}$와 $v_{in2}$가 동시에 동일하게 변할 때)에 대한 억제도 성능의 중요한 지표가 된다. 저항 매칭이 정밀하지 않으면, 공통 모드 성분이 완벽하게 제거되지 않아 원하는 차동 증폭이 어긋날 수 있다. 일반적으로 고정밀(1% 미만 오차) 저항을 사용하거나, 가변저항으로 보정을 가해 정확도를 높인다.

Sallen–Key 저역통과 필터(Low-Pass Filter) 회로

연산증폭기(Op Amp)와 몇 개의 수동소자(R, C)만으로 간단하게 2차 저역통과(또는 고역통과) 특성을 구현할 수 있는 대표적인 예가 바로 Sallen–Key 필터이다. 이 필터는 op amp 버퍼(또는 이득 블록)와 RC 네트워크를 조합하여, 원하는 필터 차수와 특성을 직관적으로 설계할 수 있다. 제어공학이나 신호처리 분야에서 2차 필터를 구축할 때 자주 활용된다.

본 예제에서는 가장 기본적인 단일 증폭기 구조의 Sallen–Key 저역통과 필터를 다룬다. 간단화를 위해 이득을 1(단순 버퍼)로 두고, 동일한 값의 저항과 커패시터를 사용한다고 가정한다($R_1 = R_2 = R,; C_1 = C_2 = C$).

회로 구성

Sallen–Key 저역통과 회로는 다음과 같은 형태로 그릴 수 있다.

  • 입력 $v_\mathrm{in}(t)$가 2개의 직렬소자($R_1$과 $C_1$)와 병렬소자($R_2$와 $C_2$)로 구성된 필터 네트워크를 지난 후, Op Amp 버퍼(단순 Unity Gain) 단으로 들어간다.

  • Op Amp는 (이상적으로) 입력 임피던스가 무한대이므로, 버퍼 입력단에 전류가 거의 흐르지 않는다.

  • 필터 네트워크의 출력을 Op Amp가 그대로 따라가도록(Voltage Follower) 구성되어 있어서, 2차 저역통과 전달함수가 형성된다.

미분방정식 세우기

아래와 같은 노드를 정의해두면 편리하다.

  • $v_\mathrm{in}(t)$: 입력 전압

  • $v_x(t)$: 필터 중간 노드( $R_1$과 $C_2$가 만나는 지점 )

  • $v_\mathrm{out}(t)$: Op Amp 버퍼 출력 (필터의 최종 출력)

각 소자별 전류·전압 관계를 고려해 미분방정식을 세울 수 있다. 다만, 이 필터는 2차 구조이므로 직접 시간영역에서 식을 전개하면 조금 복잡해진다. 여기서는 주로 라플라스 영역에서 접근한다.

라플라스 영역에서의 해석

영점 초기조건(커패시터 전하가 0)이라 가정하고, 각 노드의 전압을 라플라스 변환한 값으로 표현한다.

  • $V_\mathrm{in}(s) = \mathcal{L}{v_\mathrm{in}(t)}$

  • $V_x(s) = \mathcal{L}{v_x(t)}$

  • $V_\mathrm{out}(s) = \mathcal{L}{v_\mathrm{out}(t)}$

커패시터 임피던스

라플라스 영역에서 커패시터 $C$는 임피던스 $\dfrac{1}{sC}$로 나타난다. 저항 $R$는 임피던스 $R$ 그대로다.

회로망 해석

  1. 노드 $v_x$와 $v_\mathrm{out}$ 사이에 병렬로 $R$와 $\dfrac{1}{sC}$가 연결된 것처럼 볼 수 있다.

  2. 노드 $v_x$와 그라운드 사이에 직렬로 $C$와 또 한 개의 $R$가 연결된 것도 확인할 수 있다.

  3. $v_\mathrm{out}(s)$는 Op Amp 버퍼이므로, 노드 $v_x$로 전류가 거의 흐르지 않는다(이상적 입력 임피던스 무한). 출력은 단순히 $V_\mathrm{out}(s)$가 Op Amp로 복제되어 나오는 구조.

보다 체계적으로는 KCL(Kirchhoff’s Current Law)이나 임피던스 분할 공식 등을 활용해서 $V_\mathrm{out}(s)$ 대 $V_\mathrm{in}(s)$의 비를 구한다.

표준 공식을 이용한 전달함수

Sallen–Key 저역통과 2차 필터의 전달함수는 일반적으로

G(s)=Vout(s)Vin(s)=ω02s2+ω0Qs+ω02,G(s) = \frac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)} = \frac{\omega_0^2}{s^2 + \frac{\omega_0}{Q}\,s + \omega_0^2},

형태를 갖는다. 여기서 $\omega_0$는 고유 진동(공진) 각주파수, $Q$는 품질 계수(품질인자, quality factor)다.

  • 단순 버퍼(이득 1) 구성에서 $R_1 = R_2 = R$, $C_1 = C_2 = C$로 잡으면, ω0=1RC,Q=12.

ω0=1RC,Q=12.\omega_0 = \frac{1}{RC}, \quad Q = \frac{1}{2}.

구체적으로 유도하면,

G(s)=Vout(s)Vin(s)=11+sRC+(sRC)2=1(s2+s1CR+1(CR)2).G(s) = \frac{V_\mathrm{out}(s)}{V_\mathrm{in}(s)} = \frac{1}{1 + sRC + (sRC)^2} = \frac{1}{(s^2 + s\frac{1}{C R} + \frac{1}{(CR)^2})}.

이를 더 표준형으로 쓰면

G(s)=ω02s2+ω0s+ω02단,ω0=1RC.G(s) = \frac{\omega_0^2}{s^2 + \omega_0\,s + \omega_0^2} \quad\text{단,}\quad \omega_0 = \frac{1}{RC}.

(참고로 $Q = \tfrac{1}{2}$인 상태는 비교적 감쇠가 큰(미분응답이 적은) 저역통과 특성을 제공한다.)

주파수응답 해석

  • 저주파( $s = j\omega$에서 $\omega \rightarrow 0$ )에서는 ∣G(jω)∣≈1,|G(j\omega)| \approx 1, 입력과 출력이 거의 동일하다(버퍼 역할).

  • 고주파( $\omega \rightarrow \infty$ )로 갈수록 분모 항이 매우 커지므로 출력이 급격히 감쇄한다. 이때, 이상적으로는 $-40$ dB/dec 기울기로 roll-off한다(2차 필터이므로).

  • 필터 차수(n=2)로 인해, 1차 RC 필터보다 더 가파르게(2배 더 빠르게) 감쇠한다.

블록선도

이 필터는 2차 저역통과 특성을 갖는 하나의 시스템 블록으로 간단히 표현할 수 있다.

실제 해석이나 Bode 선도 작도 시에는

G(s)=1s2+1RCs+1(RC)2G(s) = \frac{1}{s^2 + \frac{1}{RC} s + \frac{1}{(RC)^2}}

라 놓고, $\omega_0 = \frac{1}{RC}$에서 2차 필터의 cutoff(또는 천이주파수) 부근의 위상, 이득, 감쇠 특성 등을 분석한다.

시뮬레이션 예시 (C++)

아래 코드는 Euler 방식의 간단한 시뮬레이션으로 Sallen–Key 2차 저역통과 필터의 동작을 모사한다. 실제 Op Amp 내부동작까지 엄밀히 반영하진 않고, 순수 2차 미분방정식을 수치 적분하는 방식이다.

코드 해설

  1. 2차 미분방정식 $\frac{d^2 v_\mathrm{out}}{dt^2} + \frac{1}{RC} \frac{dv_\mathrm{out}}{dt} + \frac{1}{(RC)^2} v_\mathrm{out} = \frac{1}{(RC)^2} v_\mathrm{in}$ 을 1차 형태 두 개로 나눠서(상태 변수 $x_1 = v_\mathrm{out},; x_2 = \dot{v}_\mathrm{out}$) Euler 방식으로 푼다.

  2. $v_\mathrm{out}(t)$는 $x_1(t)$로 추적된다.

  3. 입력 $v_\mathrm{in}(t)$는 500 Hz 사인함수로 설정했으며, 필터 결과로 고주파 성분이 얼마나 감쇠되는지 살펴볼 수 있다(다만 500 Hz는 $\omega_0 = 1/(RC)$와의 상대적 크기를 고려해볼 필요가 있다).

  4. 실제 Op Amp 버퍼 구조나 커패시터 병렬연결 상태 등이 더 복잡하게 반영될 수도 있지만, 핵심 2차 저역통과 다이나믹스는 이 연립방정식만으로 충분히 모사 가능하다.


  • Sallen–Key 저역통과 필터는 2차 필터 특성을 Op Amp 버퍼와 단순 RC 네트워크만으로 구현하는 매우 대표적인 예시다.

  • 전달함수는 2차 저역통과 형태인 $\frac{1}{(RC)^2},\frac{1}{s^2 + \frac{1}{RC}s + \frac{1}{(RC)^2}} 로 나타나며, 통상 표준형 ω02s2+2ζω0 s+ω02\frac{\omega_0^2}{s^2 + 2\zeta \omega_0,s + \omega_0^2}$ 에 대응시켜 해석한다. (이득=1, 대칭조건에서 $Q=\tfrac{1}{2}$)

  • 제어공학적으로 2차 저역통과 블록이 필요할 때(노이즈 억제, 고주파 차단) 단순한 하드웨어 구현 방안 중 하나다.

Last updated