Go Down

Topic: Régulation alimentation (Read 3 times) previous topic - next topic

haifger



et son câblage prototype :

bonjour
c'est un joli proto

...tellement joli qu'il a meilleure allure que certains de mes projets « finalisés » :)

Artouste

#16
Nov 08, 2013, 01:34 pm Last Edit: Nov 10, 2013, 10:10 am by Artouste Reason: 1

Re,

ai cas où
retrouvé une lib DAC pour MCP , avec un exemple (testé verifié) pour 4822 canaux A/B
http://cjoint.com/13nv/CKimqjvvzOv.htm

Ok, je vais voir cela.
@+

Tiens tu fais des courses chez IKEA ?  :smiley-mr-green:
le MCP4822 a un avantage sur le 4922 (et evidemment des inconvenients)

Hors alim , juste 3 pin pour le faire "tourner"  CLK MOSI CS
ref interne

inconvenient ref interne 2.048V  avec un gain X2 4.096  donc un peu loin d'un 2.5V X2=5)
mais pour tes tests c'est parfait (au pire en adaptant le gain )  

icare

#17
Nov 08, 2013, 01:54 pm Last Edit: Jan 29, 2014, 08:54 pm by icare Reason: 1
Re,

Tiens tu fais des courses chez IKEA ?  :smiley-mr-green:

Cela permet d'avoir des éléments de surveillance (j'ai pas dit de mesure) de la température à des coûts très abordables

le MCP4822 a un avantage sur le 4922 (et evidemment des inconvenients)
Hors alim , juste 3 pin pour le faire "tourner"  CLK MISO CS
ref interne
inconvenient ref interne 2.048V  avec un gain X2 4.096  donc un peu loin d'un 2.5V X2=5)
mais pour tes tests c'est parfait (au pire en adaptant le gain )  

Ce n'est pas un problème en 12 bits par rapport à la mesure en 10 bits. On devrait y retrouver ces petits.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Artouste


Re,

Tiens tu fais des courses chez IKEA ?  :smiley-mr-green:

Cela permet d'avoir des éléments de surveillance (j'ai pas dit de mesure) de la température à des coûts très abordables



je suis parfaitement d'accord et pour en avoir verifiée qq unes sur etalon, c'est plus qu'honorable comparé à certains trucs  8)

icare

#19
Nov 13, 2013, 09:44 pm Last Edit: Dec 13, 2013, 11:21 am by icare Reason: 1
Bonsoir,
Quelques essais plus tard ...
J'ai doté mon proto d'un capteur de courant ASC712 (la petite araignée qui se trouve à gauche)

Les essais de remplacement des potentiomètres par des convertisseurs num/ana sont tout à fait satisfaisant.

La carte UNO c'est mise à l'envers pour ne pas voir le piètre câblage de ma platine d'essai  XD
Le temps de mettre un peu d'ordre dans tous les documents et je rajouterai le schéma de cet essai.
Tension de sortie mesurée = 20.037 V (j'y tiens beaucoup aux 7 mV  :smiley-mr-green:)
Courant de sortie mesuré = 1.28 A
... à suivre ..
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

icare

#20
Nov 14, 2013, 02:16 pm Last Edit: Nov 27, 2013, 11:45 pm by icare Reason: 1
Bonjour,
Les deux schémas utilisés pour cet essai :
Module puissance

Module commande (version1)

Dans ce cas on utilise directement les consignes pour commander l'OPA549 mais le but final est de se servir de la valeur mesurée en sortie pour commander l'OPA549 en fonction de la valeur de consigne (pour V et I).
Je prévois également utiliser l'entrée contrôle/alarme pour afficher la sur-chauffe de l'ampli-op et de commander l'arrêt de l'alimentation en cas d'urgence (normalement en 1 micro-seconde).
U3 amplifie la sortie du MCP4822 (Us max = 4.096V) pour avoir les 4.75V nécessaire pour que la limitation de courant puisse être de 0.0A.
... à suivre ...
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Artouste



Je prévois également utiliser l'entrée contrôle/alarme pour afficher la sur-chauffe de l'ampli-op et de commander l'arrêt de l'alimentation en cas d'urgence (normalement en 1 micro-seconde).


Bonjour Icare
juste sur ça
L'OPA se met de lui meme en thermal shutdown ( tu ne peux pas le commander)
avec un hysteresis de ~20°C
l'indicateur peut evidemment etre utilisé pour  "couper le general"  mais là on est déjà plus au besoin de la µs

icare

Re,



Je prévois également utiliser l'entrée contrôle/alarme pour afficher la sur-chauffe de l'ampli-op et de commander l'arrêt de l'alimentation en cas d'urgence (normalement en 1 micro-seconde).


Bonjour Icare
juste sur ça
L'OPA se met de lui meme en thermal shutdown ( tu ne peux pas le commander)
avec un hysteresis de ~20°C
l'indicateur peut evidemment etre utilisé pour  "couper le general"  mais là on est déjà plus au besoin de la µs

C'est exact pour le thermal shutdown, je comptais l'utiliser pour une visualisation sur l'écran LCD.
La pin 9 du OPA549 est bidirectionnelle, elle permet également de faire un shutdown (faire un arrêt d'urgence).
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

icare

#23
Nov 27, 2013, 11:48 pm Last Edit: Dec 06, 2013, 09:11 pm by icare Reason: 1
Bonsoir,
Mes essais avec l'alimentation numérique à base d'OPA549 continuent.

Il s'agit d'une régulation simple du type tout ou rien. On lit la tension de sortie de l'alimentation et on la compare à la consigne de tension et en fonction du résultat on agit sur la tension de commande de l'OPA549 (en plus ou en moins).
Le schéma de principe du hard est représenté ci-dessous.

Pour améliorer la stabilité des mesures, la carte Arduino UNO est alimentée en 9V via Vin et l'entrée Aref est découplée par un condensateur de 100nF.
Le principe de la régulation numérique vu du côté soft est le suivant :

La valeur de Epsilon doit être supérieure ou égale à la résolution du ADC (>= 4mV pour 10 bits). Cela entraîne une variation de 40 mV sur la sortie (Gain de l'OPA549 = 10). Si Epsilon est inférieur à la résolution du ADC alors on aura un phénomène de "pompage" car aucun équilibre est possible  :smiley-mr-green:
Il est possible de corriger les dispersions matériels en jouant sur le rapport de réduction du diviseur de tension placé sur Vout.
Les meilleurs résultats que j'ai pu obtenir sur Vout pour une consigne de 2500mV sont :
- 25,022 V
- 24,941 V
soit une différence de 81 mV ce qui représente 2 fois la résolution du ADC de l'Arduino X 10 (gain OPA549)
Pour améliorer les résultats il faut impérativement que la résolution de l'ADC soit supérieure ou égale à la résolution du DAC (test dans les prochains jours).
Lors des essais, on constate quelques dérivent entre la consigne et la tension de sortie (Umes) qui sont représentées sur le graphique ci-dessous.

On remarque que la non linéarité des convertisseurs pourra être corrigée par la courbe de tendance si les résolutions des DAC et ADC le permettent (sera réglé par la suite). L'erreur est inférieure à 1% entre 10 V et 25 V.  8)
Pour terminer, une "vision aérienne" sur la base d'essai.


P.S : Un colistier aurait-il des informations ou des références sur la régulation d'alimentation numérique par régulateur PID ?
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Artouste


...
Pour améliorer les résultats il faut impérativement que la résolution de l'ADC soit supérieure ou égale à la résolution du DAC (test dans les prochains jours).
...
Pour terminer, une "vision aérienne" sur la base d'essai.

P.S : Un colistier aurait-il des informations ou des références sur la régulation d'alimentation numérique par régulateur PID ?


Bonjour Icare

dès que, ça part  8)
tu compte au final mettre ça en boite ?
Pas sur du tout que vouloir faire là du PID soit une solution efficace, perso je verrais plus une stabilisation du DAC par gestion de la minoration dychotomique
issue de l'ADC .

icare

#25
Nov 28, 2013, 03:42 pm Last Edit: Dec 06, 2013, 09:09 pm by icare Reason: 1
Bonjour Artouste,

tu compte au final mettre ça en boite ?
Pas sur du tout que vouloir faire là du PID soit une solution efficace, perso je verrais plus une stabilisation du DAC par gestion de la minoration dychotomique
issue de l'ADC .

Le but final est effectivement une mise en boîte avec les fonctionnalités suivantes:
TENSION
- alimentation standard (variation immédiate de la sortie en fonction de la consigne tension)
- alimentation programmée (sortie après réglage de la consigne tension puis validation)
- alimentation télécommandée par liaison RS232 ou I2C
- alimentation en mode débrayé (commandes analogiques de U et Imax)
COURANT
- générateur de courant standard (en fonction de la consigne de courant)
- générateur de courant programmé (réglage de la consigne de courant puis varidation)
- générateur de courant télécommandé par liaison RS232 ou I2C
CHARGEUR
- chargeur de batterie intelligent en fonction de la technologie des accus
    + Ni-Cd ou Ni-MH
    + Plomb
    + Li
    + Alcalines rechargeables (pourquoi pas)
DIVERS
- suiveur de tension ou courant
- télécommande sortie via signal TTL
- retour mesures alimentation (via RS ou I2C)
- calibrage tension de sortie
- calibrage courant
Bref tout un "programme", pas sûr que tout tiendra dans la UNO mais on verra (peut être faudra t'il passer par la joie de l'optimisation)

Concernant la méthode de régulation, je suis relativement septique sur le PID mais je souhaitai avoir des avis sur le sujet.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Super_Cinci

Salut,

Moi, je dirais qu'il vaut mieux utiliser l'OPA pour réguler et n'utiliser l'ardiono que pour envoyer des tensions de consigne. Imagine que tu décides d'alimenter un moteur avec ton système, tu vas voir que la régulation, c'est pas facile sur une charge variable...

icare

Bonsoir Super_Cinci

Salut,
Moi, je dirais qu'il vaut mieux utiliser l'OPA pour réguler et n'utiliser l'ardiono que pour envoyer des tensions de consigne. Imagine que tu décides d'alimenter un moteur avec ton système, tu vas voir que la régulation, c'est pas facile sur une charge variable...

Merci pour ta remarque, cela reste des essais à faire.
La régulation à proprement dite est faite par l'ampli-op, je ne fais qu'adapter la commande tension de l'ampli-op au niveau de tension réelle en sortie de l'ampli-op.
C'est une sorte de "sur-régulation" pour assurer une tension de sortie égale à la consigne, lorsqu'on à un niveau stable dans la sur-régulation l'ampli-op joue son rôle.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Artouste


Bonsoir Super_Cinci

Salut,
Moi, je dirais qu'il vaut mieux utiliser l'OPA pour réguler et n'utiliser l'ardiono que pour envoyer des tensions de consigne. Imagine que tu décides d'alimenter un moteur avec ton système, tu vas voir que la régulation, c'est pas facile sur une charge variable...

Merci pour ta remarque, cela reste des essais à faire.
La régulation à proprement dite est faite par l'ampli-op, je ne fais qu'adapter la commande tension de l'ampli-op au niveau de tension réelle en sortie de l'ampli-op.
C'est une sorte de "sur-régulation" pour assurer une tension de sortie égale à la consigne, lorsqu'on à un niveau stable dans la sur-régulation l'ampli-op joue son rôle.
@+

Bonsoir
C'est comme dans tout cahier des charges , il faut etre "conscient" de l'utilisation finale et des contraintes induites

l'expé d'icare là est de faire aussi de l'alim en tracking (ce n'est in fine que de l'alim en 4 fils)  , et qui peut le plus peu le moins :  :smiley-mr-green:  faire l'impasse sur l'info de retour ADC pour juste utiliser la consigne DAC (ne pas utiliser de boucle pour la regulation) est simple = "ne pas ecouter qui parle "là bas au fond"  :smiley-mr-green: mais selon les "emplois de l'alim" ça peut aussi etre "sympa" d'avoir une option tracking.

icare

#29
Dec 06, 2013, 09:17 pm Last Edit: Dec 06, 2013, 10:12 pm by icare Reason: 1
Bonsoir,
Je reviens avec mon expérimentation sur l'alimentation stabilisée supervisée par un Arduino UNO. Vous trouverez ci-dessous les schémas quasi définitif de mon alimentation.





Reste maintenant à peaufiner la partie soft, je mettrai la première dans ce post la première version utilisable de la partie tension.
Toutes vos remarques sont les bienvenues.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Go Up