CCINP Modélisation PT 2019Sujet
Pas encore noté
Téléchargements
- Corrigé : pas encore disponible
- Rapport du jury : non disponible
L'épreuve en chiffres
Moyenne 8,61 / 20 · écart-type 3,97 · 2 271 présents · où vous situez-vous ?Afficher ou masquer la section
L'épreuve en chiffres
Moyenne 8,61 / 20 · écart-type 3,97 · 2 271 présents · où vous situez-vous ?
- Moyenne
- 8,61/ 20
- Écart-type
- 3,97
- Présents
- 2 271
Votre note sur 20 à ce sujet, en conditions de concours.
Source : document officiel du concours. Notes publiées par le concours (après harmonisation le cas échéant). Courbe : estimation par une loi normale.
Ces sujets peuvent vous intéresser
Pas encore de corrigé pour ce sujet : voici des sujets proches corrigés.
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.Afficher ou masquer la section
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.
ÉPREUVE SPÉCIFIQUE - FILIÈRE TPC
MODÉLISATION
Jeudi 2 mai : 8 h - 12 h
N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.
N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.
Les calculatrices sont autorisées
Le sujet est composé de trois parties partiellement indépendantes.
Modélisation du mouvement d'une plateforme en mer
On s'intéresse à la résolution d'équations du mouvement dans une approche classique de la mécanique afin d'étudier le mouvement d'une plateforme en mer. Le modèle envisagé est un système à un degré de liberté considéré comme oscillateur harmonique : une masse est reliée à un ressort, avec ou sans amortissement, et peut être soumise à une excitation externe.
La résolution est tout d'abord abordée de façon analytique puis de façon numérique, avant enfin de comparer les résultats obtenus.
Les résolutions analytiques et numériques sont largement indépendantes.
Dans la suite de l'énoncé, toutes les grandeurs vectorielles sont indiquées en gras.
Un aide-mémoire sur numpy est donné en Annexe.
Dans la suite de l'énoncé, toutes les grandeurs vectorielles sont indiquées en gras.
Un aide-mémoire sur numpy est donné en Annexe.
On considère le mouvement d'une plateforme en mer soumise à un courant marin. Sa partie supérieure de masse
m = 110 tonnes est considérée comme rigide et le mouvement principal de la plateforme a lieu suivant
x (figure 1(a)).
Afin d'étudier le mouvement de cette plateforme, on la représente par une masse
m , liée à un ressort de constante de raideur
k et à un amortisseur de constante d'amortissement
γ , pouvant subir une excitation externe de force
F_(exc) , et se déplaçant sur un support (figure 1(b)). Le ressort représente la rigidité de l'ensemble du support de la plateforme. L'amortisseur permet de prendre en compte l'effet de l'eau environnante et la force d'excitation externe celui des vagues qui frappent périodiquement la plateforme. La masse est supposée se déplacer selon une seule direction parallèle à l'axe Ox en fonction du temps
t .

Figure 1 - (a) Plateforme en mer soumise aux vagues marines, (b) système masse
(m) , ressort
(k) , amortisseur
(γ) et excitation externe
(F_(exc))
Les projections sur l'axe Ox de la position, de la vitesse et de l'accélération de la masse en fonction du temps sont notées respectivement
x(t), x˙(t) et
x¨(t) . La force totale
F_(tot) agissant sur la masse correspond à la réaction normale
R_N de la base horizontale, à la force de frottement
F_d , à la force de rappel
F_k du ressort, au poids P de la masse et à la force
F_(exc) d'excitation externe. La position d'équilibre de la masse sera choisie à
x = 0 . En l'absence d'action de l'amortisseur, la masse se déplace sur la base horizontale sans frottements.
Partie I - Résolution analytique et détermination des paramètres pour la modélisation
- Q1.En effectuant une projection sur l'axe Ox, montrer que P et
R_N n'interviennent pas dans le bilan des forces.
I. 1 - Ressort sans amortissement et sans excitation
- Q2.Démontrer que l'équation du mouvement de la masse correspond à l'équation différentielle du second ordre suivante :
mx¨ + kx = 0. - Q3.La solution de cette équation prend la forme générale suivante
x(t) = A_0 sin(ω_0 t) + B_0 cos(ω_0 t)
avecA_0 etB_0 deux coefficients réels. Exprimerω_0 en fonction des grandeurs caractéristiques du système et donner sa signification physique. De plus, en remarquant qu'àt = 0 : x(t) = x_0 etx˙(t) = x˙_0 , déterminer les expressions deA_0 et deB_0 en fonction dex_0, x˙_0 et deω_0 . - Q4.On cherche à reformuler l'équation précédente sous une forme plus compacte du type :
x(t) = R_0 cos(ω_0 t − φ_0).
Donner les expressions deR_0 et deφ_0 en fonction dex_0, x˙_0 et deω_0 . - Q5.Représenter qualitativement
x(t) en fonction det et indiquer sur le tracéR_0, x_0 et2π/ω_0 . - Q6.En utilisant les expressions des énergies cinétique
K(t) et potentielleU(t) du système, montrer que l'énergie totaleE(t) du système est alors :
E(t) = (kR_0^2)/2.
Justifier le résultat obtenu. - Q7.Représenter qualitativement
E(t), K(t) etU(t) en fonction det .
I. 2 - Ressort avec amortissement et sans excitation
- Q8.La force de frottement que l'amortisseur exerce sur la masse est considérée comme linéaire, c'est-à-dire proportionnelle au vecteur vitesse
v de celle-ci :F_d = − γv , avecγ constante d'amortissement(> 0) . En considérant une projection sur l'axe Ox, démontrer que la position de la masse en fonction du temps suit l'équation du mouvement ci-après
x¨ + 2ζω_0 x˙ + ω_0^2 x = 0
avecω_0 défini en questionQ3 etζ à exprimer en fonction deγ, k etm .
- Q9.Dans le cas où
ζ < 1, x(t) prend la forme suivante :
x(t) = e^(− ζω_0 t)(A_d cos(ω_d t) + B_d sin(ω_d t)).
Déterminer les deux coefficients réelsA_d etB_d en fonction dex_0, x˙_0, ζ, ω_0 etω_d = ω_0 ⋅ √(1 − ζ^2) . On utilisera pour cela les mêmes conditions initiales que celles utilisées en questionQ3 . - Q10.Montrer alors que l'on peut obtenir une forme du type
x(t) = R_d e^(− ζω_0 t)cos(ω_d t − φ_d)
avecR_d etφ_d à préciser. - Q11.Représenter qualitativement
x(t) en fonction det et indiquer sur le tracéR_d e^(− ζω_0 t), x_0 et2π/ω_d . - Q12.Donner l'expression de
E(t) et commenter les cas oùζ = 0 etζ = 1 . - Q13.Montrer de façon simple que
E est une fonction décroissante det . À quoi cela est-il dû? - Q14.On envisage deux temps successifs
t_1 ett_2 pour lesquels les déplacements sontx_1 etx_2 , tels quet_2 > t_1 ett_2 − t_1 = τ_d , avecτ_d : période des oscillations amorties. En utilisant l'équation (7) et en considérant queζ≪1 , montrer que :
ln(x_1/x_2) ≈ 2πζ.
Q15. Le relevé du déplacement horizontal de la plateforme en fonction du temps est représenté en figure 2.
En utilisant les deux points qui sont indiqués sur la figure, déterminerk, ζ et
γ .
Comment ce tracé serait modifié en fonction de la valeur deζ ?
En utilisant les deux points qui sont indiqués sur la figure, déterminer
Comment ce tracé serait modifié en fonction de la valeur de

Figure 2 - Relevé du déplacement horizontal
x (en m) de la plateforme de masse
m = 110 tonnes en fonction du temps
t (en s ). Les deux temps
t_1 et
t_2 mentionnés en question Q14 sont indiqués
I. 3 - Ressort avec amortissement et avec excitation
On envisage enfin le cas où le système est soumis à la fois aux effets d'amortissement et d'excitation. On se limite ici à la réponse à une excitation harmonique sinusoïdale de fréquence
ω produite par une force extérieure au système
avec
e_x vecteur unitaire sur l'axe Ox et on se place dans le cas traité précédemment pour l'étude de l'amortisseur, c'est-à-dire
ζ < 1 (I.2).
On admet de plus dans ce qui suit que la réponse du système dans le cas où amortisseur et excitation sont pris en compte peut s'écrire comme somme de la solution donnée par l'équation (6) et de la contribution due à l'excitation :
Q16. Montrer que l'équation différentielle caractérisant le système devient alors :
Q17. En utilisant l'équation (10) et en privilégiant une représentation complexe, vérifier que :
Q18. Exprimer la grandeur
M = X/(F_0/k) en fonction de
r = ω/ω_0 et expliciter le sens physique de
M .
Q19. Trouver la condition surr puis sur
ω pour laquelle
M est maximale.
Q19. Trouver la condition sur
Q20. Si l'on considère une période moyenne des vagues en mer de 8 s , que peut-on conclure sur le mouvement de la plateforme ?
Partie II - Modélisation : codage
On souhaite maintenant obtenir
x(t) et
E(t) de façon numérique et comparer les résultats obtenus à ceux fournis par les solutions analytiques précédentes pour
x(t) . On rappelle que
x(t) et
E(t) représentent respectivement la position de la masse et l'énergie mécanique totale en fonction du temps.
Pour cela, le temps est discrétisé en
N points
t = 0, Δt, 2Δt, …, (N − 1)Δt avec un pas de temps constant
Δt . Les
N − 1 pas sont effectués pendant la simulation de durée totale
t_(max) . On note respectivement
x_n, v_n, a_n, E_n et
F_n les valeurs de
x(t), x˙(t), x¨(t), E(t) et
F_(exc)(t) à
t = nΔt .
À chaque pas, les équations du mouvement reliantx_(n + 1) et
v_(n + 1) à
x_n et
v_n sont utilisées afin d'obtenir les valeurs de
x, v et
E . Les conditions initiales
x_0 et
v_0 sont connues et permettent de démarrer le processus d'intégration numérique. Deux algorithmes distincts (Euler et Leapfrog) vont être utilisés dans la suite.
À chaque pas, les équations du mouvement reliant
Pour l'écriture du code, on se place dans le cas le plus général, c'est-à-dire avec amortissement et excitation harmonique externe. Les variables et tableaux suivants sont notamment choisis :
| N | nombre de points sur l'axe des temps utilisés pendant toute la simulation |
| t[] | tableau des temps (s), de dimension
|
| x[] | tableau des positions (m), de dimension
|
| v[] | tableau des vitesses (
|
| E[] | tableau des énergies totales (J), de dimension
|
| F[] | tableau des forces d'excitation (N), de dimension
|
| dt | pas de temps (s) |
| tmax | temps total de la simulation (s) |
| k | constante de raideur du ressort (
|
| m | masse du système (kg) |
| om0 |
|
| zeta |
|
Tableau 1 - Principaux tableaux et principales variables utilisés pour la résolution numérique
On rappelle qu'un aide-mémoire sur numpy est fourni en Annexe, page 10.
- Q21.Écrire les lignes de code permettant de définir l'entier
N . On supposet_(max) etΔt connus et fixés par l'utilisateur en début de code. - Q22.Écrire alors l'instruction permettant de définir le tableau t qui contient toutes les valeurs de
t telles que :0 ≤ t ≤ t_(max) . On rappelle que le temps est discrétisé enN pointst = 0, Δt, 2Δt, …, (N − 1)Δt avec un pas de temps constantΔt et queN − 1 pas sont effectués. - Q23.En effectuant des développements de Taylor de
x etv tronqués à l'ordre 1 , on obtient l'algorithme d'Euler, oùx etv sont évalués au même tempst selon le schéma donné figure 3, page 7 :
{x_(n + 1) ≈ x_n + v_n ⋅ Δt; v_(n + 1) ≈ v_n + a_n ⋅ Δt
Donner les expressions dex_(n + 1) etv_(n + 1) en fonction dex_n, v_n etF_n .

Figure 3 - Discrétisation en temps utilisée dans le cas de l'algorithme d'Euler. Les conditions initiales correspondent à
(x_0; v_0)
- Q24.Écrire la boucle en i permettant d'obtenir toutes les valeurs de x [i+1], v[i+1] et
E[i + 1] où i correspond à un point sur l'axe des temps. On précisera les variables éventuellement introduites en supposant qu'elles ont été définies dans le code. - Q25.Dans l'algorithme de Leapfrog, les
x sont évalués aux temps entiers, c'est-à-dire àt = 0, Δt, 2Δt, …, (N − 1)Δt , alors que lesv sont évalués àt = − Δt/2, Δt/2, 3Δt/2, …, (N − 1)Δt − Δt/2 selon le schéma donné figure 4. Ainsi, pour cet algorithme, x[i] représente de façon approchée la position à l'instantiΔt , et v[i] représente de façon approchée la vitesse à l'instant(i − 1/2)Δt .
Figure 4 - Discrétisation en temps utilisée dans le cas de l'algorithme de Leapfrog. Les conditions initiales correspondent à(x_0; v_(− 1/2)) Pour le système considéré, montrer alors quex_(n + 1) etv_(n + 1/2) prennent les formes suivantes :{x_(n + 1) ≈ x_n + v_(n + 1/2) ⋅ Δt; v_(n + 1/2) ≈ − (ω_0^2 Δt)/(1 + ζω_0 Δt)x_n + (1 − ζω_0 Δt)/(1 + ζω_0 Δt)v_(n − 1/2) + (F_n)/(m(1 + ζω_0 Δt))Δt - Q26.Quel problème pose l'évaluation de
E[i + 1] ?
Dans la suite, on préfèrera ainsi évaluer E[i]. - Q27.Comment obtenir
E[i] à partir dex[i] etv[i] ? - Q28.En introduisant deux variables fac1 et fac2 correspondant respectivement à
1 − ζω_0 Δt et1/(1 + ζω_0 Δt) , écrire la boucle en i permettant d'obtenir toutes les valeurs dex[i + 1] etv[i + 1] . - Q29.Compléter la boucle de la question Q28 avec le calcul du terme d'énergie totale.
- Q30.Écrire une fonction integration(F) qui prend en argument le tableau F[] des forces d'excitation et renvoie les tableaux x[], v[] et E[] complétés.
On introduira pour cela une variable algo supposée définie en global, permettant d'appliquer l'algorithme d'Euler si algo= 0 ou de Leapfrog si algo== 1 .
On considèrera également le cast = 0 . - Q31.Écrire une fonction force(f,t,w) qui prend en argument
F_0, t , etω de l'équation (9) et retourne la valeur deF_(exc) pour un temps t donné. - Q32.Écrire une fonction force_exc() qui complète et retourne le tableau F[] des forces d'excitation en fonction du booléen exc défini globalement valant True si une excitation est appliquée au système, False sinon.
Dans le cas où excTrue, on appellera la fonction force définie précédemment en question Q31. Dans le cas où excFalse, on prendra alors : F[i]=0,∀i . - Q33.Donner alors les lignes de code permettant de réaliser la simulation numérique à partir des fonctions précédentes.
- Q34.On souhaite désormais estimer la qualité des résultats numériques par rapport aux données analytiques de référence. Écrire une fonction ema(d,dref) qui calcule l'erreur maximale absolue entre un jeu de données numériques dn et analytiques da. On supposera que les tableaux dn et da sont de même dimension
n . - Q35.Pour le problème particulier qui nous intéresse, si l'on souhaite appliquer cette fonction aux tableaux contenant les données numériques et analytiques pour
E , quel est l'indice maximal de ces tableaux à considérer ?
Réécrire alors la fonction ema pour qu'elle soit applicable aux deux algorithmes considérés.
Partie III - Modélisation : analyse des résultats d'un cas simple
Toutes les données numériques suivantes ont été obtenues avec :
t_(max) = 10 s, m = 110 tonnes,
x_0 = 0, 02 m et
v_0 = 0 m.s^(− 1) et la valeur de
k obtenue en question Q15, dans le cas d'un système sans amortissement et sans excitation externe. Le tableau 2 en page 9 présente les erreurs maximales absolues (EMA) calculées avec la fonction ema des énergies obtenues numériquement par rapport à celles obtenues analytiquement, pour les deux algorithmes envisagés et divers pas de temps.
- Q36.Justifier l'ordre de grandeur des
Δt considérés du tableau 2 pour la discrétisation en temps utilisée. - Q37.En utilisant les données numériques du tableau 2 donner l'ordre approximatif de l'erreur globale sur
E des deux algorithmes considérés. Justifier votre réponse. - Q38.Dans le cas simple de l'algorithme d'Euler, comment augmente
E lorsqu'on passe det_n àt_(n + 1) ? Relier alors ce résultat aux données du tableau 2.
|
|
EMA | |
| Euler | Leapfrog | |
| 0,050 | 128,0203160 | 0,0837314 |
| 0,010 | 15,1373529 | 0,0033484 |
| 0,005 | 7,1159053 | 0,0008371 |
| 0,001 | 1,3556230 | 0,0000335 |
Tableau 2 - EMA obtenues pour
E (en J ) par rapport à la valeur analytique, pour différents pas de temps
Δt , dans le cas où il n'y a pas d'amortissement et d'excitation externe
Une propriété importante que devrait vérifier un algorithme d'intégration est la réversibilité dans le temps : en partant des positions et vitesses d'un temps
t + Δt et en appliquant un pas de temps
− Δt , un algorithme réversible en temps devrait redonner les positions et vitesses du temps
t .
En pratique, en partant d'un couple (x_n; v_n ), on applique donc tout d'abord un pas
Δt pour déterminer
(x_(n + 1); v_(n + 1)) , puis on applique un pas
− Δt afin d'obtenir
(x_n^–; v_n^–) . Si
(x_n^–; v_n^–) = (x_n; v_n) , alors l'algorithme est dit réversible en temps.
En pratique, en partant d'un couple (
Q39. Pourquoi s'agit-il d'une propriété importante à vérifier pour le problème considéré ?
Q40. Donner l'expression de
x_n^– en fonction de
x_n pour les deux algorithmes considérés. Peut-on déjà conclure sur la réversibilité en temps de chacun de ces algorithmes ?
Q41. Donner alors l'expression de
v_n^– en fonction de
v_n lorsque nécessaire et conclure sur la réversibilité en temps.
Q42. On s'intéresse enfin à une simulation de plus grande durée (
t_(max) = 60 s ). La figure 5 donne l'évolution de l'erreur absolue sur
x entre données numériques et analytiques
(|e_x|) pour les deux algorithmes choisis. Que peut-on mettre en évidence sur cette figure ?

Figure 5 - Erreurs absolues calculées sur la position de la masse à
Δt = 0, 001 s , pour les deux algorithmes considérés
Q43. Conclure sur les avantages et les inconvénients de chacun de ces algorithmes et sur leur adéquation pour le traitement numérique de ce problème dans le cas où on envisage une simulation de plusieurs heures.
ANNEXE
Aide-mémoire sur numpy
Les bibliothèques sont importées de la façon suivante :
from math import *
import numpy as np
La création d'un tableau numpy tab à une dimension possédant
n éléments, tous initialisés à 0 , est réalisée à l'aide de l'instruction :
>>> tab=np.zeros(n)
Celle d'un tableau numpy tab à une dimension possédant
n éléments, uniformément répartis entre deux valeurs debut et fin, se fait avec :
>>> debut=0; fin=10; n=5
>>> tab=np.linspace(debut,fin,n)
>>> print tab
array([ 0.0 2.5 5.0 7.5 10.0 ])
L'accès à un élément du tableau tab (en lecture ou en écriture) se fait par tab[i], la numérotation des indices se faisant à partir de 0 :
>>> tab=np.zeros(4)
[ 0.0 0.0 0.0 0.0 ]
>>> tab[1]=2; tab[2]=6; print tab
[ 0.0 2.0 6.0 0.0 ]
La sélection de l'ensemble des j premiers éléments du tableau tab est possible avec :
>>> print tab[:3]
[ 0.0 2.0 6.0 ]
Le maximum des éléments d'un tableau tab s'obtient avec :
>>> np.max(tab)
Pas de description pour le moment
