Sie sind auf Seite 1von 7

Exemple

Commande par ordinateur d’une presse à métal en feuille

Schéma de principe
Le schéma de principe du système est illustré par la figure suivante:

m N/A 12 bits -10v~10v


Amplificateur Moteur CC
+ 1 bit signe
Ordinateur Vis sans fin (0.01m/2π rad)
yd A/N 12 bits -10v~10v
Amplificateur
+ 1 bit signe
ym Épesseur y
0.005 m
0.001 m Capteur pour
mesurer l'épaisseur

10 m/s

1m

Schéma blocs
Le schéma blocs correspondant est illustré par la figure suivante:

Convertisseur
N/A Moteur CC Vis

R* E* M* 17.7 Y
Kr Kp Bo(s) KN/A 0.0016
+ s(0.08s+1)
-

Y d* T=0.05s
Ym
KA/N 1000 e-Tds

Convertisseur Ampli Retard


A/N

Ordinateur Interface Système à commander


Dans ce schéma blocs,

1m
Td = = 0.1s
10m / s

212 lsb
K A/ N = = 409.6 lsb / v
10v

10v
KN /A = = 0.002441 v / lsb
212 lsb

K r = 1000 * K A / N

Schéma blocs échantillonné


Pour obtenir les schéma blocs échantillonné, on doit d’abord ajouter un échantillonneur
virtuel à la sortie comme l’indique la figure suivante

Gp(s)
T

R* E* M* 17.7 Y
Kr Kp Bo(s) KN/A 0.0016
+ s(0.08s+1)
-

Y d* T=0.05s
Ym
KA/N 1000 e-Tds

H(s)
On doit ensuite tracer les parcours, à rebours, de la sortie de chaque échantillonneur
jusqu’à la première variable échantillonné. Finalement, comme l’indique la figure
suivante, les parcours doivent être remplacé par la transformée en z de tous les fonctions
de transfert en s du parcours et les portions du système qui sont déjà dans le domaine
échantillonné ne doivent pas être modifiées.

R(z) E(z) M(z) Y(z)


Kr Kp BoGp(z)
+
-

Yd(z)
BoGpH(z)
Dans ce schéma blocs en z,
z − 1  Gp ( s )  z − 1  0.02832 K NA  z − 1  0.00006913 
BoGp ( z ) = Z {Bo( s )Gp ( s )} = Z = Z 2 = Z 2 
z  s  z  s ( 0.08s + 1)  z  s ( 0.08s + 1) 

Pour résoudre cette transformée en z, on utilise la ligne 9 de la table de transformée en z.


Pour ce faire, il faut cependant réexprimer l’expression de la façon suivante:

z − 1  1 / 0.08 
BoGp( z ) = 0.00006913 Z 2 
z  s (s + 1 / 0.08) 

Selon la ligne 9 de la table,

BoGp( z ) = 0.00006913
[
z − 1 z z (T / 0.08 − 1 + e −T / 0.08 ) + (1 − e −T / 0.08 − T / 0.08e −T / 0.08 ) ]
1 / 0.08( z − 1) (z − e −T / 0.08 )
2
z

d’où

BoGp( z ) = 0.00006913
[z (T / 0.08 − 1 + e ) + (1 − e
− T / 0.08 −T / 0.08
]
− T / 0.08e −T / 0.08 )
1 / 0.08( z − 1)(z − e −T / 0.08
)
Pour simplifier l’écriture, on pose ensuite

b1 = 0.00006913(T / 0.08 − 1 + e −T / 0.08 )0.08 = 0.00000088631

b2 = 0.00006913(1 − e −T / 0.08 − T / 0.08e −T / 0.08 )0.08 = 0.00000072

a1 = −(1 − e −T / 0.08 ) = −1.5353

a 2 = e −T / 0.08 = 0.5353

de sorte que

b1 z + b2
BoGp( z ) =
z + a1 z + a 2
2

Il faut ensuite obtenir la transformée en z suivante :

z − 1  Gp ( s ) H ( s )  z − 1  0.02832 * K NA *1000 * K AN e−2Ts 


BoGpH ( z ) = Z { Bo( s )Gp ( s ) H ( s )} = Z = Z 
z  s  z  s 2 ( 0.08s + 1) 
Selon la propriété du retard de la transformée en z,

1 z − 1  0.02832 * K NA *1000 * K AN 
BoGpH ( z ) = Z 
z2 z  s 2 ( 0.08s + 1) 

Selon la définition de Kr on obtient ensuite

1 z − 1  0.02832 * K NA 
BoGpH ( z ) = Kr Z 2 
 s ( 0.08s + 1) 
2
z z

La dernière partie de cette expression est exactement BoGp(z) que nous avons déjà
trouvé. Ainsi,

1 K r b1 z + K r b2
BoGpH ( z ) = K r BoGp ( z ) =
z2 z 4 + a1 z 3 + a2 z 2

Le schéma blocs équivalant en z est alors donné par la figure suivante :

R(z) E(z) M(z) b1z + b2 Y(z)


Kr Kp
+ z +a1z+a2
2

Yd(z)
Krb1z + Krb2
z4+a1z3+a2z2

Simulation du système
Pour simuler le système, on doit faire la transformée en z inverse de la sortie de chaque
blocs :

b1 z + b2
Y ( z) = M ( z)
z + a1 z + a 2
2

1) z 2Y ( z ) + a1 zY ( z ) + a 2Y ( z ) = b1 zM ( z ) + b2 M ( z )
2) Y ( z ) + a1 z −1Y ( z ) + a 2 z −2Y ( z ) = b1 z −1 M ( z ) + b2 z −2 M ( z )
3) y (k ) + a1 y (k − 1) + a 2 y (k − 2) = b1 m(k − 1) + b2 m(k − 2)
4) y (k ) = −a1 y (k − 1) − a 2 y (k − 2) + b1 m(k − 1) + b2 m(k − 2) (1)
K r b1 z + K r b2
Yd ( z ) = M ( z)
z + a1 z 3 + a2 z 2
4

1) z 4Yd ( z ) + a1 z 3Yd ( z ) + a2 z 2Yd ( z ) = K r b1 zM ( z ) + K r b2 M ( z )


2) Yd ( z ) + a1 z −1Yd ( z ) + a2 z −2Yd ( z ) = K r b1 z −3 M ( z ) + K r b2 z −4 M ( z )
3) yd (k ) + a1 yd (k − 1) + a2 yd (k − 2) = K r b1 m(k − 3) + K r b2 m(k − 4)
4) yd (k ) = −a1 yd (k − 1) − a2 yd (k − 2) + K r b1 m(k − 3) + K r b2 m(k − 4) (2)
Les autres relations sont indépendantes du domaine (s, z ou t). Ainsi,

e( k ) = K r r ( k ) − y d ( k ) (3)
et
m( k ) = K p e( k ) (4)

Condition initiales
Dans cette exemple les conditions initiales ne sont pas nulles puisque l’épesseur initial du
métal est de 0.005m. Ainsi, on suppose que
y (−1) = y (−2) = 0.005m
et
y d (−1) = y d (−2) = K r 0.005m
et les autres conditions initiales nulles. Parce que le système est d’ordre 4, les 4 premières
itérations de la simulation doivent être calculée à l’extérieure de la boucle de simulation :

k=0
y (0) = −a1 y (−1) − a 2 y (−2) + b1 m(−1) + b2 m(−2) = −a1 y (−1) − a 2 y (−2) = 0.005
yd (0) = −a1 yd (−1) − a2 yd (−2) + K r b1 m(−3) + K r b2 m(−4) = −a1 yd (−1) − a2 yd (−2) = 0.005K r
e(0) = K r r (0) − y d (0)
m ( 0) = K p e ( 0)

k=1
y (1) = −a1 y (0) − a 2 y (−1) + b1 m(0) + b2 m(−1) = −a1 y (0) − 0.005a 2 + b1 m(0)
yd (1) = −a1 yd (0) − a2 yd (−1) + K r b1 m(−2) + K r b2 m(−3) = −a1 yd (0) − a2 0.005K r
e(1) = K r r (1) − y d (1)
m(1) = K p e(1)
……………………………………………………………………………………………

k=3
y (3) = −a1 y (2) − a 2 y (1) + b1 m(2) + b2 m(1)
yd (3) = −a1 yd (2) − a2 yd (1) + K r b1 m(0) + K r b2 m(−1) = −a1 yd (2) − a2 yd (1) + K 0 b1 m(0)
e(3) = K r r (3) − y d (3)
m(3) = K p e(3)
Les autres itérations peuvent ensuite être calculées dans une boucle pour k = 4 … K (le
nombre d’échantillons que l’on souhaite simuler).

y (k ) = −a1 y (k − 1) − a 2 y (k − 2) + b1 m(k − 1) + b2 m(k − 2)


y d (k ) = −a1 y d (k − 1) − a 2 y d (k − 2) + K 0 b1 m(k − 3) + K 0 b2 m(k − 4)
e( k ) = K r r ( k ) − y d ( k )
m( k ) = K p e( k )

Programme MATLAB
Pour calculer la simulation de façon automatique, on peut utiliser le programme
MATLAB suivante :

%Exemple de la presse

%Periode d'echantillonnage
T = 0.05;

%Nombre de periode d'echantillonnage


K = 100;

%Constantes
Kr = 409600;
a2 = exp(-T/.08);
a1 = -(1+a2);
b1 = .00006913*(T-.08+.08*a2);
b2 = .00006913*(.08-.08*a2-T*a2);

%Gains proportionnel
Kp = 0.06;

%References
r = 0.001*ones(K,1);

%Conditions initiales
y0 = 0.005;
yd0 = Kr*y0;
%k=0
y(1) = -a1*y0-a2*y0;
yd(1) = -a1*yd0-a2*yd0;
e(1) = Kr*r(1)-yd(1);
m(1) = Kp*e(1);
%k=1
y(2) = -a1*y(1)-a2*y0+b1*m(1);
yd(2) = -a1*yd(1)-a2*yd0;
e(2) = Kr*r(2)-yd(2);
m(2) = Kp*e(2);
%k=2
y(3) = -a1*y(2)-a2*y(1)+b1*m(2)+b2*m(1);
yd(3) = -a1*yd(2)-a2*yd(1);
e(3) = Kr*r(3)-yd(3);
m(3) = Kp*e(3);
%k=3
y(4) = -a1*y(3)-a2*y(2)+b1*m(3)+b2*m(2);
yd(4) = -a1*yd(3)-a2*yd(2)+Kr*b1*m(1);
e(4) = Kr*r(4)-yd(4);
m(4) = Kp*e(4);
%Boucle de simulation k=4...K-1
for k=5:K,
y(k) = -a1*y(k-1)-a2*y(k-2)+b1*m(k-1)+b2*m(k-2);
yd(k) = -a1*yd(k-1)-a2*yd(k-2)+Kr*b1*m(k-3)+Kr*b2*m(k-4);
e(k) = Kr*r(k)-yd(k);
m(k) = Kp*e(k);
end;

%Affichage
t=(0:K-1)*T;
plot(t,y),xlabel('s'),ylabel('m');
title('Réponse du système');

Das könnte Ihnen auch gefallen