
SIMULATION
DESIGN
- POWER =60W
- VIN=12V
- VOUT=72V
· Lm =148μH, Lk = 0.3μH
· the turns ratio of coupled inductor n = Ns/Np =3
· OPERATING FREQUENCY OF THE SWITCH (MOSFET HERE) =100KHz
· Gain formula of converter = ( (2‑D) / (1‑D) )+n
OUTPUT CURRENT
IOUT = POUT / VOUT
IOUT = 60W / 72V
IOUT = 0.833A
INPUT CURRENT
Assume that the converter efficiency is about 100%
POUT = PIN
IOUT = PIN / VIN
IOUT = 60W / 12V
IOUT = 5A
VOLTAGE GAIN CALCULATION
Gain = VOUT / VIN
VIN = 12V
VOUT = 72V
Gain = 72V / 12V
Gain = 6
DUTY CYCLE CALCULATION
Voltage gain of converter = ( (2‑D) / (1‑D) )+n
6 = ( (2‑D) / (1‑D) )+3
3 = (2‑D) / (1‑D)
3(1‑D) = 2‑D
3‑3D = 2‑D
1 = 2D
D = 0.5
D = 50 %
Coupling coefficient calculation
We have,
The coupling coefficient of coupled inductor, k = Lm / (Lm + Lk)
Lm =148μH, Lk = 0.3μH
K = 148μH / (148μH + 0.3μH) = 0.997
COUPLED INDUCTOR DESIGN
Here core used is ETD‑59. From the datasheet of ETD‑59 core
AL = 4.7 µH
We have,
Mutual inductance = k √LP · LS = 148 µH
Winding ratio ≈ 1:3
Let N be turns in primary, 3N in secondary
LP = N² AL
LS = (3N)² AL = 9N² AL
M = k √9N⁴ AL² = k · 3N² AL
148 µH = 0.997 · 3N² · 4.7 µH
N² = 148 µH / 14.05 µH = 10.53
N ≈ 3.24 ≈ 3
No. of turns in primary = 3
No. of turns in secondary = 3N = 3 · 3
No. of turns in secondary = 9
LP = NP² · AL = 9 · 4.7 µH
LP = 42.3 µH
LS = NS² · AL = 9² · 4.7 µH = 81 · 4.7 µH
LS = 380 µH
OUTPUT CAPACITOR VALUE
For a capacitor: I = C · dV/dt
Assume ripple dV = 0.01 % · 72 V = 0.0072 V
dt = D / f (duty / frequency)
C = I·D / (f·dV)
C = 0.833 A · 0.5 / (100 000 Hz · 0.0072 V) ≈ 578 µF → use standard 470 µF
Hardware
WAVE FORMS
Figure: PWM waveform (open‑loop)
Figure: PWM waveform (closed‑loop)
PROGRAM (OPEN LOOP)
//Micro controller - dspic30f2010
//Compiler - mikroc
//Crystal frequency = 20 MHz
//Output frequency = 50 kHz
// //duty_50% = (clock_frequency/ (output_frequency*4 *1)) -1 =99
//DEAD TIME = duty_50%/2 =45
void main()
{
unsigned int pwm_period, current_duty;
current_duty = 99; // duty ratio 50 % = 99
pwm_period = PWM1_MC_Init(50000, 0, 0x11, 0); // enable 1L AND 1H PWM pins
PWM1_MC_Set_Duty(current_duty, 1);
PWM1_MC_Start();
DTCON1 = 10; // DEAD TIME CONTROL (max 79)
while (1);
}
PROGRAM (CLOSED LOOP)
//Crystal frequency = 20 MHz
//Output frequency = 50 kHz
// //duty_50% = (clock_frequency/ (output_frequency*4 *1)) -1 =99
//DEAD TIME = duty_50%/2 =45
//Feedback network: 100 kΩ & 2.2 kΩ
//ADC reference value = 295 for 67 V
int feedbackvoltage;
void main()
{
unsigned int pwm_period, current_duty;
current_duty = 99; // duty ratio 50 % = 99
pwm_period = PWM1_MC_Init(50000, 0, 0x11, 0); // enable 1L AND 1H PWM pins
PWM1_MC_Set_Duty(current_duty, 1);
PWM1_MC_Start();
DTCON1 = 10; // DEAD TIME CONTROL (max 79)
//UART1_Init(9600); // Initialise UART at 9600 bps
//Delay_ms(100);
//UART_Write_Text("Start");
//UART_Write(0xd);
TRISB.F0 = 1;
while (1)
{
feedbackvoltage = ADC1_Read(0) * 67 / 295; Delay_ms(10);
//adctoascii(); UART_Write_Text(g); UART_Write(0xd);
//Delay_ms(100);
if (feedbackvoltage > 70)
{
current_duty = current_duty - 1;
if (current_duty < 1) current_duty = 0;
PWM1_MC_Set_Duty(current_duty, 1);
}
else if (feedbackvoltage < 69)
{
current_duty = current_duty + 1;
if (current_duty > 160) current_duty = 160;
PWM1_MC_Set_Duty(current_duty, 1);
}
}
}