
% Sean Costello et Sandra Brella, 2014
%--------------------------------------------------------------------------
% SD demo 5: Simulation du circuit integrateur de l'exercice 2, serie 5
% QUESTION: Simuler le calcul de l'arcsinus(u) etant donne u
%--------------------------------------------------------------------------

% Nettoyage de l'espace de travail
clear all; close all; clc;

%--------------------------------------------------------------------------
% Definition du parametre du circuit integrateur 
%--------------------------------------------------------------------------
tau = .01;  % constante de temps de l'integrateur

%--------------------------------------------------------------------------
% L'equation dynamique doit etre une fonction sous la forme dx/dt = f(t,x)
% Etats: x = alpha (degres), Entree: u
%--------------------------------------------------------------------------
myinput = @(t) .5; % On choisit une entree constante
mydyn = @(t,alpha) (1/tau)*(myinput(t)-sind(alpha));

%--------------------------------------------------------------------------
% Definition des conditions initiales
%--------------------------------------------------------------------------
alpha0 = 0; 

%--------------------------------------------------------------------------
% Integration Numerique de l'equation dynamique
%--------------------------------------------------------------------------
odeoptions = odeset('RelTol',1e-6,'AbsTol',1e-6,'Stats','on'); 
tspan = [0,10]; %horizon temporel de la simulation (s)
[tsim, alphasim] = ode45(mydyn,tspan,alpha0,odeoptions); 

%--------------------------------------------------------------------------
% Affichage des resultats
%--------------------------------------------------------------------------
for i = 1:length(tsim)
    ideal_alpha(i) = asind(myinput(tsim(i))); % asin(u(t))
end

figure('Name','Reponse du Systeme'),
plot(tsim,alphasim,'b', tsim, ideal_alpha,'r')
legend('alpha(t)', 'asin(u(t))')
xlabel('t (s)'), ylabel('degres')

%--------------------------------------------------------------------------
% Explication des resultats
%--------------------------------------------------------------------------
% En aujustant la valeur de tau, on peut faire converger alpha vers 
% asin(u(t)) arbitrairement vite!
