# Calculate and plot real and reactive power matlab

## Homework Statement

Write a Matlab function to compute and plot real and reactive power consumed (or
supplied) by a known impedance (the value of complex impedance should be used as the function’s input) as a function of either current or voltage (use a character: V or I as a second input) for a predefined range of 0-200 V or 0-10 A. Your function must report the impedance value in the plot title. Both, real and reactive powers should be plotted on the same axes. Verify functionality of your module for 300+j100 Ω and 100-j100 Ω impedances. Plot the power both
vs. voltage and current (total of four separate graphs).

## The Attempt at a Solution

function[Real,Reactive]=Compute_Power_Real_Reactive(impedance,V)

I=V/abs(impedance);
theta=atan(imag(impedance)/real(impedance));

P=V*I*cos(theta);
Q=V*I*sin(theta);

disp(P);
disp(Q);
end

This is my code so far this is what I get:

>> Compute_Power_Real_Reactive(300+100i,1:50:200)
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> Compute_Power_Real_Reactive at 7
P=V*I*cos(theta);

I cannot figure out why this doesn't work

donpacino
Gold Member
in matlab everything is matrix based. so if you do A/B, that is matrix division of A and B.

if you do A./B, that is element by element division of A and B.

P=V.*I*cos(theta);
Q=V.*I*sin(theta);

Thanks I figured out what I was doing wrong turns out I was right on some of it but needs quite a bit more code to do