Pre meranie spotreby elektrickej energie je efektívne merať elektrický činný príkon elektronickým wattmetrom [Pa]. Činný príkon integrujeme skladáme, akumulujeme, sčítavame a zapamätáme s časom a zapamätáme. Tým máme zmeranú elektrickú prácu – spotreba elektrickej energie [E(t)]. Okamžitý činný príkon je súčin napätia a prúdu v časovom okamžiku Pa = U(t) * I(t). Veličiny napätie a prúd sú striedavé. Na ich meranie použijeme meraciu metódu True RMS Root Mean Square. Napäťové a prúdové vzorky meriame v rovnakom okamžiku v rýchlom slede za sebou cca 1 200 vzoriek napätia a prúdu za sekundu.
Nameranú vzorku umocníme a akumulujeme sčítavame všetky následne mocniny vzoriek:
- Accumulator.U = Accumulator.U + (Temp.U * Temp.U);
- Accumulator.I = Accumulator.I + (Temp.I * Temp.I);
Súčasne vynásobíme vzorku napätia a prúdu, čím dostaneme okamžitý činný príkon. Súčin akumulujeme:
- Accumulator.P = Accumulator.P + (Temp.U * Temp.I);
Periodický 1x za sekundu akumulátor normalizujeme podelíme počtom vzoriek. Normalizovaný akumulátor príkonu je hodnota činného príkonu:
- Temp_U = Accumulator.U / NORM;
- Temp_I = Accumulator.I / NORM;
- P(active) = Accumulator.U / NORM;
Normalizované hodnoty akumulátorov napätia a prúdu odmocníme. Tým dostaneme strednú hodnotu [RMS] striedavej veličiny napätia alebo prúdu:
- U_RMS = sqrt (Temp_U);
- I_RMS = sqrt (Temp_I);
Nakoniec namerané hodnoty skalibrujeme, vynásobíme koeficientom, ktorý spresní hodnotu s referenčným normálom:
- U_RMS = U_RMS * Kalibracia_U;
- I_RMS = I_RMS * Kalibracia_I;
- P(active) = P(active) * Kalibracia_U;
- P(active) = P(active) * Kalibracia_I;
Akumuláciou činného príkonu vyhodnocujeme elektrickú prácu normalizovanú na jednotku [kWh]:
- E(a) = E(a) + (P(active) / (1000 * 3600));
Napäťové meracie rozhranie:
Prúdové meracie rozhranie:
Aktualizovanú hodnotu elektrickej práce registrujeme v nonvolatilnej stabilne pamäti. Priama hodnota spotreby elektrickej energie v kWh:
Pre meranie striedavých veličín použijeme meracie rozhrania FrontEnd. Výstupy pripojíme na analógovo-digitálne [ADC] prevodníky mikroprocesora. Keďže analógovo-digitálne prevodníky sú unipolárne, napätie 0V až 5V, meraný striedavý signál oddelíme kondenzátorom C1 - C10 a vytvoríme umelú jednosmernú úroveň DC Ofset približne 2,5V R2, R6.
Z hodnôt napätia U_RMS a prúdu I_RMS si vypočítame vektorovo celkový zdanlivý - Apparent príkon:
- P(apparent) = U_RMS * I_RMS;
- Hodnotu Power Factor: [PF] = P(active) / P(apparent);
- Jalový (Reactive) príkon;
- P(reactive) = sqrt ((P(apparent) * P(apparent)) - (P(active) * P(active)));
Jednosmernú zložku následne odstránime pomocou SW. Použijeme SW metódu IIR Infinity Impulse Response – butterworth filter, horná priepusť. Transferová funkcia:
- y[n] = 0.996*y[n-1] + 0.996*x[n] - 0.996*x[n-1];
Výpočet interpretovaný v jazyku C:
Premenné sú deklarované výpočtovým typom Integer, teda celé čísla. Výpočet súčinu desatinného čísla 0,996 je prevedený operáciami súčinu Integer * 255 anásledne podielom / 256 - 8,8-násobna bitová rotácia doprava.
- Sample[Index]. PreviousFiltered = Sample[Index].Filtered;
- TempL = 255 * (long)Sample[Index].Filtered;
- TempL = TempL8;
- TempI = Sample[Index].Fresh - Sample[Index].Previous;
- TempL = TempL + 255 * (long)TempI;
- Sample[Index].Filtered = TempL;