clear all
close all
clc
% syms R1 L1 I1 fi01 U1 L1 U2 L2 Rc W J f kc W1 real
% syms p complex
%
% [U1,W]=solve('U1=R1*I1+L1*p*I1+fi01*W','J*p*W=fi01*I1-f*W-kc*W','U1,W');
% U1=collect(U1,p);
% W=collect(W,p);
%
% %Calcul des fonctions de transfert du systeme:
% HIp=I1/U1;
% HWIp=W/I1;
%Caracteristiques de la machine:
%===============================
R1=0.08; %Ohms
L1=1.57e-3; %H
U1n=420; %V
I1n=272; %A
Nn=2540; %tr/mn
Wn=(2*pi*Nn)/60; %rd/sec
P1n=U1n*I1n; %W
fi01=(U1n-(R1*I1n))/Wn; %Wb
Cn=395; %N.m
f=(fi01*I1n-Cn)/Wn; %S.I.
J=0.55; %kg*m2
Pf=0.01*P1n; %on considere que la puissance d'exitation est egale a 1% de Pn
Ef=U1n; %Tension d'exitation
If=Pf/Ef; %Courant d'exitation
Rf=Ef/If; %Ohms
Lf=20; %H
Laf=fi01/If;
Is=0.1; %Iseuil en A
%correcteur de courant PI:
%=========================
ki=.12;
Ti=0.014;
%correcteur de vitesse PI:
%=========================
kv=3.2;
Tv=0.5;
%Gains du circuits:
%==================
ktach=90/Wn;%Gain du tachymetre
kc=(Cn/Wn);
kconv=U1n/Wn;%Gain du convertisseur
ks=1/240;%Gain du shunt
z=1;
while z==1
disp(' ---------------COMMANDE D''UNE MACHINE A COURANT CONTINU AVEC CONVERTISSEUR DIRECT-------------- ' )
disp(' ----------------------------------------------------------------------------------------------- ' )
disp(' Ce TPC est préparé par Marc F.AOUN et Najib J.ROUHANA, élèves de troisième d''année d''ingénierie ')
disp(' =============================================================================================== ' )
disp(' ' )
disp(' veuillez choisir la simulation desiree : ')
disp(' Tapez 1 pour la simulation en boucle ')
disp(' Tapez 2 pour la simulation reelle sur SIMPOWER ')
x=input(' Tapez 3 pour le calcul des correcteurs: ' );
disp(' ----------------------------------------------------------------------------------------------- ' )
if x==3
kr=1/ks;
kmisev=1/ktach;
%calcul du correcteur de courant. le correcteur est de type PI:
s=tf('s');
BOnc_I=(kconv*ks*kr)*(J*s+(f+kc))/((J*L1*s^2)+((J*R1+(f+kc)*L1)*s)+(R1*(f+kc)+fi01^2));
figure(1);
Bode(BOnc_I),grid on;
title('Tracé de Bode de la Boucle ouverte non corrigée de la boucle de courant')
ki=.12;
Ti=0.014;
PI=ki*(1+(1/(Ti*s)));
BOC=series(BOnc_I,PI);
figure(2);
Bode(BOC),grid on;
title('Tracé de Bode de la Boucle ouverte corrigée de la boucle de courant')
BFI=feedback(BOC,1);
figure(3);
step(BFI);
title('Réponse indicielle de la boucle fermée du courant')
%calcul du correcteur de vitesse. le correcteur est de type PI:
BOnc_V=(ktach*kmisev)*(fi01/(J*s+(f+kc)));
figure(4);
Bode(BOnc_V),grid on;
title('Tracé de Bode de la Boucle ouverte non corrigée de la boucle de vitesse')
BOnc_total=BOnc_V*BFI;
figure(5);
Bode(BOnc_total),grid on;
title('Tracé de Bode de la Boucle ouverte totale non corrigee de la boucle de vitesse')
%40e-3=Tv/Gsat avec Gstat=fi01 ==> Tv= fi01*40e-3 = 0.0599
%taux>taux en BF=40e-3 ===>soit taux=70e-3 ==>Kv=(70e-3)/((60e-3)*(fi01))
%==>Kv = 0.7792
kv=3.2;
Tv=0.5;
PI_V=kv*(1+(1/(Tv*s)));
BOC=BOnc_total*PI_V;
figure(6);
Bode(BOC),grid on;
title('Tracé de Bode de la Boucle ouverte corrigée de la boucle de vitesse')
BF=feedback(BOC,1);
figure(7);
step(BF),grid on;
title('Réponse indicielle de la boucle fermée de la vitesse')
else
y=input(' Tapez 1 pour l''echelle electronique et 2 pour l''echelle reelle : ' );
disp(' ----------------------------------------------------------------------------------------------- ' )
if y==1
b=4.69;
b1=4.69;
elseif y==2
b=Wn;
b1=I1n;
end
kr=(b1/ks)/I1n;
kmisev=(b/90);
if x==1
open('BOUCLE_VITESSE_COURANT.mdl')
elseif x==2
open('CIRCUIT_SUR_SIMPOWER.mdl')
end
end
z=input(' Tapez 1 pour recommencer du debut ou 0 pour arreter : ' );
close all;
clc;
end