비선형 회로 시뮬레이션을 위한 점근법..

생각보다 비선형 소자 (Tr 혹은 Tube, 또는 diode)가 들어간 회로를 시뮬레이션하는 과정에 대해서 너무 쉽게 얘기하고 넘어간 것 같다. 이게 생각만큼 쉽지 않다. 이번에는 쉬어가는 페이지로 그 이유를 생각해보고 어떻게 하면 잘할 수 있는지 적어볼까 한다.

1) 비선형 소자는 명확하게 그 동작을 선형소자처럼 수식으로 표현이 불가능하다. 오직 그 특성을 흉내낸 복잡한 (적어도 지수함수는 포함하는) 함수로 표현이 된다.

2) 비선형 소자는 선형소자와 함께 회로를 이룬다. 이 때 비선형소자의 각 단자 전압에 따라 비선형 소자를 관통하는 전류값을 얻을 수 있다. 따라서 전원 값에 의해서 단번에 단자 전압, 전류값을 얻을 수 없다. 여러 번 시행착오를 거쳐야 알 수 있다.

2)번의 내용이 좀 의미심장한데, 한방에 비선형 소자의 단자들에 어느 정도의 전압이 걸리고 있는지, 그 안을 어느 정도의 전류가 지나가고 있는지 알 수 없단 말이다. 대충 어떤 값을 찍어서 계산해보고 얼마나 어긋나니 찍은 값을 얼마나 조정해야 겠다 정해서 조정하고 다시 전압/전류값을 계산해보고 하는 과정을 통해서 오차를 좁혀나가는 방법으로 해석해야 한다. 얼마나 불편한가?

그리하여 이것을 쉽게 하기 위해 small signal model이니 large signal model이 나오게 되었다. 즉, 입력 신호가 작을 때 거기에 맞춰서 근사를 하고, 입력 신호가 클 때 또 거기 맞춰 근사한 어떤 수식을 쓰는 것이다. 이 방법으로 기타 앰프를 시뮬레이션하면 생각보다 매우 편리하다. 실제로 이 방법을 써서 기타 앰프를 시뮬레이션하는 시뮬레이터가 많다. 이 정도만 해도 다행이다. 대부분은 그만도 못한 경우가 많다.

그러나 ‘시뮬레이터’의 이름이 무색하지 않게 제대로 분석하자면 간단한 계산으로는 도저히 답이 안나온다. 그럴 때 spice를 쓰는 것인데, spice는 이 점근법을 컴퓨터의 도움을 빌어 하는 것이다 매우 높은 정확도로 분석이 가능하다.

spice를 써본 사람은 알겠지만 이것을 실시간 플러긴처럼 돌릴 수는 없다. 요새 컴퓨터가 아무리 좋아졌다하더라도 이것은 실시간으로 하기 힘들다.

Spice에서는 어떠한 방법으로 실제 회로를 시뮬레이션하는 것인지 얘기하고 넘어가자

1) 초기 값을 정한다.

2) 비선형 모델에 단자 전압을 넣고 전류를 얻어 낸다 (대부분의 모델이 그렇다)

3) 얻어낸 전류값으로 다시 단자 전압을 유도한다.

4) 2)-3)의 단자 전압의 오차를 계산한다.

5) 오차가 최소화하는 방향으로 2)-4)과정을 계속 반복하고, 그 오차가 어느 한계 수준이하로 떨어지면 중단한다.

5)의 방법 중에 다양한 방법이 많은데 흔히 알려진 방법 중에 Newton-Raphson 방법이라든가 Runge-Kutta라는 방법들, LMS등등 많은 방법들이 있다. 계산량이라든가 복잡도가 낮으면 여러번 반복해야 되고, 반복회수를 줄이려면 복잡한 계산방법으로 점근해야 한다.