Power calculation from Voltage and current waveforms
Show older comments
Hi to everybody!
I'm trying to calculate active and reactive power starts from current and voltage waveforms.
To do that i've prepared a simulink model and a matlab script, i'll attached to this post.
With simulink is really easy to obtain datas I'm looking for, but it's just a model. My goal is to write analytic formula to do that and after implement into a FPGA for a real calculation in AC/DC application.
Theory said that :
with t2-t1=period T.
So in my code I've multiplie voltage vector for current vector and integrated it during 1 period. The result is not god, but I've no idea why.
Maybe use trapz as integral is not the best way?
Could you help me?
2 Comments
Stefano Albertini
on 23 Feb 2021
David Goodmanson
on 4 Mar 2021
Hi Stefano, nothing I or anyone else can really say without seeing the data. Certainly if the simulink data contains more than one frequency component, then things are different.
Answers (2)
David Goodmanson
on 24 Feb 2021
Hi Stefano,
The biggest issue is that when using trapz, you have not taken into account the width of the time steps when doing the integration. WIth only one input provided to trapz, that program assumes each width to be 1. For proper results the time array must be inputted as well.
Starting where your code leaves off, the following integration agrees with powerP = 1.5256e+03
Note that the line
Icarico_rms = rms(abs(Icarico));
is highly misleading. Since abs(Icarico) is a real scalar, and since rms(scalar) = scalar), the rms function does not actually do anything. Fortunately Icarico is basically an rms quantity already.
% go to amplitudes since the integral will take care of the rms adjustment
V0 = Vmod_rms*sqrt(2);
I0 = Icarico_rms*sqrt(2);
phi = angle(Icarico);
t = linspace(0,1/50,100001);
V = V0*cos(2*pi*freq*t);
I = I0*cos(2*pi*freq*t + phi);
% plot, and multiply I by 10 for visual purposes
plot(t,V,t,I*10)
legend('V','I*10')
title('ELI the ICEman')
PowerPint = (1/(1/50))*trapz(t,V.*I)
3 Comments
Stefano Albertini
on 27 Feb 2021
David Goodmanson
on 2 Mar 2021
HI Stefano
I'm not sure what you mean. If I change the value of Rcarico, which is the only one available, then
PowerP and PowerPint (the calculation I appended) still agree.
Stefano Albertini
on 3 Mar 2021
Harsh
on 12 Aug 2023
0 votes
Consider a single-phase circuit with a resistive load. The circuit parameters are as follows:
- Voltage amplitude (Vm) = 100 V
- Frequency (f) = 50 Hz
- Resistance (R) = 50 ohms
Write a Scilab/MATLAB code to generate and plot the instantaneous current, voltage, real power, and reactive power over one cycle of the AC waveform. Assume a sinusoidal waveform for the voltage.
Categories
Find more on Numerical Integration and Differentiation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!