Réalisation MPPT boost 6,3V=>batterie 12V - Page 3
Discussion fermée
Page 3 sur 3 PremièrePremière 3
Affichage des résultats 61 à 65 sur 65

Réalisation MPPT boost 6,3V=>batterie 12V



  1. #61
    coyotte4845

    Re : Réalisation MPPT boost 6,3V=>batterie 12V


    ------

    Bonjour, désolé pour le retard.... le travail comme d'hab.


    Alors concernant tes questions, je comprends surtout que le fonctionnement d'une cellule PV te perturbe un petit peu... J'ai l'impression de me voir il y a 1 an.

    Un panneau PV est un générateur de courant avec une tension de sortie pas très stable si tu ne gères pas le courant que tu lui soutire.

    Rien ne vaut un bon schéma:

    http://dirac.epucfe.eu/projets/uploa...0505184641.jpg

    Tu comprendras qu'un panneau est caractérisé par une tension en circuit ouvert (Puissance=0W), un courant en circuit fermé (P=0) et parfois une puissance nominale dans des conditions optimales (que tu n'obtiendras jamais hormis avec une irradiation telle que dans le désert.... et encore).

    Ce que l'on recherche c'est le max de puissance et donc le point MPPT. Tu remarqueras qu'il se situe à la limite ou la tension commence à fléchir de manière assez....brutale.

    Tous les panneaux solaires PV sont soumis à ce régime de fonctionnement.

    Comment faire pour trouver le MPPT?

    il va te falloir dans ton bidule: une mesure de courant, une mesure de tension panneau, une mesure de la tension batterie et éventuellement une mesure de t° pour adapter ta tension de fin de charge si tu veux bien faire les choses.

    Comme tu l'as compris, il va falloir t'arranger pour obtenir le max de puissance (dans le cas d'un buck, ce sera le courant de sortie * la tension de batterie) mais il sera obligatoire de surveiller la tension du panneau

    voici l'algorythme:

    tant que la puissance est égale ou augmente (par rapport à la mesure précédente):

    - tu augmentes la demande en courant via le PWM du mos

    si la puissance diminue:

    - et que la tension du panneau augmente => tu augmentes la demande
    - et que la tension diminue => tu diminues la demande

    tu oscilleras dès lors autour du point MPPT, il est évident que si tu prends un µc lancer à pleine vitesse pour piloter le mos, tu augmenteras ton rendement avec la vitesse de correction.

    j'espère que tu auras assez d'infos...

    bon travail.

    -----

  2. #62
    Yex2

    Re : Réalisation MPPT boost 6,3V=>batterie 12V

    Citation Envoyé par coyotte4845 Voir le message

    Comme tu l'as compris, il va falloir t'arranger pour obtenir le max de puissance (dans le cas d'un buck, ce sera le courant de sortie * la tension de batterie) mais il sera obligatoire de surveiller la tension du panneau

    voici l'algorythme:

    tant que la puissance est égale ou augmente (par rapport à la mesure précédente):

    - tu augmentes la demande en courant via le PWM du mos

    si la puissance diminue:

    - et que la tension du panneau augmente => tu augmentes la demande
    - et que la tension diminue => tu diminues la demande

    tu oscilleras dès lors autour du point MPPT, il est évident que si tu prends un µc lancer à pleine vitesse pour piloter le mos, tu augmenteras ton rendement avec la vitesse de correction.

    j'espère que tu auras assez d'infos...

    bon travail.

    Merci Coyotte, ça me donne un bon point de départ.

    Yex2

  3. #63
    RISC

    Re : Réalisation MPPT boost 6,3V=>batterie 12V

    Salut,

    Il existe des centaines de PIC dont le courant de standby est < 100nA (tous ceux de la famille XLP et bien d'autres).
    Attention, le courant de standby est celui du PIC sans comptabiliser les courants sur les broches d'E/S...Rien ne sert de mettre en sleep s'il y a une led allumée ;=)
    Il faut donc faire la chasse aux courants de fuite sus toutes les broches. Si tu as mesuré 200uA en sleep c'est qu'il y a de la consommation sur les broches d'E/S pendant le mode SLEEP.

    A titre d'exemple regarde les schémas de ces 2 cartes XLP dans le user manual qui montrent comment maitriser les courants sur les broches d'E/S :
    * carte 8 bits : http://www.microchip.com/stellent/id...cName=en553806
    * carte 16 bits : http://www.microchip.com/stellent/id...cName=en544410

    Pour ce qui est du courant en mode run, un certain nombre des PIC de la famille PIC16F1xxx consomment autour de 50uA/MHz (cela dépend bien sûr de la tension). Un produit "équivalent" au PIC16F873 est le PIC16F1512 mais vu ton schéma un PIC16F1825 (14 broches) devrait même être suffisant.

    a+

  4. #64
    coyotte4845

    Re : Réalisation MPPT boost 6,3V=>batterie 12V

    Bonjour à tous,

    je rencontre quelques problèmes avec le code.

    Le régulateur se cale sur une mauvaise coordonnée du panneau PV (genre 0.57W) alors que le panneau à cet état peux en développer presque le double (j'ai fait les tests en modifiant le PWM manuellement)

    J'ai vérifié mes niveaux de tensions pour l'adc et les valeurs calculées par celui-ci et tout semble OK.

    Un brave pourrait il vérifier ce code?

    Merci bcp,

    Code:
    #include "C:\Documents and Settings\Moi\Bureau\PICC\MPPT citea 3V\main.h"
    #bit godone=0x1F.1
    #byte ADCON0=0x1F
    #byte ADCON1=0x9F
    #byte ADRESL=0x9E
    #byte ADRESH=0x1E
    #define LED pin_b7
    
    #int_TIMER1
    TIMER1_isr() 
    {	
    	int i;
    	i++;
    	if(i>=30)
       	{output_high(LED);
    	 delay_ms(100);
    	 output_low(LED);
    	 i=0;
    	}
    	
    }
    
    void main()
    {
    	unsigned int16 PWM=0,t=0,i=0;
    	unsigned int16 ADVp=0,ADVpt=0,CompADVp=0;
    	unsigned int16 ADVb=0,ADVbt=0;
    	unsigned int16 ADI=0,ADIt=0;
    	unsigned long SADI=0,SADVb=0,SADVp=0;
    	unsigned int32 Pow=0,CompPow=0;
    	float fADVp=0,fADVb=0,fADI=0;
    	Set_tris_b( 0b00000000 );    //Pin B0-B7 output
    	setup_adc_ports(sAN0|sAN1|sAN3);
       	setup_adc(ADC_CLOCK_DIV_32);
       	setup_spi(SPI_SS_DISABLED);
       	setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
    	setup_wdt(WDT_2304MS);
       	setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
       	setup_timer_2(T2_DIV_BY_1,62,1);
    	enable_interrupts(INT_TIMER1);
        enable_interrupts(GLOBAL);
       	setup_ccp1(CCP_PWM);
       	set_pwm1_duty(0);
    while(1)
    	{
    
    
    	ADCON1=0b10000000;					//Activation de l'ADC
    	delay_us(15);
    
    	ADCON0=0b10000101;					//Choix du canal à échantillonner
    	delay_us(15);
    
    	while(i<10)					//Capture de 3 mesures successives
    	{	
    		ADVpt=read_adc();
    		SADVp=SADVp+ADVpt;				//Somme des tensions 
    		i++;
    	}
    	ADVp=SADVp/10;				//Moyenne effectuée
    	SADVp=0;
    	ADVpt=0;
    	i=0;
    	
    	if(t==4000)
    	{
    	 fADVp=(float)ADVp/131.02;			//Conversion en valeur décimale (float)
    	 printf("\n\nSTART----------------------------------------");
    	 printf("\n\nPanel voltage : %1.1fV",fADVp);
    	}
    
    
    	ADCON0=0b10001101;					//Choix du canal
    	delay_us(15);
    	
    	while(i<10)					//Capture de 10 mesures successives
    	{	
    		ADIt=read_adc();
    		SADI=SADI+ADIt;					//Somme des courants
    		i++;
    	}
    	ADIt=0;
    	ADI=SADI/10;				//Moyenne effectuée
    	SADI=0;
    	i=0;
    	if(t==4000)
    	{
    		fADI=(float)ADI/511; 
    		printf("\n\nPanel current : %1.3fA",fADI);	
    	}
    
    
    	  
    	if(t==4000)
    	{	
    		fADVb=(float)ADVb/65.51;
    		printf("\n\nAccu voltage : %2.1fV",fADVb);
    	}
    
    
    
    Pow=ADVp*ADI;
    
    //routine de comparaison des Pow calculées
    
    	ADCON0=0b10000001;				//Choix du canal
    	delay_us(15);
    	
    	while(i<5)						//Capture de 3 mesures successsives
    	{	
    		ADVbt=read_adc();
    		SADVb=SADVb+ADVbt;
    		i++;
    	}
    	ADVb=SADVb/5;
    	ADVbt=0;
    	SADVb=0;
    	i=0;	
    
    	if(ADVb>904)		//Vb>13,8V ou Vb>Tension fct T°
    	{set_pwm1_duty(0);}
    	else{
     		
    	if(Pow<CompPow)
    		
    
    		{ if((ADVp>CompADVp)&&(PWM<230)&&(ADVp>407))
    			{ 	PWM++;
    				set_pwm1_duty(PWM);		
    			}	
    		  else if((ADVp<CompADVp)&&(PWM>0))
    			{	PWM--;
    				set_pwm1_duty(PWM);
    			}
    		}
    	else if(Pow>=CompPow)
    		
    
    		{ if((PWM<230)&&(ADVp>407))
    			{	PWM++;
    			 	set_pwm1_duty(PWM);		
    			}	
    		}
    	}
    
    CompPow=Pow;
    CompADVp=ADVp;
    t++;
    restart_wdt();
    
    }
    
    	
    }

  5. #65
    Antoane
    Responsable technique

    Re : Réalisation MPPT boost 6,3V=>batterie 12V

    Bonjour,

    pour discuter du programme sans avoir à reprendre toute la discussion sur le matériel utilisé, voir : http://forums.futura-sciences.com/el...ateur-ccs.html
    Cette discussion est fermée pour éviter que les réponses ne s'éparpillent.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Page 3 sur 3 PremièrePremière 3

Discussions similaires

  1. [Programmation] MPPT type boost /16f883/ problème programmation compilateur CCS
    Par coyotte4845 dans le forum Électronique
    Réponses: 0
    Dernier message: 11/03/2017, 11h24
  2. [Energie] Pilotage d'un Buck-Boost - PWM ou MPPT ?
    Par invitea816efe4 dans le forum Électronique
    Réponses: 9
    Dernier message: 04/02/2017, 08h58
  3. Commande d'un hacheur Buck-Boost pour MPPT
    Par invite8a855be7 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/06/2013, 20h13
  4. réalisation d'un MPPT
    Par invite34a42ac4 dans le forum Électronique
    Réponses: 5
    Dernier message: 01/04/2013, 18h09
  5. Réalisation de Commandes MPPT Numériques a base de PIC 18F1220
    Par invite504da3ed dans le forum Électronique
    Réponses: 4
    Dernier message: 31/03/2013, 17h46
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...