1. Conversion DC/DC

Ce premier TP vise à

  1. prendre en main le matériel d’électronique de puissance

  2. étudier deux concepts fondamentaux de l’électronique puissance : la modulation en largeur d’impulsion (MLI, ou PWM en anglais) et le modèle moyen

Dans ce but, on s’intéressant au convertisseur de structure simple : un bras de pont (ou demi pont) utilisé pour faire de la conversion continu/continue (DC/DC), plus précisément un abaisseur de tension (hacheur dévolteur ou “buck”).

1.1. Dispositif expérimental

Description et schémas

Un hacheur alimente une charge (représenté par une résistance R) à une tension réglable, à partir d’une alimentation fixe Vdc. Le courant est lissé par une inductance Lf.

Schémas :

Câblage de convertisseur OwnVerter sur charge résistive, avec filtre inductif

Fig. 1.1 Câblage de convertisseur OwnVerter sur charge résistive, avec filtre inductif

Convertisseur DC/DC abaisseur de tension sur charge résistive, avec filtre inductif

Fig. 1.2 Convertisseur DC/DC abaisseur de tension sur charge résistive, avec filtre inductif

Remarque : pour une meilleure lisibilité des schémas, un seul convertisseur est représenté. Cependant, la carte utilisée dispose de 3 bras de ponts et, pour ce TP, ils sont pré-câblés chacun avec une inductance de valeur différente. Les expériences se feront en utilisant un seul bras à la fois, à choisir selon la valeur d’inductance souhaitée.

Liste du matériel

  • Carte OwnTech OwnVerter qui inclut :

    • Convertisseur électronique de puissance : 3 bras de pont, utilisés ici en hacheur abaisseur

    • Capteurs de courant et de tension

    • Microcontrôleur SPIN (de la famille STM32G4) : recueil des mesures, contrôle du convertisseur (en particulier génération de signal de Modulation en Largeur d’Impulsion, MLI ou PWM) et communication avec un ordinateur de supervision

  • Ordinateur, utilisé pour

    1. Programmation de la carte

    2. Supervision de la carte : réception des mesures et envoi des consignes

  • Alimentation DC : fournit la tension haute au convertisseur abaisseur

  • Filtre inductif Lf pour lisser le courant : 3 valeurs différentes pour étudier l’effet de la valeur de l’inductance. Valeurs disponibles : 75 µH, 157 µH, 346 µH et 630 µH (inductances toriques de la série WE-SI)

  • Charge résistive R=10 Ω (intégré à la maquette “transformateur 12V”)

  • Oscilloscope avec sondes de tension isolées et sonde de courant

Modèle de simulation

Modèle Simulink/Simscape du convertisseur avec la charge et filtre inductif

Modèle Simulink/Simscape du convertisseur DC/DC sur charge résistive, avec filtre inductif

Fig. 1.3 Modèle Simulink/Simscape du convertisseur DC/DC sur charge résistive, avec filtre inductif

Mise en route de la carte OwnTech (programmation)

En plus du câblage électrique, l’utilisation des carte OwnTech nécessite une étape de programmation. Cela signifie :

  1. Décrirer le comportement du microcontrôleur dans le language C++ (étape la plus longue, déjà faite → cf. code fournit)

  2. Compiler le code dans le language du microcontrôleur (assembleur/jeu d’instructions)

  3. Charger le code compilé dans la mémoire du microcontrôleur : via un câble USB-C

La programmation se fait dans l’environnement de développement VSCode avec l’extension PlatformIO (dédié au développement pour les microcontrôleurs des “systèmes embarqués”). Cet environnement est déjà configuré sur les ordinateurs de la salle de TP. Ceci dit, l’environnement étant open source, vous pouvez utiliser un ordinateur personnel (en espérant qu’une erreur de branchement ne l’endommage pas !).

Le guide de démarrage officiel est disponibles à l’adresse https://docs.owntech.org/latest/core/docs/environment_setup/, avec deux différences :

  • Les premières étapes (installations de VSCode et PlatformIO) ont déjà été faites sur les ordinateurs de la salle

  • Utiliser le code de ce TP plutôt que l’exemple par défaut (qui fait clignoter une LED)

Code à utiliser

Le microcontrôleur de la carte OwnTech est à programmer avec le template suivant :

https://github.com/pierre-haessig/ownverter-dcdc

1.2. Expériences en régime permanent

Dans cette partie, le rapport cyclique du convertisseur est fixé et les mesures se font en régime permanent.

Question préambule 1

Rappeler la constante de temps du circuit RL connecté au hacheur et l’évaluer pour voir combien de temps il est nécessaire de patienter avant d’attendre le régime permanent dans le pire cas (préciser ce pire cas).

Objectif

Le but des expériences en régime permanent est d’étudier l’effet des facteurs suivants :

  • Inductance de lissage Lf

  • Rapport cyclique d (d pour “duty cycle” ou α)

  • Fréquence de découpage f

  • Tension d’alimentation Vdc

sur ces grandeurs importantes :

  • Valeur moyenne des tensions et du courant

  • Ondulation du courant ΔI (crête-à-crête)

Travail à effectuer

Expériences 1 : régime permanent

  1. Concevoir un plan d’expérience « en étoile » : variation d’un paramètre à la fois, tous les autres étant gardés constants. Chaque paramètre devra prendre 3 valeurs. Présenter le plan à l’encadrant.e de TP

  2. Réaliser les mesures et les noter dans un tableau (une ligne par expérience). Ajouter en regard dans le tableau les valeurs théoriques attendues. Voir Détails de la procédure expérimentale pour la démarche à suivre.

  3. Analyse des résultats : représenter graphiquement l’effet de chaque paramètre (un graphique par paramètre), accompagné de l’effet théorique attendu

  4. Comparaison à un modèle de simulation : reproduire une des mesures (1 jeu de paramètres) avec le Modèle de simulation Simulink/Simscape fourni : tracé temporel et mesures

Question préambule 2

Rappeler les expressions théoriques attendues pour les grandeurs à mesurer (valeurs moyennes et ondulation ΔI)

Remarques :

  • Il n’est pas demandé d’enregistrer des captures temporelles à l’oscilloscope de chacune des mesures. Par contre, il est demandé d’en choisir quelques unes particulièrement représentative de vos expériences et des principaux effets illustrés.

  • Pour une bonne comparaison entre mesures et modèle de simulation, produire un tracé temporel simulé correspondant exactements à un enregistrement expérimental (même paramètres, même durée du tracé…)

Détails de la procédure expérimentale

Question préambule 3

Les résistances R=10 Ω utilisées comme charge conçues pour dissiper au maximum 25 W. Sachant qu’un hacheur abaisseur fournit une tension inférieur ou égale à la tension d’alimentation, calculer la plus haute valeur de la tension d’alimentation telle que les résistances ne chauffe pas trop.

  1. Câbler et programmer le hacheur, y compris les mesures (cf. ci-après)

  2. Après validation par l’encadrant.e de TP, mettre sous tension l’alimentation DC, réglée sur la valeur max calculée

  3. Mesurer : la tension filtrée (au borne de la résistance), la tension non filtrée (en sortie du hacheur, avant l’inductance) et le courant de sortie. En particulier :

    • Mesurer la valeur moyenne des tensions et du courant

    • Mesurer l’ondulation du courant ΔI (crête à crête)

1.3. Expériences en régime transitoire

Dans cette partie, on s’intéresse au comportement dynamique du convertisseur, c’est-à-dire l’évolution des grandeurs (courant, tension) suite à un changement du signal d’entrée, à savoir le rapport cyclique.

Motivation : la modélisation de la dynamique est la première étape indispensable si l’on souhaite mettre en place une régulation (de la tension ou du courant de sortie, voir Régulation de tension).

Travail à effectuer

Expériences 2 : régime transitoire

  1. Enregistrer un transitoire de variation de rapport cyclique (essai indiciel). Voir Mesure expérimentale des transitoires

  2. Comparer les résultats aux modèles de simulation commuté (fourni) et au modèle moyen (à construire)

  3. Modélisation par fonction de transfert

Mesure expérimentale des transitoires

Enregistrer à l’oscilloscope les signaux de tension et courant lors d’un transitoire de variation de rapport cyclique (essai indiciel)

  • Méthode : utiliser le mode de déclenchement “Single” de l’oscilloscope, avec un réglage du niveau du trigger tel que le signal déclenche le trigger lors du transitoire, mais pas avant.

  • Réaliser la mesure pour deux valeurs d’inductance de filtrage

Comparaison au modèle commuté

Reproduire les transitoires avec le Modèle de simulation fourni. Discuter les éventuelles différences.

Comparaison au modèle moyen

Modifier le modèle du convertisseur pour y implémenter le modèle moyen, c’est-à-dire où la tension de sortie du bras de pont est égale à sa valeur moyenne sur la période de découpage (⚠️ c’est une moyenne qui change au cours du temps si le rapport cyclique varie). Le modèle moyen a vocation à représenter la dynamique lente des signaux (plus lente que la fréquence de découpage), qui est celle surlaquelle une régulation peut agir (car le comportement à l’intérieur d’une période de découpage est dictée par la modulation en largeur d’impulsion).

Reproduire les transitoires avec le modèle moyen. Discuter les différences.

Remarques :

  • Faire la modification dans une copie du modèle fourni, pour garder le modèle commuté.

  • Composants Simulink/Simscape utiles : Controlled Voltage Source, Multiplieur

Modèle moyen du convertisseur DC/DC, avec charge résistive et filtre inductif

Fig. 1.4 Modèle moyen du convertisseur DC/DC, avec charge résistive et filtre inductif

Modélisation par fonction de transfert

Alors que l’électronique de puissance utilise des composants fortement non linéaires (diodes et transistors qui commutent), le modèle moyen est un circuit électrique linéaire “classique”. Cela ouvre la voie à une modélisation par fonction de transfert.

  1. Calculer la fonction de transfert du système (tension de sortie / rapport cyclique): \(H(p) = V_R(p)/d(p)\)

  2. Implémenter cette fonction de transfert dans Simulink

  3. Reproduire les transitoires avec le modèle fonction de transfert.

Remarque : le modèle fonction de transfert est censé avoir exactement le même comportement que le modèle moyen.

1.4. Régulation de tension

La régulation de tension consiste à ajuster automatique que rapport cyclique pour que la tension de sortie suive une tension consigne de référence

  1. Régler un correcteur PI avec une constante de temps en boucle fermée de 0.1 ms (ou autrement dit une pulsation de coupure à 10 krad/s)

  2. Tester la performance du correcteur en simulation

  3. Implémenter le correcteur expérimentalement et mesurer sa performance

    • Modifier le code pour que l’interface utilisateur ne fournisse non plus un rapport cyclique de référence, mais une tension de référence

    • Implémenter l’équation du correcteur

Aide : Correcteur PI en temps discret

Soit \(\varepsilon = V^* - V_{mes}\) l’écart à consigne (référence − mesure) que l’on souhaite ramener à zéro.

L’expression de la commande (le rapport cyclique \(d(t)\)) pilotée par un correcteur PI est :

\[d(t) = K_p \left[ \varepsilon(t)+ \frac{1}{T_i} \int_0^t \varepsilon(t).dt \right]\]

avec pour paramètres \(K_p\) le gain proportionnel et \(T_i\) la constante de temps de l’action intégrale (en s).

Cette expression peut être transformée en un contrôleur à temps discret (avec une période d’échantillonage \(T_s\)) grâce à l’approximation de l’intégrale par des rectangles (discrétisation d’Euler explicite) :

\[d(k) = K_p \left[ \varepsilon(k)+ \frac{1}{T_i} \varepsilon_{int}(k) \right]\]

où l’écart à consigne en temps discret est \(\varepsilon(k) = V^*(k) - V_{mes}(k)\) et où son intégrale est calculée par l’approximation d’Euler :

\[\varepsilon_{int}(k) = \varepsilon_{int}(k-1) + T_s.\varepsilon(k)\]

Ainsi, l’implémentation en C nécessite de déclarer des nouvelles variables “float” (représentation à virgule flottante):

  • des constantes pour les paramètres \(K_p, T_i\): const float32_t Kp=123.456;

  • une variable statique (~ globale, persistente) pour l’intégrale de l’écart à la consigne \(\varepsilon_{int}\): static float32_t ecart_int;. Dans la fonction d’initialisation setup_routine(), il faut l’initialiser ecart_int = 0.0;