.. TODO: enlever sur "quand une imprécision de vocabulaire mène à la destruction" qui ne marche pas ici Ajouter par contre qq chose sur la tension Vn/DC-, dans la partie pleine onde et dans la partie PWM (lien théorique + mesure avec offset) Fix schéma : leg->inverter, ajouter DC+/- .. _session-inverter-island: ######################################## Conversion DC/AC 1/2 : Onduleur autonome ######################################## Ce TP, qui fait suite à celui sur :ref:`session-dcdc`, vise à : 1. étudier la structure et fonctionnement d'un onduleur triphasé, en particulier l'idée-clé de faire varier le rapport cyclique au cours du temps 2. poursuivre la prise en main des de développement de la carte `OwnVerter `_, en particulier la fonction de scope embarqué Dans cette session, on étudie un onduleur dit *autonome*, c'est-à-dire qui fonctionne nécessité d'être connecté à un réseau électrique existant. L'onduleur va générer des tensions alternatives (triphasées) à la fréquence se son choix pour alimenter des charges alternatives simple (R, RL...). Ce premier TP onduleur, qui prépare à :ref:`session-inverter-grid`, n'aborde donc pas la question de la modélisation/régulation de l'onduleur ni celle de la synchronisatation au réseau (PLL : boucles à verrouillage de phase) qui sont nécessaires pour se connecter au réseau. Dispositif expérimental ======================= Description et schémas ----------------------- .. admonition:: 🔥 Quand une imprécision de vocabulaire mène à la destruction... :class: danger Il est assez courant en électricité de confondre les notions de *neutre*, *masse*, *terre* et *borne “−”*. Si certaines se confondent effectivement (la borne “−” en DC sert généralement de “plan de masse”/“ground plane”), la confusion entre *neutre* (notion spécifique aux réseaux alternatifs) et les autres (masse/terre/borne “−”) est une erreur(*) qui peut avoir des conséquences. En particulier, faites un schéma électrique pour expliquer pourquoi, dans ce TP onduleur, il ne faudra **jamais connecter le neutre avec le point bas du bus DC−/PGND** (ni au point haut d'ailleurs). (* quand bien même, pour ajouter à la confusion, il existe des contextes où le neutre d'un réseau est relié à la terre...) Un onduleur triphasé (3 bras de ponts) alimente en alternatif une charge triphasée couplée en étoile, à partir d'une alimentation continue fixe Vdc. Le courant est filtré par un filtre inductif Lf. Schémas : .. figure:: images/ownverter_wiring_inverter_load.png :height: 20em :alt: Câblage du convertisseur OwnVerter en onduleur triphasé autonome, avec filtre inductif, sur charge triphasée en étoile Câblage du convertisseur OwnVerter en onduleur triphasé autonome, avec filtre inductif, sur charge triphasée en étoile .. figure:: images/inverter_load.png :height: 25em :alt: Onduleur triphasé autonome, avec filtre inductif, sur charge triphasée en étoile Onduleur triphasé autonome, avec filtre inductif, sur charge triphasée en étoile Liste du matériel ----------------- (quasi identique à celle du TP précédent :ref:`session-dcdc`) * 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 dite de “bus DC” de l'onduleur * Filtre inductif Lf pour lisser les courant (×3, i.e. un par phase) : 630 µH (inductance torique de la série `WE-SI `_) * Charge résistive R=10 Ω (intégré à la maquette “transformateur 12V”), charge L=xx mH * Oscilloscope avec sondes de tension isolées et sonde de courant Mise en route de la carte OwnTech (programmation) ------------------------------------------------- Idem :ref:`session-dcdc`, à part le code à charger. .. admonition:: Code à utiliser : onduleur autonome :class: attention Le microcontrôleur de la carte OwnTech est à programmer avec le template suivant : https://github.com/pierre-haessig/ownverter-islanded Expérience avec MLI =================== Le but est d'alimenter une charge R ou RL avec un onduleur triphasé avec MLI. .. admonition:: Implémentation commande MLI sinus :class: important Modifier le code main.cpp (fonction ``compute_duties``) pour que l'onduleur génère un système de tension triphasé sinusoïdal équilibré et de le sens direct (a→b→c). Vous avez à votre disposition les variables suivantes, qui peuvent être modifier pendant l'exécution via le Serial Port Monitor : * ``duty_offset`` : offset/décalage de rapport cyclique * ``duty_amplitude`` : amplitude du sinus souhaité * ``v_freq`` : fréquence (Hz) du signal sinus souhaité et par ailleurs vous pouvez/devez utiliser la variable de phase déjà implémentée ``v_angle`` (en rad, [0, 2π]) qui est égale l'intégrale de la fréquence (∫ω(t).dt, ω = 2π.f). Pour f constant, c'est donc un signal en dent de scie entre 0 et 2π. Pour l'implémentation, régler l'alimentation DC sur une valeur ronde : **Vdc = 30 V**. .. admonition:: Expérience onduleur charge R et RL :class: important Alimenter une charge R (ou RL) triphasée couplée en étoile. Faire vérifier le montage. Mesurer une tension phase neutre, une tension phase-DC− et le courant sur une même phase. Vérifier le bon fonctionnement. Vos expériences doivent répondre aux questions suivantes : * quelle est la meilleure valeur de l'offset ``duty_offset`` pour un fonctionnement sinus ? * quelle est la valeur maximale de ``duty_amplitude`` pour un fonctionnement sinus ? * quelle l'amplitude de la tension simple fonction de ``duty_amplitude`` ? * quelle est la valeur théorique du déphasage entre tension simple et courant pour les charge R et RL ? Remarque : pour moyenner la tension phase-DC−, il faut ajouter un filtrage passe-bas (menu Math) ce qui demande quelques réglages de l'oscilloscope pour atteindre une fréquence de coupure de 100 kHz (pour neutraliser la MLI à 200 kHz). Modélisation ============ .. admonition:: Modèle moyen :class: important Reproduire l'expérience de l'onduleur autonome sur charge RL avec un modèle moyen sous Simulink/Simscape. En particulier le modèle devra reproduire la limitation entre 0 et 1 des rapports cycliques (→ bloc saturation sous Simulink) Expérience pleine onde ====================== Il s'agit ici de faire une variante d'un onduleur alimenter en pleine onde. .. admonition:: Implémentation commande pleine onde :class: important Modifier le code main.cpp (fonction ``compute_duties``) pour générer une commande en plein onde. Pour cela, fixez les rapports cycliques à 0 ou 1 selon la position souhaitées pour chaque transitor. Remarque : conservez/commentez votre implémentation de la MLI ! .. admonition:: Expérience onduleur charge RL pleine onde :class: important Alimenter une charge RL triphasée couplée en étoile. Faire vérifier le montage si il y a eu des changements. Mesurer une tension phase neutre, une tension phase-DC− et le courant sur une même phase. Vérifier le bon fonctionnement. Mesurer le spectre de la tension et des courants Cette expérience doit vous permettre de répondre aux question suivantes : * quelle est l'amplitude de la tension simple ? * quel sont les avantages/inconvénients de la commande pleine onde par rapport à la MLI ? Remarque : pour une application moderne de la modulation pleine onde, voir le convertisseur DAB (Dual Active Bridge, cf. `DAB @Mathworks `_ ou `DAB @Imperix `_). Le DAB est un convertisseur **DC/DC** mais qui, à la différence du hacheur simple, utilise un étage intermédaire **AC**. Il est constitué de 2 onduleurs monophasés connectés via un transformateur. Ces onduleurs sont modulés en pleine onde.