Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseno de Un Controlador PID de Un Circu
Diseno de Un Controlador PID de Un Circu
POR:
EDWIN GONZALEZ QUERUBIN
MORGAN GARAVITO VASQUEZ
INGENIERIA MECATRONICA
2007
DISEÑO DE UN CONTROLADOR PID ANALOGO PARA UN
CIRCUITO RC DE SEGUNDO ORDEN
MEDIANTE LA SISOTOOL DE MATLAB
POR:
EDWIN GONZÁLEZ QUERUBÍN
MORGAN GARAVITO VÁSQUEZ
Figura 1
Vi − Va Va − 0 Va − Vo Vi 1 1 1 Vo
1) = + 1.1) = Va( + + )−
Ra Ca Rb Ra Ra Ca Rb Rb
Va − Vo Vo − 0 Va 1 1
2) = = Vo( + )
Rb Cb Rb Rb Cb
Rb
2.2) Va = Vo(1 + )
Cb
Vi Rb 1 1 1 Vo
1.1) y 2.2) = Vo(1 + )( + + )−
Ra Cb Ra Ca Rb Rb
Vo 1 1
= =
Vi Ra Rb RaRb Ra RaRb 1 Ra
1+ + + + + ( Ra + Rb) + +1
Ca Cb CaCb Cb CaCb Cb Ca
Vo 1
(s) =
Vi RaRbCaCbS ^ 2 + ( Ra + Rb)CbS + RaCaS + 1
Vo 1
(s) =
Vi RaRbCaCbS ^ 2 + [( Ra + Rb)Cb + RaCa ]S + 1
1
3) G(s) =
RaRbCaCbS ^ 2 + ( RaCa + RaCb + RbCb) S + 1
Figura 2
Figura 3
Figura 4
Vi − 0 0 − Vo2 Vi − Vo2 Vi ( s) − Vi ( s)
= = = −CcVo2( s) S 5) Vo 2( s) =
Rf Cc Rf Cc Rf RfCcS
Figura 5
− RhCdVi( s ) S
6) Vo3( s ) =
1 + RgCdS
Reemplazando la ecuación 4, 5 y 6 en la 7:
− RdVi( s ) Vi ( s ) RhCdVi ( s ) S
− − = −Vo( s )
Rc RfCcS 1 + RgCdS
Vo Rd 1 RhCdS
(s) = + +
Vi Rc RfCcS 1 + RgCdS
Rd Rh Rd 1 1
( + )S ^2 + ( + )S +
Vo Rc Rg RcRgCd RfCc RfRgCcCd
( s) =
Vi 1
S (S + )
RgCd
Nota: Todos los códigos de Matlab que se utilizarán durante este trabajo, se ejecutarán de
forma sucesiva. Por lo que el código en el que se sitúe necesitará de los anteriores.
%============================================================
% Funcion de transferencia de la Planta
%============================================================
% Vo 1
% -- = ----------------------------------------------------
% Vi [(Ra*Rb*Ca*Cb)]*S^2 + [(Ra*Ca)+(Ra*Cb)+(Rb*Cb)]*S +1
%============================================================
%Valores asignados a los componentes de la planta.
Ra=1000;
Rb=10000;
Ca=0.2e-6;
Cb=0.1e-9;
%Numerador de la planta.
n1=1;
%Denominador de la planta.
d1=[Ra*Rb*Ca*Cb, Ra*Ca+Ra*Cb+Rb*Cb, 1];
%Funcion de transferencia de la planta.
Planta=tf(n1,d1)
Ra=1k Ω
Rb=10k Ω
Ca=0.2 μ f
Cb=0.1nf
Transfer function:
1
--------------------------------------
2e-010 s^2 + 0.0002011 s + 1
Figura 7
• En la figura 8 se observa el lugar de las raíces.
Figura 9
Figura 10
Figura 11
Edwin González Querubín kaliman83@hotmail.com 16
Morgan Garavito Vásquez mor6an1@hotmail.com
Para asignar el overshoot, repetimos los dos pasos anteriores, pero esta vez
seleccionamos en el menú desplegable la opción Percent overshoot.
Figura 12
Overshoot
Figura 13
Edwin González Querubín kaliman83@hotmail.com 17
Morgan Garavito Vásquez mor6an1@hotmail.com
• En la barra de menú damos click en Compensators - Format, Options y
elegimos la opción Zero/Pole/Gain luego clic en Apply, Ok, esto con el
fin de visualizar el controlador en formato de ganancia, polos y ceros.
Debido a que el compensador PID consta de dos polos y dos ceros, donde uno
de sus polos esta ubicado en el origen, realizamos los siguiente pasos.
Figura 14
Figura 15
Figura 16
Línea de
acción de los
polos
dominantes
Ceros del
controlador
Punto de corte
entre overshoot y
Polos dominantes ts
Figura 17
Figura 18
Como podemos observar en la ecuación del controlador, fue necesario ubicar los
dos ceros arbitrarios en: -2.38e005 y -1.08e005 y el polo en: -3.59e005, por lo
cual, al ubicar los polos dominantes en el punto de corte del overshoot y ts, se
obtuvo una ganancia de controlador de 20.9.
Figura 21
• Para obtener los valores de los elementos del circuito PID mediante Matlab,
debemos exportar el compensador obtenido anteriormente al workspace de
Matlab de la siguiente manera.
Figura 22
Zero/pole/gain:
Transfer function:
Rd Rh Rd 1 1
( + )S^2 + ( + )S +
Rc Rg RcRgCd RfCc RfRgCcCd
C(s) = =
1
S(S + )
RgCd
A1S ^ 2 + B1S + C1
C ( s) =
S ( S + D1)
Para hallar los valores de los elementos del circuito PID, aplicamos el método de
igualación de términos de ambos controladores.
Rd Rh Rd 1 1
9) A1 = + 10) B1 = + 11) C1 =
Rc Rg RcRgCd RfCc RfRgCcCd
1
12) D1 =
RgCd
1
13) Rg =
D1Cd
1 D1Cd D1
Rf = Rf = 14) Rf =
RgCcCdC1 CcCdC1 CcC1
C1 Rc
15) Rd = ( B1 − )
D1 D1
C1 Rc
( B1 − )
Rd D1 D1 ) 1
Rh = ( A1 − ) Rg Rh = ( A1 −
Rc Rc D1Cd
B1 C1 1
Rh = ( A1 − ( − ))
D1 D1^ 2 D1Cd
C1 B1 1
16) Rh = ( A1 + − )
D1^ 2 D1 D1Cd
%============================================================
%Extracción de los parámetros del controlador C(s) obtenido
%mediante la sisotool
%============================================================
% A1*S^2+B1*S+C1
% C(s)= --------------
% S*(S+D1)
%Obtenemos el numerador y el denominador del compensador
[n2,d2]=tfdata(C,'v');
%Extraemos los parámetros de este
A1=n2(1,1)
B1=n2(1,2)
C1=n2(1,3)
D1=d2(1,2)
C1 C1 B1
En las partes ( B1 − ) y ( A1 + − ) observamos que el controlador hallado
D1 D1^ 2 D1
en la sisotool, debe cumplir con dos condiciones para que las resistencias Rd y Rh
nos den valores reales o que se puedan conseguir en el mercado; ya que hasta el
momento no se consiguen resistencias negativas.
C1
Condición 1 para que Rd sea positiva: B1 >
D1
C1 B1
Condición 2 para que Rh sea positiva: A1 + >
D1^ 2 D1
%============================================================
%Condiciones que se deben cumplir en el compensador para que
%los valores de las resistencias Rd y Rh sean reales
%============================================================
fprintf('Las condiciones deben ser positivas\n')
Condicion_1= B1-C1/D1
Condicion_2= A1+C1/(D1^2)-B1/D1
Condicion_1 =
5.7262e+006
Condicion_2 =
4.9399
Ambos resultados fueron positivos, por lo tanto vamos por buen camino.
A2*S^2+B2*S+C2
C(s) = -------------------------
S*(S+D2)
%============================================================
%Función del Compensador PID con operacionales
%============================================================
% (Rd/Rc+Rh/Rg)S^2 + (Rd/(RcRgCd)+1/(RfCc))S + 1/(RfRgCcCd)
% C(s) = ---------------------------------------------------------
% S*(S+1/(RgCd))
%
%Expresamos de esta forma la función del PID con
%operacionales
% A2*S^2+B2*S+C2
% C(s) = -----------------
% S*(S+D2)
%Asignamos un valor, solo a un componente de cada parte del
%circuito
osea:
Rd = 3.5052k Ω
Rf = 6.7045k Ω
Rg = 27.824k Ω
Rh = 137.45k Ω
Transfer function:
Transfer function:
Comparando ambos compensadores, nos damos cuenta que son iguales, lo que
indica que no hubo error alguno en los despejes y operaciones algebraicas.
Figura 23
%============================================================
%Generamos una onda cuadrada, que va a ser la señal de
%entrada, con un periodo de 1/600, duración de 5e-3 seg y con
%muestras cada (1e-3)/100 segundos.
[u,t] = gensig('square',1/600,5e-3,(1e-3)/100);
%Señal de error
s_error=1-src;
Una forma de simular el sistema es por medio de Simulink, que nos expresa este
mediante diagramas de bloques.
Figura 28
Figura 29
La entrada en el bloque input, debemos cargarla dando doble click sobre este
mismo, seleccionando el tipo de onda y la frecuencia, en este caso, cuadrada y
con una frecuencia de 600Hz, respectivamente. Ver figura 30.
Figura 30
Figure 31
Los bloques untittledF y untittledH, fueron omitidos y además el bloque Output fue
modificado para visualizar 4 señales diferentes.
Esto se logra al dar doble click sobre el bloque llamado Output. Una vez hecho
esto procedemos a agregar la cantidad de señales que queremos visualizar, en
este caso son 4.
Figure 32
Figura 33
Figura 34
Planta
Ra=1k Ω
Rb=10k Ω
Ca=0.2 μ f
Cb=0.1nf
Rc=220 Ω
Rd=3.5052k Ω
Rf=6.7045k Ω
Cc=0.1nf
Rg=27.824k Ω
Rh=137.45k Ω
Cd=0.1nf
Resto de componentes
R=1M Ω
Amplificadores operacionales= LM741CN
Figura 36 (SENAL)
Figura 37 (SALIDA)
Figura 39 (ERROR*(-1))
CONCLUSIONES
Datasheet
LM741CN
ELEMENTOS UTILIZADOS
Generador de
señales
Fuente de
alimentación dual
Osciloscopio
Edwin González Querubín kaliman83@hotmail.com 47
Morgan Garavito Vásquez mor6an1@hotmail.com
Montaje real de la figura 35
Entrada aplicada