Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Digital Basic o
Digital Basic o
Digital Basic o
U ( s) Y ( s) U ( z ) Y ( z)
G ( s) Gd ( z )
Para ello supongamos que la respuesta del sistema continuo esta dada por
Y (z ) = Gd (s)U (z )
Discretización de Sistemas
1
Y (s) = G(s)
s
z
Y (z ) = Gd (z )
z 1
La respuesta en el tiempo de cada sistema es
1 1
y (t ) = G(s)
s
1 z
y (k ) = Z Gd (z )
z 1
1 1 1 z
y (t )jt =kTm = G(s) = y (kTm ) = Z Gd (z )
s z 1
Discretización de Sistemas
1 1 1 1
y (t)jt=kTm = G(s) jt=kTm = y (kTm ) = Z G(s)
s s
A partir de la última ecuación
1 1 1 z
G(s) jt=kTm = Z Gd (z)
s z 1
z 1 1
Gd (z) = Z G(s) jt=kTm
z 1 s
z 1 1 1
Gd (z) = Z G(s) jt=kTm
z s
Aunque parece críptica esta ultima ecuación tiene un
interpretación muy sencilla como mostraremos en el siguiente
ejemplo.
Ejemplo de invarianza al paso
s+2
C(s) =
(s + 1)(s + 3)
Encuentre un controlador discreto equivalente invariante al
paso.
Solución
Para esto
C(s) s+2
=
s s(s + 1)(s + 3)
C(s) 2 1 1
=
s 3s 2 (s + 1) 6 (s + 3)
1 1 2 1 3t 1 t
C(s) = e e
s 3 6 2
Ejemplo de invarianza al paso
1 1 2 1 3t 1 t
C (s ) = e e
s 3 6 2
La muestreamos cada Tm
1 1 2 1 3kTm 1 kTm
C (s ) jt =kTm = e e
s 3 6 2
Por último
z 1 1 1
C (z ) = Z $ C (s ) jt =kTm
z s
z 1 2 1 3kTm 1 kTm
C (z ) = Z e e
z 3 6 2
El compensador equivalente es
z 1 2 z 1 z 1 z
C (z ) = ( 3Tm Tm
)
z 3z 1 6z e 2z e
3Tm Tm
z 4 e 3e + 4e 4Tm 3e 3Tm e Tm
C (z ) =
6z 2 + ( 6e Tm 6e 3Tm ) z + 6e 4Tm
Ejemplo de invarianza al paso
1:9573z 0:734 58
C(z) =
6:0z 2 4:978z + 0:81201
Step Response
0.7
0.6
0.5
0.4
Amplitude
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
Invarianza ante escalones-Modelos en variables de
estado
Si tenemos un modelo continuo descrito en variables de estado
x_ = Ax + Bu
y = Cx + du
supongamos que la señal de entrada es constante en el
intervalo [kTm ; kTm + Tm ]
Es decir
x_ = Ax + Bu
y = Cx + du
supongamos que la señal de entrada es constante en el
intervalo [kTm ; kTm + Tm ]
Es decir
2 3
(k +1)T
Z m
6 7
x((k + 1)Tm ) = eATm x(kTm ) + 4 eA(t )
Bd 5 u(kTm )
kTm
2T 3
Zm
x((k + 1)Tm ) = eATm x(kTm ) + 4 eA d 5 Bu(kTm )
0
De aquí que tenemos el modelo discretizado
A = eATm
2T 3
Zm
B = 4 eA d 5 B
0
Como se calculan estos valores
A2 Tm2 A3 Tm3
A = eATm = I + ATm + +
2! 3!
2T 3 Tm
Zm Z
A2 2 A3 3
B = 4 eA d 5 B = I+A + + d B
2! 3!
0 0
2T 3
Zm
AT 2 A2 Tm3 A3 Tm3
B = 4 eA d 5 B = ITm + m + + + ::: B
2! 3! 4!
0
s+2
C(s) =
(s + 1)(s + 3)
En función de transferencia usamos el código en MATLAB
cs=zpk(-2,[-1 -3],1)
czft=c2d(cs,T)
Ejemplo: conversión usando el método de invarianza
al paso
s+2
C(s) =
(s + 1)(s + 3)
En variables de estado hacemos lo siguiente
cs=zpk(-2,[-1 -3],1)
csve=ss(cs)
cved=c2d(csve,T)
¿Como hace el calculo internamente MATLAB
A2 Tm2 A3 Tm3
A = eATm = I + ATm + +
2! 3!
2T 3
Z m
AT 2 A2 Tm3 A3 Tm3
B = 4 eA d 5 B = ITm + m + + + ::: B
2! 3! 4!
0
¿Como hace el calculo internamente MATLAB
cs=zpk(-2,[-1 -3],1)
csve=ss(cs)
A=csve.a
B=csve.b
C=csve.c
d=csve.d
T=0.5
%obtencion de A
EAT=eye(size(A))
for i=1:50
EAT=EAT+(A*T)^i/factorial(i);
end
¿Como hace el calculo internamente MATLAB?
%obtencion de B
Bb=T*eye(size(A))
for i=1:50
Bb=[Bb+(A*T)^i*T/factorial(i+1)];
end
Bb=Bb*B
Invarianza a la rampa
(z 1)2 1 1
Gd (z) = Z G(s) jt=kTm
z s2
La manera de obtenerla es de manera similar a coo hicimos en
la invarizan al paso y no insistiremos sobre esto.
MATLAB
cs=zpk(-2,[-1 -3],1)
cd=cd2(cs,'foh')
Aproximaciones en la frecuencia
y_ = u
Y 1
=
U s
La ecuación anterior podemos expresarla en una solución
recursiva
t+T
Zm
y (t + Tm ) = y (t) + u( )d
Tm
Aproximaciones en la frecuencia
u (t ) u (t + Tm )
t t + Tm
Tm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)
La integral
t+T
Zm
u( )d
Tm
u (t ) u (t + T )
t t + Tm
Tm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)
u (t ) u (t + T )
t t + Tm
Tm
t+T
Zm
y (t + Tm ) = y (t) + x( )d
0
y (t + Tm ) y (t) + Tm u(t + Tm )
En los instantes de muestreo t = kTm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)
y (k + 1) = y (k ) + Tm u(k + 1)
Tomando transformada z con condiciones iniciales nulas
Y (z) Tm z Y (s) 1
= $ =
U(z) z 1 U(s) s
Haciendo la equivalencia
Tm z 1
!
z 1 s
z 1
s !
Tm z
Aproximaciones de Euler con diferencia hacia atrás
(backward Euler)
Y (z) Tm z Y (s) 1
= $ =
U(z) z 1 U(s) s
Haciendo la equivalencia
Tm z 1
!
z 1 s
z 1
s !
Tm z
Aproximación trapezoidal
La integral
t+T
Zm
u( )d
Tm
u (t ) u (t + T )
t t + Tm
Tm
Aproximación trapezoidal
u (t ) u (t + T )
t t + Tm
Tm
t+T
Zm
y (t + Tm ) = y (t) + x( )d
0
Tm
y (t + Tm ) y (t) +
[u(t + Tm ) + u(t)]
2
En los instantes de muestreo t = kTm
Aproximación trapezoidal
Tm
y ((k + 1)Tm ) = y (kTm ) + [u(kTm + Tm ) + u(kTm )]
2
Es equivalente a la ecuación en diferencias
Tm
[u(k + 1) + u(k )]
y (k + 1) = y (k ) +
2
Tomando transformada z con condiciones iniciales nulas
Tm
Z [y (k + 1)] = Z [y (k ) + [u(k + 1) + u(k )]
2
Tm
zY (z) Y (z) = [zU(z) + U(z)]
2
Y (z) Tm z + 1
=
U(z) 2 z 1
Aproximación trapezoidal
Y (z) Tm z + 1 Y (s) 1
= $ =
U(z) 2 z 1 U(s) s
Haciendo la equivalencia
Tm z + 1 1
!
2 z 1 s
2 z 1
s !
Tm z + 1
Aproximación trapezoidal
Y (z) Tm z + 1 Y (s) 1
= $ =
U(z) 2 z 1 U(s) s
Haciendo la equivalencia
Tm z + 1 1
!
2 z 1 s
2 z 1
s !
Tm z + 1
Ejemplo 1
3
G(s) =
s2+ 3s + 3
Encuentre discretizaciones para estos sistemas, compare sus
respuestas en el tiempò y sus diagramas de Bode
Ejemplo 2
400
(s2 + 0:4s + 4)(s2 + s + 100)
Encuentre discretizaciones para estos sistemas y compare
sus gra cos de Bode. Cual es el problema de la transformación
bilineal, cual el de la invarianza al paso.
Elección de la frecuencia ó tiempo de muestreo para
traducción de compensadores
Para el sistema
10
G(s) =
s2+s
Se obtuvo la red de adelanto, que estabilizaba el sistema y
colocaba polos de lazo cerrado en 20 5j; 50
233:6(s + 9:097)
(s + 89)
Encuentre un controlador discreto equivalente que conserve un
desempeño aceptable, comparado con la contraparte análoga.
Ejemplo 2: discretizar el controlador análogo
Para el sistema
4
G(s) =
s(s 4)
Se implementó un sistema optimo ITAE para lograr que la
señal de control este por debajo de 20.
La función ITAE obtenida es:
14526:7
Tm (s) =
s3 + 43:5s2 + 1:292:5s + 14526:7
Ejemplo 2: discretizar el controlador análogo
h i
C2P = 1453s+1:453e005 550:1s2 1:438e004s 1:453e005
s2 +142:5s s2 +142:5s
Sea la planta
10
G(s) =
s(s + 10)
Diseñemos un controlador tal que ubique los polos de lazo
cerrado en
El controlador obtenido es
1:027z + 1:453
C(z) =
z 0:8037
Con tiempo de muestreo de 40ms
Hacemos una realización en variables de estado del sistema,
para poder implementarlo.
Implementacion de controladores
MATLAB CODE
gs=tf(10,[1 10 0])
poloslc=[-4.5+j -4.5-j -45]
C=diseru(gs,poloslc)
T=feedback(gs*C,1)
bode(T)
wb=3
Tm=2*pi/(50*wb)
cd=c2d(C,Tm,'tustin')
cdve=ss(cd)
A=cdve.a
B=cdve.B
C=cdve.c
Implementacion de controladores
Pasos
Debemos diseñar un ltro antialias en ! B ; es decir
centrado en los 3 radianes
La ecuacion del controlador es:
10
G(s) =
s(s + 10)
Pero este de orden 2, para ubicar polos en
1:66 0:3335 8
x(k + 1) = x(k ) + e(k )
2 0 0
u(k ) = 6:028 3:018 x(k ) + e(k )
Ejemplo 2 en pseudocódigo
%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
ek=rk-yks
%algoritmo de control
xk=0.8037*xk+ek
uk=0.628*xk-1.027*ek
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end
Ejemplo 3: control de dos parámetros
10
G(s) =
s(s + 10)
Diseñemos un contorlador de segundo orden que implemente
una función de transferencia ITAE de segundo orden
25
T (s) =
s2 + 7:52s + 25
Ejemplo 3: control de dos parámetros
r (k )
x(k ) = 0:8447x(k + 1) + 0:0237 1:0895
y (k )
r (k )
u(k ) = x(k ) + 2:512 4:349
y (k )
%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
%algoritmo de control
xk=0.8447*xk+0.0237*rk-1.0895*yks
uk=xk+2.512*rk+4.349*yks
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end
Ejemplo 4: control de dos parámetros
10
G(s) =
s(s + 10)
Diseñemos un controlador de segundo orden que implemente
una función de transferencia ITAE de tercer orden
1000
T (s) =
s3 + 17:83s2 + 217:1s + 1000
Ejemplo 4: control de dos parámetros
%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
%algoritmo de control
xk1=-0.3052*x2k-0.03439*rk-2.791*yks
xk2=2*x1k-1.61*x2k+0.1093*rk+5.542*yks
uk=4*x2k+0.22*rk-78.36*yks
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end