Probleme bei Leistungsberechnung

Gast #2067686
Lesenswert?

Hallo,

ich bin neu in dem Gebiet. Möchte ein MPP Tracking machen.
Rechne die Spannung von dem Solarpanel über den ADC, und den Strom der 
Batterie über Isa Asic.
Kriege aber für die Leistung komische werte zurück.

void einzelmessung(void)
{
  unsigned char i;

  lies_sdi(ADR_MSR, BZ_MSR);

/*Am Bit Nummer 16 können Strom- und Spannungsmessung unterschieden
  werden. In U_bat und I_bat werden gleitende Mittelwerte als
  ganzzahlige Größen gespeichert. Für die Ausgabe können diese
  später in Fließkommazahlen umgerechnet werden.*/

  if (sdi_puffer[16])
  {  U=0;
    for(i=0;i<15;i++)
      if(sdi_puffer[i]) U|=((unsigned int)(1))<<i;
      //Offsetkompensation
      U-=889;
    U_bat=((7*U_bat)>>3)+(U>>3);

  }else
  {  I=0;
    for(i=0;i<16;i++)
      if(sdi_puffer[i]) I|=((unsigned int)(1))<<i;

    I_bat=((7*I_bat)/8)+I/8;
  }
}


Hier ist mein MPP code und die definitionen vom Strom und Spannung.


float U_zelle ;
long I_bat;

double P_zelle;
double P_zelle_alt;




  while(1)
  {
    P_zelle = U_zelle*I_bat;

    if(P_zelle > P_zelle_alt)
    {
     OCR0++;
    }
    else if (P_zelle < P_zelle_alt)
    {
    OCR0--;
    }
    P_zelle_alt = P_zelle;
  }

Komme nicht an der Ursache des Problems.
Habe noch den Code für die Einstellung des ISA Asic.
Danke.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren