본문 바로가기
Programming/Matlab

DC-DC 컨버터 토폴로지별 전달함수 유도 및 MATLAB 기반 주파수 응답 분석

by linuxgo 2025. 8. 29.

이 문서는 Buck, Boost, Buck-Boost, Ćuk, SEPIC, Zeta, Flyback, Forward 등 주요 DC-DC 컨버터 토폴로지의 동작 원리를 체계적으로 분석한다. 각 컨버터에 대해 스위치 온/오프 상태별로 상태방정식을 유도하고, 이를 시간 평균화(Averaging)하여 소신호 모델(Small-Signal Model)을 정립하였다. 이어서 제어 입력 대비 출력 응답(제어-출력 전달함수)과 입력 전압 대비 출력 응답(라인-출력 전달함수)을 도출하고, 연속전도모드(CCM)를 기준으로 특성을 해석하였다.

분석된 전달함수는 MATLAB을 이용해 Bode Plot으로 시각화하였으며, 이를 통해 각 컨버터의 주파수 응답 특성 및 제어 안정성을 비교할 수 있도록 정리하였다. 특히 절연형 컨버터(예: Flyback, Forward)는 트랜스포머 모델링을 포함하여 설명하였고, 고주파 공진형 컨버터(LLC, CLLC)는 일반화된 상태공간 평균화(GSSA) 및 Extended Describing Function(EDF) 기법을 보완적으로 적용하였다.

본 문서는 이상적인 조건을 전제로 ESR 등 기생 성분을 무시한 모델을 중심으로 작성되었으며, 실제 설계 시 고려해야 할 제어 보상 설계의 기초 자료로 활용될 수 있다.

Keywords: DC-DC Converter, Power Electronics, Small-Signal Modeling, State-Space Averaging, Control-to-Output Transfer Function, Line-to-Output Transfer Function, Frequency Response, MATLAB Bode Plot, Buck, Boost, Buck-Boost, Ćuk, SEPIC, Zeta, Flyback, Forward, Isolated Converter, Resonant Converter, LLC, CLLC

공통 파라미터

  • 입력 전압: \( V_g = 12 \, \text{V} \)
  • 인덕터: \( L = 100 \, \mu\text{H} \), 커패시터: \( C = 100 \, \mu\text{F} \)
  • 부하 저항: \( R = 10 \, \Omega \)
  • 듀티 사이클: \( D = 0.5 \)
  • LLC/CLLC: 공진 인덕터 \( L_r = 10 \, \mu\text{H} \), 공진 커패시터 \( C_r = 0.25 \, \mu\text{F} \), 마그네타이징 인덕터 \( L_m = 50 \, \mu\text{H} \)

1. Buck 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 스위치가 켜져 있을 때, 인덕터 전압과 커패시터 전류는 다음과 같습니다. \[ L \frac{d i_L}{dt} = V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 스위치가 꺼져 있을 때, 다이오드가 전류를 이어줍니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 스위치 온/오프 상태를 듀티 사이클 \( D \)로 가중 평균하여 다음과 같은 상태 방정식을 얻습니다. \[ L \frac{d \bar{i}_L}{dt} = D V_g - \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V + \hat{v} \)로 선형화. \[ L \frac{d \hat{i}_L}{dt} = D \hat{v}_g + V_g \hat{d} - \hat{v}, \quad C \frac{d \hat{v}}{dt} = \hat{i}_L - \frac{\hat{v}}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{\hat{v}}{\hat{d}} = \frac{V}{D} \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2}}, \quad \omega_0 = \frac{1}{\sqrt{L C}}, \quad Q = R \sqrt{\frac{C}{L}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) = \frac{\hat{v}}{\hat{v}_g} \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = D \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2}} \]

MATLAB 코드


% Buck 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;        % 입력 전압 (V)
D = 0.5;         % 듀티 사이클
Vout = Vin * D;  % 출력 전압
L = 100e-6;      % 인덕터 (H)
C = 100e-6;      % 커패시터 (F)
R = 10;          % 부하 저항 (Ohm)

% 전달함수 파라미터
G_d0 = Vout / D; % DC 이득
omega_0 = 1 / sqrt(L * C);
Q = R * sqrt(C / L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Buck 컨버터 제어-출력 전달함수');
grid on;

2. Boost 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 스위치가 켜져 있을 때, 인덕터는 입력 전압에 연결되고 커패시터는 부하에 전류를 공급합니다. \[ L \frac{d i_L}{dt} = V_g, \quad C \frac{d v_C}{dt} = -\frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 스위치가 꺼져 있을 때, 인덕터 전류가 다이오드를 통해 커패시터와 부하로 흐릅니다. \[ L \frac{d i_L}{dt} = V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = V_g - (1 - D) \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = (1 - D) \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V + \hat{v} \). \[ L \frac{d \hat{i}_L}{dt} = \hat{v}_g - (1 - D) \hat{v} + V \hat{d}, \quad C \frac{d \hat{v}}{dt} = (1 - D) \hat{i}_L + I_L \hat{d} - \frac{\hat{v}}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V}{1 - D} \frac{1 - \frac{s L}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L C}{(1 - D)^2}}, \quad \omega_0 = \frac{1 - D}{\sqrt{L C}}, \quad Q = (1 - D) R \sqrt{\frac{C}{L}}, \quad \omega_z = \frac{(1 - D)^2 R}{L} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{1}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L C}{(1 - D)^2}} \]

MATLAB 코드


% Boost 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
Vout = Vin / D_prime;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout / D_prime;
omega_0 = D_prime / sqrt(L * C);
Q = D_prime * R * sqrt(C / L);
omega_z = D_prime^2 * R / L;

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Boost 컨버터 제어-출력 전달함수');
grid on;

3. Buck-Boost 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 인덕터가 입력 전압에 연결됩니다. \[ L \frac{d i_L}{dt} = V_g, \quad C \frac{d v_C}{dt} = -\frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 다이오드를 통해 커패시터로 흐릅니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = D V_g - (1 - D) \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = (1 - D) \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V + \hat{v} \). \[ L \frac{d \hat{i}_L}{dt} = D \hat{v}_g + V_g \hat{d} - (1 - D) \hat{v} - V \hat{d}, \quad C \frac{d \hat{v}}{dt} = (1 - D) \hat{i}_L + I_L \hat{d} - \frac{\hat{v}}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V D}{(1 - D)^2} \frac{1 - \frac{s D L}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L C}{(1 - D)^2}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{D}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L C}{(1 - D)^2}} \]

MATLAB 코드


% Buck-Boost 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
Vout = -Vin * D / D_prime;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * D / D_prime^2;
omega_0 = D_prime / sqrt(L * C);
Q = D_prime * R * sqrt(C / L);
omega_z = D_prime^2 * R / (D * L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Buck-Boost 컨버터 제어-출력 전달함수');
grid on;
        

4. Cuk 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)):

       \[ L_1 \frac{d i_{L1}}{dt} = V_g, \] \[ L_2 \frac{d i_{L2}}{dt} = -v_{C2}, \] \[ C_1 \frac{d v_{C1}}{dt} = i_{L2}, \] \[ C_2 \frac{d v_{C2}}{dt} = -\frac{v_{C2}}{R}. \]

  • 스위치 오프 (\( D T_s \) ~ \( T_s \)):

       \[ L_1 \frac{d i_{L1}}{dt} = V_g - v_{C1}, \] \[ L_2 \frac{d i_{L2}}{dt} = v_{C1} - v_{C2}, \] \[ C_1 \frac{d v_{C1}}{dt} = -i_{L1}, \] \[ C_2 \frac{d v_{C2}}{dt} = i_{L2} - \frac{v_{C2}}{R}. \]

  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균.

        \[ L_1 \frac{d \bar{i}_{L1}}{dt} = V_g - (1 - D) \bar{v}_{C1}, \] \[ L_2 \frac{d \bar{i}_{L2}}{dt} = (1 - D) \bar{v}_{C1} - \bar{v}_{C2}, \] \[ C_1 \frac{d \bar{v}_{C1}}{dt} = (1 - D) (\bar{i}_{L2} - D \bar{i}_{L1}), \] \[ C_2 \frac{d \bar{v}_{C2}}{dt} = \bar{i}_{L2} - \frac{\bar{v}_{C2}}{R}. \]

  • Small-signal 모델:

        \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_{L1} \to I_{L1} + \hat{i}_{L1} \), \( i_{L2} \to I_{L2} + \hat{i}_{L2} \), \( v_{C1} \to V_{C1} + \hat{v}_{C1} \), \( v_{C2} \to V_{C2} + \hat{v}_{C2} \).

        \[ L_1 \frac{d \hat{i}_{L1}}{dt} = \hat{v}_g - (1 - D) \hat{v}_{C1} + V_{C1} \hat{d}, \] \[ L_2 \frac{d \hat{i}_{L2}}{dt} = (1 - D) \hat{v}_{C1} - \hat{v}_{C2} - V_{C1} \hat{d}, \] \[ C_1 \frac{d \hat{v}_{C1}}{dt} = (1 - D) \hat{i}_{L2} - D \hat{i}_{L1} - (I_{L2} + I_{L1}) \hat{d}, \] \[ C_2 \frac{d \hat{v}_{C2}}{dt} = \hat{i}_{L2} - \frac{\hat{v}_{C2}}{R}. \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V (1 + D)}{1 - D} \frac{1 - \frac{s D L}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C_2}{1} + \frac{s^2 L C_2}{(1 - D)^2}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{D}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C_2}{1} + \frac{s^2 L C_2}{(1 - D)^2}} \]

MATLAB 코드

% Cuk 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
Vout = Vin * D / D_prime;
L = 100e-6;
C2 = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * (1 + D) / D_prime;
omega_0 = D_prime / sqrt(L * C2);
Q = D_prime * R * sqrt(C2 / L);
omega_z = D_prime^2 * R / (D * L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Cuk 컨버터 제어-출력 전달함수');
grid on;
        

5. SEPIC 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 인덕터 \( L_1 \)은 입력 전압에, \( L_2 \)는 커패시터 \( C_1 \)에 연결됩니다. \[ L_1 \frac{d i_{L1}}{dt} = V_g, \quad L_2 \frac{d i_{L2}}{dt} = -v_C, \quad C_1 \frac{d v_{C1}}{dt} = i_{L2}, \quad C \frac{d v_C}{dt} = -\frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 커패시터와 부하로 흐릅니다. \[ L_1 \frac{d i_{L1}}{dt} = V_g - v_{C1}, \quad L_2 \frac{d i_{L2}}{dt} = v_{C1} - v_C, \quad C_1 \frac{d v_{C1}}{dt} = -i_{L1}, \quad C \frac{d v_C}{dt} = i_{L1} + i_{L2} - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L_1 \frac{d \bar{i}_{L1}}{dt} = V_g - (1 - D) \bar{v}_{C1}, \quad L_2 \frac{d \bar{i}_{L2}}{dt} = (1 - D) (\bar{v}_{C1} - \bar{v}_C), \quad C_1 \frac{d \bar{v}_{C1}}{dt} = (1 - D) \bar{i}_{L2} - D \bar{i}_{L1}, \quad C \frac{d \bar{v}_C}{dt} = (1 - D) (\bar{i}_{L1} + \bar{i}_{L2}) - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_{L1} \to I_{L1} + \hat{i}_{L1} \), \( i_{L2} \to I_{L2} + \hat{i}_{L2} \), \( v_{C1} \to V_{C1} + \hat{v}_{C1} \), \( v_C \to V_C + \hat{v}_C \). \[ L_1 \frac{d \hat{i}_{L1}}{dt} = \hat{v}_g - (1 - D) \hat{v}_{C1} + V_{C1} \hat{d}, \quad L_2 \frac{d \hat{i}_{L2}}{dt} = (1 - D) (\hat{v}_{C1} - \hat{v}_C) - (V_{C1} - V_C) \hat{d}, \quad C_1 \frac{d \hat{v}_{C1}}{dt} = (1 - D) \hat{i}_{L2} - D \hat{i}_{L1} - (I_{L2} + I_{L1}) \hat{d}, \quad C \frac{d \hat{v}_C}{dt} = (1 - D) (\hat{i}_{L1} + \hat{i}_{L2}) + (I_{L1} + I_{L2}) \hat{d} - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V D}{(1 - D)^2} \frac{1 - \frac{s D (L_1 + L_2)}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 (L_1 + L_2) C}{(1 - D)^2}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{D}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 (L_1 + L_2) C}{(1 - D)^2}} \]

MATLAB 코드


% SEPIC 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
Vout = Vin * D / D_prime;
L1 = 100e-6;
L2 = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * D / D_prime^2;
omega_0 = D_prime / sqrt((L1 + L2) * C);
Q = D_prime * R * sqrt(C / (L1 + L2));
omega_z = D_prime^2 * R / (D * (L1 + L2));

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('SEPIC 컨버터 제어-출력 전달함수');
grid on;
        

6. Zeta 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 인덕터 \( L_1 \)은 입력 전압에, \( L_2 \)는 커패시터에 연결됩니다. \[ L_1 \frac{d i_{L1}}{dt} = V_g - v_C, \quad L_2 \frac{d i_{L2}}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_{L1} - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 부하로 흐릅니다. \[ L_1 \frac{d i_{L1}}{dt} = V_g, \quad L_2 \frac{d i_{L2}}{dt} = v_C, \quad C \frac{d v_C}{dt} = i_{L2} - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L_1 \frac{d \bar{i}_{L1}}{dt} = V_g - D \bar{v}_C, \quad L_2 \frac{d \bar{i}_{L2}}{dt} = (1 - D) \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = D \bar{i}_{L1} + (1 - D) \bar{i}_{L2} - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_{L1} \to I_{L1} + \hat{i}_{L1} \), \( i_{L2} \to I_{L2} + \hat{i}_{L2} \), \( v_C \to V_C + \hat{v}_C \). \[ L_1 \frac{d \hat{i}_{L1}}{dt} = \hat{v}_g - D \hat{v}_C - V_C \hat{d}, \quad L_2 \frac{d \hat{i}_{L2}}{dt} = (1 - D) \hat{v}_C - V_C \hat{d}, \quad C \frac{d \hat{v}_C}{dt} = D \hat{i}_{L1} + (1 - D) \hat{i}_{L2} + (I_{L1} - I_{L2}) \hat{d} - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V}{1 - D} \frac{1 - \frac{s D L_2}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L_2 C}{(1 - D)^2}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{D}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C}{1} + \frac{s^2 L_2 C}{(1 - D)^2}} \]

MATLAB 코드


% Zeta 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
Vout = Vin * D / D_prime;
L2 = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout / D_prime;
omega_0 = D_prime / sqrt(L2 * C);
Q = D_prime * R * sqrt(C / L2);
omega_z = D_prime^2 * R / (D * L2);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Zeta 컨버터 제어-출력 전달함수');
grid on;
        

7. Flyback 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 트랜스포머 1차 측에 전압이 인가됩니다. \[ L_m \frac{d i_m}{dt} = V_g, \quad C \frac{d v_C}{dt} = -\frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 2차 측으로 에너지가 전달됩니다. \[ L_m \frac{d i_m}{dt} = -\frac{v_C}{n}, \quad C \frac{d v_C}{dt} = \frac{i_m}{n} - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L_m \frac{d \bar{i}_m}{dt} = D V_g - (1 - D) \frac{\bar{v}_C}{n}, \quad C \frac{d \bar{v}_C}{dt} = (1 - D) \frac{\bar{i}_m}{n} - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_m \to I_m + \hat{i}_m \), \( v_C \to V_C + \hat{v}_C \). \[ L_m \frac{d \hat{i}_m}{dt} = D \hat{v}_g + V_g \hat{d} - (1 - D) \frac{\hat{v}_C}{n} + \frac{V_C}{n} \hat{d}, \quad C \frac{d \hat{v}_C}{dt} = (1 - D) \frac{\hat{i}_m}{n} - \frac{I_m}{n} \hat{d} - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V D n}{(1 - D)^2} \frac{1 - \frac{s D L_m}{(1 - D)^2 R}}{1 + \frac{s (1 - D) R C n^2}{1} + \frac{s^2 L_m C}{(1 - D)^2 n^2}} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = \frac{D n}{1 - D} \frac{1}{1 + \frac{s (1 - D) R C n^2}{1} + \frac{s^2 L_m C}{(1 - D)^2 n^2}} \]

MATLAB 코드


% Flyback 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
D_prime = 1 - D;
n = 1;
Vout = Vin * D * n / D_prime;
Lm = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * D * n / D_prime^2;
omega_0 = D_prime / sqrt(Lm * C / n^2);
Q = D_prime * R * sqrt(C * n^2 / Lm);
omega_z = D_prime^2 * R / (D * Lm);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 * (1 - s/omega_z) / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Flyback 컨버터 제어-출력 전달함수');
grid on;
        

8. Forward 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 트랜스포머 1차 측에 전압이 인가되고, 2차 측에서 출력으로 전류가 흐릅니다. \[ L \frac{d i_L}{dt} = n V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 프리휠링 다이오드를 통해 흐릅니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = D n V_g - \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V_C + \hat{v}_C \). \[ L \frac{d \hat{i}_L}{dt} = D n \hat{v}_g + n V_g \hat{d} - \hat{v}_C, \quad C \frac{d \hat{v}_C}{dt} = \hat{i}_L - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V n}{D} \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = D n \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]

MATLAB 코드


% Forward 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
n = 1;
Vout = Vin * D * n;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * n / D;
omega_0 = 1 / sqrt(L * C);
Q = R * sqrt(C / L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Forward 컨버터 제어-출력 전달함수');
grid on;
        

9. Push-Pull 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \), 두 스위치 교대로): 트랜스포머 2차 측에서 출력으로 전류가 흐릅니다. \[ L \frac{d i_L}{dt} = 2 n V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 프리휠링 다이오드를 통해 흐릅니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = 2 D n V_g - \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V_C + \hat{v}_C \). \[ L \frac{d \hat{i}_L}{dt} = 2 D n \hat{v}_g + 2 n V_g \hat{d} - \hat{v}_C, \quad C \frac{d \hat{v}_C}{dt} = \hat{i}_L - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V n}{D} \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = 2 D n \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]

MATLAB 코드


% Push-Pull 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
n = 1;
Vout = Vin * 2 * D * n;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * n / D;
omega_0 = 1 / sqrt(L * C);
Q = R * sqrt(C / L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Push-Pull 컨버터 제어-출력 전달함수');
grid on;
        

10. Half-Bridge 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \)): 트랜스포머 2차 측에서 출력으로 전류가 흐릅니다. \[ L \frac{d i_L}{dt} = n V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 프리휠링 다이오드를 통해 흐릅니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = D n V_g - \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V_C + \hat{v}_C \). \[ L \frac{d \hat{i}_L}{dt} = D n \hat{v}_g + n V_g \hat{d} - \hat{v}_C, \quad C \frac{d \hat{v}_C}{dt} = \hat{i}_L - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V n}{D} \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = D n \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]

MATLAB 코드


% Half-Bridge 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
n = 1;
Vout = Vin * D * n;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * n / D;
omega_0 = 1 / sqrt(L * C);
Q = R * sqrt(C / L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Half-Bridge 컨버터 제어-출력 전달함수');
grid on;
        

11. Full-Bridge 컨버터

상태 방정식 유도

  • 스위치 온 (0 ~ \( D T_s \), 두 쌍의 스위치 교대로): 트랜스포머 2차 측에서 출력으로 전류가 흐릅니다. \[ L \frac{d i_L}{dt} = 2 n V_g - v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 스위치 오프 (\( D T_s \) ~ \( T_s \)): 인덕터 전류가 프리휠링 다이오드를 통해 흐릅니다. \[ L \frac{d i_L}{dt} = -v_C, \quad C \frac{d v_C}{dt} = i_L - \frac{v_C}{R} \]
  • 평균화된 상태 방정식: 듀티 사이클 \( D \)로 가중 평균. \[ L \frac{d \bar{i}_L}{dt} = 2 D n V_g - \bar{v}_C, \quad C \frac{d \bar{v}_C}{dt} = \bar{i}_L - \frac{\bar{v}_C}{R} \]
  • Small-signal 모델: \( D \to D + \hat{d} \), \( V_g \to V_g + \hat{v}_g \), \( i_L \to I_L + \hat{i}_L \), \( v_C \to V_C + \hat{v}_C \). \[ L \frac{d \hat{i}_L}{dt} = 2 D n \hat{v}_g + 2 n V_g \hat{d} - \hat{v}_C, \quad C \frac{d \hat{v}_C}{dt} = \hat{i}_L - \frac{\hat{v}_C}{R} \]

전달함수

  • 제어-출력 전달함수: \[ G_{vd}(s) = \frac{V n}{D} \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 \( \hat{d} = 0 \)으로 설정하여 유도. \[ G_{vg}(s) = 2 D n \frac{1}{1 + \frac{s L}{R} + s^2 L C} \]

MATLAB 코드


% Full-Bridge 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
D = 0.5;
n = 1;
Vout = Vin * 2 * D * n;
L = 100e-6;
C = 100e-6;
R = 10;

% 전달함수 파라미터
G_d0 = Vout * n / D;
omega_0 = 1 / sqrt(L * C);
Q = R * sqrt(C / L);

% 제어-출력 전달함수 G_vd(s)
s = tf('s');
G_vd = G_d0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vd, {1e2, 1e6});
title('Full-Bridge 컨버터 제어-출력 전달함수');
grid on;
        

12. LLC 공진 컨버터

상태 방정식 유도

  • 스위치 온/오프 (주파수 변조): LLC 컨버터는 주파수 변조로 제어되며, 공진 탱크의 동역학을 고려. 입력 전압 \( v_{in} \)은 스위칭 주파수 \( f_s \)에 따라 구형파로 나타냅니다. \[ L_r \frac{d i_{Lr}}{dt} = v_{in} - v_{Cr} - n v_o, \quad C_r \frac{d v_{Cr}}{dt} = i_{Lr} - i_{Lm}, \quad L_m \frac{d i_{Lm}}{dt} = n v_o, \quad C \frac{d v_o}{dt} = n |i_{Lm}| - \frac{v_o}{R} \]
  • 평균화된 상태 방정식 (GSSA): Generalized State-Space Averaging (GSSA)를 사용해 공진 변수의 기본파 성분을 추출. \[ i_{Lr}(t) \approx I_{Lr,dc} + I_{Lr,1} \sin(\omega_s t + \phi_{Lr}), \quad v_{Cr}(t) \approx V_{Cr,dc} + V_{Cr,1} \sin(\omega_s t + \phi_{Cr}) \] 평균화된 방정식은 EDF로 정밀화.
  • Small-signal 모델: 주파수 변조 \( f_s \to f_s + \hat{f}_s \), \( v_g \to V_g + \hat{v}_g \), \( v_o \to V_o + \hat{v}_o \)로 선형화. EDF를 통해 공진 탱크의 기본파 성분 변화를 추적.

전달함수 (근사화)

  • DC 이득: \[ M = \frac{V}{V_g} = \frac{2 n f_s / f_r}{1 + \frac{L_r}{L_m} \left(1 - \left(\frac{f_r}{f_s}\right)^2\right)}, \quad f_r = \frac{1}{2\pi \sqrt{L_r C_r}} \]
  • 제어-출력 전달함수: \[ G_{vf}(s) = \frac{\hat{v}_o}{\hat{f}_s} \approx \frac{\partial M}{\partial f_s} V_g \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2}}, \quad \omega_0 = \frac{1}{\sqrt{L_r C_r}}, \quad Q = \frac{\sqrt{L_r / C_r}}{R_{eq}}, \quad R_{eq} = \frac{8 n^2 R}{\pi^2} \]
  • 라인-출력 전달함수: \( G_{vg}(s) = \frac{\hat{v}_o}{\hat{v}_g} \)는 EDF 또는 근사화로 유도 가능. \[ G_{vg}(s) \approx \frac{\partial M}{\partial V_g} \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2}} \]

Extended Describing Function (EDF) 분석

EDF는 공진 탱크의 비선형 특성을 정밀히 모델링하며, 공진 전류 \( i_{Lr} \), 공진 커패시터 전압 \( v_{Cr} \), 마그네타이징 전류 \( i_{Lm} \), 출력 전압 \( v_o \)를 상태 변수로 사용합니다.

  • EDF 모델링: 신호를 기본파와 DC 성분으로 근사화. \[ i_{Lr}(t) \approx I_{Lr,dc} + I_{Lr,1} \sin(\omega_s t + \phi_{Lr}), \quad v_{Cr}(t) \approx V_{Cr,dc} + V_{Cr,1} \sin(\omega_s t + \phi_{Cr}) \]
  • Small-signal 분석: 주파수 변조를 적용해 선형화. \[ G_{vf}(s) \approx \frac{k V_g}{s^2 + \frac{\omega_r}{Q} s + \omega_r^2}, \quad k \text{는 EDF 계산으로 유도} \]
  • 참고: EDF 기반 전달함수는 수치적 계산(예: MATLAB symbolic toolbox) 권장.

MATLAB 코드 (근사화 기반)


% LLC 공진 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
n = 1;
Vout = 5;
Lr = 10e-6;
Cr = 0.25e-6;
Lm = 50e-6;
R = 10;
fr = 1 / (2 * pi * sqrt(Lr * Cr));
R_eq = 8 * n^2 * R / pi^2;
Q = sqrt(Lr / Cr) / R_eq;

% 전달함수 파라미터 (근사화)
omega_0 = 2 * pi * fr;
G_f0 = Vout / fr;
Q = 0.5;

% 제어-출력 전달함수 G_vf(s)
s = tf('s');
G_vf = G_f0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2));

% Bode 플롯
figure;
bode(G_vf, {1e3, 1e7});
title('LLC 컨버터 제어-출력 전달함수');
grid on;
        

13. CLLC 공진 컨버터

상태 방정식 유도

  • 스위치 온/오프 (주파수 변조): CLLC는 2차 측 공진 커패시터 \( C_r' \)를 추가하며, 공진 탱크 동역학은 다음과 같습니다. \[ L_r \frac{d i_{Lr}}{dt} = v_{in} - v_{Cr} - n v_{Cr'}, \quad C_r \frac{d v_{Cr}}{dt} = i_{Lr} - i_{Lm}, \quad L_m \frac{d i_{Lm}}{dt} = n v_{Cr'}, \quad C_r' \frac{d v_{Cr'}}{dt} = n i_{Lm} - \frac{v_o}{R} \]
  • 평균화된 상태 방정식 (GSSA): GSSA를 사용해 공진 변수의 기본파 성분을 추출. \[ i_{Lr}(t) \approx I_{Lr,dc} + I_{Lr,1} \sin(\omega_s t + \phi_{Lr}), \quad v_{Cr}(t) \approx V_{Cr,dc} + V_{Cr,1} \sin(\omega_s t + \phi_{Cr}), \quad v_{Cr'}(t) \approx V_{Cr',dc} + V_{Cr',1} \sin(\omega_s t + \phi_{Cr'}) \]
  • Small-signal 모델: 주파수 변조 \( f_s \to f_s + \hat{f}_s \), \( v_g \to V_g + \hat{v}_g \), \( v_o \to V_o + \hat{v}_o \)로 선형화. EDF로 정밀화.

전달함수 (근사화)

  • DC 이득: \[ M = \frac{V}{V_g} = \frac{2 n f_s / f_r}{1 + \frac{L_r}{L_m} \left(1 - \left(\frac{f_r}{f_s}\right)^2\right)}, \quad f_r = \frac{1}{2\pi \sqrt{L_r C_r}} \]
  • 제어-출력 전달함수: \[ G_{vf}(s) \approx \frac{\partial M}{\partial f_s} V_g \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2} + \frac{s^3}{\omega_1^3}}, \quad \omega_0 = \frac{1}{\sqrt{L_r C_r}}, \quad \omega_1 \approx 1.5 \omega_0 \]
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 EDF 또는 근사화로 유도 가능. \[ G_{vg}(s) \approx \frac{\partial M}{\partial V_g} \frac{1}{1 + \frac{s}{Q \omega_0} + \frac{s^2}{\omega_0^2} + \frac{s^3}{\omega_1^3}} \]

Extended Describing Function (EDF) 분석

CLLC는 2차 측 공진 커패시터 \( C_r' \)로 추가적인 공진 동역학을 가지며, EDF로 양방향 공진을 모델링합니다.

  • EDF 모델링: 신호를 기본파와 DC 성분으로 근사화. \[ i_{Lr}(t) \approx I_{Lr,dc} + I_{Lr,1} \sin(\omega_s t + \phi_{Lr}), \quad v_{Cr}(t) \approx V_{Cr,dc} + V_{Cr,1} \sin(\omega_s t + \phi_{Cr}), \quad v_{Cr'}(t) \approx V_{Cr',dc} + V_{Cr',1} \sin(\omega_s t + \phi_{Cr'}) \]
  • Small-signal 분석: 주파수 변조를 적용해 선형화. \[ G_{vf}(s) \approx \frac{k V_g}{s^3 + a_2 s^2 + a_1 s + a_0}, \quad a_0, a_1, a_2 \text{는 EDF 계산으로 결정} \]
  • 참고: EDF 기반 전달함수는 수치적 계산(예: MATLAB symbolic toolbox) 권장.

MATLAB 코드 (근사화 기반)


% CLLC 공진 컨버터 전달함수 분석
clear all; close all;

% 파라미터 설정
Vin = 12;
n = 1;
Vout = 5;
Lr = 10e-6;
Cr = 0.25e-6;
Lm = 50e-6;
Cr_prime = 0.25e-6;
R = 10;
fr = 1 / (2 * pi * sqrt(Lr * Cr));
R_eq = 8 * n^2 * R / pi^2;
Q = sqrt(Lr / Cr) / R_eq;

% 전달함수 파라미터 (근사화)
omega_0 = 2 * pi * fr;
G_f0 = Vout / fr;
Q = 0.5;
omega_1 = 1.5 * omega_0;

% 제어-출력 전달함수 G_vf(s)
s = tf('s');
G_vf = G_f0 / (1 + s/(Q*omega_0) + s^2/(omega_0^2) + s^3/(omega_1^3));

% Bode 플롯
figure;
bode(G_vf, {1e3, 1e7});
title('CLLC 컨버터 제어-출력 전달함수');
grid on;
        

주의사항

  • 파라미터: 예시 값 사용, 실제 설계에 맞게 조정 필요.
  • 상태 방정식: 각 토폴로지에 대해 스위치 온/오프 상태별로 상세히 유도.
  • 공진형 컨버터: LLC/CLLC 전달함수는 근사화와 EDF 분석 포함. 정밀 분석은 EDF 기반 수치적 계산 권장.
  • 라인-출력 전달함수: \( G_{vg}(s) \)는 상태 방정식 또는 EDF 기법으로 유도 가능.
  • 시뮬레이션: 기생 성분(ESR 등) 미포함, SPICE로 보완 권장.

결론 (Conclusion)

본 문서에서는 주요 DC-DC 컨버터 토폴로지에 대해 상태방정식을 기반으로 한 소신호 모델링 과정을 체계적으로 정리하고, 제어-출력 및 라인-출력 전달함수를 유도하였다. MATLAB을 활용하여 Bode Plot을 도출함으로써 각 컨버터의 주파수 응답 특성을 비교·분석할 수 있었으며, 이를 통해 제어기 설계 시 고려해야 할 안정성 및 대역폭 특성을 확인할 수 있었다.

비절연형 컨버터(Buck, Boost, Buck-Boost, Ćuk, SEPIC, Zeta)는 상대적으로 단순한 모델을 가지며 제어 보상기 설계 시 기본적인 비교 기준이 되었다. 반면, 절연형 컨버터(Flyback, Forward)는 트랜스포머 모델링으로 인해 주파수 특성이 복잡해졌으며, 특히 공진형(LLC, CLLC) 컨버터는 기존 평균화 모델로는 설명하기 어려운 고주파 동작 특성을 보여 별도의 해석 기법이 필요함을 확인하였다.

따라서 본 문서에서 제시한 전달함수 유도 및 MATLAB 기반 분석 결과는

  1. 각 컨버터의 제어기 설계 시 주파수 응답을 예측하는 기초 자료,
  2. 다양한 토폴로지 간 성능 및 제어 특성을 비교하는 기준,
  3. 향후 ESR, 자기소자 손실, 비이상적 스위치 특성을 포함한 확장 연구의 기반

으로 활용될 수 있다.

Keywords: DC-DC Converter, Power Electronics, Small-Signal Modeling, State-Space Averaging, Control-to-Output Transfer Function, Line-to-Output Transfer Function, Frequency Response, MATLAB Bode Plot, Buck, Boost, Buck-Boost, Ćuk, SEPIC, Zeta, Flyback, Forward, Isolated Converter, Resonant Converter, LLC, CLLC