PyPHS: Un module Python pour la modélisation et la

publicité
,pdfauthor=Antoine Falaize, Thomas Hélie, Tristan Lebrun,pdfkeywords=Systèmes
hamiltoniens à ports, Méthode numérique, Analyse de graphes, Génération
de code,pdfcreator=HAL,pdfproducer=PDFLaTeX,pdfsubject=Physics [physics]/Physics
[physics]/Computational Physics [physics.comp-ph], Mathematics [math]/Numerical
Analysis [math.NA], Mathematics [math]/Mathematical Physics [math-ph],
Mathematics [math]/Dynamical Systems [math.DS]
PyPHS: Un module Python pour la modélisation et la
simulation à passivit{é garantie de systèmes multi-physiques
Antoine Falaize, Thomas Hélie, Tristan Lebrun
To cite this version:
Antoine Falaize, Thomas Hélie, Tristan Lebrun. PyPHS: Un module Python pour la
modélisation et la simulation à passivit{é garantie de systèmes multi-physiques. Journées Jeunes Chercheurs en Audition, Acoustique musicale et Signal audio, Nov 2016, Paris, France.
<https://intranet.sfa.asso.fr/archives/J93-JJCAAS2016/>. <hal-01470954>
HAL Id: hal-01470954
https://hal.archives-ouvertes.fr/hal-01470954
Submitted on 18 Feb 2017
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
PyPHS:
Un module Python pour la modélisation et la
simulation à passivité garantie de systèmes
multi-physiques
Antoine Falaize, Thomas Hélie, Tristan Lebrun
Project-team S3 (Sound Signals and Systems)
UMR 9912 (IRCAM-CNRS-UPMC)
I. Système Hamiltonien à Ports [1]
Motivations
Constat:
Les systèmes physiques vérifient un bilan
de puissance:
dE
= −PD − PS
dt
nE Composants stockants :
nE
• État x ∈ R
PnE
• E = H(x) = n=1 Hn (xn ) ≥ 0
P
nE dHn dxn
dE
dx
|
• dt = ∇H dt = n=1 dxn dt
Représentation d’état

dx
dt
 
Jx
 w = K|
−Gx |
y
| {z } |
b
−K
Jw
−Gw |
{z
J=−J|


Gx
∇H(x)
Gx  z(w) 
Jy
u
}|
{z
}
a
nD Composants dissipatifs :
Objectif:
Modéliser et simuler en préservant cette
propriété.
Approche:
Les Systèmes Hamiltoniens à Ports
• Variable w ∈ RnD
• Fonction z : RnD → RnD
PnD
|
• PD = w z = n=1 wn zn ≥ 0
Encode le bilan de puissance
dE
dt
nS Sources externes :
• Entrée u, sortie y
PnS
|
• PS = y u = n=1 yn un
Système passif
Interconnexion conservative :
Exemple
Oscillateur amorti excité par une force
|
|
= ∇H| dx
+
z(w)
w
+
u
y
dt
= a| b
= a| J a = 0, (J antisym.).
+ PD + PS
•
•
•
•
• entrée u/état x/contrainte w/sortie y.
Puissance reçue: P = f e
flux f et effort e (elec: f ≡ i, e ≡ υ)
N = nE + nD + nS
PN
PN
n=1 Pn =
n=1 fn en = 0
• Énergie H ≡ Fonction de Lyapunov (stabilité/contrôle).
III. Méthode numérique [3]
Objectif: Garantir un bilan de puissance à
temps discret:
Graphe associé
δE
[k] = P[k] − D[k].
δT
Choix:
Dictionnaire
Var.
Fonction
Flux
x2
1
2m
k 2
x
2 2
v1 =
Effort
dH1
dx1
dx2
dt
F1 =
dx1
dt
dH2
dx2
m
x1 = m q̇
H1 =
k
x2 = q
H2 =
a
w3 = q̇
z3 = Aw3
v3 = w3
F3 = z3
In
v4 = y4
F4 = u4
v2 =
F2 =
Netlist
mechanics.mass M (’n1’,’n2’): M=(’M’,0.1);
mechanics.stiffness K (’n2’,’n3’): K=(’K’,1e6);
mechanics.damper A (’n3’,’ref’): A=(’A’,1);
mechanics.source IN (’ref’,’n1’): type=’force’;
Structure retournée par PyPHS

 
F1
0
 v2   1

=
 v3   1
v4
−1
| {z } |
b
−1 −1
0
0
0
0
0
0
{z
J
δE[k] E[k+1]−E[k] H(x[k+1])−H(x[k])
=
=
δT
δT
δT

1

0 

0 
0
}|

v1
F2 

F3 
F4
{z }
a
Dictionnaire actuel
Mécanique (1D): masses, ressorts lin./nonlin.
(cubique, saturants, etc.), amortissements lin./nonlin., visco-élasticité (dérivateur fractionnaire).
électronique: piles, bobines et condensateurs lin./nonlin., résistances, transistors,
diodes, triodes.
Magnétique: Aimants, capacités magnétiques
lin./nonlin, rÃl’sisto-inductance (intégrateurs fractionnaires).
Thermique: sources de chaleur, capacités thermiques.
Connections: couplages électromagnétiques,
couplages électromécaniques, transferts
irréversibles, gyrateurs, transformateurs.
II. Analyse du graphe [2]
Objectif : Générer le système d’équations.
1. Graphe → Matrice d’incidence réduite Γ:
1 si la branche b entre le noeud n,
[Γ]n,b=
−1 si la branche b sort du noeud n.
δx[k]
δT
d
x[k+1]−x[k]
δT −→
=
∇H(x) −→ ∇ H x[k], δx[k]
avec
nN
Potentiels sur les noeuds p ∈ R .
Référence N0 arbitraire.
Γ| p = e, (Loi des mailles).
Γf = 0, (Loi des noeuds).
3. Séparation suivant le type de contrôle
Γ=
dx
dt
d
Hn [x + δx]n − Hn [x]n
∇ H x, δx n =
.
[δx]n
2. Γ → Lois de Kirchhoff généralisées:
•
•
•
•
Une Solution: gradient discret [?]
γ0
γe
γf
• γ0 : référence,
• γe : effort-ctrl,
• γf : flux-ctrl.
4. Critère de réalisabilité:
Forme b = J · a possible si γf inversible.
Question: Quel contrôle pour les composants
dissipatifs bijectifs?
Algorithme:
Données:
Netlist et dictionnaire de composants.
Résultat
• Si réalisable:
1. partition de Γ,
2. structure b = J · a.
• Sinon: détection des conflits.
⇒ bilan de puissance discret avec
| δx[k]
δE
d |
[k] = ∇ H x[k], δx[k]
δT
δT
Conclusions
PyPHS: https://afalaize.github.io/pyphs/
• Licence CeCILL (CEA-CNRS-INRIA).
• Python 2.7 supporté sous Mac OSX,
Windows 10 et Linux.
Perspectives Résultats disponible à implémenter: variables d’ondes aller/retour, méthodes
numériques d’ordre supérieur, résolution des conflits de réalisabilité, génération de lois de commandes (approche par platitude).
Références
[1] Duindam, V., Macchelli, A., Stramigioli, S., & Bruyninckx, H. (Eds.). (2009). Modeling and control of
complex physical systems: the port-Hamiltonian approach. Springer Science & Business Media.
[2] Falaize, A., & Hélie, T. (2016). Passive Guaranteed Simulation of Analog Audio Circuits: A PortHamiltonian Approach. Applied Sciences, 6(10), 273.
[3] Lopes, N., Hélie, T., & Falaize, A. (2015). Explicit
second-order accurate method for the passive guaranteed simulation of port-Hamiltonian systems. IFACPapersOnLine, 48(13), 223-228.
Téléchargement