Está en la página 1de 15

1

TRABAJO FINAL CONTROL DIGITAL


Universidad Pontificia Bolivariana B/manga
Estudiante
Ing. Christian Javier Vera Jaimes.
Docente: Ing. Luis ngel Silva PhD.

Especializacin Control e Instrumentacin


ID 000232878
Asignatura: Control Digital

Un sistema tiene la siguiente funcin de transferencia:


G p ( s )=

K
s +2 s+2
2

K= Suma Nmeros ID = 2+3+2+8+7+8 = 30

G p ( s )=

30
s +2 s+2
2

El sistema se realimenta unitariamente como se muestra en la figura:

+
R(s)

Gc(

Gp(

Y(s)

Disear un controlador Gc(s) de manera que el sistema realimentado unitariamente cumpla


con las siguientes especificaciones.
OS 5

Ts

3
Ts de Lazo Abierto.
4
e p=0

Discretizar

Gc (s)

empleando el mtodo de diferencia atrs y disear un algoritmo que

permita implementarlo digitalmente usando la herramienta STATEFLOW. Tener en cuenta


el efecto Windup.

Realizar una comparacin entre los dos controladores diseados (Continuo y Discreto).
WindUp

Umax = 1
Umin = -1

CODIGO MATLAB
Gp_S = tf(30,[1 2 2])
figure(1),step(Gp_S),grid on

% Funcin de transferencia GpS

System: Gp_S
Peak amplitude: 15.6
Overshoot (%): 4.32
At time (seconds): 3.15

16

Step Response

System: Gp_S
Settling time (seconds): 4.22

System: Gp_S
Final value: 15

14
System: Gp_S
Rise time (seconds): 1.52
12

Amplitude

10

4
Time (seconds)

Figura 1. Respuesta al escaln del sistema en lazo abierto.

Os ( ) =4.32 Ts=4.22 s Tr=1.52 s Y ( )=15 Ep=14


En la grfica de la respuesta al escaln del sistema en lazo abierto, se puede determinar los
parmetros que debe cumplir el controlador como el tiempo de establecimiento.
Ts

3
Tsol
4

Ts 3.165 s
CODIGO MATLAB
tsol = 4.22;
ts = 3*tsol/4;
Os = 5;

%
%
%
%

Parmetros de diseo
Tiempo de establecimiento en lazo abierto.
Tiempo de establecimiento en lazo cerrado.
Porcentaje de sobrepaso.

DISEO DEL CONTROLADOR


Para el diseo del controlador que cumpla con las especificaciones se utiliza SISOTOOL para
realizar el anlisis de la respuesta.
sisotool(Gp_S)

Una vez se ingresa en SISOTOOL la funcin de transferencia de la planta, la respuesta que se


grafica es la funcin de transferencia en lazo cerrado unitariamente. Inicialmente la funcin de
transferencia del controlador Gc(s) es igual a 1.

Figura 2. Respuesta al escaln del sistema en lazo cerrado con Gc(s)=1.

Os ( ) =56.7Ts=3.56 s Tr =1.52 s Y ( )=0.938 Ep=6.2

Para el controlador PID a implementar se primero se implementa con un compensador PI


para eliminar el error de estado estacionario, para ello se coloca un integrador y se
colocando un cero a la izquierda del polo. Para el compensador se necesita un cero y un polo
a la izquierda del mismo, la ubicacin se obtiene al tanteo, donde se cumplan con las
especificaciones de diseo.

A travs de la herramienta SISOTOOL se pueden mover los polos y ceros del sistema en el
plano de manera que la respuesta mejore su comportamiento

Os ( ) =5.02Ts=3.35 s Tr=0.447 s Y ( )=1 Ep=0

El controlador PID elimina por el error de estado estable, adems se disminuye el tiempo de
establecimiento y porcentaje de sobrepaso acorde a lo requerido, adicionalmente el sistema
responde ms rpido.

Para poder trabajar la funcin de transferencia del controlador diseado se Exporta este a MatLab.

>> C
0.71528 (s+1.402) (s+1.142)
--------------------------s (s+7.107)

C=

>> C =tf(C)

% Para visualizar el controlador en trminos de potencias


0.7153 s^2 + 1.82 s + 1.146
--------------------------s^2 + 7.107 s

CODIGO MATLAB
num=[0.7153 1.82 1.146];
den=[1 7.107 0];
Gc_S=tf(num,den)
figure(2),step(feedback(Gc_S*Gp_S,1)),grid on

Step Response

1.4
System: untitled1
Peak amplitude: 1.05
Overshoot (%): 5.03
At time (seconds): 0.891

1.2

System: untitled1
Final value: 1

Amplitude

1
System: untitled1
Settling time (seconds): 3.35

0.8

0.6

0.4

0.2

10

12

Time (seconds)

Figura 2_1. Respuesta al escaln del sistema en lazo cerrado con Gc(s) diseado.

>> a = pid(Gc_S)
1
s
K p+ Ki + Kd
s
T f s+1

Kp=0.233 Ki=0.161 Kd=0.0678 Tf =0. 141

N=

1
1
=
=7.0922
T f 0.141

>> b = pidstd(Gc_S)
K p (1+

1
s
+T d
)
Ti s
Td
s+ 1
N

Kp=0.233 T i=1.45 T d=0.291

DISCRETIZADO
Primero se discretiza el sistema utilizando un retenedor de orden cero (Zoh), y posteriormente se
discretiza el controlador mediante el mtodo de diferencia atrs.
Se establece el tiempo de muestreo teniendo en cuenta
T=

=0.0422 s
20

La planta se discretiza en a travs del siguiente cdigo:


CODIGO MATLAB
% Discretizacin del Sistema.
tao = tsol/5;
% Constante de tiempo del sistema en lazo abierto.
T = tao/20;
% Periodo de muestreo.
Gp_Z = c2d(Gp_S,T,'zoh')
% Discretizacin de la Planta (Z).
figure(3),step(Gp_Z),grid on

Con el que se obtiene


0.02597 z + 0.02525
Gp_Z = ---------------------z^2 - 1.916 z + 0.9191

10

Step Response

16
14
12

Amplitude

10
8
6
4
2
0

Time (seconds)

Figura 3. Respuesta Discretizada al escaln del sistema en lazo abierto.

Obtenidos los parmetros del controlador se discretiza el PID analgico utilizando el mtodo de
diferencia haca atrs.

Gc ( s )=

1.75(s +1)(s +1.8)


z 1
s=
zT
s(s+11)

Gc ( z )=

G c ( z )=

z1 2
+1.82
zT
z 1 2
+ 7.107
zT

( )
( )

0.7153

+1.146
( z1
zT )
( z1
zT )

z 2 ( 1.146 T 2+1.82 T + 0.7153 )z ( 1.82T +1.4306 ) +0.7153


z 2 (7.107 T +1 )z ( 7.107T +2 ) +1

11

Gc ( z )=

0.7153 z2 (1.82 T +1.4306) z1 + ( 1.146 T 2+ 1.82T +0.7153 )


2
1
z ( 7.107T +2 ) z + ( 7.107 T +1 )

CODIGO MATLAB
% Discretizacin del controlador utilizando diferencia atrs.
num = [1.146*T^2+1.82*T+0.7153, -(1.82*T+1.4306), 0.7153];
den = [7.107*T+1, -(7.107*T+2), 1];
Gc_Z = tf(num,den,T)
figure(4),step(feedback(Gc_Z*Gp_Z,1)),grid on

Gc_Z =
0.7941 z^2 - 1.507 z + 0.7153
------------------------------------1.3 z^2 - 2.3 z + 1

Step Response

1.4

System: untitled1
Peak amplitude: 1.1
Overshoot (%): 9.7
At time (seconds): 0.844

1.2

System: untitled1
Settling time (seconds): 3.35

Amplitude

System: untitled1
Final value: 1

0.8

0.6

0.4

0.2

Time (seconds)

Figura 4. Respuesta Discretizada al escaln del sistema en lazo cerrado con Gc(s) diseado

Al discretizar se encuentra algunas diferecias respecto a la respuesta ya vista; entre ellos se aumenta
al doble el valor del porcentaje de sobrepaso y se aumenta un poco el tiempo de establecimiento.

12

ECUACIN EN DIFERENCIAS
De la funcin de transferencia discretizada del controlador se tiene que,

0.7941 z^2 - 1.507 z + 0.7153


Gc(z) = -------------------------------------1.3 z^2 - 2.3 z + 1

( 1.3 z2 2.3 z +1 ) u(z )=( 0.7941 z 21.507 z+ 0.7153 ) e( z )

Se dividide por

z2

y se pasa a terminos de k

1.3 u ( k )2.3 u ( k 1 )+ u ( k2 ) =0.7941 e ( k ) 1.507 e ( k 1 )+ 0.7153 e( k2)

Despejando u(k ) se obtiene:


u ( k )=1.7 69 u ( k 1 )0.7 69 u ( k 2 ) +0.6108 ( k )1.1592e ( k1 ) +0.55 e (k 2)

ANTI WINDUP
Con la secuencia obtenida para

u(k )

se implementa un algoritmo que genere la seal de control

aplicando el Anti WindUp.


% Parmetros Iniciales
a1 = 1.769;

13

a2
b1
b2
b3

=
=
=
=

uk_1
uk_2
ek_1
ek_2
Ik =

0.769;
0.6108;
-1.1592;
0.55;
% Condiciones Iniciales.
= 0;
= 0;
= 0;
= 0;
0;
% Constantes.

Kp = 0.233;
Ti = 1.45;
Td = 0.291;
T = 0.0422;
% Coeficientes.
qi = Kp*T/Ti;
qd = Kp*Td/T;
while(true)
Leer_PV;
Leer_SP;

% Procesamiento.
SP - PV;
Ik + qi*ek;
qd*(ek-ek_1);
Kp*ek + Ik + Dk;
% Anti WindUp.
if( (uk<umin && ek<0) || (uk>umax && ek>0)), Ik = Ik - qi*ek;
end
% Saturacin.
if(uk < umin), uk = umin;
end
if(uk > umax), uk = umax;
end
% Salida.
Salida_U = uk;
% Actualizacin.
uk_2 = uk_1;
uk_1 = uk;
ek_2 = uk_1;
ek_1 = ek;
ek
Ik
Dk
uk

end

% Lectura de datos.

=
=
=
=

COMPARACIN DE MODELOS

14

Para realizar una comparacin de los modelos continuo y discreto se implementa una simulacin en
SIMULINK (sistema en tiempo continuo), junto con STATEFLOW (Algoritmo sistema en tiempo
discreto).

Figura 5. Sistema en SIMULINK con STATEFLOW.

15