Výpočet výkonu v čase

Home Assistant, Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Výpočet výkonu v čase

Příspěvek od vata »

Zdravím,

chtěla jsem se zeptat, jakým způsobem lze v programu, který zná aktuální proudy a napětí, správně počítat výkon v čase. Můj program to momentálně počítá takto:

Kód: Vybrat vše

actualCur = regCur + invCur;         //okamžitý celkový proud v mA * 100
   power = (actualCur * batU) / 100000;   //okamžitý výkon ve W

   //výpočet časového výkonu
   timeDiff = UPTIME - lastMeterTime;  //časový rozdíl mezi vzorky
   mAh    = actualCur   / timeDiff;
   mWh    = power * 1000 / timeDiff;
   lastMeterTime = UPTIME;             //další časový interval

   ah = ah + mAh; wh = wh + mWh; //kumulace výkonu
a nejsem si zcela jistá, zda těm datům na výstupu můžu věřit. regCur/invCur a batU jsou průměrné hodnoty za poslední měřící kolečko (500ms). Mezi jednotlivými kolečky měření uběhne několik desítek ms - kód vykonává jinou práci. UPTIME je systémové počítadlo ms.

Díky :)
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: Výpočet výkonu v čase

Příspěvek od mypower.cz »

ja to v aplikaci pro arduino resim take kumulaci ale pocitam ve wattsekundach. Pokud je wattsekund tolik, ze to udela alespon jednu watthodinu, pripocitam do jine kumulacni promenne watthodinu a pocitadlo wattsekund snizim o pocet zpracovanych wattsekund. Algoritmus umi osetrit i zaporne vykony (kuprikladu pohyb na baterkach). Behem intervalu pocitam s tim, ze vykon byl mezi intervaly mereni nemenny. Pokud se behem intervalu zmenil, znepresni se samozrejme mereni, protoze zmena probehne mimo dohled daneho mereni. Otazka do jake miry jsou zapotrebi laboratorne presne vysledky a do jake miry orientacni. Pokud je interval delsi nez dva intervaly mereni, chape to algoritmus tak jako by vykon platil pouze pro jeden interval mereni a ostatni vzorky nebyly k dispozici (nulovy vykon). Aktualne se snazim tyto casove kriticke zalezitosti presouvat do obsluhy preruseni HW casovace, ktery mi zajisti vetsi presnost nez kdyz je mereni zpozdeno napriklad HTTP komunikaci atd. Cim kratsi interval, tim presnejsi vysledky. Problem nastava v pripade AC. I kdyz je mereno na DC strane pred menicem, hybe se na 50Hz. Tady uz je potreba synchronni samplovani U a I a vypocet efektivni hodnoty, pokud se mame dobrat presnejsim vysledkum.
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Re: Výpočet výkonu v čase

Příspěvek od vata »

Aha. U mě tyhle výpočty probíhají přímo v plc. Vypočtené hodnoty se ukládají do jednoho z registrů přístupného zvenku a jiný stroj to bude logovat.
SDS má ovšem velké problémy s přesností jak měření tak výpočtů, nezná typy s desetinnou čárkou, pracuju proto s pevnou - proto ty šílené násobky. Každopádně ta průběžná Wh agregace mě nenapadla - dobrý nápad :)
U mě to funguje tak, že při zahájení vybíjení z plného vybití se počítadlo nuluje, předtím se jeho hodnota přesune do prom. upCapacity, podobně u prázdné baterky se nuluje a hodnota se přesune do downCapacity. (Jde mi o zjištění efektivity baterie a její kapacity a soc). Z toho důvodu ta počítadla ani takhle nepřetečou...
Všechny ty hodnoty jsou hodnoty na DC, na kabelu do baterky a do měniče. Měřící smyčka je 0,5 sec dlouhá, takže to snad potlačí nějaké ty šumy a brumy. AC stranu měřím SO elektroměry, počítá se jinde, a po porovnání hodnot z DC a AC strany dostanu efektivitu měniče. Všechny proměnné mohou nabýt záporných hodnot - běžně proud na vodiči do baterek je záporný (vybíjení) a proud na kabelu do měniče je záporný vždy.
Laboratorně přesné to nebude ani omylem - při přesnosti měření proudů 1A to nejde :( Navíc mám problém to zkalibrovat - nedaří se mi nalézt ad hodnotu nulových proudů... A napětí baterky to měří na můstku za 1A pojistkou, je tam nezanedbatelný úbytek.
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: Výpočet výkonu v čase

Příspěvek od mypower.cz »

Praveze i na DC strane menice to kmita. Taky jsem neveril ale jakmile mi to matej ukazal zmerene a nasamplovane, tak je tam proste sinusovka. Ne + a - ale trebas 12.6 a 12.2 a mezi tim sinus, to same proud... Pokud je nejaka relativne vetsi zatez. Jinak desetinna cisla taky nepouzivam, pouzivam nasobky 10, 100, 1000 podle potreby, uz kvuli uspore mista v ram pro program a taky rychlosti. Zjistil jsem ze i na vypocet efektivni hodnoty si vystacim s celymi cisly.
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Re: Výpočet výkonu v čase

Příspěvek od vata »

No zkrátka mi ta vypočítaná numera nesedí - od plného nabití mi to ukazuje -190Ah, což by už měla být skoro prázdná baterie (200Ah), ta ovšem dává pořád kolem 13V. Někde tam mám nějakou botu... Budu to pár dnů pozorovat, co to dělá.
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am

Re: Výpočet výkonu v čase

Příspěvek od mypower.cz »

testovani, ktere se mi vyplatilo:
notebook + serepeticky u me zere 29W. Pokud na to hodinu nesahnu a na pocitadle nebude 29Wh tak je to spatne .. Takovy stav se da i nasimulovat promennyma natvrdo (U,I) a overit tak spravnost algoritmu nekolika iteracemi s posunutym timestamp. Pak teda leda ze by mereni merilo neco jineho. No verim ze se "zakopany pes" podari vykopat.

EDIT: a co me nejvic potesilo, kdyz zarizeni odesilalo na mypower a na mypower vypocty probihaji mirne odlisne a i na mypower to s timto nezavislym vypoctem sedelo. :comp: ::rolleyes::
honzaL
Příspěvky: 412
Registrován: pon kvě 21, 2012 11:33 am
Bydliště: Hradec Kráové

Re: Výpočet výkonu v čase

Příspěvek od honzaL »

Zdravim programatory. V kodu vidim jediny problem, ktery ale asi vnasi jen malou chybu. Problem je v neshode casu UPTIME, ktery je meren 2x ruzne v jednom mereni. Kod je treba resit napriklad takto:
..............
//výpočet časového výkonu
SetMeterTime = UPTIME; //zaznamena tento cas a pracuje pouze s touto casovou znackou ;)
timeDiff = SetMeterTime - lastMeterTime; //časový rozdíl mezi vzorky
mAh = actualCur / timeDiff;
mWh = power * 1000 / timeDiff;
lastMeterTime = SetMeterTime; //zapamatuje si predchozi časovu znacku
....................
preji hodne uspechu s merenim
18x 550Wp, 16xLiFePO 780Ah (stáří 0, 8, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC UNIPI
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
Uživatelský avatar
abrams
Příspěvky: 2774
Registrován: ned črc 17, 2011 12:19 pm
Lokalita: Brno
Bydliště: Brno

Re: Výpočet výkonu v čase

Příspěvek od abrams »

vata píše:No zkrátka mi ta vypočítaná numera nesedí - od plného nabití mi to ukazuje -190Ah, což by už měla být skoro prázdná baterie (200Ah), ta ovšem dává pořád kolem 13V. Někde tam mám nějakou botu... Budu to pár dnů pozorovat, co to dělá.
Zdravím ,

200Ah LiFe aku nemá reálnou kapacitu 200Ah :sm1: , ale + 10% až + 30% :eek2: :yes: :yes: :yes: .
Reálná kapacita je cca 220Ah až 260Ah :celebrate2: . Časem se kapacita ještě trošu zvýší - kdy začne klesat to nevím , slouží mi "teprve" tři roky ... :mrgreen: .

Takže zásadní nesrovnalost nemusí býti v programování , ale v přidané hodnotě LiFe :yes: . RIP volovo ::phocos-cx:: .

Elektronům zdar *sun*
3,96kWp monokrystalů + 2x regl PCM60X + 24kWh LiFePO4 + 6kW HF sínus měnič , celé na 52V systému .
Chibi v textu vyhrazeny :D
honzaL
Příspěvky: 412
Registrován: pon kvě 21, 2012 11:33 am
Bydliště: Hradec Kráové

Re: Výpočet výkonu v čase

Příspěvek od honzaL »

vata píše:Zdravím,

//výpočet časového výkonu
timeDiff = UPTIME - lastMeterTime; //časový rozdíl mezi vzorky
mAh = actualCur / timeDiff;
mWh = power * 1000 / timeDiff;
lastMeterTime = UPTIME; //další časový interval

ah = ah + mAh; wh = wh + mWh; //kumulace výkonu[/code]
Jak tak na to ještě koukám vidím tam i problém fyzikální. Nesedi mi fyzikální jednotky. Časový výkon (vlastně práce či energie) je (výkon * čas) , ale Váš výpočet je power / čas. To asi není vpořadku. Jednoduchá úvaha mám 50V 2A tedy 100W pokud je čas 0,5s tak bude za hodinu power * čas sečteno x součtů. tedy číselně 100 * 0,5 * 7200 = 360000 Ws tedy 100 Wh. (kdyby byl čas 1s tak by se nic nedelo teď to musí vycházet číselně 4x více). Ve svých programech to řeším zpravidla pevným časovým intervalem 1s nebo 1 min a i při jedné minutě se neliším o více než 1% proti hodnotě z TS60A.
Snad sluneční bůh řídí mé úvahy správně.
18x 550Wp, 16xLiFePO 780Ah (stáří 0, 8, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC UNIPI
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Re: Výpočet výkonu v čase

Příspěvek od vata »

To s tím uptime - to je fakt, nastane tam časový rozdíl, sice malý ale je tam, díky, spravím to.
Ten výkon v čase: máte svatou pravdu, díky, kouknu na to :) Pokud je v tomhle ale chyba, je pak divné, že to počítá jen s tak "malou" odchylkou... No jo, to je ta moje matika - pokus / omyl :)
kapacita life: kéž by :) Ale tohle vypadalo skoro jako perpetuum mobile, páč ráno tam bylo -250Ah a baterky pořád na 12.9V...
Inteligentní ostrov - www.vati.cz
honzaL
Příspěvky: 412
Registrován: pon kvě 21, 2012 11:33 am
Bydliště: Hradec Kráové

Re: Výpočet výkonu v čase

Příspěvek od honzaL »

vata píše:Zdravím,

...............

Kód: Vybrat vše

actualCur = regCur + invCur;         //okamžitý celkový proud v mA * 100
....................
[/quote]
Tak ještě tento výraz. Není mi jasné co vyjadřuje. Předpokládám že:
 regCur je proud co teče z regulátoru
 invCur je proud co teče do inventoru

 pokud počítám  výkon (proud) z panelů měl bych dát 
actualCur =regCur a nic víc

pokud počítám výkon (proud) do inventoru
actualCur  = invCur;

pokud počítám příkon do baterek pak
actualCur = regCur - invCur; 
kladná hodnota je pak proud akumulovaný v baterii, záporná výkon (proud) spotřebovaný z baterie při spávném znaménku obou proudů
18x 550Wp, 16xLiFePO 780Ah (stáří 0, 8, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC UNIPI
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Re: Výpočet výkonu v čase

Příspěvek od vata »

regCur je proud vodiče za můstkem regulátor / baterie / DC zátěž. Polarita proudu je stejná jako proud vodiče do měniče, takže to lze takto sečíst (záporné hodnoty jsou odběr, měnič má pouze záporné, kladné jsou nabíjení). Proud z panelů nemusím na tomto místě počítat, protože mi jej poskytuje přesněji Tristar.
Inteligentní ostrov - www.vati.cz
honzaL
Příspěvky: 412
Registrován: pon kvě 21, 2012 11:33 am
Bydliště: Hradec Kráové

Re: Výpočet výkonu v čase

Příspěvek od honzaL »

Aha, tak už tomu rozumím. regCur a invCur jsou tedy paralelní větve z baterie, jedna do měniče a druhá do DC zátěže.
Sčítá se tedy proud do měniče DC/AC a proud na DC zátěž. Napětí baterie je stejné na obě vetve. Mají oba proudy stejné znaménko??
18x 550Wp, 16xLiFePO 780Ah (stáří 0, 8, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC UNIPI
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
Uživatelský avatar
jarík
Příspěvky: 75
Registrován: úte zář 25, 2012 1:46 pm
Bydliště: SK

Re: Výpočet výkonu v čase

Příspěvek od jarík »

prejm peknú nedeľu všetkým, moje slabé znalosti ma prinútili poprosiť o radu prípadne pomoc pri riešení s meraním Wh
používam tieto výpočty ale mám problém s ustálením meraním pri zapnutom meniči prípadne záťaži

mám použité tieto čidlá
http://sk.farnell.com/allegro-microsyst ... dp/1791391

ďakujem za všetky nápady a rady :comp:

for (int x = 0; x <100; x ++) // run cez slučku
{

// Čítanie na analógový hodnoty:
sensorValue = analogRead (analogInPin);
sensorValue2 = analogRead (analogInPin2);

sampleAmpVal = sampleAmpVal + sensorValue; // vzorky spolu
sampleAmpVal2 = sampleAmpVal2 + sensorValue2;

// nacteme aktualni napeti
analogVoltage= (analogRead(analogPin) * analogRange)/1024+analogOffset;

delay (10); // nechať ADC usadiť pred ďalším vzorky

}

avgSAV = sampleAmpVal * 0.01;

outputValue = (avgSAV * 4882.8125 );

outputAmps = (outputValue - 2460937.50) / ampsDiel ;

amps = outputAmps;
watts = amps * analogVoltage;
totalCharge = totalCharge + amps;

//----------------------------------------------------------------
avgSAV2 = sampleAmpVal2 * 0.01;

outputValue2 = (avgSAV2 * 4.8828 ); //uno 4.869578,

outputAmps2 = (2456.05 - outputValue2) / ampsDiel2 ;// uno 2478.65

amps2 = outputAmps2;
watts2 = amps2 * analogVoltage;
totalCharge2 = totalCharge2 + amps2;
//----------------------------------------------------------------

msec = millis ();
sample = sample + 1;


time = msec * 0.001;
averageAmps = totalCharge / sample;
ampSeconds = averageAmps * time;
ampHours = ampSeconds/3600;
wattHours = analogVoltage * ampHours;

averageAmps2 = totalCharge2 / sample;
ampSeconds2 = averageAmps2 * time;
ampHours2 = ampSeconds2/3600;
wattHours2 = analogVoltage * ampHours2;

WHod = SetWh + wattHours;
WHod2 = SetWh2 + wattHours2;
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am

Re: Výpočet výkonu v čase

Příspěvek od vata »

honzaL píše:Aha, tak už tomu rozumím. regCur a invCur jsou tedy paralelní větve z baterie, jedna do měniče a druhá do DC zátěže.
Sčítá se tedy proud do měniče DC/AC a proud na DC zátěž. Napětí baterie je stejné na obě vetve. Mají oba proudy stejné znaménko??
Ano, mají. Jeden ten amploc jsem sice zapojila obráceně, ale mám korekci v programu, který mi znaménko příslušně obrátí.
Po vašich připomínkách (děkuji) jsem to opravila, a zdá se, že to měří menší nesmysly. Akorát je potíž to kvůli malé přesnosti měření zkalibrovat - při nabíjení to měří pomaleji než při vybíjení, takže se mi to furt rozchází a vychází mi neustále dost záporné hodnoty - zkrátka takové osobní perpetuum mobile :(
Inteligentní ostrov - www.vati.cz

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek