Convertisseur flyback

Circuit du convertisseur

Cet exemple montre :

  1. les équations permettant de calculer le rendement du dispositif
  2. l’optimisation mono-objectif (minimisation de l’encombrement)
  3. le post-processing du résultat d’optimisation
  4. Optimisation pareto (encombrement vs. rendement)

Modélisation

L’objectif de la modélisation est de mettre en place les équations d’un convertisseur AC/DC en fonction de ses grandeurs caractéristiques (tensions d’entrée/sortie, puissance, rendement).

Le schéma du circuit est présentée en dessous. Le circuit de commande n’est pas pris en compte dans cet exemple. Schema du convertisseur

Les paramètres d’entrée

e Entrefer du transformateur [m]
f Fréquence de hachage [Hz]
m Le rapport de transformation du transformateur [-]
Bmax L’induction maximale dans le noyau du transformateur [T]
d1 Le diamètre du fil de l’enroulement primaire [mm2]
d2 Le diamètre du fil de l’enroulement secondaire[mm2]
delta1 Densité du courant dans l’enroulement primaire [A/m2]
delta2 Densité du courant dans l’enroulement secondaire[A/m2]
deltaV_percent Distorsion admissible de la tension DC en sortie[%]
E Tension de sortie du redresseur[V]
I Courant en sortie[A]
k1 Coefficient de remplissage de l’enroulement primaire[-]
k2 Coefficient de remplissage de l’enroulement secondaire[-]
RD_on Résistance de la diode[ohm]
RT_on La résistance dynamique du transistor[ohm]
toff Décalage d’ouverture du transistor [s]
V Tension de sortie [V]
VD_reverse Tension de la diode [V]
VT_peak Tension admissible dans le transistor [V]
kp Paramètre de calcul de pertes fer (formulation Steinmetz) [-]
xp Paramètre de calcul de pertes fer (formulation Steinmetz) [-]
yp Paramètre de calcul de pertes fer (formulation Steinmetz) [-]

Les équations

/*
   Convertisseur Flyback
  
   Fichier flyback.sml

   Modele de dimensionnement d'un convertisseur flyback.
   Réferénces:
   Jean Paul FERRIEUX, François FOREST - Alimentations à découpage, 
   convertisseurs à résonance 3e édition, Dunod, Paris, 1999  ISBN 2100041371

   Chérif LAROUCI. Conception et optimisation de convertisseurs statiques 
   pour l’électronique de puissance. Application aux structures à absorption 
   sinusoïdale. Thèse INPG LEG soutenue le 13 mai 2002.

   Ludovic JOURDAN. Stratégie de pré dimensionnement de convertisseurs 
   statiques. Application à une alimentation 42V-14V réversible pour 
   l’automobile. Thèse UJF LEG soutenue le 15 juillet 2002.
*/

intern mu0;
mu0 = 4*pi*1e-7;

/*Ouput power*/
P = V*I;

/*Cyclic ratio*/
alpha = sqrt((2*Lm*V*I*f)/pow(E,2));
beta = alpha * (1.0 + E/(m*V));

/*Magnetizing inductance (at continuous & discontinuous conduction limit)*/
Lm = pow((E*m*V),2)/(2*f*P*pow((E+m*V),2));

/*Transistor data*/
IT = E*alpha/(Lm*f);
IT_rms = IT*sqrt(alpha/3);
IT_average = E*pow(alpha,2)/(2*Lm*f);
  
/*Diode data*/
ID = E*alpha*m/(Lm*f);
ID_rms = sqrt(pow(ID,2)*(beta-alpha)+(pow((pow(m,2)*V/Lm),2))*
  pow((beta-alpha),3)/(3*pow(f,2))-2*ID*pow(m,2)*V*pow((beta-alpha),2)/(2*Lm*f));
  
/*Diode max current*/
IDmax = ( (V*I/(E*V*m/((V*m)+E))) + (E*m*V/(((V*m)+E)*2*Lm*f)) ) * m;

/*Transformer data*/
Aen = Lm*IT/Bmax;
Sfn = IT_rms*k1/(delta1*1e6) + ID_rms*k2/(m*(delta2*1e6));
AeSf = Aen*Sfn;
transformer_volume = 3e11*AeSf + 2772.3;

/*Leakage inductance estimation*/
L_leakage = Lm * 0.03;

/*Windings*/
n1 = sqrt((Lm*e)/(mu0*Aen));
n2 = n1/m;

/*Copper areas*/
A1 = IT_rms/(delta1*1e6);
A2 = ID_rms/(delta2*1e6);

A_copper = n1*k1*A1 + n2*k2*A2;
A_copper2 = pi*n1*k1*(pow(d1,2))/4+2*pi*n2*k2*(pow(d2,2))/4;

/*Voltage Clamp Snubber*/
Vs = VT_peak - E;
Rs = 2*Vs*(Vs-V/m)/(f*L_leakage*pow(IT, 2.0));
Cs = 10/(Rs*f);
VCS_losses = pow(Vs, 2.0)/Rs;

/*Output voltage smooth capacitor*/
Co = I/(deltaV_percent*V*f);
Co_volume = 1872.0*Co*1e6 + 250.0; //(400V series : mm^3 , Co in uF)

/*Rectifier voltage smooth capacitor*/
intern delatE_percent;
delatE_percent = 2.0;
C = IT_rms/(delatE_percent*E*50.0);
C_volume =  1872.0*C*1e6 + 250.0; //(400V series : mm^3 , C in uF)

/*Transistor commutation losses*/
Commutation_losses = (E+(V/m)+Vs)*E*alpha*toff/(2*Lm);

/*Transistor conduction losses*/
Conduction_losses_T = RT_on*pow(IT_rms,2);

/*Diode conduction losses*/
Conduction_losses_D = VD_reverse*I + RD_on*pow(ID_rms,2);

/*Transformer core losses*/
Core_losses = Kp2*pow(f,xp2)*pow(Bmax,yp2)*transformer_volume*1e-6;

/*Energetic balance*/
P_losses = Core_losses + Commutation_losses + Conduction_losses_T + Conduction_losses_D + VCS_losses;

/*Efficiency*/
Efficiency = P / (P + P_losses);

/*Total Volume (cm3)*/
Volume = transformer_volume + Co_volume + C_volume;

L’optimisation

Le scénario d’optimisation est le suivant :
  • Trouver la valeur optimale de :
    • L’entrefer du transformateur (e)
    • La fréquence de hachage (f)
    • Le rapport de transformation (m)
  • Tel que :
    • Le rendement soit supérieur à 0.85 (Efficiency)
    • Le courant dans la diode soit inférieur à 14.0A (IDmax)
    • Le volume du transformateur soit minimal (transformer_volume)
  • Pour une valeur imposée de toutes les autres variables d’entrée

Le cahier des charges

/*Les intervalles de libertés d’optimisation*/
e  - Interval = [2.0e-4..0.0015] - valeur initiale = 5.0e-4
m  - Interval = [1.0..10.0]      - valeur initiale = 1.0
f  - Interval = [25000..100000]  - valeur initiale = 50000

/*Les variables imposées*/
Bmax           - Fixe - valeur = 0.2
d1             - Fixe - valeur = 0.4
d2             - Fixe - valeur = 0.8 
delta1         - Fixe - valeur = 4.0
delta2         - Fixe - valeur = 4.0 
deltaV_percent - Fixe - valeur = 2.0
E              - Fixe - valeur = 325.0
I              - Fixe - valeur = 4.5
k1             - Fixe - valeur = 3.0
k2             - Fixe - valeur = 3.0
kp2            - Fixe - valeur = 0.035
RT_on          - Fixe - valeur = 4.0
toff           - Fixe - valeur = 3.2e-8
V              - Fixe - valeur = 20.0
VD_reverse     - Fixe - valeur = 0.8
VT_peak        - Fixe - valeur = 400.0
xp2            - Fixe - valeur = 1.1
yp2            - Fixe - valeur = 2.63
RD_on          - Fixe - valeur = 0.1

/*Les contraintes sur les sortie*/
transformer_volume - Minimize               - valuer = 3822.5 - weight = 1.0
Efficiency         - Interval = [0.85..1.0]
IDmax              - Interval = [0.0..14.0]

/*L'optimiseur*/
Optimizer = SQP
Optimizer.Precision     = 1.0E-5
Optimizer.Max Iteration = 100

Le résultat d’optimisation

/*Les valeurs d'entrée trouvées*/
e  - valeur initiale = 5.0e-4  - valeur trouvée = 5.0e-4
f  - valeur initiale = 1.0     - valeur trouvée = 2.67
m  - valeur initiale = 45e5    - valeur trouvée = 18.5e6

/*Les valeurs de sorties trouvées*/
transformer_volume - valeur = 4295.19 (Minimisée) 
Efficiency         - valeur = 0.85 (limite min)
IDmax              - valeur = 10.48

Le post-processing

Le post-processeur de Cades peut servir pour montrer l’évolution de la fonction objectif à travers d’itérations d’optimisation :
Evolution du volume total du transformateur

Optimisation pareto

Pour obtenir le front pareto (taransformer_volume vs. rendement), il faut utiliser le cahier des charges suivant:

/*Les intervales de libertés d’optimisation*/
e  - Interval = [2.0e-4..0.0015] - valuer initiale = 5.0e-4
m  - Interval = [1.0..10.0]      - valuer initiale = 1.0
f  - Interval = [25000..100000]  - valuer initiale = 50000

/*Les variables imposées*/
Bmax           - Fixe - valeur = 0.2
d1             - Fixe - valeur = 0.4
d2             - Fixe - valeur = 0.8 
delta1         - Fixe - valeur = 4.0
delta2         - Fixe - valeur = 4.0 
deltaV_percent - Fixe - valeur = 2.0
E              - Fixe - valeur = 325.0
I              - Fixe - valeur = 4.5
k1             - Fixe - valeur = 3.0
k2             - Fixe - valeur = 3.0
kp2            - Fixe - valeur = 0.035
RT_on          - Fixe - valeur = 4.0
toff           - Fixe - valeur = 3.2e-8
V              - Fixe - valeur = 20.0
VD_reverse     - Fixe - valeur = 0.8
VT_peak        - Fixe - valeur = 400.0
xp2            - Fixe - valeur = 1.1
yp2            - Fixe - valeur = 2.63
RD_on          - Fixe - valeur = 0.1

/*Les contraintes sur les sortie*/
transformer_volume - Minimize                - valuer = 3822.5 - weight = 1.0
Efficiency         - Maximize                - valuer = 1.0    - weight = 1.0
IDmax              - Interval = [0.0..14.0]

/*L'optimiseur*/
Optimizer = NSGA2

L’information du front pareto se trouve dans ce fichier des résultats. Il a l’allure suivante, montrant que pour des rendements supérieurs, il faut payer exponentiellement en volume: Le front pareto transformer_volume vs. rendement