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 ...
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Výpočet výkonu v čase
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:
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
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
Díky
Inteligentní ostrov - www.vati.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
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.
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Výpočet výkonu v čase
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.
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
-
- 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
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.
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Výpočet výkonu v čase
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
-
- 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
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.
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.
-
- Příspěvky: 414
- Registrován: pon kvě 21, 2012 11:33 am
- Bydliště: Hradec Kráové
Re: Výpočet výkonu v čase
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
..............
//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, 1, 2, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC TECO2091
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
-
- 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
Zdravím ,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á.
200Ah LiFe aku nemá reálnou kapacitu 200Ah , ale + 10% až + 30% .
Reálná kapacita je cca 220Ah až 260Ah . Časem se kapacita ještě trošu zvýší - kdy začne klesat to nevím , slouží mi "teprve" tři roky ... .
Takže zásadní nesrovnalost nemusí býti v programování , ale v přidané hodnotě LiFe . RIP volovo .
Elektronům zdar
3,96kWp monokrystalů + 2x regl PCM60X + 24kWh LiFePO4 + 6kW HF sínus měnič , celé na 52V systému .
Chibi v textu vyhrazeny
Chibi v textu vyhrazeny
-
- Příspěvky: 414
- Registrován: pon kvě 21, 2012 11:33 am
- Bydliště: Hradec Kráové
Re: Výpočet výkonu v čase
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.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]
Snad sluneční bůh řídí mé úvahy správně.
18x 550Wp, 16xLiFePO 780Ah (stáří 0, 1, 2, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC TECO2091
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Výpočet výkonu v čase
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...
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
-
- Příspěvky: 414
- Registrován: pon kvě 21, 2012 11:33 am
- Bydliště: Hradec Kráové
Re: Výpočet výkonu v čase
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, 1, 2, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC TECO2091
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Výpočet výkonu v čase
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
-
- Příspěvky: 414
- Registrován: pon kvě 21, 2012 11:33 am
- Bydliště: Hradec Kráové
Re: Výpočet výkonu v čase
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??
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, 1, 2, 10 let), STUDER: 3x MPPT VT65; 3x Xtender 4000-48. PLC TECO2091
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
(v minulosti = CEEG 15x230 Wp, 16xLiFePO 500 Ah, MS TS60A, Studer 4000-48, PLC Siemens,)
-
- Příspěvky: 75
- Registrován: úte zář 25, 2012 1:46 pm
- Bydliště: SK
Re: Výpočet výkonu v čase
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
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;
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
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;
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Výpočet výkonu v čase
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í.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??
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
-
-
Výpočet skutečného tepelného výkonu topení
od vata » » v Boilery, ohřev TUV, vytápění, klimatizace
Výpočet skutečného tepelného výkonu topení
- 18 Odpovědi
- 4360 Zobrazení
-
Poslední příspěvek od rva
-
-
-
Výpočet výkonu veterných turbín HAWT a VAWT
od miroc » » v Větrné turbíny
Výpočet výkonu veterných turbín HAWT a VAWT
- 3 Odpovědi
- 1905 Zobrazení
-
Poslední příspěvek od vlkazajac
-
-
-
HAWT/VAWT výpočet ročního výkonu větrné elektrárny
od Davsch » » v Větrné turbíny
HAWT/VAWT výpočet ročního výkonu větrné elektrárny
- 17 Odpovědi
- 4125 Zobrazení
-
Poslední příspěvek od Davsch
-
-
-
Malý pomocný panel na výpočet maximálneho výkonu panelov
od TomHC » » v Boilery, ohřev TUV, vytápění, klimatizace
Malý pomocný panel na výpočet maximálneho výkonu panelov
- 4 Odpovědi
- 803 Zobrazení
-
Poslední příspěvek od TomHC
-
-
- 2 Odpovědi
- 1435 Zobrazení
-
Poslední příspěvek od chatař