Go Down

Topic: Chargeur et testeur de batterie universelle lipo, liion, lifer, LTO, Ni-Mh.... (Read 4537 times) previous topic - next topic

IUTGEIIKANZa

RÉALISATION DU TYPON

Super  :) , à présent nous avons tout ce qu' il faut pour commencer à fabriquer le typon de notre chargeur.

La mesure de la température est effectuée à l'aide d'un capteur LM35 branché directement à la carte Arduino. Comme les entrées analogiques de la carte Arduino sont en résolution 10 bits, on obtient facilement la température : Valeur*(5V/1023)*100=1/2  On doit simplement diviser par deux la valeur obtenue. La résolution finale de la température est de +ou- 0,5°C.

photo LM35:






Vous pouvez télécharger ci-dessous le fichier Isis reprenant notre schéma (adapté version PCB) et typon. La liste des composants y est aussi inclus dedans.
Attention, ce schéma a été réalisé avec Proteus 8. Si vous n'avez pas Proteus 8 il ce peut que vous rencontrez quelques soucies de compatibilité.

https://drive.google.com/open?id=184IpKNHCqAIuhT0-OgUNn1JK5pi-d_fA

Notre typon étant imprimé on débute le placement des composants.



Voilà! les soudure son quasiment terminées, plus que deux éléments à placer





iutgeiisoissons

Pour avoir plus de stabilité un correcteur flou est facile à implanter dans des microcontrôleurs qui ont peu de puissance de calcul.
Il y a des librarys sur la régulation flou sur le net
https://blog.zerokol.com/2012/09/arduinofuzzy-fuzzy-library-for-arduino.html

Mais pour commander un chargeur, il n'est pas utile d'avoir une fuzzyfication et une defuzzyfication et les règles peuvent être remplacées par un table de 2 dimensions comme on peut l'observer sur la figure suivante :


Le floor sont des entrées flous ou les valeurs sont pris par défaut comme dans le programme.

Il faut parametrer le gain de l'erreur k1, le gain de la derivée de l'erreur et le gain de la sortie de la table.

Pour tester le correcteur flou  une simple table 3*3 a été réalisée dans un premier temps


On peut observer que la dérivée de l'erreur reste nulle pratiquement tout le temps, donc que la PWM s'incrémente de 1 jusqu'à ce que l'errer diminue est provoqué une commande de 0 à 1.
En régime établi, la commande oscille autour de la consigne.


Avec une période d'échantillonnage de 0.01s, l'intégration du tableau est 10 fois plus rapide.
En régime établi, la commande oscille autour de la consigne

Avec  un tableau de 5 par 5, il y a moins oscillation en régime établie. De plus, si l'on diminue le coefficient k3, l'intégration est plus précise donc il y a moins d'oscillation en régime établi.



Etant donné que la dérivée de l'erreur n'est pas très utilisée, une table à une dimension pourrait être utilisée
Mais ce sera pour plus tard.



iutgeiisoissons

On décide arbitrairement que si l'erreur est inférieure à 0.2A il n'y a pas de d'incrémentation de la PWM.
Donc à cause du floor de l'entrée de la table k1<consigne/0.2=10
En effet, étant donné que la dimension de la table est de -5 à 5, alors pour la valeur d'entrée de  1 alors il y aura une sortie de 1, donc la PWM s'incrémentera de 1 ou -1.
De plus, pour minimiser les oscillations en régime établi k3 sera choisi à 1/2 pour avoir au moins 2 valeurs de la table pour avoir une incrémentation de 1 de la PWM.

Voici le schéma de la régulation ainsi que le paramétrage de la table.


Plus l'erreur sera grande et plus l'incrémentation sera grande pour augmenter les dynamiques du système.
Donc, lorsque l'erreur sera de 5*consigne alors la sortie de table sera de 20.


On peut observer sur la figure suivante qu'il n'y a pas d'oscillation en régime statique mais qu'il y a une petite erreur statique de 0.1A. DE plus la dynamique est assez rapide.


Avec une période d'échantillonnage de de 0.01s, k1 à 5 alors k3 peut passer à 1/20 pour retrouver les dynamiques précédentes, ainsi que l'erreur statique.
On peut augmenter la valeur de k1 à 11 qui permet d'annuler l'erreur statique mais provoque une oscillation en régime établi. En effet, avec cette d'échelle k1 à 11, la table passe à la valeur 1 et ne reste plus à 0.


Evidement si l'inductance augmente, il y a moins d'oscillation et l'on peut augmenter la valeur de k1 à 40 comme on peut l'observer sur la figure suivante ou l'increment du courant pour un increment de la PWM n'est plus filtré par l'inductance


En synthèse, la régulation avec la logique floue est comme un correcteur intégral mais avec un coefficient non linéaire au niveau de l'erreur. De plus, la logique floue gère mieux les valeurs peu précises ou les parasites de mesures.

IUTGEIIKANZa

REALISATION DES TESTS DE LA MAQUETTE AVEC UN CORRECTEUR PI

Après validation des tests effectué en simulation, on exécute le programme précédent avec le modèle réel avec la même démarche qu'en simulation. A l'aide du moniteur série du logiciel Arduino, on extrait les valeurs de charge obtenue puis on les répertorie sur Excel pour avoir les courbes. Cependant contrairement à la simulation, la consigne de courant passe volontairement de 2A à 1A, car à 2A on a un échauffement important du transistor TIP 127 sur la première maquette d'essai. De plus les tests ont été effectués sur des batteries à fort cyclage, nous offrant ainsi une dynamique de charge/décharge très rapide et une résistance interne élevé. Passer de 2A à 1A nous permet donc de visualiser avec plus de précision des points de fonctionnement précis, tel que par exemple le passage de la régulation tension courant.


Test expérimental à Te=0.1s




Les correcteurs (intégral unitaire et kp=6;ki=6) n'ont pas été testé à cause de leurs défauts (lenteur/stabilité). Les valeurs en tension de chaque batterie à était divisé par 4 et la PWM par 100.
On peut observer sur les figures 1 et 2 un décalage de retard de démarrage du courant qui est liée aux faites que les essais n'ont pas commencées avec les mêmes tensions de batterie (en simulation on avait toujours 7.4V) et que la résistance interne des batteries n'est pas la même (1mΩ en simule contre <20mΩ en pratique). On observe également qu'il n'y pas d'oscillations de courant conformément à la simulation.
A partir de ces essais, la charge fonctionne correctement avec notre le programme. Cependant dès que l'on a commencé l'essai à Te=0.01s des résultat incohérent ont commencé à apparaître. En effet, le temps d'instruction de la routine d'interruption dépassait ce temps Te, ce qui fait que le programme main ne s'exécutait plus. En effet, le temps d'instruction l'affichage LCD vaux 75ms.
Une version de programme avec l'affichage dans le « main », a pu permettre de faire la même chose et diminuer Te à 0.01s est disponible en Piece jointe :

Essai expérimental à Te=0.01s
On peut observer qu'avec un temps d'échantillonnage divisé par 10 et la même valeur de Ki alors les dynamiques sont multipliés par 10 sans être instable.
si l'intégral alors les dynamiques augmentes aussi.





Conclusion :


On peut conclure de ces expériences qu'il y a une bonne cohésion entre nos modèles mathématique, nos simulations et nos essais sur la maquette du correcteur PI. La prochaine étape est d'utiliser le régulateur floue pour plus de stabilité du signal PWM.


Go Up