Gast
#2067686
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.