%% Exercice - Phaseurs
% Le but de l'exercice est de comprendre l'utilisation ou l'utilité des phaseurs appliqués à un circuit RL.

% Max Dupont et André Hodder - v03 - Utilisation des valeurs efficaces
close all; clear; clc
ylimits = 1.5;    % marges verticale des graphes
pauseTime = 0.05; % Variable pour les animations

%% Données
% Circuit RL

R = 1;      % [Ω] - résistance
L = 10e-3;  % [H] - inductance

% Alimentation

f = 50;                 % [Hz] - fréquence
Urms = 1;               % [V] - Valeur de crête de U
Ucrete = sqrt(2)*Urms;  % [V] - Valuer efficace de U
alpha = 0;              % [°] - angle de la tension U

%% Valeurs déductibles

w = ;          % [rad/s] - pulsation électrique
X = ;             % [Ω] - réactance
Zcmpx = ;      % [Ω] - Impédance complexe
Z = ;      % [Ω] - Norme de l'impédance
phi = ;  % [°] - Angle de l'impédance (phi)
beta = ;    % [°] - angle de i -> quand alpha = 0 -> beta = -phi

%
%% 1. Afficher u(t) et i(t)
% Temps. Aussi utilisé dans le 3. Si dans le 3 l'animation est trop lente, vous pouvez réduire le nombre de points ou n'afficher qu'une période.

tt = linspace(0, 2/f, 100); % [s] - temps d'affichage - 2 périodes - 100 points

% u(t) et i(t)

u = ;      % u(t) - u temporel
i = ;      % i(t) - i en temporel

% Affichage

figure
plot(tt, u, 'b', tt, i, 'r')
title('Valeurs temporelles')
legend('u(t)','i(t)')
grid on
ylim([-ylimits ylimits])
xlabel('Temps [s]')
ylabel('Amplitude')

%
%% 2. Afficher les phaseurs U et I
% Phaseurs

Uphaseur = ;  % phaseur de U
Iphaseur = ;  % phaseur de I

% Affichage

figure
h1 = compass([real(Uphaseur) real(Iphaseur)],[imag(Uphaseur) imag(Iphaseur)]);         %# compass(real(Z),imag(Z))
h1(2).Color = [0.8500 0.3250 0.0980];
title('Phaseurs dans le plan complexe')
legend('U', 'I')

%
%% 3. Visualiser U et I tournant dans le plan complexe

Utournant = ;   % U tournant
Itournant = ;   % I tournant

% Voulez-vous afficher l'animation :  true or false (en minuscule)

animation = true; % true or false (en minuscule)

% Affichage (animation)

if true(animation)
    figure
    for i = 1:length(tt)        
        h2 = compass([real(Utournant(i)) real(Itournant(i))],[imag(Utournant(i)) imag(Itournant(i))]);         %# compass(real(Z),imag(Z))
        h2(2).Color = [0.8500 0.3250 0.0980];    
        legend('Tension', 'Courant')        
        drawnow()    
        pause(pauseTime)
    end
end

%
%% 3.1 Recalcul du temporel en projetant sur l'axe réel
% (on devrait donc obtenir le même résultat que la première figure)

utemporel = ;  % projection sur l'axe X -> (real)
itemporel = ;  % projection sur l'axe X -> (real)

% Affichage

figure % affichage
plot(tt, u,'b', tt, i,'r', tt, utemporel, '--c', tt, itemporel, '--g')
%plot(tt, utemporel, 'b', tt, itemporel, 'r')
title('Valeurs temporelles')
legend('u(t)','i(t)','utemporel', 'itemporel')
grid on
ylim([-ylimits ylimits])
xlabel('Temps [s]')
ylabel('Amplitude')