,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.