Annexe - INSA Lyon
Transcript of Annexe - INSA Lyon
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Wei MI
Thèse INSA de Lyon - CEGELY
147
ANNEXE
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Annexe A Méthode de lissage
A-1 Principe Pour extraire les paramètres de pente, telle que diF/dt, diR/dt, dvF/dt et dvR/dt, à
partir les courbes mesurées de tension et courant, la technique de lissage doit être mise
en ouvre. Le but du lissage est de construire une fonction représentant la relation entre x
et y à la place de la courbe mesurée éliminant aussi le bruit de mesure. L’intérêt de cette
méthode réside aussi dans le fait que la fonction lissée est plus facile à traiter
mathématiquement.
On peut souvent admettre, dans un domaine limité, le modèle mathématique d’une
caractéristique:
( ; , , ...)i iY F x A B C= + i∆
3
(Erreur ! Argument de commutateur inconnu.-1)
où F est un polynôme de degré k en xi de paramètres A, B, C… et ∆i une variable
aléatoire de moyenne nulle.
Pour connaître plus précisément la théorie du lissage, nous pouvons consulter
l’œuvre [Neuilly-98]. A l’aide de la méthode présentée dans cet œuvrage, le degré k de
la fonction polynôme est à arbitraire. Cependant, selon notre
expérience, une fonction polynôme de degré 3 est suffisante pour répondre à l’exigence
de précision de notre cas, soit
2 3 ...y a bx cx dx= + + + +
2y a bx cx dx= + + +
(Erreur ! Argument de commutateur inconnu.-2)
Donc, notre objectif consiste à trouver les quatre grandeurs a, b, c et d à partir des
données mesurées.
A-2 Algorithme de lissage
Avant d’entreprendre une présentation de cet algorithme, il est nécessaire de
décrire quelques paramètres concernant la courbe mesurée. Pour cela, supposons qu’il y
ait une courbe (Fig. A-1) représentant une partie de la courbe du courant mesuré à
l’ouverture de la diode. Nous avons besoin d’extraire diF/dt, la pente de décroissance du
courant direct dont les donnés sont reportées dans le tableau A-1. yi est une valeur
Wei MI
Thèse INSA de Lyon - CEGELY
148
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
obtenue par la mesure qui correspond à xi. N est le nombre totale de points, dans notre
cas, N égale 45.
Figure A.1 Une courbe mesurée à l’ouverture de la diode
La méthode d’étalonnage commence à calculer en premier lieu la quantité
2 2 1( ) (yy i i ii i
W y y yN
= − = − 2)i
y∑ ∑ ∑(Erreur ! Argument de commutateur inconnu.-3)
où y est la moyenne arithmétique des N résultats.
On pose:
10iz γ= iy
(Erreur ! Argument de commutateur inconnu.-4)
où γ est choisi de façon que :
2 2( ) 10yy i yyi
w z z γ= − = W∑
(Erreur ! Argument de commutateur inconnu.-5)
soit compris entre 0,1 et 10.
On calcule ensuite :
2 211
1( ) (i ii i
W x x x xN
= − = − 2)i∑ ∑ ∑ (Erreur ! Argument de commutateur inconnu.-6)
Wei MI
Thèse INSA de Lyon - CEGELY
149
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
où x est la moyenne arithmétique de x.
et l’on pose :
10itβ= ix
(Erreur ! Argument de commutateur inconnu.-7)
où β est choisi de façon que :
2 211 11( ) 10i
iw t t β= − = W∑
(Erreur ! Argument de commutateur inconnu.-8)
soit compris entre 0,1 et 10.
Il faut ensuite calculer, pour j égal à 1,2 et 3, les quantités
1 ( )(j jjy i i i i
i iw t z t
N= − )
iz∑ ∑ ∑
(Erreur ! Argument de commutateur inconnu.-9)
Pour j = 2 et 3, on calcule :
2 21 ( )j jjj i i
i iw t t
N= −∑ ∑
(Erreur ! Argument de commutateur inconnu.-10)
et pour chaque couple jj′(j et j′ inférieurs à 4) :
' ''
1 ( )(j j j jjj i i i
i iw t t t
N+= − )
i∑ ∑ ∑
(Erreur ! Argument de commutateur inconnu.-11)
Une fois les quantités précédentes calculées, nous calculons les formules au-
dessous.
11
11
ywb
w=
(Erreur ! Argument de commutateur inconnu.-12)
22 11 22 1D w w w= − 2
(Erreur ! Argument de commutateur inconnu.-13)
Wei MI
Thèse INSA de Lyon - CEGELY
150
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
11 2 12 1
22
y yw w w wc
D−
=
(Erreur ! Argument de commutateur inconnu.-14)
13 12 23 22 13B w w w w= −
(Erreur ! Argument de commutateur inconnu.-15)
23 12 13 11 23B w w w w= −
(Erreur ! Argument de commutateur inconnu.-16)
3 13 13 23 23 2D B w B w D w= + + 33
(Erreur ! Argument de commutateur inconnu.-17)
3 13 1 23 2 23
1 ( )y yd B w B w D wD
= + + 3 y
(Erreur ! Argument de commutateur inconnu.-18)
2 122 1
11
c wb bw
= −
(Erreur ! Argument de commutateur inconnu.-19)
13 33 2
2
B db bD
= +
(Erreur ! Argument de commutateur inconnu.-20)
23 33 2
2
B dc cD
= +
(Erreur ! Argument de commutateur inconnu.-21)
A la fin, les quatre grandeurs a, b, c et d sont données par
(310b b )β γ−=
(Erreur ! Argument de commutateur inconnu.-22)
(2 )310c c β γ−=
(Erreur ! Argument de commutateur inconnu.-23)
Wei MI
Thèse INSA de Lyon - CEGELY
151
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
(3 )
310d d β γ−=
(Erreur ! Argument de commutateur inconnu.-24)
2 3( )i i ii i i i
a y b x c x d= − − − ix∑ ∑ ∑ ∑ (Erreur ! Argument de commutateur inconnu.-25)
A-3 Application
Implantée en JAVA, cette méthode d’étalonnage nous permet d’extraire facilement
les quatre variables ( a, b, c, d ).
La courbe d’étalonnage est obtenue en suivant la méthode précédente. Soit a =
3952.327, b = 1.165, c = 1.133 et d = 3.634 dans le cas de la figure A-1. Sa forme est
présentée à la figure A-3. Nous calculons les valeurs ye pour les mêmes valeurs de xi.
Avec les différences relatives entre les données mesurées et étalonnées, nous pouvons
voir les écarts. On constate que les différences sont si petites que la méthode satisfait
nos exigences. Il s’avère donc que la fonction polynôme de degré 3 s’adapte bien à la
courbe mesurée.
Temps t (s) Courant i (A) i x ym
ye=3952.327+1.165e11x-1.133e18x2+3.634e24x3 m e
m
y yy−
∆ =
(%) 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
9,627E-8 9,707E-8 9,787E-8 9,867E-8 9,947E-8
1,0027E-7 1,0107E-7 1,0187E-7 1,0267E-7
1,03044E-7 1,03844E-7 1,04244E-7 1,04444E-7 1,04544E-7 1,04644E-7 1,04844E-7 1,05044E-7 1,05144E-7 1,05244E-7 1,05444E-7 1,05644E-7 1,05744E-7 1,05844E-7 1,05944E-7 1,06144E-7 1,06344E-7
0,462 -0,161 -0,869 -1,651 -2,497 -3,398 -4,347 -5,337 -6,360 -6,847 -7,901 -8,432 -8,698 -8,831 -8,964
-9,2305 -9,496 -9,629 -9,761
-10,025 -10,288 -10,419 -10,549 -10,679 -10,937 -11,191
0,433 -0,161 -0,851 -1,625 -2,474 -3,385 -4,347 -5,349 -6,381 -6,870 -7,923 -8,451 -8,715 -8,847 -8,978 -9,240 -9,502 -9,633 -9,763
-10,023 -10,281 -10,410 -10,538 -10,666 -10,920 -11,172
6,553 0,291 2,134 1,533 0,896 0,366 0,016 0,241 0,331 0,335 0,284 0,227 0,192 0,173 0,152 0,110 0,066 0,043 0,021 0,023 0,063 0,082 0,099 0,117 0,148 0,166
Wei MI
Thèse INSA de Lyon - CEGELY
152
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
1,06449E-7 1,06502E-7 1,06555E-7 1,06668E-7 1,06781E-7 1,06894E-7 1,06951E-7 1,07007E-7 1,07064E-7 1,07177E-7 1,0729E-7
1,07347E-7 1,07404E-7 1,0746E-7
1,07517E-7 1,0763E-7
1,07743E-7 1,078E-7
1,07856E-7
-11,324 -11,390 -11,456 -11,597 -11,736 -11,873 -11,941 -12,009 -12,076 -12,209 -12,340 -12,405 -12,469 -12,533 -12,596 -12,721 -12,843 -12,903 -12,962
-11,304 -11,370 -11,436 -11,577 -11,716 -11,856 -11,925 -11,994 -12,063 -12,200 -12,336 -12,403 -12,471 -12,538 -12,605 -12,738 -12,870 -12,936 -13,001
0,171 0,173 0,174 0,172 0,162 0,146 0,135 0,124 0,112 0,081 0,038 0,014 0,012 0,039 0,068 0,135 0,215 0,258 0,303
Tableau A.1 Comparaison des données mesurées et étalonnées
Figure A.2 Comparaison de courbe mesurée et étalonnée
Annexe B JNI et la gestion de Processus
B-1 JNI Dans le programme C++, on doit définir les mêmes méthodes correspondant à
celles de Java. Ce programme charge la librairie de pilotes pour le bus GPIB,
ieee_32b.lib, fournie par le fabricant.
Pour bien établir une relation entre C++ et JAVA par le moyen de JNI, il faut
suivre les étapes suivantes pour implémenter la classe de Java et le programme C++.
Wei MI
Thèse INSA de Lyon - CEGELY
153
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Compilation des sources GPIBdriver.java par la commande javac dans JDK,
> javac GPIBdriver.java
Génération des en-têtes de C++ .h par la commande javah dans JDK,
> javah –jni GPIBdriver.class
Compilation du programme C++ gpibjni.ccp pour produire un fichier
gpibjni.dll et un fichier de librairie gpibjni.lib.
Le fait d’introduire du code natif dans Java enlève un certain nombre d’attraits de
ce langage: la portabilité, l’indépendance de la plate-forme utilisée, etc. Autrement dit,
si on veut installer le programme en Java sur un autre ordinateur, il est obligatoire de
refaire toutes les étapes précédentes.
Wei MI
Thèse INSA de Lyon - CEGELY
154
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
B-2 Processus Le programme suivant illustre un exemple du lancement d’une procédure pour le
simulateur DESSIS par Java.
try {
String command = "dessis " ;
//Le commande pour lancer un processus de simulation de ISE sous Unix
String iseFileName = "mos.cmd";
//"mos.cmd" est le fichier d’entrée de ISE
Process proc = Runtime.getRuntime().exec(command + iseFileName);
//L’objet Process proc représente la commande en cours d’exécution
//Démarrer la commande de ISE
InputStreamReader proc_out =
new InputStreamReader(proc.getInputStream());
BufferedReader br = new BufferedReader(proc_out);
String s = br.readLine();
while(s!=null){
System.out.println(s);
s = br.readLine();
//Extraire le résultat de la commande
}
proc.waitFor();
//Attendre la fin de processus
proc_out.close();
//Fermer le flux
}
catch(Exception except) {
System.out.print("exception occured in the ISE");
//Saisir et imprimer le message d’erreur
}
Wei MI
Thèse INSA de Lyon - CEGELY
155
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Annexe C Utilisation de logiciel pour la mesure des
caractéristiques du MOS/IGBT
Après avoir vérifié la bonne marche de toutes les équipements, on lance le fichier
exécutable stat-commu.jar.
Après avoir sélectionné l’application de la mesure statique et cliquer sur le bouton
″OK″ , la fenêtre d’application pour la mesure des caractéristiques statiques est affichée
(figure C.1).
On peut séparer cette fenêtre en cinq zones, chacune correspond à différentes
configurations pour la mesure.
Tout d’abord, dans la zone 2, il faut spécifier les noms pour les deux chaînes
d’acquisition. On a désigné par défaut la première chaîne comme l’entrée du courant et
la deuxième comme l’entrée de la tension.
Dans la zone 3, on définit la condition du contrôle automatique pour l’alimentation
de la tension E. Il s’agit de fixer la valeur du début, la valeur finale, la valeur
d’incrément et la valeur de limitation du courant.
Les paramètres dans la zone 4 nous permettent d’obtenir la courbe selon notre
besoin. On peut changer la position de mesure tm. Si besoin, on désactive la fonction
″Level 50%″. C’est-à-dire que le point de synchronisation correspond au milieu de la
plage verticale.
La tension de grille est donnée par la zone 5. Pour activer la commande de grille,
on sélectionne le bouton ″ON/OFF″.
Une fois tous les paramètres de configurations donnés et le circuit de test
opérationnel, nous pouvons cliquer sur le ″acquire″ pour lancer le processus
automatique de mesure.
Après que le processus est terminé, on peut sauvegarder la résultat avec la
sélection ″Save″ dans le menu ″ File ″. Ensuite, on lance les autres mesures en
changeant la valeur de la tension de grille Vg.
Wei MI
Thèse INSA de Lyon - CEGELY
156
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Figure C.1 Fenêtre de mesure automatique de la caractéristique statique de
composants commandés
Wei MI
Thèse INSA de Lyon - CEGELY
157
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Annexe D Exemples de processus d’identification
D-1 Processus d’identification des paramètres de la diode PiN A partir du banc de test ( Fig. 3.7 ), nous pouvons obtenir les courbes du
courant et de la tension pendant la commutation à l’ouverture dans trois conditions
d’application pour une diode PiN BYT12PI600.
Ensuite, nous implantons ce banc dans un ficher d’entrée de PACTE hacheur.p Ce
fichier comporte une description des nœuds (Kirchhoff), des modelés et des valeurs de
composants, la condition d’application, le fichier de sortie, etc.
En lançant le programme éxecutable identifier_diode.jar, on suite les étapes
suivantes:
1. Charger les trois fichiers expérimentaux (figure D.1-a);
2. Spécifier le fichier de PACTE (figure D.1-b));
3. Choisir la fonction coût J(figure D.1-c));
4. Déterminer la méthode d’optimisation (figure D.1-d));
5. Limiter les valeurs des paramètres du modèle en fonction de la technologie
(figure D.1-e));
6. Lancer la procédure d’identification par appuyant le bouton RUN ;
Une fois la procédure terminée, les résultats des paramètres se trouvent dans
le ficher data.r.
Fichier Java Fichier de résultat Fichier de PACTE Identifier_diode.jar data.r static.p
a) b)
Wei MI
Thèse INSA de Lyon - CEGELY
158
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
c) d)
e)
Figure D.1 Interface d’identification des paramètres pour la diode PiN
******************************************************************
hacheur.p ****************************************************************************** option [-v -cpu /user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.mo -lpower]; #include <physics.u> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.h" #include <power/pinsv.h> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/data.r" macro model chopper { Se<electric> E; R<electric> Rg,r; mosh M; pinsv D; I<electric> lm,lg,lda,ldc,ldg; Sf<electric> I; PulseSe<electric> G; Kirchhoff //// Kirchhoff network declaration [ node voltage mass,1,2,3,4,5,6,7,21,31,41,51,11; E[mass,1]; /// the power supply I[mass,51]; /// the load
Wei MI
Thèse INSA de Lyon - CEGELY
159
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
lm[2,1]; lda[41,51]; r[2,3];ldc[3,11]; D[11,41]; /// the free-wheel branch M[7,4,51]; lg[5,4];ldg[mass,7]; Rg[5,6]; G[mass,6]; /// the switch ]; chopper(); slow state freeWheel() { M:off(); D:on();lm:static();} BUILD_DEFAULT_TRANSIENT_STATE(); }; chopper::chopper() { #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/power.dat" Rg(10Ohm); G(15V, 0V, 10us, 40ns, 8us, 20ns, 40ns); M( VT=3.77V, KPLIN=5.19A/V2, KPSAT=12.5A/V2, RD=0.168Ohm,THETA=2V-1, AGD=22.0mm2, NB=5.5e14cm-3, CGS=0.65nF, COXD=0.3nF, CDS=0.2nF, RS=1mOhm, RG=1Ohm, RDS=300KOhm, IS=1pA, MJ=0.5, FC=0.5, PB=1V, T=300K); D=ModuleD; lg(5nH);ldg(1nH);lm(80nH);r(0.0025Ohm);lda(5nH);ldc(5nH); chopper test(); TransientAnalyser tr(test); tr.save(file=/user8/pacte/mi/validite/diode/byt12p_600/simulation/output) << D.i << D.u <<
ldc.u <<lda.u; tr.state = freeWheel(); tr.setTransientParameter(resolution=10ns, end=5us); tr.setIntegrationParameter(eps=0.0001,iteration=5000); tr.analysis();
D-2 Processus d’identification des paramètres de MOSFET Le processus d’identification des paramètres de MOSFET comporte deux partis :
D-2-1 Identification des paramètres statiques
Fichier Java Fichier de résultat Fichier de PACTE Identifier_mos.jar mos.static static.p
a) b)
Wei MI
Thèse INSA de Lyon - CEGELY
160
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
c)
Figure D.2 Interface d’identification des paramètres statiques pour le MOSFET
******************************************************************
static.p ****************************************************************************** option [-v -cpu /user8/pacte/mi/develope/example/mos/irf740/identification/static/mos2kp.mo -lpower]; #include <physics.u> #include <standard.h> #include "/user8/pacte/mi/develope/example/mos/irf740/identification/static/mos2kp.h" #include "/user8/pacte/mi/develope/example/mos/irf740/identification/static/mos.vgs" mosh DUT( AGD = 12mm2, #include "/user8/pacte/mi/develope/example/mos/irf740/identification/static/mos.static" RG=4.566Ohm, RS=0.01Ohm, RDS=1.28MOhm, NB=5.5e14cm-3, RG=1Ohm, RS=1mOhm, RDS=300KOhm, IS=1pA, CGS=1.2nF, COXD=0.5nF, CDS=1nF, MJ=0.5,FC=0.5, PB=1V, T=300K); macro model mos_on {Se<electric> E,G; I<electric> Ld,Lg; mosh M; Kirchhoff [ node voltage 0,1,2,1m,2m; E[0,1]; G[0,2]; Ld[1m,1]; Lg[2m,2]; M[0,2m,1m]; ]; mos_on(voltage vDS, voltage vGS); slow state on() { M:static(); } BUILD_DEFAULT_TRANSIENT_STATE(); }; #define VDDMAX 55V mos_on::mos_on(voltage vDS, voltage vGS) {E(vDS);G(vGS);Lg(10nH);Ld(10nH);M =DUT;
Wei MI
Thèse INSA de Lyon - CEGELY
161
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
} mos_on on(vDS=1V, vGS=VGS_0); StaticCharacteristics s(on); s.save(file=/user8/pacte/mi/develope/example/mos/irf740/identification/static/x/s) << M.iD=iD
<< M.vDS=vDS << M.vGS=vGS; s.state = on(); s.setSweepingParameter(vDS); s.geometricalSweeping(min=10mV, max=VDDMAX, ratio=1.2); s.alter(name=vGS, value=VGS_1); s.geometricalSweeping(min=10mV, max=VDDMAX, ratio=1.2); s.alter(name=vGS, value=VGS_2); s.geometricalSweeping(min=10mV, max=VDDMAX, ratio=1.2);
D-2-2 Identification des paramètres dynamiques
Fichier Java Fichier de résultat Fichier de PACTE Identifier_mos.jar mos.dya moshacheur.p
a) b)
c) d)
Figure D.3 Interface d’identification des paramètres dynamiques pour le MOSFET
Wei MI
Thèse INSA de Lyon - CEGELY
162
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Figure D.4 Interface de configuration des paramètres dynamiques pour le MOSFET
******************************************************************
moshacheur.p
****************************************************************** option[/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/mos2kp.mo -lpower]; #include <physics.u> #include "/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/mos2kp.h" #include "/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/measure.par" mosh DUT( #include "/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/mos.static" #include "/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/mos.dyn" RG=1.5Ohm, IS=1e-15A, MJ=0.5,FC=0.5, PB=0.8V, RS=0.01Ohm, RDS=1.28MOhm, T=300K); macro model rsw { Se<electric> E; R<electric> r,Rg; mosh M; I<electric> l, lg, ls; PulseSe<electric> G; Kirchhoff [ node voltage mass,1,2,3,4,5,6,source; E[mass,1]; r[2,1]; l[3,2]; M[source,4,3]; ls[mass,source]; G[source,6]; Rg[5,6]; lg[4,5]; ]; rsw(); slow state rest() {M:static(); } BUILD_DEFAULT_TRANSIENT_STATE(); };
Wei MI
Thèse INSA de Lyon - CEGELY
163
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
rsw::rsw() {E(VDD);Rg(100Ohm); G(VGSON, 0V, 200us, 10ns, 20us, 10ns, 1us); ls(1pH);l(LDD);lg(1pH);M=DUT;r(70.1Ohm); } rsw test(); TransientAnalyser tr(test); tr.save(file=/user8/pacte/mi/develope/example/mos/irf740/identification/dynamic/test) << M.iG << M.vGS << M.vDS << M.iD; tr.state = rest(); tr.setIntegrationParameter(iteration=3000); tr.setTransientParameter(resolution=10ns, end=40us); tr.analysis();
D-3 Processus d’identification des paramètres d’IGBT Le processus d’identification des paramètres d’IGBT, comme pour le MOSFET,
comporte aussi deux parties :
D-3-1 Identification des paramètres statiques
Fichier Java Fichier de résultat Fichier de PACTE Identifier_igbt.jar igbt.static id_vds.p
Figure D.5 Interface d’identification des paramètres statiques pour l’IGBT
***********************************************************************
****
id_vds.p
***************************************************************************
option [ hefner11.mo]; #include <physics.u> #include <power/hefner11.h> #include "/user8/pacte/mi/develope/example/igbt/bup202/identification/statique/igbt.vgs" #include "/user8/pacte/mi/develope/example/igbt/bup202/identification/statique/data.r" macro model igbt_on
Wei MI
Thèse INSA de Lyon - CEGELY
164
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
{Se<electric> E,G; R<electric> R,Rg; hefner1 M; Kirchhoff [ node voltage mass,power,drain,gate,vg; E[mass,power]; R[drain,power]; M[mass,gate,drain]; G[mass,vg]; Rg[gate,vg]; ]; igbt_on(voltage Va, voltage Vg); slow state start() { M:on(); } BUILD_DEFAULT_TRANSIENT_STATE(); }; igbt_on::igbt_on(voltage Va, voltage Vg) {E(Va);G(Vg);R(5Ohm);M=ModuleAlstom;Rg(1Ohm); } igbt_on on(Va=300V, Vg=VGS_0); StaticCharacteristics s(on); s.save(file=/user8/pacte/mi/develope/example/igbt/bup202/identification/statique/x/s) << M.{vGS=vGS,iA=iD,vAC=vDS}; s.setResidueCondition(0.00001); s.state = start(); s.setSweepingParameter(Va); #define RANGE min=0.1V, max=300V, step=10V s.arithmeticalSweeping(min=0.05V, max=50V, step=2V); s.alter(name=Vg, value=VGS_1); s.arithmeticalSweeping(min=0.05V, max=100V, step=5V); s.alter(name=Vg, value=VGS_2); s.arithmeticalSweeping(min=0.05V, max=300V, step=10V);
D-3-2 Identification des paramètres dynamiques
Fichier Java Fichier de résultat Fichier de PACTE Fichier d’ISE Identifier_igbt.jar igbt.dynamic R_switch.p ×
a) b)
Wei MI
Thèse INSA de Lyon - CEGELY
165
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
c)
Figure D.6 Interface d’identification des paramètres dynamiques pour l’IGBT
a) b)
c)
Figure D.7Interface de configuration des paramètres dynamiques pour l’IGBT
Wei MI
Thèse INSA de Lyon - CEGELY
166
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
******************************************************************
r_switch.p ****************************************************************************** option [hefner11.mo]; #include <physics.u> #include <power/hefner11.h> #include "/user8/pacte/mi/develope/example/igbt/bup202/identification/dynamique/measure.par" hefner1 ModuleAlstom( #include "/user8/pacte/mi/develope/example/igbt/bup202/identification/dynamique/igbt.static" #include "/user8/pacte/mi/develope/example/igbt/bup202/identification/dynamique/igbt.dynamic" ); macro model cell { Se<electric> E; R<electric> Rc,Rg,Ra; hefner1 M; I<electric> lc,ls,lgl,lg,ld; PulseSe<electric> G; Kirchhoff [ node voltage mass,in,1,2,drain,source,gate,g,gate1,gate2,mass1; E[mass,in]; lc[1,in]; Rc[2,1];ld[drain,2]; M[source,gate,drain]; G[mass1,g]; Rg[gate1,g];lgl[gate2,gate1]; ls[mass1,source];lg[gate,gate2]; Ra[mass,mass1]; ]; cell(); slow state start() { M:off(); } BUILD_DEFAULT_TRANSIENT_STATE(); }; cell::cell() {E(VDD);Rc(15Ohm);lc(LDD);ls(10nH);lg(20nH);ld(10nH);lgl(30nH);Rg(385Ohm); Ra(0.0248Ohm); G(Aon=VGSON, Aoff=0V, period=30us, tr=20ns, tp=15us, tf=20ns, td=0.1us); M=ModuleAlstom; } cell test(); /// this instruction declares 'test' as a system. TransientAnalyser tr(test); tr.save(file=/user8/pacte/mi/develope/example/igbt/bup202/identification/dynamique/test) << G.u << M.{iG,vGS,iA,vAC}; tr.state = start(); tr.setTransientParameter(resolution=5ns, end=30us); tr.setIntegrationParameter(iteration=15000,eps=0.0001); tr.analysis();
Wei MI
Thèse INSA de Lyon - CEGELY
167
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Annexe E Exemples de processus de validation
E-1 Processus de validation des paramètres de la diode PiN Le processus de validation suite les étapes suivantes (figure E.1) :
• Choisir le fichier de PACTE;
• Sélectionner la gamme de validation et l’étape;
• Configurer la condition de simulation;
• Lancer le processus en appuyant le bouton ″RUN″ ;
Fichier Java Fichier de résultat Fichier de PACTE validation_diode.jar validite.dat hacheur.p
a) b)
c)
Figure E.1 Interface de validation du couple modèle-paramètres de la diode PiN
***************************************************************************
Wei MI
Thèse INSA de Lyon - CEGELY
168
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
hacheur.p
*********************************************************************** option [-v -cpu /user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.mo -lpower]; #include <physics.u> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.h" #include <power/pinsv.h> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/data.r" macro model chopper { Se<electric> E; //// component declarations R<electric> Rg,r; mosh M; pinsv D; I<electric> lm,lg,lda,ldc,ldg; Sf<electric> I; PulseSe<electric> G; Kirchhoff //// Kirchhoff network declaration [ node voltage mass,1,2,3,4,5,6,7,21,31,41,51,11; E[mass,1]; /// the power supply I[mass,51]; /// the load lm[2,1]; lda[41,51]; r[2,3];ldc[3,11]; D[11,41]; /// the free-wheel branch M[7,4,51]; lg[5,4];ldg[mass,7]; Rg[5,6]; G[mass,6]; /// the switch ]; chopper(); slow state freeWheel() { M:off(); D:on();lm:static();} BUILD_DEFAULT_TRANSIENT_STATE(); }; chopper::chopper() { #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/power.dat" Rg(5Ohm); G(15V, 0V, 10us, 40ns, 8us, 20ns, 40ns); M( VT=3.77V, KPLIN=5.19A/V2, KPSAT=12.5A/V2, RD=0.168Ohm,THETA=2V-1, AGD=22.0mm2, NB=5.5e14cm-3, CGS=0.65nF, COXD=0.3nF, CDS=0.2nF, RS=1mOhm, RG=1Ohm, RDS=300KOhm, IS=1pA, MJ=0.5, FC=0.5, PB=1V, T=300K); D=ModuleD; lg(5nH);ldg(1nH);lm(80nH);r(0.0025Ohm);lda(5nH);ldc(5nH); } chopper test(); TransientAnalyser tr(test); tr.save(file=/user8/pacte/mi/validite/diode/byt12p_600/simulation/output) << D.i << D.u <<
ldc.u <<lda.u; tr.state = freeWheel(); tr.setTransientParameter(resolution=10ns, end=5us); tr.setIntegrationParameter(eps=0.0001,iteration=5000); tr.analysis();
E-2 Processus de validation des paramètres du MOSFET Fichier Java Fichier de résultat Fichier de PACTE
validation_mos.jar turnon_validation.dat Comme celui de la
Wei MI
Thèse INSA de Lyon - CEGELY
169
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
turnoff_validation.dat diode PiN, hacheur.p
a) b)
c)
Figure E.2 Interface de validation du couple modèle-paramètres du MOSFET
E-3 Processus de validation des paramètres de l’IGBT Fichier Java Fichier de résultat Fichier de PACTE validation_igbt.jar turnon_validation.dat
turnoff_validation.dat hacheur.p
Wei MI
Thèse INSA de Lyon - CEGELY
170
Extraction des paramètres et domaine de validité du modèle d’un composant de puissance
Figure E.3 Interface de validation du couple modèle-paramètres de l’IGBT
********************************************************************** hacheur.p
********************************************************************** option [-v -cpu /user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.mo -lpower]; #include <physics.u> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/mos2kp.h" #include <power/pinsv.h> #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/data.r" macro model chopper { Se<electric> E; //// component declarations R<electric> Rg,r; mosh M; pinsv D; I<electric> lm,lg,lda,ldc,ldg; Sf<electric> I; PulseSe<electric> G; Kirchhoff //// Kirchhoff network declaration [ node voltage mass,1,2,3,4,5,6,7,21,31,41,51,11; E[mass,1]; /// the power supply I[mass,51]; /// the load lm[2,1]; lda[41,51]; r[2,3];ldc[3,11]; D[11,41]; /// the free-wheel branch M[7,4,51]; lg[5,4];ldg[mass,7]; Rg[5,6]; G[mass,6]; /// the switch ]; chopper(); slow state freeWheel() { M:off(); D:on();lm:static();} BUILD_DEFAULT_TRANSIENT_STATE(); }; chopper::chopper() { #include "/user8/pacte/mi/validite/diode/byt12p_600/simulation/power.dat" Rg(5Ohm); G(15V, 0V, 10us, 40ns, 8us, 20ns, 40ns); M( VT=3.77V, KPLIN=5.45A/V2, KPSAT=16.10A/V2, RD=0.2Ohm,THETA=1.656V-1, AGD=12.0mm2, NB=8.4765625e14cm-3, CGS=4.0253125nF, COXD=1.55nF, CDS=2.4nF, RS=1mOhm, RG=1Ohm, RDS=300KOhm, IS=1pA, MJ=0.5, FC=0.5, PB=1V, T=300K); D=ModuleD; lg(5nH);ldg(1nH);lm(200nH);r(0.0025Ohm);lda(5nH);ldc(5nH); } chopper test(); TransientAnalyser tr(test); tr.save(file=/user8/pacte/mi/validite/diode/byt12p_600/simulation/output) << D.i << D.u <<
ldc.u <<lda.u; tr.state = freeWheel(); tr.setTransientParameter(resolution=10ns, end=5us); tr.setIntegrationParameter(eps=0.0001,iteration=3000); tr.analysis();
Wei MI
Thèse INSA de Lyon - CEGELY
171