Sujet Projet Informatique:
Circuit ´
electrique 3D
2011
FIGURE 1 – Principe du projet. Gauche : Sch´
ema `
a mod´
eliser. Milieu : Description formelle
analysable. Droite : Visualisation 3D correspondante au sch´
ema ´
electrique.
1 But
L’objectif de ce TP est de r´
ealiser un analyseur et un visualiseur 3D de circuit ´
electrique. Le
sujet se d´
ecompose en deux parties :
1. Analyse et etude (calcul des tensions et courants) d’un sch´
ema ´
electrique.
2. Visualisation 3D du circuit ´
electrique.
L´
etude et la r´
esolution num´
erique des valeurs de tensions et courants sur un sch´
ema
num´
erique sont la base des logiciels de mod´
elisation ´
electroniques (Pspice, . . .). La repr´
esentation
visuelle aide `
a la compr´
ehension du circuit, ainsi qu’`
a post´
eriori pour des simulations plus
pr´
ecise n´
ecessitant l’information g´
eom´
etrique (diffusion de la chaleur, . . .).
1
2 Fonctionnement du projet
Un sch´
ema ´
electrique est donn´
e en tant qu’entr´
ee du projet. On pourra supposer que celui-
ci ne contient que des ´
el´
ements simples : g´
en´
erateurs, r´
esistances.
2.1 Analyse du sch´ema ´electrique
Un sch´
ema ´
electrique peut se voir comme un graphe cyclique orient´
e dont les noeuds
contiennent les caract´
eristiques des composants. La description textuelle de sauvegarde des
sch´
emas sera r´
ealis´
ee en format xml.
Dans la suite, on consid`
ere l’exemple du sch´
ema montr´
e en fig. 1. On pourra utiliser le
langage de description 1suivant en correspondance avec l’indexation propos´
ee en fig. 2.
<xml>
<edge id="edge0" in="0" out="1">
<R value="10k"/>
</edge>
<edge id="edge1" in="1" out="2">
<R value="10k"/>
</edge>
<edge id="edge2" in="2" out="3">
<R value="10k"/>
</edge>
<edge id="edge3" in="1" out="3">
<R value="10k"/>
</edge>
<edge id="edge3" in="3" out="4">
<R value="10k"/>
</edge>
<edge id="edge4" in="4" out="0">
<G value="1.5V"/>
</edge>
</xml>
La signification des mots cl´
es est la suivante :
edge : d´
esigne le d´
emarrage de la description d’une structure reliant deux noeuds du
sch´
ema. Chaque arˆ
ete poss`
ede un noeud d’entr´
ee et un noeud de sortie.
id : identifiant unique d’une arˆ
ete du sch´
ema.
in : identifiant unique du noeud d’entr´
e de l’arˆ
ete courante.
out : identifiant unique du noeud de sortie de l’arˆ
ete courante.
R: Noeud contenant une r´
esistance.
G: Noeud contenant un g´
en´
erateur de tension.
Ce graphe peut se repr´
esenter sous forme matricielle M(matrice d’incidence 2) vu comme
l’application de la loi des noeuds. Pour chaque sommet, on d´
esigne l’indice de l’arˆ
ete incidente
et sortante pond´
er´
e par la valeur sign´
ee de la r´
esistance lui correspondant.
1. Un graphe est classiquement d´
efini localement par ses arˆ
etes, ou connectivit´
es
2. duale de cette description par arˆ
ete
2
FIGURE 2 – Mod´
elisation du sch´
ema ´
electrique. Les noeuds du graphe de description corres-
pondent `
a des positions du sch´
ema (points rouges), alors que les arˆ
etes correspondent `
a un
composant du montage.
Soit Ule vecteur des tensions inconnues aux arˆ
etes. On notera donc V= (v0, v1, v2, v3, v4)
dans ce cas particulier. Notons U= (0,0,0,0, E), avec Ela tension du g´
en´
erateur situ´
e sur
l’arˆ
ete 5. L’application de la loie des noeuds (matrice d’incidence pond´
er´
ee) et de la loi des
mailles (recherche de cycle dans un graphe) permet d’´
ecrire le syst`
eme
MV=U,
M =
1/R 1/R 0 1/R 0
01/R 1/R 0 0
0 0 1/R 1/R 1/R
0 1 1 1 0
1 1 1 0 1
(1)
Une fois le syst`
eme matriciel rempli automatiquement, l’utilisation d’un algorithme de
r´
esolution de syst`
eme lin´
eaire num´
erique permet d’obtenir en chaque arˆ
ete la valeur de la
tension associ´
ee, et donc du courant.
3
2.2 Visualisation du sch´ema
La visualisation du sch´
ema en 3D se r´
ealise `
a l’aide de la librairie graphique OpenGL. La
manipulation `
a la souris de la visualisation pourra se faire avec l’aide de la librairie glut, ou
directement sout Qt. Un programme minimaliste de manipulation de sc`
ene 3D vous est donn´
e
en tant que point de d´
epart.
Dans la boucle d’affichage principale r´
eactualis´
ee `
a vitesse interactive, l’appel explicite `
a
l’affichage d’un triangle se r´
ealise suivant la syntaxe :
double x1,y1,... , z3; <- valeurs des coordonn´
ees du triangle
glBegin(GL_TRIANGLES);//debut affichage triangle
glVertex3d(x1,y1,z1); //sommet 1
glVertex3d(x2,y2,z2); //sommet 2
glVertex3d(x3,y3,z3); //sommet 3
glEnd();
De mani`
ere similaire, on peut afficher un quadrangle directement :
glBegin(GL_QUADS);//debut affichage triangle
glVertex3d(x1,y1,z1); //sommet 1
glVertex3d(x2,y2,z2); //sommet 2
glVertex3d(x3,y3,z3); //sommet 3
glVertex3d(x4,y4,z4); //sommet 4
glEnd();
Le cas d’un triangle dont la normale est constante sur la portion de plan est obtenu par
l’appel :
glBegin(GL_TRIANGLES);//debut affichage triangle
glNormal3d(nx,ny,nz); //normale du triangle
glVertex3d(x1,y1,z1); //sommet 1
glVertex3d(x2,y2,z2); //sommet 2
glVertex3d(x3,y3,z3); //sommet 3
glEnd();
Lorsque plusieurs triangles sont affich´
es cotes `
a cotes (maillage), on cherche `
a donner l’ap-
parence d’une surface globalement lisse. Les normales ne sont alors plus consid´
er´
ee comme
constante sur un patch lin´
eaire ´
el´
ementaire (triangle ou quad), mais comme une donn´
ee va-
riable associ´
ee `
a chaque sommet. Les sommets sont alors vus comme l’´
echantillonnage d’une
fonction lisse dont l’information de normale est connue en ces points particuliers.
Un triangle dont les sommets sont associ´
es `
a des normales diff´
erentes poss`
ede la syntaxe
suivante :
glBegin(GL_TRIANGLES);//debut affichage triangle
glNormal3d(nx1,ny1,nz1); //normale du triangle 1
glVertex3d(x1,y1,z1); //sommet 1
glNormal3d(nx2,ny2,nz2); //normale du triangle 2
glVertex3d(x2,y2,z2); //sommet 2
glNormal3d(nx3,ny3,nz3); //normale du triangle 3
glVertex3d(x3,y3,z3); //sommet 3
glEnd();
4
Finalement, l’affichage d’un ensemble de triangles dont les normales sont d´
efinies par som-
met suivra la syntaxe suivante :
glBegin(GL_TRIANGLES);
for(int k_triangle=0;k_triangle<N_triangle;++k_triangle)
{
//appels `
a glNormal3d et glVertex3d
// des triangles correspondants
// ...
}
glEnd();
Une r´
esistance pourra ainsi ˆ
etre mod´
elis´
ee par un cylindre form´
e de triangles ou de qua-
drangles. On pourra ainsi former une librairie d’´
el´
ements de bases pouvant ˆ
etre appel´
es lorsque
n´
ecessaire.
FIGURE 3 – Visualisation possible du sch´
ema ´
electrique. Gauche : Repr´
esentation du maillage
triangul´
e sous OpenGL. Droite : rendu final textur´
e du montage.
3 Travail demand´e
Vous r´
ealiserez l’analyse ainsi que la visualisation automatique d’un circuit simple form´
e
de g´
en´
erateur de tension et de r´
esistances. Dans un premier temps, on pourra s’int´
eresser au
cas particulier du sch´
ema fourni en exemple.
Vous impl´
ementerez la lecture d’un fichier de sauvegarde de circuit au format xml. Le par-
sing pourra se r´
ealiser `
a l’aide de librairies d´
edi´
ees : tinyxml ou libxml.
`
A partir de la lecture de ce type de fichier, vous impl´
ementerez la g´
en´
eration automatique
de la matrice mod´
elisant la loi des noeuds de votre sch´
ema. La r´
esolution num´
erique de cette
matrice pourra se faire `
a l’aide de biblioth`
eques d´
edi´
ees : eigen,newmat, . . .
Enfin, vous r´
ealiserez l’affichage 3D de votre circuit `
a l’aide de mod`
eles simples. Dans un
premier temps, vous mettrez en place des mod`
eles g´
eom´
etriques simples (cylindres, plan, . . .)
puis tenterez d’it´
erer sur des mod`
eles de visualisation plus d´
etaill´
es. Les mod`
eles g´
eom´
etriques
pourront ˆ
etre pr´
e-stock´
es une fois pour toutes, et finalement mod´
elis´
es `
a l’aide de logiciels
sp´
ecifiques au besoin (Blender, . . .).
Le coeur de votre projet consiste `
a lire, analyser et visualiser un chemin simple tel qu’illustr´
e
dans ce document. Il est indispensable de r´
eussir ces trois ´
etapes dans ce cas particulier. Il est
inutile de g´
en´
eraliser ou d’am´
eliorer l’approche si ces trois ´
etapes initiales ne sont pas r´
ealis´
ees.
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !