J-0
00m
00j
00h
00min
00s

Version interactive avec LaTeX compilé

Banque PT Modélisation PT 2024

Notez ce sujet en cliquant sur l'étoile
0.0(0 votes)
Logo banque-pt
2025_09_04_dd066d4abcda7bb69be0g

Epreuve d'Informatique et Modélisation de Systèmes Physiques

Durée 4 h

Si, au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé, d'une part il le signale au chef de salle, d'autre part il le signale sur sa copie et poursuit sa composition en indiquant les raisons des initiatives qu'il est amené à prendre.

L'usage de calculatrices est interdit.

AVERTISSEMENT

La présentation, la lisibilité, l'orthographe, la qualité de la rédaction, la clarté et la précision des raisonnements entreront pour une part importante dans l'appréciation des copies. En particulier, les résultats non justifiés ne seront pas pris en compte. Les candidats sont invités à encadrer les résultats de leurs calculs.

CONSIGNES:

  • Composer lisiblement sur les copies avec un stylo à bille à encre foncée : bleue ou noire.
  • L'usage de stylo à friction, stylo plume, stylo feutre, liquide de correction et dérouleur de ruban correcteur est interdit.
  • Remplir sur chaque copie en MAJUSCULES toutes vos informations d'identification : nom, prénom, numéro inscription, date de naissance, le libellé du concours, le libellé de l'épreuve et la session.
  • Une feuille, dont l'entête n'a pas été intégralement renseigné, ne sera pas prise en compte.
  • Il est interdit aux candidats de signer leur composition ou d'y mettre un signe quelconque pouvant indiquer sa provenance.

Partie Modelisation

Des applications industrielles, comme la fabrication de batteries, réclament un environnement précisément contrôlé. En particulier, la température doit être finement régulée pour permettre un déroulement fiable des procédés.
Dans cette partie, deux dispositifs qui participent à cette régulation sont modélisés, un climatiseur puis une ailette de refroidissement.

A. Etude d'un climatiseur

1. Transferts thermiques

On envisage la construction d'un climatiseur monotherme, c'est-à-dire une machine thermique cyclique capable de recevoir ou de fournir un travail, et d'absorber de l'énergie thermique d'une source de chaleur, thermostat à la température .

et correspondent aux grandeurs algébriquement reçues sur un cycle
Q1. Exprimer la variation d'énergie interne et d'entropie pour cette machine, en fonction de , et de l'entropie créée sur un cycle. Simplifier les expressions en considérant un fonctionnement cyclique.
Q2. Déterminer les signes du travail et du transfert thermique .
Q3. Conclure sur la possibilité de concevoir un tel climatiseur monotherme.

2. Efficacité d'un cycle réversible

On s'intéresse désormais à un climatiseur ditherme, c'est-àdire à une machine thermique cyclique capable de recevoir ou de fournir un travail, et d'échanger de l'énergie thermique avec deux thermostats aux températures (pour la source « froide ») et (pour la source «chaude»).
Q4. Ecrire deux relations entre le travail , les transferts thermiques et , et les températures et .
Q5. Préciser le signe du transfert thermique (considérer que la machine est un climatiseur).
Q6. En déduire le signe du travail .
Q7. Définir l'efficacité du climatiseur ditherme, et déterminer son expression en fonction des températures et dans l'hypothèse d'un fonctionnement réversible.
Q8. La pièce à climatiser doit conserver une température constante. Commenter l'évolution de l'efficacité dans l'hypothèse d'un fonctionnement réversible, en fonction de la température extérieure.

3. Machine réelle

Le cycle d'un climatiseur réel peut être représenté par un schéma:
Sur le diagramme enthalpique ( ) du fluide R404A, sont représentés :
  • la courbe de saturation de l'équilibre liquide-vapeur (en trait fort);
  • les isothermes pour des températures comprises entre et ;
  • les isentropiques pour des entropies massiques comprises entre et ;
  • les isotitres en vapeur sous la courbe de saturation pour des titres massiques en vapeur variant de 0 à 1 .
Dans le domaine du liquide seul, les isothermes sont verticales.
est exprimée en bar et en .
Il est conseillé de placer les points particuliers sur le diagramme ci-dessous pour déterminer les valeurs demandées, mais le diagramme n'est pas à rendre avec la copie.
On étudie l'évolution du fluide au cours d'un cycle en régime permanent.
Q9. A la sortie de l'évaporateur, le fluide est à l'état de vapeur sèche à la température et à la pression bar . Repérer le point sur le diagramme. Relever la valeur de l'enthalpie massique du fluide.
Q10. Le compresseur comprime cette vapeur de façon adiabatique et réversible jusqu'à la pression . Repérer le point sur le diagramme. Relever la valeur de la température et celle de l'enthalpie massique en sortie du compresseur.
Q11. Déterminer la valeur du travail mécanique massique reçu par le fluide lors de son passage dans le compresseur.
Q12. Le fluide entre ensuite dans le condenseur dans lequel il est refroidi et liquéfié de manière isobare jusqu'à la température . Repérer le point sur le diagramme. Relever la valeur de I'enthalpie massique en sortie du condenseur.
Q13. A partir de l'état , le fluide est détendu de manière adiabatique, jusqu'à la pression de l'évaporateur . Le détendeur ne comprend aucune pièce mobile. Montrer que la transformation dans le détendeur est isenthalpique.
Q14. Repérer le point sur le diagramme. Relever la valeur de la température et le titre massique en vapeur en sortie du détendeur.
Q15. En déduire le transfert thermique massique échangé par le fluide lors de son passage à travers l'évaporateur (transformation isobare), entre et . Commenter son signe.
Q16. Calculer la valeur de l'efficacité e du climatiseur.
Q17. Comparer cette valeur à celle d'un climatiseur réversible fonctionnant entre la température de l'évaporateur et la température de liquéfaction du fluide sous la pression . Commenter le résultat obtenu.

B. Efficacité du refroidissement

On étudie une ailette de longueur , de section rectangulaire , dont la face en est en contact avec le dispositif à refroidir, à la température .
On note la température dans l'ailette, en la considérant uniforme sur toute section d'abscisse , et le régime est stationnaire. La température de l'air ambiant, constante et uniforme, est .
Le transfert thermique de l'ailette vers l'air ambiant est modélisé, sur la surface latérale de l'ailette, par la relation : est la puissance thermique échangée par la surface .
est une constante caractéristique de cet échange thermique, la conductivité thermique de l'ailette est notée .
Q18. A l'aide d'un bilan d'énergie réalisé sur une tranche de l'ailette comprise entre les abscisses et , déterminer l'équation différentielle vérifiée par la température dans l'ailette.
Q19. Introduire une distance caractéristique , dont on donnera l'expression en fonction de et .
Q20. Rappeler la forme générale de la solution de l'équation différentielle, puis préciser à quelle condition portant sur il est possible de considérer l'ailette comme infinie.
Q21. En supposant la condition sur vérifiée, déterminer complètement l'expression de .
Q22. Exprimer la puissance thermique totale évacuée par l'ailette en fonction de et .

Partie informatique

Dans cette partie, les fonctions et programmes attendus devront être écrits en langage Python (sauf, bien entendu, lorsqu'une requête SQL est demandée). On prendra garde à la lisibilité du code, et notamment aux indentations. Toute fonction définie dans le sujet pourra être utilisée, même sans avoir été codée dans les questions précédentes.
L'objectif de développement de la voiture électrique et des hybrides rechargeables en Europe devait suivre le planning suivant :
  • en 2020 ;
  • 38 % en 2025 ;
  • 70 % en 2030 ;
  • 100 % en 2035.
En effet, l'objectif fixé par le gouvernement consiste à mettre fin à la voiture thermique d'ici à 2035. Toutefois, pour cela, les pays doivent s'équiper de suffisamment de sites de production de batteries pour véhicules électriques afin d'alimenter l'ensemble des constructeurs automobiles européens.

Ainsi la première gigafactory européenne de fabrication de batteries Lithium-ion pour véhicules automobiles voit le jour en Suède et les premières batteries intègreront les véhicules européens dès 2024. Les salles de fabrication d'une telle usine sont des salles dites salles blanches avec climatisation et contrôle environnemental précis :
  • taux d'empoussièrement classe ISO5
  • taux d'humidité réduit : de point de rosée (air très sec comme au pôle Nord)
  • température régulée à
  • pression de +40 Pa (surpression)
Process de contrôle environnemental d'une salle blanche

C. Déterminer le nombre de FFU, leur répartition et ajustement de la vitesse de rotation

Le plafond de la salle blanche est muni de FFU (Fan filter unit) qui sont des ventilateurs de 1 mètre de diamètre. Ils aspirent l'air et le poussent vers le bas. Ils assurent un taux de renouvellement de l'air de 50 volumes / heure.
Schéma de principe d'un FFU
L'objectif de cette partie est de déterminer d'une part le nombre de FFU, leur répartition spatiale afin qu'ils soient équirépartis dans la salle et d'autre part la vitesse de rotation proportionnelle au débit à régler sur chacun des FFU afin de respecter une exigence de taux d'empoussièrement imposé par la norme noté tx_renew
On note :
: longueur de la salle blanche en m ;
: largeur de la salle blanche en m ;
: hauteur de la salle blanche en m ;
: volume de la salle blanche en ;
: débit d'air d'un seul FFU en ;
tx_renew : taux de renouvellement d'air indique le nombre de fois à l'heure que l'air total d'une pièce doit être renouvelé ;
: nombre de FFU sur une ligne horizontale ;
: nombre de FFU sur une ligne verticale ;
: nombre total de FFU dans la salle.
Q23. Ecrire une fonction volume qui prend en argument les trois dimensions de la pièce et qui fournit le volume de la pièce en sortie.
Q24. Ecrire une fonction nbre_ffu qui prend en argument et renew et qui retourne le nombre de FFU à prévoir pour répondre à l'exigence du renouvellement d'air du cahier des charges.
On souhaite déterminer le nombre de FFU positionnables le long de l'horizontale noté , le long de la verticale noté ainsi que l'espacement entre chaque appareil noté en horizontal et en vertical afin d'avoir une répartition équirépartie des ventilateurs dans la salle blanche.
Schéma de positionnement des FFU dans une salle blanche de dimension
L’encombrement des FFU est simplifié et modélisé par un carré de 1 m de côté.
L’espacement ne peut être inférieur à 1 m et l'espacement ne peut être inférieur à zéro car aucun chevauchement n'est acceptable techniquement.
On souhaite écrire une fonction repartition( ) qui prend en argument la longueur , la largeur de la salle blanche, le nombre de FFU calculé précédemment et qui renvoie les valeurs , et afin d'avoir une répartition équirépartie des ventilateurs dans la salle.
Q25. Justifier que le système d'équations qui relie et est le suivant :
Q26. Ecrire la situation d'initialisation de la boucle de la fonction repartition qui est la situation où tous les FFU sont alignés sur une seule ligne. Déterminer les expressions de et dans cette situation initiale.
def repartition(l,L,n):
    initialisation de nx, ny, u et v
    while COND1 :
        ny=ny+1
        nx=n//ny
        u=EXP2
        v=EXP3
    return nx,ny,a,b
script fonction repartition(L,\ell,n)
Q27. Après l'initialisation des paramètres, la fonction repartition( ) utilise une boucle while pour calculer les nouvelles grandeurs et dans la situation d'une répartition des FFU sur une ligne supplémentaire. Une proposition de la boucle while de cette fonction est fournie cidessus. Définir la condition d'arrêt de la boucle while COND1 et les expressions EXP2, EXP3 définies dans le script précédent.
La solution obtenue en appliquant la fonction précédente peut être dessinée sous python :
Représentation de la solution de répartition équirépartie des FFU pour une salle blanche de
Comme et doivent être des entiers naturels, la fonction repartition( ) renvoie une solution telle que .
Pour maintenir le même taux de renouvellement d'air avec moins de ventilateurs, une possibilité est d'augmenter légèrement le débit des ventilateurs par simple augmentation de la vitesse de rotation des ventilateurs sachant que débit et vitesse de rotation sont proportionnels. Le coefficient multiplicateur est calculable par la fonction :
def coeff(Q,V,nx,ny,tx_renew):
    Qreel=V*tx_renew/(nx*ny)
    return Qreel/Q

D. Etude de résultats expérimentaux afin de modéliser le couple résistant ramené sur l'arbre moteur

L'objectif de cette partie est de dépouiller de manière automatique les fichiers .txt contenant les résultats de 18 essais expérimentaux réalisés sur un FFU afin d'en extraire les données exploitables en vue de construire un modèle de comportement du couple résistant.

1. Extraction des résultats expérimentaux d'un essai

Les fichiers des essais sont tous enregistrés sur le cloud sous le même format .txt. Par exemple les résultats expérimentaux de l'essai 11 nommé "essai11.txt" sont les suivants :
Les 12 premières lignes contiennent les informations relatives à l'essai.
  • Ligne 1 : date de l'essai ;
  • Ligne 2 : heure de l'essai;
  • Ligne 3 : fréquence d'échantillonnage de la mesure ici 1000 Hz ;
  • Ligne 4 : Système FFU ;
  • Ligne 5 : Loi de pilotage : ici la consigne est une loi de vitesse en trapèze avec une phase1 d’accélération - une phase2 à vitesse constante et une phase3 de décélération ;
  • Ligne 6 : Nombre de cycles effectués. Ici 1 seul cycle de consigne de vitesse en trapèze ;
  • Ligne 7 : durée de la phase d'accélération 30 s ;
  • Ligne 8 : consigne de vitesse pour la phase à vitesse constante (différente pour chacun des essais expérimentaux) ;
  • Ligne 9 : Durée de la phase à vitesse constante : 50 s ;
  • Ligne 10 : : durée de la phase de décélération 30 s ;
  • Ligne 11 : indique le nombre de points en lequel est découpé le trapèze de consigne ici 360 points ;
  • Ligne 12 : indique l'intervalle de temps entre deux points du trapèze « numérique » précédent ici . Comme la fréquence d'échantillonnage est de , cela signifie que la consigne est identique pour 3 points de mesure consécutifs.
Les lignes suivantes contiennent les informations relatives aux mesures
  • Ligne 13 : titres des grandeurs mesurées séparés par des tabulations : le temps (s) - la consigne (tr/min) - la vitesse du moteur mesurée (tr/min) - le courant moteur mesuré (Ampère) ;
  • Ligne 14 et suivantes : les valeurs mesurées à chaque instant. Chaque ligne est une liste de 4 chaines de caractères séparées par des tabulations /t.
Le répertoire courant étant celui qui contient l'ensemble des fichiers résultats, on travaillera par la suite avec les chemins relatifs simples comme "essai11.txt".
Le script suivant permet d'afficher les 26 premières lignes de l'essai 11 :
nom_fichier="essai11.txt"
fichier=open(nom_fichier,"r")
for i in range(0,26):
    ligne=fichier.readline()
    print(ligne)
fichier.close()
L'instruction fichier. readline() permet d'obtenir une ligne d'un fichier puis de passer à la ligne suivante.
Date Essai 07/02/2023
Heure Essai 14:45
Frequence (Hz) 10
Fonctionnement ffu
Type Pilotage Trapeze
Nb cycles 1
Duree acceleration (s) 30
Vitesse (tr/min) 2200
Temps maintien (s) 50
Duree deceleration (s) 30
Nb points de consigne 365
dt consigne 0,3
Temps (s) Consigne (tr/min) Vitesse du moteur (tr/min) Courant (A)
0 22 -0,884 0
0,1 22 -9,96 0,041
0,2 22 -12,924 0,057
0,3 44 -12,924 0,079
4 44 -9,96 0,144
0,5 44 -0,884 0,151
0,6 66 3,744 0,255
0,7 66 3,744 0,349
0.8 66 13.748 0.349
Les résultats expérimentaux relevés sont des chaines de caractères type string nombres à virgule alors que Python utilise des nombres à point.
Q28. Écrire une fonction python nommée remplace_virgule_par_point(chaine) qui prend en argument une chaine de caractères appelée chaine et qui renvoie une nouvelle chaine de caractères obtenue en remplaçant les virgules "," par des points "." On rappelle que le type string est un conteneur numéroté comme une liste mais non mutable. Ainsi on fabriquera la nouvelle chaine, caractère par caractère.
Pour pouvoir étudier le comportement du système, il est nécessaire pour chacun des essais d'extraire des données numériques de temps, de consigne, de vitesse et de courant d'un fichier .txt issu d'un essai sur le système FFU, puis de stocker les données extraites de chaque ligne de mesures du fichier dans une liste des temps intitulée Ltemps, une liste des valeurs de consigne intitulée Lconsigne, une liste des vitesses moteur intitulée Lvitesse et une liste des courant intitulée Lcourant.
On rappelle que :
  • L'instruction ligne.split("\t") renvoie une liste de chaînes de caractères obtenue en divisant la chaîne de caractères ligne à chaque apparition du séparateur tabulation : "\t".
Par exemple :
fichier=open("essai11.txt","r")
    for i in range(13):
        ligne=fichier.readline()
    for ligne in fichier:
        ligne2=remplace_virgule_par_point(ligne)
        liste=ligne2.split("\t")
        print(liste)
renvoie pour les 6 premières lignes :
['0', '22', '-0.884', '0\n']
['0.1', '22', '-9.96', '0.041\n']
['0.2', '22', '-12.924', '0.057\n']
['0.3', '44', '-12.924', '0.079\n']
['0.4', '44', '-9.96', '0.144\n']
['0.5', '44', '-0.884', '0.151\n'] etc...
  • L'instruction fichier.readline() permet d'obtenir une ligne d'un fichier puis de passer à la ligne suivante, ce qui va permettre de passer les 13 premières lignes du fichier essai11.txt
  • L'instruction float("3.14") permet d'obtenir le flottant 3.14 correspondant à la chaine de caractères "3.14".Par contre, float("3,14") renvoie un message d'erreur, car Python ne gère pas les flottants avec des virgules.
def extraction_resultats_essai(chemin_fichier):
    #initilisation des listes vides
    Ltemps=[]
    Lconsigne=[]
    Lvitesse=[]
    Lcourant=[]
    fichier=open(chemin_fichier,"r")
    #pour passer les 13 premières lignes
    for i in range(13):
        ligne=fichier.readline()
    #pour traiter les lignes suivantes
    for ligne in fichier:
        ligne2=remplace_virgule_par_point(ARGS1)
        liste=ligne2.split("\t")
        #remplissage des données en transformant les str en float
        Ltemps.append(ARGS2)
        Lconsigne.append(ARGS3)
        Lvitesse.append(ARGS4)
        Lcourant.append(ARGS5)
    fichier.close()
        return Ltemps, Lconsigne, Lvitesse, Lcourant
Script incomplet de la fonction extraction_resultats_essai(nom_fichier)
Q29. La capture précédente fournit le script incomplet de la fonction extraction_resultats_essai(nom_fichier) qui prend en argument le nom du fichier de l'essai analysé et qui renvoie les quatre listes des grandeurs physiques numériques type flottants de l'essai étudié Ltemps, Lconsigne, Lvitesse, Lcourant, soit les données présentes dans la première, la deuxième, la troisième et la quatrième colonne du fichier à partir de la 14e ligne. Définir les arguments ARGS1, ARGS2, ARGS3 et ARGS4 définis dans le script précédent.
La fonction précédente extraction_resultats_essai(nom_fichier) est ensuite complétée par les instructions suivantes:
dico={"temps":Ltemps,"consigne":Lconsigne,"vitesse":Lvitesse,"courant
":Lcourant}
return dico
Q30. Que signifient ces 2 instructions et décrire la structure de données choisie ? Préciser son intérêt.
Q31. Ecrire un script python qui permet d'extraire les résultats de l'essai 1 qui seront stockés dans un dictionnaire nommé donnees, puis qui affiche la liste des temps.
La bibliothèque matplot est intégrée dans le programme :
import matplotlib.pyplot as plt
Q32. Ecrire une fonction affichage(donnees) qui prend en argument le dictionnaire stockant les résultats d'un essai et qui renvoie la courbe des vitesses mesurées d'un essai en fonction du temps.
Les courbes obtenues des résultats expérimentaux pour l'essai 11 sont les suivantes:
Représentation des résultats expérimentaux extrait du fichier « essai11.txt »

2. Détermination du couple résistant

En régime permanent (vitesse de rotation constante, pas d'accélération), le couple moteur sert uniquement à vaincre le couple résistant dans un système FFU où l'axe moteur est fixe par rapport au repère galiléen. De plus pour un moteur à courant continu, le couple moteur est proportionnel au courant selon la constante de couple , le couple résistant peut donc se déterminer par la relation suivante (en régime permanent) :
èè
Q33. Écrire la fonction moyenne_sur_intervalle(Liste, deb, fin) qui permet de déterminer la valeur moyenne des nombres compris entre les indices deb (inclus) et fin (exclu) de la liste Liste.
Le régime permanent est atteint pour en secondes correspondant aux indices [500; 700] avec la fréquence d'échantillonnage de 10 Hz .
Q34. Écrire une fonction point_de_fonctionnement(donnees) qui prend en argument le dictionnaire stockant les résultats de l'essai étudié et qui renvoie la valeur de la vitesse de rotation en régime permanent et du couple résistant de l'essai étudié en tenant compte uniquement du courant entre 50 et 70 s .

3. Analyse de l'ensemble des essais

On souhaite maintenant déterminer le point de fonctionnement ( ) de chacun des 18 essais expérimentaux dont les mesures sont stockées dans le même dossier dans 18 fichiers .txt intitulés "essai1.txt" à "essai18.txt". Chacun des points de fonctionnement est mémorisé dans une liste L_vit et une liste .
Q35. Ecrire un script python qui pour chaque essai présent dans le dossier, détermine le couple résistant et la vitesse de rotation sur l'intervalle de temps compris entre 50 et 70 s et mémorise et dans deux listes it et .
Les allures des 18 points de fonctionnement expérimentaux du couple résistant ( Nm ) en fonction de la vitesse de rotation du moteur ( ), du courant (A) en fonction de la vitesse de rotation du moteur et du couple résistant ( Nm ) en fonction du carré de la vitesse de rotation du moteur sont représentées sur les trois figures suivantes:


4. Modélisation du comportement couple résistant Cr en fonction de la vitesse du moteur par une régression linéaire.

L'objectif est de construire un modèle de comportement du couple résistant agissant sur l'arbre moteur dans l'ensemble FFU.
L'analyse des points de fonctionnement expérimentaux nous permet de proposer le modèle de comportement type quadratique :
Il s'agit donc dans la suite de déterminer les constantes et par régression linéaire.
La méthode utilisée pour construire la régression est la méthode de descente de gradient utilisée en intelligence artificielle. Celle-ci est utilisée dans notre étude simplifiée pour réaliser une régression linéaire simple mais son champ d'utilisation est bien plus large et permet de réaliser une régression linéaire multiple sur une base de données à plusieurs paramètres. Par exemple on aurait pu ajouter dans le modèle les paramètres : température, humidité et nombre d'heures d'utilisation.
Q36. Justifier que la méthode de descente de gradient est une méthode d'apprentissage supervisé. Expliquer la différence entre un apprentissage supervisé avec classification et avec régression.
Q37. Qu'est-ce qu'une régression linéaire multiple ? Quel serait dans ce cas l'expression du modèle de comportement de à rechercher?
Description de la base de données résultats de l'étude de la partie précédente:
  • la base contient observations;
Chaque observation contient :
  • une valeur explicative , carré de la vitesse de rotation en stockée dans un vecteur de dimension ( );
  • une réponse , couple résistant en Nm , stockée dans un vecteur de dimension ( ).
La bibliothèque numpy est intégrée dans le programme :
import numpy as np
On rappelle :
  • La fonction np.hstack((M,N)) permet de concaténer deux tableaux pour former une matrice ;
  • La fonction np. ones ( ) permet de créer un tableau rempli de 1 de lignes et colonnes ;
  • La fonction np. renvoie le produit de deux matrices et ;
  • La fonction np.transpose(M) renvoie la matrice transposée de M ;
  • La fonction np. sum(V) renvoie la somme des composantes du vecteur V.
Q38. Ecrire un script python qui permet de construire la matrice afin de prendre en compte le biais du modèle affine.
Pour déterminer le modèle, un vecteur de dimension est créé :
Pour calculer ce vecteur, on utilise la relation : est le vecteur qui contient tous les paramètres du modèle :
Q39. Ecrire la fonction modele qui prend en argument ( et theta) et retourne la matrice .
La fonction de coût caractérise la somme des erreurs au carré entre le modèle et la réponse .
Q40. Ecrire la fonction coût en fonction de , les et et .
Q41. Ecrire la fonction coût sous forme matricielle en fonction de et Y .
Q42. Ecrire en python la fonction cout qui prend en argument trois vecteurs et theta et qui renvoie la valeur du coût .
Q43. Ecrire les dérivées partielles de la fonction et .
Q44. Ecrire le vecteur gradient de la fonction coût sous forme matricielle en fonction de et et montrer que : avec la transposée de la matrice .
Q45. Ecrire en python une fonction gradient qui prend en argument trois vecteurs et theta et qui renvoie le vecteur gradient du cout . On pourra utiliser la fonction np. transpose( ) qui transpose la matrice M .
La descente de gradient est une méthode itérative qui repose sur le fait que, dans le voisinage d'un point, la fonction de coût décroît moins que son gradient. Et au voisinage du minimum l'écart entre la pente de la fonction coût et le gradient tend vers zéro.
Cet algorithme permet ainsi de trouver le minimum de la fonction de coût en partant de paramètres initiaux et aléatoires. A chaque itération les paramètres du modèle sont mis à jour en leur soustrayant la plus grande pente possible multipliée par la vitesse de convergence (le pas) .
La vitesse de convergence est déterminée par l'hyperparamètre , appelé vitesse d'apprentissage.
Q46. Ecrire la fonction descente_gradient( , theta_init,alpha, n ) qui prend en argument les données et , le vecteur initial noté theta_init, la vitesse d'apprentissage alpha choisi, et le nombre d'itérations choisi et qui renvoie le vecteur theta obtenu par la méthode de descente de gradient après les itérations.
Le programme précédent permet d'obtenir le modèle de couple résistant suivant après 300 itérations:

E. Etude du comportement du moteur électrique entraînant le ventilateur

Dans la suite de l'étude, l'objectif est d'étudier les caractéristiques du comportement d'un moteur électrique à courant continu à excitation séparée entraînant le ventilateur dont on désire régler la vitesse de rotation.

1. Etude du régime établi: recherche de la tension de commande moteur

Le ventilateur est entrainé directement par le moteur.
Le couple résistant est lié à la fréquence de rotation par la loi : (avec en en et
Q47. Ecrire une fonction affichage qui prend en argument les valeurs de et et qui permet de tracer l'allure pour compris entre 0 et par pas de 10.
Les caractéristiques du moteur du FFU permettent de déterminer l'expression du couple utile Cu (en Nm ) sur l'arbre moteur en fonction de (en rad/s) et de la tension de commande en V pour cste dont l'expression est la suivante:
On souhaite déterminer les différentes valeurs de pour une tension d'alimentation donnée. Cela revient à chercher le point d'intersection entre:
Et donc à chercher une solution de l'équation :
On définit la fonction par
def f(w,U):
    a1=5.3e-6
    a0=0.05
    return a1*w*w+a0-0.839*(U-1.17*w)
Q48. Ecrire une fonction dichotomie(U,deb,fin,e) qui prend en argument la valeur de la tension d'alimentation imposée , les bornes de l'intervalle de , la précision du résultat et qui retourne les coordonnées ( ) solution de l'équation à près.
Ainsi grâce à la partie C et la partie E .1 : on connait la tension à imposer à l'ensemble moteur + ventilateur soit 146 V en régime permanent pour assurer la vitesse de rotation nécessaire de et donc le taux de renouvellement d'air imposé par le cahier des charges.

2. Etude en régime dynamique: prévision des caractéristiques de la réponse du FFU à un échelon de courant.

Dans cette partie, le courant dans l'inducteur reste constant.
On néglige désormais la résistance de l'induit .
On note le moment d'inertie de l'ensemble aéraulique ramené à l'arbre moteur.
Le moteur est couplé directement au ventilateur, on lui applique un échelon de courant . On souhaite déterminer l'évolution de la vitesse de rotation au cours du temps sachant que .
L'équation de la dynamique s'écrit :
Il est donc nécessaire de résoudre l'équation différentielle non linéaire suivante :
On utilisera la méthode d'Euler-explicite.
Q49. Ecrire l'équation différentielle régissant la vitesse de rotation du rotor sous la forme . On précise que la fonction ne dépend pas explicitement du temps .
Q50. A l'aide d'un développement limité de la variable à l'ordre 1 , montrer que l'approximation de la dérivée peut s'écrire :
Q51. Déterminer l'expression de en fonction de et
On note la liste des temps qui démarre à t0 et s'arrête à t1 et de pas de temps .
On note la liste des valeurs de la vitesse de rotation .
Q52. Proposer une fonction Euler_Explicite dont les arguments sont permettant de résoudre l'équation différentielle avec comme condition initiale , par itérations successives de pas de temps sur l'intervalle [ ] en utilisant la méthode d'Euler explicite, et renvoyant la liste des temps et la liste des solutions approchées associées. On impose d'utiliser une boucle while.
Le tracé de la solution numérique est représenté ci-dessous :
réponse de à échelon d'intensité 6.5 A
Q53. Les listes et étant calculées, écrire un script python permettant de déterminer puis d'afficher le temps de réponse et la vitesse de rotation en régime permanent du système.
Il sera alors par la suite possible d'analyser les écarts entre les performances simulées et les performances attendues.
Banque PT Modélisation PT 2024 - Version Web LaTeX | WikiPrépa | WikiPrépa