phase shift

29 views (last 30 days)
Flavia
Flavia on 17 Aug 2011
I need to simulate a parallel RC circuit with R variable. When I plot it, it seems that are no phase between voltage and current and come Warning: Imaginary parts of complex X and/or Y arguments ignored . and when I calcute this phase (phi), there is something. Can someone help me how to plot with this phase delay? Thanks Flavia Here is my code
f=0.1; %Hz
fs=1000;% Abtastfrequenz in Hz
ta=1/fs;
t=0:ta:100;
T=10;
U=100*sqrt(2)*sin(2*pi*f*t); %V
C=-2*pi*f*1e-6*i; %Kapazität in F
R=15e6*(1+exp(-(t/T+log(5/3))))-14e6; % Widerstand in M Ohm
Y=(1./R)+C;
Z=1./Y;
I=U./Z;
plot(t,I/2e-7,'r',t,U,'g');
grid on
hold on
Im=imag(U./I);
Re=real(U./I);
phi=angle(Im./Re);
figure
plot(t,phi*180/pi);
  1 Comment
Walter Roberson
Walter Roberson on 17 Aug 2011
phi = atan2(Im, Re) might perhaps be clearer.
If Z = 1./Y, and I = U ./ Z, then I = U .* Y. Then U ./I would seem to be U . / (U .* Y) which would be 1 ./ Y which would be the same as Z. Would it then not be more direct to take the real and imag parts of Z rather than of U./I ?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 17 Aug 2011
C incluedes 1e-6*i so C will normally be complex. Y adds C to a calculation, so Y will normally be complex. Z has 1/Y so Z will normally be complex. I has something ./ Z, so I will normally be complex.
You then plot t vs I, so you are plotting a real value against a (usually) complex value. plot() requires that the coordinates to it be real, with the one exception that if you use plot(P) and P is complex, then real(P) will be plotted against imag(P); this exception never applies if you specify the x (or t) coordinate as you do in this plot() call.
  2 Comments
Flavia
Flavia on 17 Aug 2011
thanks for your answer, but do you now how can I plot voltage and current at some time?
The problem when I a take real and imag parts of Z is that a can not see this phase delay between voltage and current.
Walter Roberson
Walter Roberson on 17 Aug 2011
Perhaps you should be using U as your first coordinate instead of t ? U is voltage according to your comments.

Sign in to comment.

More Answers (1)

Flavia
Flavia on 18 Aug 2011
I tried it, aber that did not work like i want. I need in the some graphic both curves (current and voltage), but with phase (phi). At the beginning phi is 80 degree, so the both curves should have the amplitude fast in opposite direction and with the time phase(phi) changed. aber this does not appear with plot()

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!