Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:superelements:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:user:elements:superelements:start [2016/06/29 18:44] hennuyerdoc:user:elements:superelements:start [2016/06/29 18:52] hennuyer
Line 1: Line 1:
-==== Création du super-élément à vitesse non nulle ====+====== General Points ====== 
 +==== Méthodes de réduction de modèles : rappels théoriques ====
  
-La création proprement dite du SE, dans l'état précontraint, se décompose en plusieurs étapes +Le système d'équations associé au modèle EF que l'on souhaite condenser est le suivant 
-    * Création de l'interaction ''Guyan/CraigBamptonSuperElementInteraction'' n°<no>, qui ne sera pas ajoutée à l'interactionSet du domain. +\begin{equation} 
-    * Définition du nb de modes propres à interfaces fixes (Craig-Bampton) -> ''setNumberOfEigenValues'' +\label{EQ:eq_mvt} 
-    * Association du domaine FEM à l'interaction créée -> ''setDomain''. + \mathbf{M} \ddot{\mathbf{U}} + \mathbf{K} \mathbf{U} = \mathbf{F} 
-    * Fixation de ''superElemBuiltFlag'' à ''False'' -> ''setSuperElemBuiltFlag'' +\end{equation}
-    * Association de toutes les interactions qui définissent le futur SE à l'interaction ''Guyan/CraigBamptonSuperElementInteraction''. Le but est de calculer correctement les différents blocs des matrices k et m du modèle FEM, sur lesquelles le calcul des matrices réduites K et M est basé -> ''addInteraction'' puis ''setSuperElementNodes''+
  
-<note>Les matrices k et m du modèle FEMà partir desquelles les matrices réduites vont être construites, prennent en compte le raidissement centrifuge du à la mise en rotation préalable du modèle FEM.</note>+Afin de construire un modèle réduitl'ensemble des DDLs du modèle FEM sont décomposés en des __DDLs Retenus__ et des __DDLs Condensés__Le système d'équation précédent s'écrit donc : 
 +\begin{equation} 
 + \label{EQ:eq_mvt_repartition} 
 + \left(\begin{array}{cc} 
 + \mathbf{M}_{RR} & \mathbf{M}_{RC} \\ 
 + \mathbf{M}_{CR} & \mathbf{M}_{CC} 
 + \end{array}\right) 
 + \left(\begin{array}{c} 
 + \ddot{\mathbf{U}}_R \\ 
 + \ddot{\mathbf{U}}_C 
 + \end{array}\right) 
 +
 + \left(\begin{array}{cc} 
 + \mathbf{K}_{RR} & \mathbf{K}_{RC} \\ 
 + \mathbf{K}_{CR} & \mathbf{K}_{CC} 
 + \end{array}\right) 
 + \left(\begin{array}{c} 
 + \mathbf{U}_R \\ 
 + \mathbf{U}_C 
 + \end{array}\right) 
 +
 + \left(\begin{array}{c} 
 + \mathbf{F}_R \\ 
 + \mathbf{0}_C 
 + \end{array}\right)  
 +\end{equation}
  
-    * Détermination des nœuds **Retenus** -> ''setRetainedNodes'' +Un changement de base est ensuite réalisé afin de réduire la taille du système initial. Deux méthodes de réduction de modèle peuvent être formulées en fonction du changement de base effectué : la méthode de Guyan et celle de Craig-Bampton
-    * Création du fichier de sauvegarde ''superElement<no>.py'' qui sera exécuté lors de l'importation du super-élément -> ''createPyFileForSuperElemUse'' \\ => Le n°<no> est le UserNo de l'interaction "super-élément" qui sera créée au moment de l'utilisation du SE ; à chaque n°<no> correspond 1 super-élément+ 
-    * Sauvegarde des groupes de noeuds RETENUS dans le fichier ''superElement<no>.py'' -> ''groupsNodesToSave'' +=== Méthode de Guyan === 
-    * Création de l'objet ''Guyan/CraigBamptonSuperElement'' -> ''generateElements()'' + 
-    * Calcul des matrices réduites et sauvegarde du super-élément -> ''computeSuperElement()'' +La formule du changement de base dans le cas de la méthode de Guyan est la suivante : 
-    * Mise à jour des flags ''belongingToSuperElem'' à ''false'' dans le cas où un autre super-élément est construit dans le même calcul -> ''clearSuperElementNodes()'' +\begin{equation} 
-    * Sauvegarde des valeurs des modes statiques de liaison et des modes propres à interfaces fixes (Craig-Bampton) des DDLs Condensés dans le fichier ''superElement<no>.py'' -> lancée via la construction des ''Guyan/CraigBamptonSuperElementValueExtractor'' => **Doit être fait après computeSuperElement()** car le super-élément créé doit avoir été ajouté à l'elementSet de l'interaction.+ \label{EQ:eq_chgt_base_Guyan} 
 + \mathbf{U} 
 +
 + \left(\begin{array}{c} 
 + \mathbf{U}_R \\ 
 + \mathbf{U}_C 
 + \end{array}\right
 +
 + \left(\begin{array}{cc} 
 + \mathbf{I} \\ 
 + \Psi 
 + \end{array}\right
 + \mathbf{U}_R 
 + = \boldsymbol{\alpha} \ \mathbf{U}_R  
 +\end{equation} 
 +avec $\Psi = -\mathbf{K}_{CC}^{-1} \ \mathbf{K}_{CR}$, la matrice dont chaque colonne correspond à un mode statique de liaison. 
 + 
 +En introduisant ce changement de base dans le système original, on obtient le système réduit de Guyan : 
 +\begin{equation} 
 + \label{EQ:eq_mvt_reduit_Guyan} 
 + \widetilde{\mathbf{M}} \ddot{\mathbf{U}}_R + \widetilde{\mathbf{K}} \mathbf{U}_R = \mathbf{F}_R 
 +\end{equation} 
 +avec : 
 +\begin{equation} 
 +    \label{EQ:M_reduite_Guyan} 
 + \widetilde{\mathbf{M}} = \boldsymbol{\alpha}^t \ \mathbf{M} \ \boldsymbol{\alpha} = \mathbf{M}_{RR} + \Psi^t \ \mathbf{M}_{CR} + \mathbf{M}_{RC} \ \Psi + \Psi^t \ \mathbf{M}_{CC} \ \Psi 
 +\end{equation} 
 +\begin{equation} 
 +    \label{EQ:K_reduite_Guyan} 
 + \widetilde{\mathbf{K}} = \boldsymbol{\alpha}^t \ \mathbf{K} \ \boldsymbol{\alpha} = \mathbf{K}_{RR} + \mathbf{K}_{RC} \ \Psi 
 +\end{equation} 
 + 
 +=== Méthode de Craig-Bampton === 
 + 
 +La formule de changement de base dans le cas de la méthode de Craig-Bampton est la suivante : 
 +\begin{equation} 
 + \label{EQ:eq_chgt_base_CB} 
 + \mathbf{U} 
 +
 + \left(\begin{array}{c} 
 + \mathbf{U}_R \\ 
 + \mathbf{U}_C 
 + \end{array}\right
 +
 + \left(\begin{array}{cc} 
 + \mathbf{I} & \mathbf{0} \\ 
 + \Psi & \Phi 
 + \end{array}\right) 
 + \left(\begin{array}{c} 
 + \mathbf{Q}_R \\ 
 + \mathbf{Q}_N 
 + \end{array}\right) 
 + = \boldsymbol{\alpha} \ \mathbf{Q}  
 +\end{equation} 
 +avec $\Psi$ la matrice des modes statiques de liaison définie plus haut, et $\Phi$ la matrice dont chaque colonne correspond à un mode propre à interfaces fixes
 + 
 +En introduisant ce changement de base dans le système original, on obtient le système réduit de Craig-Bampton 
 +\begin{equation} 
 + \label{EQ:eq_mvt_reduit} 
 + \widetilde{\mathbf{M}} \ddot{\mathbf{Q}} + \widetilde{\mathbf{K}} \mathbf{Q} = \widetilde{\mathbf{F}} 
 +\end{equation} 
 +avec : 
 +\begin{equation} 
 + \label{EQ:M_reduite_CB_a} 
 + \widetilde{\mathbf{M}} 
 + = \boldsymbol{\alpha}^t \ \mathbf{M} \ \boldsymbol{\alpha} 
 +
 + \left(\begin{array}{cc} 
 + \widetilde{\mathbf{M}}_{RR} & \widetilde{\mathbf{M}}_{RN} \\ 
 + \widetilde{\mathbf{M}}_{NR} & \widetilde{\mathbf{M}}_{NN} 
 + \end{array}\right) 
 +        \ \text{avec} \  
 + \left\{\begin{array}{l} 
 + \widetilde{\mathbf{M}}_{RR} = \mathbf{M}_{RR} + \Psi^t \ \mathbf{M}_{CR} + \mathbf{M}_{RC} \ \Psi + \Psi^t \ \mathbf{M}_{CC} \ \Psi \\ 
 + \widetilde{\mathbf{M}}_{RN} = \widetilde{\mathbf{M}}^t_{NR} = \mathbf{M}_{RC} \ \Phi + \Psi^t \ \mathbf{M}_{CC} \ \Phi\\ 
 + \widetilde{\mathbf{M}}_{NN} = \Phi^t \ \mathbf{M}_{CC} \ \Phi 
 + \end{array}\right. 
 +\end{equation} 
 + 
 +\begin{equation} 
 + \label{EQ:K_reduite_CB_a} 
 + \widetilde{\mathbf{K}} 
 + \boldsymbol{\alpha}^t \ \mathbf{K} \ \boldsymbol{\alpha} 
 +
 + \left(\begin{array}{cc} 
 + \widetilde{\mathbf{K}}_{RR} & \widetilde{\mathbf{K}}_{RN} \\ 
 + \mathbf{0} & \widetilde{\mathbf{K}}_{NN} 
 + \end{array}\right) 
 + \ \text{avec} \  
 + \left\{\begin{array}{l
 + \widetilde{\mathbf{K}}_{RR} = \mathbf{K}_{RR} + \mathbf{K}_{RC} \ \Psi\\ 
 + \widetilde{\mathbf{K}}_{RN} = \mathbf{K}_{RC} \ \Phi + \Psi^t \ \mathbf{K}_{CC} \ \Phi \rightarrow \text{Terme non nul !!}\\ 
 + \widetilde{\mathbf{K}}_{NN} = \Phi^t \ \mathbf{K}_{CC} \ \Phi 
 + \end{array}\right. 
 +\end{equation} 
 + 
 +<note important>La théorie étant basée sur l'hypothèse que $\mathbf{K}$ est symétrique, le terme $\widetilde{\mathbf{K}}_{RN}$ était nulDans Metafor, la matrice $\mathbf{K}$ n'est pas symétrique par défaut, pour plusieurs raisons, et donc $\widetilde{\mathbf{K}}_{RN} \neq 0$ !!</note>
  
-Exemple dans le cas Craig-Bampton : 
-<code> 
-SEInteraction = CraigBamptonSuperElementInteraction(1) # Création de la SuperElementInteraction\\ 
-SEInteraction.setDomain(domain)\\ 
-SEInteraction.setNumberOfEigenValues(self.nbOfNormalModes)\\ 
-SEInteraction.setSuperElemBuiltFlag(False) # False = Création du SE + sauvegarde\\ 
-for inter in interactionsList:\\ 
-    SEInteraction.addInteraction(inter)    # Ajout des interactions associées au futur SE\\ 
-SEInteraction.setSuperElementNodes()       # Identification de tous les noeuds associés aux interactions ajoutées via addInteraction (flag "belongingToSuperElem")\\ 
-SEInteraction.setRetainedNodes(retainedNodesGp) # Détermination des noeuds retenus (flag "belongingToSuperElem" = true / "fixed" = true)\\ 
-SEInteraction.setSymmetrizeK(symmetrizeK)\\ 
-if solver:\\ 
-    SEInteraction.setSolver(solver)\\ 
-createPyFileAndSaveGroups(1, groupList)\\ 
-         
-SEInteraction.generateElements()       # génération du super-élément\\ 
-SEInteraction.computeSuperElement()    # calcul des matrices réduites + sauvegarde du super-élément\\ 
-SEInteraction.clearSuperElementNodes()\\ 
-</code> 
doc/user/elements/superelements/start.txt · Last modified: 2016/10/18 18:52 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki