콘텐츠로 이동

브라우저 시뮬레이터의 동작 원리

  • 스위칭 컨버터가 스위칭 구간마다 선형 회로인 이유와, 그 구간을 정확한 해로 계산한다는 것이 무엇인지 봅니다.
  • 빠른 시정수(time constant)에서 정확한 스텝과 단순한 적분 규칙(integration rule)을 비교합니다.
  • 시뮬레이터가 주기적 정상상태(periodic steady state)를 찾는 방법과, 그 방법이 정지 상태에서 시작하는 시뮬레이션에 비해 무엇을 절약하는지 압니다.

두 스위칭 이벤트(event) 사이에서 시뮬레이터의 모든 스위치와 다이오드는 켜져 있거나 꺼져 있으며, 남는 것은 저항, 인덕턴스, 커패시턴스, 일정한 전원으로 된 선형 회로입니다. 그 상태, 곧 인덕터 전류와 커패시터 전압은 구간마다 일정한 전원을 가진 선형 미분 방정식을 따릅니다. 상태 공간 평균화(state-space averaging)도 이 모델에서 출발합니다 [Erickson & Maksimović 2020, Ch. 7]. 저항을 통해 충전되는 커패시터에서는 스텝이 아무리 길어도 한 스텝 동안의 해가 정확합니다.

v1=v∞+(v0−v∞)e−Δtτv_1 = v_\infty + \left(v_0 - v_\infty\right) e^{- \frac{\Delta t}{\tau}}
v1v_1
스텝이 끝날 때의 전압
Δt\Delta t
타임 스텝
τ\tau
시정수(time constant)
v0v_0
스텝을 시작할 때의 전압
v∞v_\infty
다가가는 최종 전압
1차 회로의 정확한 타임 스텝 하나✓ 테스트 8개로 검증됨
가정, 표기 규약, 출처
가정
  • 스텝 동안 회로가 선형이고 전원이 일정함
  • 계단 입력에 대한 단일 극점(1차) 응답
비고
스텝마다 v∞v_\infty와의 편차에 e−Δt/τe^{-\Delta t/\tau}를 곱합니다. 이 값은 스텝이 아무리 길어도 0과 1 사이이므로, 스텝은 정확하고 편차는 커질 수 없습니다. 인덕터 전류도 시정수 L/R로 같은 법칙을 따릅니다
출처
Alexander & Sadiku 2017, Ch. 7 (First-Order Circuits: the complete response); derived here
유도
sympy 단계별 유도
수식 id
sim.exact_step · equations.yaml 항목

상태가 여럿인 회로에서는 방정식 행렬의 지수 함수로 모든 상태를 한꺼번에 계산하며, 시뮬레이터는 이 행렬 지수 함수를 스케일링·제곱법(scaling and squaring)으로 구합니다 [Higham 2005]. 구간 안에서는 반올림 말고는 아무것도 근사하지 않으므로, 스텝의 길이가 스텝 끝에서 얻는 상태의 정확도를 제한하지 않습니다. 그래도 시뮬레이터는 주기의 2000분의 1 이하인 짧은 하위 스텝(sub-step)으로 나누어 계산합니다. 이벤트를 찾아야 하기 때문입니다. 긴 스텝 안에서는 다이오드가 켜졌다가 다시 꺼져도 보이지 않을 수 있습니다 (계산 방법).

빠른 시정수에서의 단순한 규칙

섹션 제목: “빠른 시정수에서의 단순한 규칙”

범용 적분기는 그 대신 작은 스텝으로 해를 근사합니다. 가장 단순한 규칙인 전진 오일러(forward Euler)는 스텝 시작점의 기울기로 다음 값을 계산하며, 감쇠 모드의 편차에 스텝마다 일정한 배율을 곱합니다 [Hairer & Wanner 1996].

gFE=1−Δtτg_\mathrm{FE} = 1 - \frac{\Delta t}{\tau}
gFEg_\mathrm{FE}
전진 오일러의 스텝당 배율
Δt\Delta t
타임 스텝
τ\tau
시정수(time constant)
감쇠 모드에 대한 전진 오일러의 스텝당 배율✓ 테스트 8개로 검증됨
가정, 표기 규약, 출처
가정
  • 감쇠 모드 하나만 따로 봄: 변화율이 편차를 tau로 나눈 값의 음수와 같음(시험 방정식)
  • 모든 스텝에서 같은 타임 스텝
비고
이 규칙은 스텝 시작점의 기울기를 씁니다. 배율은 스텝이 2τ2\tau보다 짧을 때만 -1과 1 사이에 머뭅니다. 스텝이 더 길면 편차에 크기가 1보다 큰 값을 곱하고 매 스텝 부호를 뒤집으므로, 해가 한없이 커집니다. 그러면 작은 저항 뒤의 작은 노드 커패시턴스처럼 회로에서 가장 짧은 시정수가 회로 전체의 스텝을 제한합니다
출처
Hairer & Wanner 1996, Sec. IV.2 (Stability Analysis for Explicit RK Methods: explicit Euler); derived here
유도
sympy 단계별 유도
수식 id
num.gain_fe · equations.yaml 항목

스텝이 시정수의 두 배보다 길면 배율의 크기가 1보다 커져 해가 한없이 커집니다. 컨버터에는 작은 저항 뒤의 스위치 노드 커패시턴스처럼 빠른 시정수가 출력 필터의 느린 시정수와 함께 있습니다. 이런 규칙은 가장 빠른 시정수보다 짧은 스텝으로, 가장 느린 시정수가 요구하는 만큼 많은 주기를 계산해야 합니다. SPICE는 스텝 길이와 관계없이 감쇠 모드가 커지지 않게 하는 암시적(implicit) 규칙으로 발산을 피합니다(ngspice 페이지 참고).

구간은 스위치의 상태가 바뀔 때 끝납니다. 게이트의 에지, 그리고 다이오드 전류가 0에 닿거나 전압이 다이오드를 켤 때입니다. 시뮬레이터는 같은 정확한 해를 써서 스텝 안에서 그 순간을 찾으므로, 다음 구간이 올바른 상태에서 시작합니다 (계산 방법).

필터가 진동하는 CCM에서, 정지 상태에서 시작한 컨버터 출력은 필터의 포락선 시정수로 정착하며(포락선 시정수), 시작 오차의 작은 비율까지 줄어드는 데 많은 주기가 걸립니다(정착까지의 주기 수). 시뮬레이터는 그 대신 한 주기를 지나도 그대로 돌아오는 주기 시작의 상태를 찾습니다. 이것이 주기적 정상상태이며, 한 주기의 초기 상태를 다음 주기의 초기 상태로 보내는 사상(map)의 고정점(fixed point)입니다. 뉴턴법(Newton’s method)은 사상의 도함수, 곧 주기 끝의 상태가 주기 시작의 상태에 따라 어떻게 달라지는지를 써서 몇 번의 반복으로 이 고정점을 찾습니다 [Aprille & Trick 1972]. 컨버터에서 이 도함수는 스텝 행렬들의 곱이며, 다이오드 전류가 0에 닿는 것처럼 시각이 상태에 따라 달라지는 이벤트마다 보정됩니다 (계산 방법). 전류가 0 위에 머물고 스위치 양단에 커패시턴스가 없는 벅처럼 스위칭 순간도 구간의 순서도 상태에 따라 달라지지 않으면, 사상은 아핀(affine), 곧 행렬과 상태의 곱에 상수를 더한 것이 되며, 정상상태가 하나뿐이면 뉴턴 스텝 한 번으로 거기에 도달합니다.

시정수 10나노초로 어떤 전압을 향해 충전되는 커패시턴스를 50나노초 스텝으로 계산합니다.

정확한 스텝 예제
기호값구하는 방법
v0v_0 스텝을 시작할 때의 전압0 V주어진 값
v∞v_\infty 다가가는 최종 전압10 V주어진 값
τ\tau 시정수(time constant)10 ns주어진 값
Δt\Delta t 타임 스텝50 ns주어진 값
v1v_1 스텝이 끝날 때의 전압9.93 V1차 회로의 정확한 타임 스텝 하나
gFEg_\mathrm{FE} 전진 오일러의 스텝당 배율−4감쇠 모드에 대한 전진 오일러의 스텝당 배율

시정수의 다섯 배인 스텝 한 번에, 정확한 스텝은 커패시터 전압을 0 V에서 9.93 V까지 올립니다. 같은 스텝에서 전진 오일러의 배율은 −4입니다. 첫 스텝에서 전압은 최종 전압의 반대편, 처음보다 네 배 먼 곳에 놓이며, 이후 스텝마다 같은 일이 되풀이됩니다.

▶ 수식 탐색기에서 열기: 감쇠 모드에 대한 전진 오일러의 스텝당 배율
초기값을 가져온 예제 sim-exact-step

스텝을 바꿔 봅니다. 전진 오일러의 배율은 스텝이 시정수의 두 배보다 짧을 때만 크기가 1 이하입니다.

▶ 수식 탐색기에서 열기: 1차 회로의 정확한 타임 스텝 하나
초기값을 가져온 예제 sim-exact-step

정확한 스텝은 스텝이 아무리 길어도 최종 전압에 다가갑니다. 벅 예제로 시뮬레이터를 열어 봅니다. 정상상태를 기동 과정 없이 바로 계산합니다.

▶ 시뮬레이터에서 열기: 벅
초기값을 가져온 예제 buck-basic

함수 발생기의 구형파로 저항을 통해 커패시터를 충전하고, 커패시터 전압을 캡처합니다. 반주기가 시작될 때와 시정수 하나 뒤의 값을 읽어 정확한 스텝과 비교합니다. 그런 다음 시정수 두 배 간격으로 떨어진 샘플을 잡고, 첫 샘플에서부터 손으로 전진 오일러 규칙을 적용합니다. 첫 스텝부터 이미 최종 전압을 지나치지만, 회로는 그러지 않습니다.

  • 정상상태는 기동 과정이 아닙니다. 정상상태가 있으면 시뮬레이터는 그것을 보여 주며, 벤치에서 기동하거나 부하가 계단 변화할 때 지나는 과도 과정은 보여 주지 않습니다. 정지 상태에서 시작하는 기동 과정은 정상상태를 찾지 못했을 때만 그립니다.
  • 작은 스텝만으로는 명시적(explicit) 규칙이 안정해지지 않습니다. 진동 없이 감쇠하는 모드라면 스텝은 가장 빠른 시정수의 두 배보다 짧아야 하며, 그 모드가 너무 빨라 결과에 중요하지 않을 때도 마찬가지입니다(전진 오일러의 배율). 감쇠가 작은 링잉에는 훨씬 더 짧은 스텝이 필요하고, 감쇠 없는 링잉은 어떤 스텝에서도 커집니다 [Hairer & Wanner 1996, Sec. IV.2].
  • 그래프는 샘플을 그립니다. 하위 스텝보다 좁은 피크는 보고된 수치에는 있어도 그래프에는 없을 수 있습니다.
  • 도서 챕터 AC Equivalent Circuit Modeling (Ch. 7) — R. W. Erickson, D. Maksimović · 확인일 2026-09-23
    컨버터 방정식의 평균화·섭동·선형화와 PWM 변조기의 소신호 모델.
  • 강좌 6.002 Circuits and Electronics (Spring 2007) — A. Agarwal, MIT OpenCourseWare (course content by A. Agarwal and J. H. Lang) · 확인일 2026-09-23
    동영상 강의, 강의 노트, 연습 문제를 갖춘 MIT의 첫 회로 과목.
  1. 시뮬레이터가 각 스위칭 구간을 정확한 해로 계산할 수 있는 이유는 무엇입니까?

    1. 아주 작은 스텝을 써서
    2. 브라우저에서 SPICE를 실행해서
    3. 구간 안에서 회로는 일정한 전원을 가진 선형 회로이고, 그 해는 계산할 수 있는 지수 함수여서
    4. 컨버터에는 커패시터가 없어서
    정답과 해설

    정답: C 구간 안에서 모든 스위치와 다이오드는 켜져 있거나 꺼져 있으며, 회로 행렬의 지수 함수가 어떤 스텝에서도 정확한 해를 줍니다.

  2. 커패시터가 시정수 10 ns로 0 V에서 10 V를 향해 충전됩니다. 10 ns의 정확한 스텝 한 번 뒤 전압은 얼마입니까?

    1. 약 6.3 V
    2. 약 3.7 V
    3. 10 V
    4. 5 V
    정답과 해설

    정답: A 10 V와의 편차는 시정수 하나 동안 e배 줄어듭니다. 10 V × (1 - 1/e)는 약 6.3 V입니다.

  3. 전진 오일러로 시정수 10 ns인 모드를 50 ns 스텝으로 계산합니다. 스텝마다 편차에 곱해지는 값은 얼마입니까?

    1. 약 0.007
    2. 1
    3. -4
    4. -1
    정답과 해설

    정답: C 1에서 스텝을 시정수로 나눈 값을 빼면 1 - 5입니다. 편차는 스텝마다 네 배로 커지며 부호를 바꿉니다.

  4. 진동 없이 감쇠하는 모드를 전진 오일러가 키우지 않는 스텝의 한계는 얼마입니까?

    1. 시정수의 절반
    2. 시정수
    3. 어떤 스텝이든
    4. 시정수의 두 배
    정답과 해설

    정답: D 배율, 곧 1에서 스텝을 시정수로 나눈 값을 뺀 것은 스텝이 시정수의 두 배 이하일 때만 크기가 1 이하입니다. 진동하는 모드에는 더 짧은 스텝이 필요합니다.

  5. 시뮬레이터는 주기적 정상상태를 어떻게 찾습니까?

    1. 한 주기를 지나도 그대로 돌아오는 주기 시작의 상태를 뉴턴법으로 구한다
    2. 정지 상태에서 아무것도 바뀌지 않을 때까지 시뮬레이션한다
    3. 평균 모델을 쓴다
    4. ngspice에서 읽어 온다
    정답과 해설

    정답: A 정상상태는 한 주기의 시작을 다음 주기의 시작으로 보내는 사상의 고정점이며, 뉴턴법이 사상의 도함수로 이를 찾습니다.

  6. 전류가 0 위에 머물고 스위치 양단에 커패시턴스가 없는 벅에서는 원리적으로 뉴턴 스텝이 몇 번 필요합니까?

    1. 수백 번
    2. 한 번. 그때 주기 사상이 아핀, 곧 행렬과 상태의 곱에 상수를 더한 것이라서
    3. 포락선 시정수의 수만큼
    4. 필요 없다
    정답과 해설

    정답: B 스위칭 순간도 구간의 순서도 상태에 따라 달라지지 않으며, 뉴턴법은 해가 하나뿐인 아핀 방정식을 한 번에 풉니다. 다이오드 전류가 0에 닿거나, 스위치 양단 커패시턴스의 전압이 먼저 스윙해야 하면 스위칭 순간이 상태에 따라 달라지므로 뉴턴 스텝이 몇 번 필요합니다.

이 사이트의 예제, 프리셋, 연습 문제에 나오는 수치는 교육용으로 만든 어림수(합성 값)이며, 실제 설계의 데이터가 아닙니다.