Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AC2 BravoF ChilcañanA ZabalaB ZambranoS
AC2 BravoF ChilcañanA ZabalaB ZambranoS
NRC: 5480
Actividad de compensación 2
Alumnos:
Bravo Franklin
Chilcañán Arturo
Zabala Bolívar
Zambrano Stefano
Fecha: 11/08/2021
Contenido
1. Descripción....................................................................................................................4
2. Objetivos:......................................................................................................................5
2.1. Objetivo General.....................................................................................................5
2.2. Objetivos Específicos.............................................................................................5
3. Desarrollo:.....................................................................................................................5
Sección 1: Controlador PID sintonizado por Ziegler Nichols...........................................5
3.1. Simulación del modelo suministrado para la generación de datos de entrada y
salida del motor..............................................................................................................5
3.2. Identificación del modelo discreto adecuado del motor de corriente continua......6
2.- Identifique el modelo discreto adecuado del motor de corriente continua...............7
3.3. Desarrollo de un controlador PID ZN/última ganancia/Tabla No Overshoot para
el modelo identificado.................................................................................................13
3.4. Verifique el funcionamiento del controlador diseñado con el modelo real
(Simulink)....................................................................................................................20
3.5. Programe un controlador PID tipo C a partir del ítem 3 y verifique su
funcionamiento con el modelo real..............................................................................23
Sección 2: Controlador PID por ubicación de polos.......................................................25
3.6. Con el modelo identificado discreto se trabaja ahora con el modelo de tiempo
continuo (se recomienda usar d2c a partir del modelo discreto o identificar directo en
continuo con la función tfest)......................................................................................25
3.7. Con objetivos de performance que el tiempo de establecimiento sea menor que 1
segundo........................................................................................................................26
Digitalización del controlador.....................................................................................28
3.8. Realización digital del controlador y evaluación el desempeño con el modelo real
.....................................................................................................................................29
3.9. Repetición del ítem 5 pero con las ganancias obtenidas en esta sección..............32
4. Análisis de Resultados General...................................................................................35
5. Conclusiones................................................................................................................35
Referencias bibliográficas...............................................................................................36
Índice de Tablas
1. Descripción:
Esta actividad propone la simulación de un entorno real trabajo y del main stream de
realización de un controlador digital, para lo cual debe seguir la siguiente metodología
procedimental.
6. Con el modelo identificado discreto trabaje ahora con el modelo de tiempo continuo
(recomiendo usar d2c a partir del modelo discreto o identificar directo en continuo con
la función tfest).
3. Desarrollo:
Sección 1: Controlador PID sintonizado por Ziegler Nichols
3.2. Identificación del modelo discreto adecuado del motor de corriente continua.
Se utiliza el software Matlab®, para poder encontrar el mejor modelo para el sistema
discreto, a continuación, se muestra el código que permite primeramente graficar la
entrada y salida de los datos del sistema, luego a través de un ciclo “for” se obtiene
automáticamente el mejor sistema, adicionalmente se grafica la respuesta al escalón del
sistema obtenido, cabe recalcar que antes de correr el siguiente código se debe simular
el archivo Simulink suministrado con un periodo de muestreo de T=0.02 [s].
out =
Simulink.SimulationOutput:
speed: [501x1 double]
tout: [507x1 double]
voltage: [501x1 double]
respuesta =
18×5 table
modelo na nb nk FIT
______ __ __ __ ______
1 1 1 1 92.268
2 1 1 2 93.345
3 1 1 3 92.643
4 2 1 1 97.552
5 2 1 2 97.183
6 2 1 3 96.305
7 2 2 1 100
8 2 2 2 97.186
9 2 2 3 96.376
10 3 1 1 98.313
11 3 1 2 97.193
12 3 1 3 97.193
13 3 2 1 100
14 3 2 2 97.194
15 3 2 3 97.196
16 3 3 1 100
17 3 3 2 97.197
18 3 3 3 97.196
m1 =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
A(z) = 1 - 1.78 z^-1 + 0.7866 z^-2
Parameterization:
Polynomial orders: na=2 nb=2 nk=1
Number of free coefficients: 4
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using ARX on time domain data "ze".
Fit to estimation data: 100% (prediction focus)
FPE: 5.738e-22, MSE: 5.603e-22
delay =
gz =
A través del archivo simulink ('motor_DC.slx'), se obtuvo los datos para el análisis y la
obtención de la función de transferencia discreta para lo cual se ha realizado un
programa en Matlab que nos presenta, el mejor modelo es el número 7, que presenta los
siguientes valores
na=2 ; nb=2 ; nk =1
Para validar que la selección arrojada es correcta, procedemos a comprobar con los
resultados obtenidos en los diferentes modelos del barrido.
Para poder analizar con mayor facilidad graficamos los modelos con el valor porcentual
de 100-FIT, en un gráfico de barras.
Analisis de modelos
9.00
8.00
7.00
6.00
(100-FIT)%
5.00
4.00
3.00
2.00
1.00
0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Modelo
na=2 ; nb=2 ; nk =1
−1 −2
0.0003696 z + 0.0003412 z (1)
G ( z )= −1 −2
1−1.78 z +0.7866 z
nk =d +1
d=1−1
d=0
Con lo que se puede concluir que el modelo discreto elegido no presenta un retardo.
Métricas obtenidas:
Modelo Valor
Fitness % 100,00
na 2
nb 2
nk 1
delay 0
[num,den]=tfdata(gz,'V');
% Método Ultim
[KU,TU]=ultim(num(2:3),den(2:3),T)
% Método Margin
KU2=margin(gz)
% Método de Jury
KU3=(1-den(3))/num(3)
alfa=-1/2*(KU3*num(2)+den(2));
Tu3=2*pi*T/acos(alfa)
% Grafica del sistema oscilatorio
figure
gh1=feedback(KU*gz,1);
step(gh1,0.2)
KU =
625.3998
TU =
0.1834
KU2 =
625.4281
KU3 =
625.3998
Tu3 =
0.1834
Método Ku Tu
Ultim 625.3998 0.1834
Margin 625.4281 0.17
Jury 625.3998 0.1834
K U =625.3998
T U =0.1834
Kp=KU/5
Ti=(TU/2)
Td=TU/3
Cz=pidstd(Kp,Ti,Td,inf,T,'IF','B','DF','B')
figure
step(feedback(gz*Cz,1))
% Ajuste para 2.5*Ti
Kp=KU/5
Kp1=Kp;
Ti=2.5*(TU/2)
Ti1=Kp1/Ti;
Td=TU/3
Td1=Td*Kp1;
Cz=pidstd(Kp,Ti,Td,inf,T,'IF','B','DF','B')
figure
step(feedback(gz*Cz,1),120)
% Ajuste para 4*Ti
Kp=KU/5
%Kp1=Kp;
Ti=4*(TU/2)
%Ti1=Kp1/Ti;
Td=TU/3
%Td1=Td*Kp1;
Cz=pidstd(Kp,Ti,Td,inf,T,'IF','B','DF','B')
figure
step(feedback(gz*Cz,1))
125.0800
Ti =
0.0917
Td =
0.0611
Cz =
1 Ts*z z-1
Kp * (1 + ---- * ------ + Td * ------)
Ti z-1 Ts*z
Kp =
Ti =
0.2292
Td =
0.0611
Cz =
1 Ts*z z-1
Kp * (1 + ---- * ------ + Td * ------)
Ti z-1 Ts*z
125.0800
Ti =
0.3667
Td =
0.0611
Cz =
1 Ts*z z-1
Ti z-1 Ts*z
Para implementar la rutina computacional del PID tipo A se realiza una función en
Matlab®, considerando los valores de Kp, Td y Ti que se escogieron, adicionalmente se
requiere del tiempo de muestreo que fue un dato del ejercicio y es 0.02 s.
Kp=Kp
Kp=125.08
Kp
Ki=
Ti
125.08
Ki= =341.0922
0.3667
Kd=Td∗Kp
Kd=0.0611∗125.08=7.6446
function u=PID_A(X)
global un1 yn1 yn2 en1 en2
sp=X(1);
y=X(2);
t=X(3);
e=sp-y;
Kc=125.08;
Kd=7.6446;
Ki=341.0922;
T=0.02;
if t==0
u=Kc*e+Kd/T*e+Ki*T*e;
en2=0;
en1=y;
un1=u;
en1=e;
end
if t>0
u=un1+Kc*(e-en1)+Ki*T*e+Kd/T*(e-2*en1+en2);
en2=en1;
en1=y;
un1=u;
en1=e;
end
Para implementar la rutina computacional del PID tipo C se realiza una función en
Matlab®, considerando los valores de Kp, Td y Ti que se escogieron, adicionalmente se
requiere del tiempo de muestreo que fue un dato del ejercicio y es 0.02 s.
Kp=Kp
Kp=125.08
125.08
Ki= =341.0922
0.3667
Kd=Td∗Kp
Kd=0.0611∗125.08=7.6446
function u=PID_C(X)
global un1 yn1 yn2
sp=X(1);
y=X(2);
t=X(3);
e=sp-y;
Kc=125.08;
Kd=7.6446;
Ki=341.0922;
T=0.02;
if t==0
u=(-Kc-Kd/T)*y+Ki*T*e;
yn2=0;
yn1=y;
un1=u;
end
if t>0
u=un1-Kc*(y-yn1)+Ki*T*e-Kd/T*(y-2*yn1+yn2);
yn2=yn1;
yn1=y;
un1=u;
end
Los códigos cuentan con los parámetros del controlador elegido, y se lo implementa en
el siguiente diagrama de bloques que cuenta con el modelo real de la planta, una entrada
escalón y un osciloscopio para poder observar la salida.
3.6. Con el modelo identificado discreto se trabaja ahora con el modelo de tiempo
continuo (se recomienda usar d2c a partir del modelo discreto o identificar directo en
continuo con la función tfest).
−1 −2
0.0003696 z + 0.0003412 z
G ( z )= −1 −2
1−1.78 z +0.7866 z
Tiempo Continuo
gs=d2c(gz)
r ( t )+ ¿ e (t) 2
s K d +s K c + K i u(t ) y (t )
G(s)
−¿ s
rad
ω n=√ 20.02=4.47[ ]
s
12
2 ε∗ωn =12ε = =1.34
2∗4.47
4
ts= =0.667[ s]
ε∗ω n
3 2
∆ 2 ( s ) =s +72 s +740.02 s +1201.2
3 2 −8 1 −8
s :1=1 s :12+ 2 K d +3.09 x 10 K c =72s :20.02+2 K c +3.09 x 10 K i=740.02
0
s :2 K i=1201.2
K i=600.6
si=1.34;
wn=4.47;
alfa=-10*si*wn;
po=[1 -alfa];
d=conv(pc,po);
Ki=d(4)/2
Kc=(d(3)-20.02-3.09*(10^-8)*Ki)/2
Kd=(d(2)-12-3.09*(10^-8)*Kc)/2
Ki =
598.4080
Kc =
358.7575
Kd =
29.9388
cs=pid(Kc,Ki,Kd);
T=0.02;
cz=pid(Kc,Ki,Kd,0,T,'IF','B','DF','B')
gz=c2d(gs,T)
step(feedback(cz*gz,1),2)
cz =
Ts*z z-1
Kp + Ki * ------ + Kd * ------
z-1 Ts*z
gz =
0.0003696 z + 0.0003412
-----------------------
3.8. Realización digital del controlador y evaluación el desempeño con el modelo real
Para implementar la rutina computacional del PID tipo A se realiza una función en
Matlab®, considerando los valores de Kp, Ki y Kc que se escogieron, adicionalmente se
requiere del tiempo de muestreo que fue un dato del ejercicio y es 0.02 s.
Kp=360
Ki=600.6
Kd=29.9388
function u=PID_A(X)
global un1 yn1 yn2 en1 en2
sp=X(1);
y=X(2);
t=X(3);
e=sp-y;
Kc=360;
Kd=30;
Ki=600.6;
T=0.02;
if t==0
u=Kc*e+Kd/T*e+Ki*T*e;
en2=0;
en1=y;
un1=u;
en1=e;
Los códigos cuentan con los parámetros del controlador elegido, y se lo implementa en
el siguiente diagrama de bloques que cuenta con la función discreta de la planta, una
entrada escalón y un osciloscopio para poder observar la salida.
3.9. Repetición del ítem 5 pero con las ganancias obtenidas en esta sección.
Para implementar la rutina computacional del PID tipo C se realiza una función en
Matlab®, considerando los valores de Kp, Ki y Kc que se escogieron, adicionalmente se
requiere del tiempo de muestreo que fue un dato del ejercicio y es 0.02 s.
Kp=360
Ki=600.6
Kd=29.9388
function u=PID_C(X)
global un1 yn1 yn2
sp=X(1);
y=X(2);
t=X(3);
e=sp-y;
Kc=360;
Kd=30;
Ki=600.6;
T=0.02;
if t==0
u=(-Kc-Kd/T)*y+Ki*T*e;
yn2=0;
yn1=y;
un1=u;
end
if t>0
u=un1-Kc*(y-yn1)+Ki*T*e-Kd/T*(y-2*yn1+yn2);
yn2=yn1;
yn1=y;
un1=u;
end
5. Conclusiones
Referencias bibliográficas
Astrom, K., & Bjorm, W. (1997). Computer-Controlled Systems: Theory and Design.
Minesota: Dover Publications.
Bestune. (s.f.). bestune.50megs.com. Obtenido de bestune.50megs.com:
http://bestune.50megs.com/CO_PV.htm
Ogata, K. (1996). Sistemas de Control en Tiempo Discreto. Mexico: Prentice Hall.
Philips, C., & Nagle, T. (1995). Digital Control System Analysis and Design. New
Jersey: Prentice Hall.
Wikipedia. (14 de Enero de 2021). Wikipedia. Obtenido de Wikipedia:
https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method