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 sci-entific research documents, whether they are pub-lished 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.
,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. �hal-01470954�
PyPHS:
Un module Python pour la mod´
elisation et la
simulation `
a passivit´
e garantie de syst`
emes
multi-physiques
Antoine Falaize, Thomas H´
elie, Tristan Lebrun
Project-team S3 (Sound Signals and Systems)
UMR 9912 (IRCAM-CNRS-UPMC)
Motivations
Constat:
Les syst`emes physiques v´erifient un bilan
de puissance:
dE
dt = −PD − PS
Objectif:
Mod´eliser et simuler en pr´eservant cette
propri´et´e. Approche:
Les Syst`emes Hamiltoniens `a Ports
I. Syst`
eme Hamiltonien `
a Ports [1]
nE Composants stockants : • ´Etat x ∈ RnE • E = H(x) = Pnn=1E Hn(xn) ≥ 0 • dEdt = ∇H| dxdt = Pnn=1E dHn dxn dxn dt nD Composants dissipatifs : • Variable w ∈ RnD • Fonction z : RnD → RnD • PD = w| z = Pnn=1D wn zn ≥ 0 nS Sources externes : • Entr´ee u, sortie y • PS = y| u = Pnn=1S yn un Interconnexion conservative :
• Puissance re¸cue: P = f e
• flux f et effort e (elec: f ≡ i, e ≡ υ) • N = nE + nD + nS
• PN
n=1 Pn =
PN
n=1 fn en = 0
Repr´esentation d’´etat
dx dt w y | {z } b = Jx −K Gx K| Jw Gx −Gx| −Gw| Jy | {z } J=−J| ∇H(x) z(w) u | {z } a
Encode le bilan de puissance
dE dt + PD + PS = ∇H| dx dt + z(w)| w + u| y = a| b = a| J a = 0, (J antisym.).
Syst`eme passif
• entr´ee u/´etat x/contrainte w/sortie y. • ´Energie H ≡ Fonction de Lyapunov
(stabil-it´e/contrˆole).
Exemple
Oscillateur amorti excit´e par une force
Graphe associ´e
Dictionnaire
Var. Fonction Flux Effort
m x1 = m ˙q H1 = x 2 1 2m v1 = dH1 dx1 F1 = dx1 dt k x2 = q H2 = k2 x22 v2 = dx2 dt F2 = dH2 dx2 a w3 = ˙q z3 = Aw3 v3 = w3 F3 = z3 In v4 = y4 F4 = u4 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´ee par PyPHS
F1 v2 v3 v4 | {z } b = 0 −1 −1 1 1 0 0 0 1 0 0 0 −1 0 0 0 | {z } J v1 F2 F3 F4 | {z } a
III. M´
ethode num´
erique [3]
Objectif: Garantir un bilan de puissance `a temps discret: δE δT [k] = P[k] − D[k]. Choix: δE[k] δT = E[k+1]−E[k] δT = H(x[k+1])−H(x[k]) δTUne Solution: gradient discret [?]
dx dt −→ δx[k] δT = x[k+1]−x[k] δT ∇H(x) −→ ∇dH x[k], δx[k] avec ∇dH x, δx n = Hn [x + δx]n − Hn [x]n [δx]n . ⇒ bilan de puissance discret avec
δE
δT [k] = ∇
d
H| x[k], δx[k]| δx[k]
δT
II. Analyse du graphe [2]
Objectif : G´en´erer le syst`eme d’´equations. 1. Graphe → Matrice d’incidence r´eduite Γ:
[Γ]n,b=
1 si la branche b entre le noeud n,
−1 si la branche b sort du noeud n.
2. Γ → Lois de Kirchhoff g´en´eralis´ees:
• Potentiels sur les noeuds p ∈ RnN.
• R´ef´erence N0 arbitraire.
• Γ|p = e, (Loi des mailles). • Γf = 0, (Loi des noeuds).
3. S´eparation suivant le type de contrˆole
Γ = γ0 γe γf • γ0: r´ef´erence, • γe: effort-ctrl, • γf: flux-ctrl.
4. Crit`ere de r´ealisabilit´e:
Forme b = J · a possible si γf inversible. Question: Quel contrˆole pour les composants
dissipatifs bijectifs? Algorithme:
Donn´ees:
Netlist et dictionnaire de composants. R´esultat
• Si r´ealisable:
1. partition de Γ,
2. structure b = J · a.
• Sinon: d´etection des conflits.
Dictionnaire actuel
M´ecanique (1D): masses, ressorts lin./nonlin. (cubique, saturants, etc.), amortisse-ments lin./nonlin., visco-´elasticit´e (d´ eriva-teur fractionnaire).
´electronique: piles, bobines et condensa-teurs lin./nonlin., r´esistances, transistors,
diodes, triodes.
Magn´etique: Aimants, capacit´es magn´etiques lin./nonlin, r ˜Al’sisto-inductance (int´ egra-teurs fractionnaires).
Thermique: sources de chaleur, capacit´es ther-miques.
Connections: couplages ´electromagn´etiques,
couplages ´electrom´ecaniques, transferts irr´eversibles, gyrateurs, transformateurs.
Conclusions
PyPHS: https://afalaize.github.io/pyphs/
• Licence CeCILL (CEA-CNRS-INRIA).
• Python 2.7 support´e sous Mac OSX, Windows 10 et Linux.
Perspectives R´esultats disponible `a impl´ e-menter: variables d’ondes aller/retour, m´ethodes num´eriques d’ordre sup´erieur, r´esolution des con-flits de r´ealisabilit´e, g´en´eration de lois de com-mandes (approche par platitude).
R´
ef´
erences
[1] Duindam, V., Macchelli, A., Stramigioli, S., & Bruyn-inckx, H. (Eds.). (2009). Modeling and control of complex physical systems: the port-Hamiltonian ap-proach. Springer Science & Business Media.
[2] Falaize, A., & H´elie, T. (2016). Passive Guaran-teed Simulation of Analog Audio Circuits: A Port-Hamiltonian Approach. Applied Sciences, 6(10), 273. [3] Lopes, N., H´elie, T., & Falaize, A. (2015). Explicit second-order accurate method for the passive guaran-teed simulation of port-Hamiltonian systems. IFAC-PapersOnLine, 48(13), 223-228.