Вы находитесь на странице: 1из 20

Diseo de controladores PID.

Primera parte:
Se desea controlar la variable de salida de la plata usando realimentacin
en lazo cerrado, tal como se aprecia en la figura, sin el controlador PID:

2n
S 2+2 n . S+ 2n

Para esto se pide:


1) Analice con Simulink la variable de salida del sistema realimentado
como respuesta al escaln unitario r(t) y sin controlador. Muestre el
valor de y n.
2) Determine matemticamente la variable de salida en funcin del
tiempo. Se puede ayudar con el uso de comandos de Matlab para
acelerar algunos clculos.
3) Grafique en Matlab dicha respuesta, debe ser igual a lo obtenido por
Simulink.
4) Determine, si es que la respuesta es de tipo sub-amortiguado, el
mximo sobre-impulso (Mp) y el tiempo de asentamiento (ts).

Solucin:
I)

Planta sin realimentacin.


La planta est representada por el circuito Sallen-Key de segundo
orden.

Para encontrar la funcin de transferencia de la planta, es


necesario utilizar el mtodo de nodos en el circuito, antes de esto,
es conveniente llevar el circuito al dominio de s.

El circuito queda de la siguiente manera:

Nodo 1:

ViVx VxVo VxVo


=
+
R
1
R
C1. S
Vi+ ( 1+C 1 RS ) Vo=( 2+C 1 RS ) Vx (1)

Nodo 2:

VxVo
=VoC 2 RS
R
Vx=( 1+C2 RS ) Vo (2)

Reemplazando (2) en (1):

Vi+ ( 1+C 1 RS ) Vo=( 2+C 1 RS ) ( 1+C 2 RS ) Vo


Vo
1
=
2
2
Vi ( C1 C2 R ) S + ( 2C 2 R ) S+1
Por lo tanto:

1
C 1 C 2 R2
FT=G p ( s )=
2
1
S2 +
S+
2
C1 R
C 1 C2 R

( )

Adems:
R=100k
C1=1F
C2=0.1F
Reemplazando:

FT=G p ( s )=

2n
1000
=
S2 +20 S +1000 S 2+ 2 n . S+ 2n

I.1) Anlisis con simulink y valores de y n


Respuesta con simulink:

Comparando:

2n
1000
=
S 2+20 S+1000 S2 +2 n . S+ 2n
Y teniendo en cuenta las siguientes ecuaciones:

2n=20

d=n 1 2
=

1
10 10
10

Se obtiene:

n=10 10
=1/ 10
d=30
=10
I.2) Expresin matemtica de la variable de salida:

Considerando una fuente tipo escaln unitario, de la funcin de


transferencia se obtiene:

1
.( )
( S +201000
)
S +1000 S

C(s)=

Para encontrar la transformada inversa de Laplace es necesario


separar la expresin anterior en fracciones parciales, las cuales
quedan de la siguiente forma:

1000
1
A . S+ B
C
.
= 2
+
S + 20 S+1000 S S + 20 S+1000 S

)( )

Igualando numeradores:

( A +C ) S2 + ( B+20 C ) S+1000 C=1000

De donde se obtiene:
C=1
A=-1
B=-20
De modo que:

1
S +20
C( s)= 2
S S + 20 S+1000

S +20
S+20
=
S + 20 S+1000 (S+10)2 +(30)2
2

Acomodando adecuadamente:

1
S+10
30
1
C( s)=

.
2
2
2
2
S ( S +10 ) + ( 30 )
3
( S+10 ) + ( 30 )

)( )

Aplicando la transformada inversa de Laplace se obtiene la


respuesta en el dominio del tiempo:

L1 { C (s ) }=c (t )

Respuesta:

c (t )=1e10t cos (30 t )

e10t
sen (30 t )
3

I.3) Grfico con Matlab:


Para esto se escribir el siguiente cdigo:
clc, clear
x = 0:0.001:1
y = 1-exp(-10*x).*cos(30*x)-0.333333333333*exp(-10*x).*sin(30*x)
plot(x,y)
grid on

Y el grfico ser el siguiente:

Puede observarse que el grfico generado por Matlab coincide con


el obtenido por simulink.

I.4) Tipo de respuesta y parmetros del grfico:


Para saber el tipo de respuesta, es necesario conocer el valor de .

1
<1 ; Por lo tanto la respuesta ser de tipo sub 10

amortiguada.
Parmetros del grfico:
El siguiente cdigo de Matlab nos permite obtener dichos
parmetros:
close all;
clc;
num = [1000];
den =[1 20 1000];
t = 0:0.001:1; %ti:dt:tf
[y,t] =step(num,den,t);
r = 1; while y(r) < 1.0001; r = r + 1; end;
%tiempo_subida
tiempo_subida =(r - 1)*0.001 %observe que dt=0.001
[ymax,tp] = max(y);
%tiempo_pico
tiempo_pico =(tp - 1)*0.001
%sobreimpulso_max
sobreimpulso_max = ymax-1
s = 1001; while y(s) > 0.98 & y(s) < 1.02; s = s - 1; end;
% el valor de 1001 se obtiene de (tf - ti)/dt + 1
%tiempo_asentamiento
tiempo_asentamiento =(s - 1)*0.001

II)

Resultados:
tiempo_subida = 0.0640 seg
tiempo_pico = 0.1050 seg
sobreimpulso_max = 0.3509
tiempo_asentamiento = 0.3530 seg

Planta con realimentacin:


El diagrama de la planta con realimentacin es el siguiente:

Funcin de transferencia:

FT=

G p (s )
C
=
R 1+G p (s)

1000
S +20 S +1000
FT=
1000
1+ 2
S + 20 S+1000
2

C
1000
= 2
R S + 20 S+2000

II.1) Anlisis con simulink:

La respuesta al escaln unitario es la siguiente:

II.2) Expresin matemtica de la variable de salida:

Considerando una fuente tipo escaln unitario, de la funcin de


transferencia se obtiene:

1
.( )
( S +201000
)
S +2000 S

C( s)=

Para encontrar la transformada inversa de Laplace es necesario


separar la expresin anterior en fracciones parciales, las cuales
quedan de la siguiente forma:

1000
1
A . S+ B
C
.
= 2
+
S + 20 S+ 2000 S S + 20 S+ 2000 S

)( )

Igualando numeradores:

( A +C ) S2 + ( B+20 C ) S+2000 C=1000

De donde se obtiene:
C=1/2
A=-1/2
B=-10
De modo que:

1
S+10
1
2
C( s)= 2
2S
S +20 S+2000

1
1
S+10
S+10
2
2
=
2
2
S + 20 S+1000 (S+10)2 +(10 19)

Acomodando adecuadamente:

C ( s )=

1 1
S +10
1

2
2
2 S 2 ( S+10 ) + ( 10 19 )
2 19

)[ ( S +1010) +(1910 19) ]


2

Aplicando la transformada inversa de Laplace se obtiene la


respuesta en el dominio del tiempo:

L1 { C (s ) }=c (t )

Respuesta:
10t

1 1
c ( t )= e
2 2

cos ( 10 19 t )

10t

e
sen ( 10 19 t )
2 19

II.3) Grfico con Matlab:


Para esto se escribir el siguiente cdigo:
clc, clear
x = 0:0.001:1
y = (1/2)-(1/2)*exp(-10*x).*cos(43.5889894354*x)-0.114707866935*exp(10*x).*sin(43.5889894354*x)
plot(x,y)
grid on

Y el grfico ser el siguiente:

Puede observarse que el grfico generado por Matlab coincide con


el obtenido por simulink.
II.4) Tipo de respuesta y parmetros del grfico:
Para saber el tipo de respuesta, es necesario conocer el valor del
discriminante .

=b2 4 ac
2

=20 4 ( 1 ) ( 2000 )=7600<0


Por lo tanto la respuesta ser sub-amortiguada.

Parmetros del grfico:


El siguiente cdigo de Matlab nos permite obtener dichos
parmetros:
close all;
clc;
num = [1000];
den =[1 20 2000];
t = 0:0.001:1; %ti:dt:tf
[y,t] =step(num,den,t);
r = 1; while y(r) < 0.501; r = r + 1; end;
%tiempo_subida
tiempo_subida =(r - 1)*0.001
[ymax,tp] = max(y);
%tiempo_pico
tiempo_pico =(tp - 1)*0.001
%sobreimpulso_max
sobreimpulso_max = ymax-0.5
s = 1001; while y(s) > 0.49 & y(s) < 0.51; s = s - 1; end;
% el valor de 1001 se obtiene de (tf - ti)/dt + 1
%tiempo_asentamiento
tiempo_asentamiento =(s - 1)*0.001

Resultados:
La variable de salida se estabiliza en 0.5 y no en uno, por lo tanto los
siguientes valores son calculados en base a 0.5

tiempo_subida = 0.0420 seg


tiempo_pico = 0.0720 seg
sobreimpulso_max = 0.2432
tiempo_asentamiento = 0.3780 seg

Segunda parte
Incorporacin de un controlador PID
La introduccin del bloque PID tiene como finalidad controlar las
caractersticas de la respuesta de la planta.
Con la adicin del bloque controlador, el diagrama queda de la siguiente
manera:

Gc(s)

2n
S 2+2 n . S+ 2n

El modelo del controlador PID es el siguiente:

Se propone el modelo siguiente:

Parmetros:
P=3

1
=35
Ti

Td=0.1

Funcin de transferencia:

G c ( s )=

G ( s )=

FT=

0.1 S 2 +3 S +35
S

1000
S +20 S+1000
2

G( s)Gc (s)
1+G ( s ) Gc( s)
Por lo tanto, la funcin de transferencia del sistema es:

FT=

100 S2 +3 000 S+35 000


S3 +1 20 S 2+ 4000 S+ 35 000

Respuesta utilizando la funcin de transferencia encontrada:

No coincide con la respuesta cuando se utiliza el bloque PID, pero


llegan al mismo
valor final, aunque un poco ms tarde que con el bloque
PID.
Respuesta del circuito con controlador PID y los parmetros
propuestos.

Como se observa, el sobre-impulso no supera el 10% y la respuesta


se estabiliza antes
de los 5
segundos.
1.a) Lista de posibilidades de los parmetros K y a:
Escogemos el rango de valores para K y a:

2 K 5

0.1 a 3
La lista de valores para K y a tiene como condicin: Sobre-impulso
menor a 10% y
tiempo
de asentamiento menor a 5 segundos, por lo tanto la codificacin de Matlab
es
la siguiente:
clc
clear all
%'K' y 'a' valores a comprobar
K = [2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0];
a = [0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 2.9 3.1];
% Evaluar la respuesta en lazo cerrado a un escaln unitario en cada
combinacin
% de 'K' y 'a' que dar el mximo sobreimpulso menor que el 10%
t = 0:0.01:5;
g = tf([1.2],[0.36 1.86 2.5 1]);
k=0;
for i = 1:16;
for j = 1:16;
gc = tf(K(i)*[1 2*a(j) a(j)^2],[1 0]); % controlador
G = gc*g/(1+gc*g); % funcin de transferencia en lazo cerrado
y = step(G,t);
s = length(t);while y(s)>0.98 & y(s)<1.02; s = s - 1;end;
ts = (s-1)*0.01; % ts = settling time;
m = max(y);
if m<1.10 && ts<5.00;
k=k+1;
solution(k,:) = [K(i) a(j) m];
end
end
end
solution % Imprime tabla solucin

Y los resultados se muestran a continuacin:


K
2.0000
2.0000
2.2000
2.2000
2.4000
2.4000
2.6000
2.8000

a
0.7000
0.9000
0.7000
0.9000
0.7000
0.9000
0.7000
0.7000

Mp
0.9807
1.0614
0.9837
1.0772
0.9859
1.0923
0.9877
1.0024

3.0000
3.2000
3.4000
3.6000
3.8000
4.0000
4.2000
1.b) Elegir valores para K y a,

0.7000
0.7000
0.7000
0.7000
0.7000
0.7000
0.7000
adems

1.0177
1.0324
1.0464
1.0597
1.0724
1.0846
1.0962
hallar Kp, Ti y Td:

Seleccionamos:
K=4.2
a=0.7
2

4.2(s+0.7)
Gc ( s )=
s

Gc ( s )=

Gc ( s )=5.88 1+
Forma cannica:

Gc ( s )=Kp 1+

1
+ Tds (2)
Tis

Comparando (1) y (2):

Kp=5.88
Ti=2.867
Td=0.71428

1.c) Graficar:

FT=

G( s)Gc (s)
1+G ( s ) Gc( s)

2
4.2 S + 5.88 S+ 2.058
(
)
Gc s =
S

G ( s )=

FT=

1000
S +20 S+1000
2

4200 S 2 +5880 S+ 2058


S3 +4220 S2 +6880 S+2058

El cdigo es el siguiente:
clc

4.2(S2 +1.4 S+ 0.49)


S
1
+ 0.71428s (1)
2.857s

close all
%Respuesta a escalon unitario
num=[4200 5880 2058];
den=[1 4220 6880 2058];
step(num,den);
grid
title('Respuesta al escaln unitario')
xlabel('Tiempo')
ylabel('Amplitud')

El grfico obtenido con los parmetros del Matlab es el siguiente:

2) Usando el bloque PID:

Al hacer doble click en el bloque del controlador, se abrir la siguiente


ventana:

Hacer click en el botn Tune, y el programa encontrar automticamente


los parmetros.
Los resultados fueron:

P=8.5622
I=83.2532
D=0.20991
N=451.1209

Por lo tanto:

Gc ( s )=Kp+

Kp
83.2532
+ Kp .Td . s=8.5622+
+0.20991 s
Ti. s
s

Valores obtenidos sintonizando el bloque PID del simulink:

Kp=8.5622
Ti=0.10284
Td=0.0245158

Valores obtenidos con el Matlab:

Kp=5.88
Ti=2.867
Td=0.71428

Grfico:

3) Diseo del circuito:


Circuito PID:

Se hallar la funcin de transferencia:


Se sabe que:

Vd=

R 2 C 1 S
E
1+ R1 C1 S

V i=

E
R3 C 2 S

V p=

R5 E
R4

Luego:

R2 C1 S
R
1
+
+ 5 =U
1+ R 1 C 1 S R3 C 2 S R 4

Por lo tanto:

Gc ( s )=

R2 C 1 S
R5
1
+
+
1+ R1 C1 S R3 C2 S R 4

Comparando:

R2 C 1 S
R
1
83.2532
+
+ 5 =8.5622+
+0.20991 s (1)
1+ R 1 C 1 S R 3 C 2 S R 4
s

Adems, asumimos:

R1 C 1=d=0.02602
Donde:

d : constante de tiempo

Asumimos los siguientes valores:

C1 =1 F

C2 =10 F
R4 =10 K
Con estos componentes se pueden calcular las otras incgnitas de la
ecuacin (1), por lo tanto:

R1=26.02 K

R2=209.910 K
R3=1.20115 K
R5=85.622 K