Está en la página 1de 36

Departamento de Ciencias de La Energía y Mecánica.

Carrera de Ingeniería Mecatrónica

Materia: Control Discreto

NRC: 5480

Actividad de compensación 2

Docente: Ing. Rodolfo Gordillo

Alumnos:
Bravo Franklin
Chilcañán Arturo
Zabala Bolívar
Zambrano Stefano

Fecha: 11/08/2021

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 1


ACTIVIDAD DE COMPENSACIÓN 2

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 2


Índice de Figuras
Figura 1 Modelo suministrado......................................................................................................................5
Figura 2 Datos de entrada y salida del modelo suministrado......................................................................6
Figura 3 Datos de entrada y salida...............................................................................................................9
Figura 4 Evaluación de desempeño se utiliza un escalón unitario.............................................................10
Figura 5: Análisis de modelos.....................................................................................................................11
Figura 6 Gráfica de respuesta al escalón del sistema con la ganancia critica..........................................14
Figura 7: Respuesta al escalón sin ajuste...................................................................................................17
Figura 8: Respuesta al escalón con un ajuste de 2.5*Ti.............................................................................18
Figura 9: Respuesta al escalón con un ajuste de 4*Ti................................................................................19
Figura 10 Diagrama de bloques para el controlador TIPO A Real...........................................................21
Figura 11 Controlador PID TIPO A modelo real.......................................................................................21
Figura 12 Parámetros del controlador.......................................................................................................22
Figura 13 Parámetros del controlador por simulación..............................................................................23
Figura 14 Diagrama de bloques para el controlador TIPO C Real...........................................................24
Figura 15 Respuesta al escalón del controlador PID tipo C......................................................................25
Figura 16 Evaluación de Desempeño.........................................................................................................28
Figura 17 Digitalización del Controlador..................................................................................................29
Figura 18 Diagrama de bloques para el controlador TIPO A Real...........................................................30
Figura 19: Bloque DC Motor......................................................................................................................30
Figura 20 Parámetros del Controlador......................................................................................................31
Figura 21 Parámetros del controlador por simulación..............................................................................32
Figura 22 Diagrama de bloques para el controlador TIPO C Real...........................................................33
Figura 23: Bloque DC Motor......................................................................................................................34
Figura 24 Respuesta al escalón del controlador PID tipo C......................................................................34

Índice de Tablas

Tabla 1. Resultados obtenidos en el barrido para na, nb con valores de 1:3............................................10


Tabla 2. Modelos con el mejor fitness.........................................................................................................11
Tabla 3. métricas obtenidas del modelo elegido.........................................................................................12
Tabla 4. Resultados obtenidos para Ku y Tu por diferentes métodos.........................................................14
Tabla 5. Método de Ziegler Nichols (Wikipedia, 2021)..............................................................................15
Tabla 6. Controladores PID con valores de no overshoot..........................................................................20
Tabla 7. Comparación de controladores PID (Simulink y código)............................................................23
Tabla 8 Comparación de controladores PID (Simulink y código).............................................................32

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 3


ENTREGABLE 3 – UNIDAD 2

TEMA: ACTIVIDAD DE COMPENSACIÓN 2

1. Descripción:

En el esquema de simulación que se adjunta ('motor_DC.slx') muestra el modelo de un


motor de corriente continua. Si bien se conocen sus parámetros internos no se conoce
con exactitud su función de transferencia. Se envían al "workspace" las variables
out.voltage para la entrada y out.speed para la salida con un periodo de muestreo de
0.02 segundos.

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.

1. Simule el modelo suministrado para la generación de datos de entrada y salida del


motor.

2. Identifique el modelo discreto adecuado del motor de corriente continua.

Sección 1: Controlador PID sintonizado por Ziegler Nichols

3. Desarrolle un controlador PID ZN/última ganancia/Tabla No Overshoot para el


modelo identificado.

4. Verifique el funcionamiento del controlador diseñado con el modelo real (Simulink).

5. Programe un controlador PID tipo C a partir del item 3 y verifique su funcionamiento


con el modelo real.

Sección 2: Controlador PID por ubicación de polos.

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).

7. Póngase como objetivos de performance que el tiempo de establecimiento sea menor


que 1 segundo.

8. Realice digitalmente el controlador y evalúe el desempeño con el modelo real.

9. Repita el ítem 5 pero con las ganancias obtenidas en esta sección.

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 4


2. Objetivos:
2.1. Objetivo General
 Simular un entorno real de trabajo de un motor de corriente continúa,
generando un controlador PID basado en la sintonizado por Ziegler
Nichols.

2.2. Objetivos Específicos


 Identificar el modelo discreto adecuado del motor de corriente continua.
 Desarrollar un controlador PID no Overshoot para el modelo discreto del
motor de corriente continua.
 Verificar el funcionamiento del controlador diseñado con el software
SIMULINK.

3. Desarrollo:
Sección 1: Controlador PID sintonizado por Ziegler Nichols

3.1. Simulación del modelo suministrado para la generación de datos de entrada y


salida del motor.
A través del archivo Simulink suministrado, se procede a realizar la simulación para un
tiempo de 10 segundos con el fin de obtener los datos de entrada y salida del modelo,
para ello se procede a verificar en el osciloscopio dichos datos y posteriormente se envía
los datos hacia el workspace del voltaje y la velocidad para hallar la función de
transferencia y el posterior análisis.

Figura 1 Modelo suministrado

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 5


Figura 2 Datos de entrada y salida del modelo suministrado

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].

Identificación de sistemas de tiempo discreto con datos reales

clear, close all,clc;


% Utilización de la función "sim" para ejecutar el archivo de simulink desde
% el código
out=sim('motor_DC.slx')

out =

Simulink.SimulationOutput:
speed: [501x1 double]
tout: [507x1 double]
voltage: [501x1 double]

SimulationMetadata: [1x1 Simulink.SimulationMetadata]


ErrorMessage: [0x0 char]

Carga de datos y presentación de datos

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 6


y=out.speed;
u=out.voltage;
T=0.02;
Z=iddata(y,u,T);
plot(Z)
xlim([0 T*length(y)])
% No se usa particion de datos debido a que no es una señal PRBS
ze=Z;

2.- Identifique el modelo discreto adecuado del motor de corriente continua.


nk=delayest(Z); %Estimacion del retardo discreto
delay=nk-1;
indice=0;
for i=1:3
for j=1:3
for m=1:3
if (j<=i)
m1=arx(ze,[i j m]);
indice=indice+1;
na(indice)=i;
nb(indice)=j;
nk(indice)=m;
FIT(indice)=m1.Report.Fit.FitPercent;
end
end
end
end
cont2=0;

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 7


for i=1:indice
if (max(FIT)-FIT(i))<=1
cont2=cont2+1;
mode(cont2)=i;
end
end
min=min(mode);
modelo=[1:indice];
modelo=modelo';
na=na';
nb=nb';
nk=nk';
FIT=FIT';
respuesta=table(modelo,na,nb,nk,FIT)
m1=arx(ze,[na(min) nb(min) nk(min)])
% Respuesta de estimación del retardo discreto
delay
% Función de transferencia del sistema
gz=tf(m1)
% Para evaluación de desempeño se utiliza un escalón unitario
figure
step(feedback(gz,1))

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

B(z) = 0.0003696 z^-1 + 0.0003412 z^-2

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 8


Sample time: 0.02 seconds

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 =

From input "u1" to output "y1":


0.0003696 z^-1 + 0.0003412 z^-2
-------------------------------
1 - 1.78 z^-1 + 0.7866 z^-2

Sample time: 0.02 seconds


Discrete-time transfer function.

Figura 3 Datos de entrada y salida

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 9


Figura 4 Evaluación de desempeño se utiliza un escalón unitario
Resultados:

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.

Tabla 1. Resultados obtenidos en el barrido para na, nb con valores de 1:3

Modelo na nb nk nb+na FIT 100-FIT


1 1 1 1 2 92,27 7,73
2 1 1 2 2 93,35 6,66
3 1 1 3 2 92,64 7,36
4 2 1 1 3 97,55 2,45
5 2 1 2 3 97,18 2,82
6 2 1 3 3 96,31 3,69

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 10


7 2 2 1 4 100,00 0,00
8 2 2 2 4 97,19 2,81
9 2 2 3 4 96,38 3,62
10 3 1 1 4 98,31 1,69
11 3 1 2 4 97,19 2,81
12 3 1 3 4 97,19 2,81
13 3 2 1 5 100,00 0,00
14 3 2 2 5 97,19 2,81
15 3 2 3 5 97,19 2,81
16 3 3 1 6 100,00 0,00
17 3 3 2 6 97,20 2,80
18 3 3 3 6 97,20 2,80

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

Figura 5: Análisis de modelos


Analizando el grafico se puede notar que existe una similitud entre los siguientes
modelos que presentan un mejor fitness:

Tabla 2. Modelos con el mejor fitness

Modelo na nb nk nb+na FIT % 100-FIT %


7 2 2 1 4 100,00 0,00
13 3 2 1 5 100,00 0,00
16 3 3 1 6 100,00 0,00

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 11


Se elige el modelo que presenta un mejor orden y desempeño, ya que los restantes
podrían requerir más recursos computacionales para su procesamiento, con lo que se
comprueba el programa implementado por el grupo ya que obtenemos el mismo
modelo.

na=2 ; nb=2 ; nk =1

Función de transferencia del modelo identificado:

−1 −2
0.0003696 z + 0.0003412 z (1)
G ( z )= −1 −2
1−1.78 z +0.7866 z

Para analizar el retardo de la función discreta obtenida observamos en la Tabla 2, el nk


del modelo es 1, se aplica la siguiente fórmula para encontrar el retardo.

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:

Tabla 3. métricas obtenidas del modelo elegido

Modelo Valor
Fitness % 100,00
na 2
nb 2
nk 1
delay 0

El fitness de validación se lo puede observar en la Figura 4, estos resultados nos


demuestran que existe un buen rendimiento ya que el fitness es del 100% y es del orden
menor respecto a otros modelos con las mismas características.

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 12


3.3. Desarrollo de un controlador PID ZN/última ganancia/Tabla No Overshoot para
el modelo identificado.
Análisis de Ganancia Critica

Análisis de Ganancia crítica

[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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 13


Figura 6 Gráfica de respuesta al escalón del sistema con la ganancia critica

Published with MATLAB® R2020a


Con el código mostrado se pudo obtener el periodo y la ganacia critica del
sistema donde KU y TU corresponden al método ultim, KU2 y TU2
corresponden al método margin y KU3 y TU3 corresponden al método de Jury,
para visualizar con más claridad estos resultados se presentan en la Tabla 4,
además mediante el código presentado se puede visualizar gráficamente el
sistema sometido a un valor de periodo crítico donde se ve la respuesta
oscilatoria.

Tabla 4. Resultados obtenidos para Ku y Tu por diferentes métodos

Método Ku Tu
Ultim 625.3998 0.1834
Margin 625.4281 0.17
Jury 625.3998 0.1834

En la Tabla 4, se puede observar el Ku y Tu obtenidos por 3 métodos diferentes,


los valores obtenidos por el método Jury y ultim son iguales. Los valores

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 14


obtenidos por el método de margin difieren en los decimales dando un error
despreciable, concluyendo que los 3 métodos funcionan de la manera correcta.

Sintonización por Ziegler y Nichols


Se decidió trabajar con los valores arrojados por la función ultim y el método de
Jury ya que poseen mayor exactitud que el método de margin.

K U =625.3998
T U =0.1834

Tabla 5. Método de Ziegler Nichols (Wikipedia, 2021)

El tipo de control a utilizar es el no overshoot, por lo que se tomara en cuenta los


valores proporcionados por la Tabla 5, y se usa el siguiente programa para
implementar y visualizar dicho control, se ha decidido trabajar con Euler atraso
tanto para la parte integral como para la parte derivativa

Sintonización por Ziegler y Nichols ultima ganancia

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))

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 15


Kp =

125.0800

Ti =

0.0917

Td =

0.0611

Cz =

1 Ts*z z-1
Kp * (1 + ---- * ------ + Td * ------)
Ti z-1 Ts*z

with Kp = 125, Ti = 0.0917, Td = 0.0611, Ts = 0.02

Sample time: 0.02 seconds


Discrete-time PID controller in standard form

Figura 7: Respuesta al escalón sin ajuste

Kp =

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 16


125.0800

Ti =

0.2292

Td =

0.0611

Cz =

1 Ts*z z-1
Kp * (1 + ---- * ------ + Td * ------)
Ti z-1 Ts*z

with Kp = 125, Ti = 0.229, Td = 0.0611, Ts = 0.02

Sample time: 0.02 seconds


Discrete-time PID controller in standard form

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 17


Figura 8: Respuesta al escalón con un ajuste de 2.5*Ti
Kp =

125.0800

Ti =

0.3667

Td =

0.0611

Cz =

1 Ts*z z-1

Kp * (1 + ---- * ------ + Td * ------)

Ti z-1 Ts*z

with Kp = 125, Ti = 0.367, Td = 0.0611, Ts = 0.02

Sample time: 0.02 seconds

Discrete-time PID controller in standard form

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 18


Figura 9: Respuesta al escalón con un ajuste de 4*Ti
Published with MATLAB® R2020a
Resultados:

A través código mostrado, se obtuvo los datos para el análisis y la obtención de


controladores con valores de no overshoot, se muestra el controlador sin ningún
ajuste y además dos controladores con ajuste fino para poder escoger el mejor de
ellos, para lo cual se resume los parámetros importantes de cada uno de ellos en
la siguiente tabla.

Tabla 6. Controladores PID con valores de no overshoot

Controlador Ajuste Overshoot [%] Ts [s] Kp Ti Td


1 ninguno 34.2 0.769 125.08 0.0917 0.0611
2 2.5*Ti 14.3 0.456 125.08 0.2292 0.0611
3 4*Ti 8.57 0.423 125.08 0.3667 0.0611

De los 3 sintonizadores PID mostrados anteriormente sin ajuste y con ajuste se


elige el PID sintonizado con un ajuste de 4*Ti, esto debido a que este PID

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 19


reduce el sobre impulso y la oscilación que se presenta en el PID sin ajuste. Otra
razón por la que se escoge este PID sintonizado es que presenta un tiempo de
estabilidad menor al que tiene un ajuste de 2.5*Ti.

3.4. Verifique el funcionamiento del controlador diseñado con el modelo real


(Simulink).

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 20


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.

Figura 10 Diagrama de bloques para el controlador TIPO A Real


Respuesta al escalón del controlador PID TIPO A diseñado con el modelo real

Figura 11 Controlador PID TIPO A modelo real

Parámetros en el modelo real del controlador diseñado

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 21


Figura 12 Parámetros del controlador
Mp=1.086
ts=0.423
Parámetros del controlador simulado en la sintonización por Ziegler Nichols

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 22


Figura 13 Parámetros del controlador por simulación
Se puede observar en la Error: Reference source not found, los parámetros del
controlador de máximo sobre impulso y tiempo de establecimiento a través de una
implementación del controlador con el modelo real, estos valores se comprueban con
los presentados en la Figura 12 en la cual se realizó una simulación por código (no
modelo real).
Tabla 7. Comparación de controladores PID (Simulink y código)

Simulación Simulink Código Error [%]


(Modelo Real)
Máximo Sobre Impulso 1.086 1.09 0.37

Tiempo de establecimiento 0.423 0.423 0


[s]

3.5. Programe un controlador PID tipo C a partir del ítem 3 y verifique su


funcionamiento con el modelo real.

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 23


Kp
Ki=
Ti

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.

Figura 14 Diagrama de bloques para el controlador TIPO C Real

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 24


Respuesta al escalón del controlador PID Tipo C diseñado con el modelo real

Figura 15 Respuesta al escalón del controlador PID tipo C


Se puede observar en la figura 15 que el controlador PID tipo C a través de un modelo
real (Simulink) presenta un máximo sobre impulso de 0% que a comparación del
controlador PID tipo A generado en el ítem anterior es mucho mejor, el controlador PID
Tipo C a pesar de mejor completamente el máximo sobre impulso genera un tiempo de
establecimiento dos veces mayor al generado en el PID tipo A.

Sección 2: Controlador PID por ubicación de polos.

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).

Función de transferencia del modelo identificado en tiempo discreto:

−1 −2
0.0003696 z + 0.0003412 z
G ( z )= −1 −2
1−1.78 z +0.7866 z

Tiempo Continuo

gs=d2c(gz)

Published with MATLAB® R2020a


Función de transferencia del modelo identificado en tiempo continuo:

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 25


−8
3.09∗e ∗s+2
G ( s )= 2
s +12∗s+20.02
3.7. Con objetivos de performance que el tiempo de establecimiento sea menor que 1
segundo.

r ( t )+ ¿ e (t) 2
s K d +s K c + K i u(t ) y (t )
G(s)
−¿ s

∆ 1 ( s ) =s ( s 2+ 12 s+20.02 ) + ( s2 K d + s K c + K i ) ( 3.09 x 10−8 s+2 )

∆ 1 ( s ) =s 3 +12 s 2+20.025+ s 3 K d ( 3.09 x 10−8 ) +2 K d s2 +3.09 x 10−8 K c s2 +2 K c s+3.09 x 10−8 K i s+2 K i

∆ 1 ( s ) =s 3 ( 1+ K d ) + s2 ( 12+2 K d +3.09 x 10−8 K c ) + s ( 20.02+2 K c +3.09 x 10−8 K i ) +2 K i


2 2 2
∆ c ( s ) =s + 2∗ε∗ω n s+ ωn =s +12 s+20.02

rad
ω n=√ 20.02=4.47[ ]
s

12
2 ε∗ωn =12ε = =1.34
2∗4.47

4
ts= =0.667[ s]
ε∗ω n

∆ 2 ( s ) =( s 2 +12 s+ 20.02 ) ( s−α )α =−10 ξ ωnα =−59.99 ≈−60

∆ 2 ( s ) =( s 2 +12 s+ 20.02 ) ( s+ 60 )∆ 2 ( s ) =s +60 s + 12 s +720 s+20.02 s +1201.2


3 2 2

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 26


−8
72−12−3.09 x 10 K c
¿∗¿ Sistema de Ecuaciones∗¿∗¿ K d =
2
−8
740.02−20.02−3.09 x 10 K i 1201.2
K c= K i= =600.6
2 2

Diseño por ubicación de polos en tiempo continuo Controlador PID

clc, clear, close all

Datos del problema

si=1.34;

wn=4.47;

gs=tf([0.0000000309 2],[1 12 20.02]);

Formar la ecuación característica

pc=[1 2*si*wn wn^2];

alfa=-10*si*wn;

po=[1 -alfa];

d=conv(pc,po);

Resolver el sistema de ecuaciones

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

Evaluamos el desempeño del controlador

cs=pid(Kc,Ki,Kd);

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 27


step(feedback(cs*gs,1),2)

Figura 16 Evaluación de Desempeño

Digitalización del controlador

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

with Kp = 359, Ki = 598, Kd = 29.9, Ts = 0.02

Sample time: 0.02 seconds

Discrete-time PID controller in parallel form.

gz =

0.0003696 z + 0.0003412

-----------------------

z^2 - 1.78 z + 0.7866

Sample time: 0.02 seconds

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 28


Discrete-time transfer function.

Figura 17 Digitalización del Controlador

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;

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 29


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

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.

Figura 18 Diagrama de bloques para el controlador TIPO A Real

Configuración del Bloque DC Motor

Figura 19: Bloque DC Motor


Respuesta al escalón del controlador PID TIPO A diseñado con el modelo real

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 30


Parámetros en el modelo real del controlador diseñado

Figura 20 Parámetros del Controlador


Mp=1.532
ts=0.66
Parámetros del controlador simulado en la sintonización por Ubicación de Polos

Figura 21 Parámetros del controlador por simulación

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 31


Se puede observar en la figura 20 los parámetros del controlador de máximo sobre
impulso y tiempo de establecimiento a través de una implementación del controlador
con el modelo real, estos valores se comprueban con los presentados en la figura 21 en
la cual se realizó una simulación por código (no real)

Tabla 8 Comparación de controladores PID (Simulink y código)

Simulación Simulink (Real) Código (No Error


Real) [%]
Máximo Sobre Impulso 1.532 1.53 0.1
Tiempo de establecimiento [s] 0.661 0.664 0.4

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 32


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.

Figura 22 Diagrama de bloques para el controlador TIPO C Real


Configuración del Bloque DC Motor

Figura 23: Bloque DC Motor


Respuesta al escalón del controlador PID Tipo C diseñado con el modelo real

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 33


Figura 24 Respuesta al escalón del controlador PID tipo C
Se puede observar en la Figura 24, que el controlador PID tipo C a través de un modelo
real (Simulink) presenta un máximo sobre impulso de 0% que a comparación del
controlador PID tipo A generado en el ítem anterior es mucho mejor, el controlador PID
Tipo C a pesar de mejor completamente el máximo sobre impulso genera un tiempo de
establecimiento cinco veces mayor al generado en el PID tipo A.

4. Análisis de Resultados General

 Se observa mediante el gráfico obtenido que el modelo suministrado tiene


perturbaciones que dificultan a el modelo su funcionamiento, en base a la gráfica
obtenida se adquiere datos de voltaje y velocidad que posteriormente fueron
usados para obtener la función de transferencia, todo esto en un período de 10
segundos.
 Utilizando nuestro paquete computacional de Matlab®, (SIMULINK) logramos
establecer un análisis del motor en corriente continua, desarrollamos el código
que permite graficar la entrada y salida de los datos del sistema, adicionalmente
se graficó la respuesta al escalón del sistema obtenido, para ello previamente
cargamos el código en Simulink con un período de muestreo de T=0.02 [s].
 Con el código desarrollado del modelo del motor eléctrico se pudo obtener el
periodo y la ganancia critica del sistema donde se obtuvo el valor de KU y TU

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 34


mediante el método de ultim, margin y Jury donde nos dieron valores muy
cercanos, para visualizar con más claridad estos resultados se presentan en la
“Tabla 4”, además mediante el código desarrollado se puede visualizar
gráficamente el sistema sometido a un valor de periodo crítico donde se ve la
respuesta oscilatoria.
 Luego del análisis de los 3 sintonizadores PID mostrados en la “Tabla 6” sin
ajuste y con ajuste escogimos el PID sintonizado con un ajuste de 4*Ti, esto
debido a que este PID reduce el sobre impulso y la oscilación que se presenta en
el PID sin ajuste. Otra razón por la que se escoge este PID sintonizado es que
presenta un tiempo de estabilidad menor al que tiene un ajuste de 2.5*Ti.

5. Conclusiones

 El software Matlab®, resulta ser una herramienta completa para el análisis de


sistemas de control en el tiempo discreto, en el presente trabajo se usó dicho
software para todos los ejercicios empezando por encontrar el mejor modelo
para el sistema discreto de una serie de datos de entrada y salida, luego su
posterior análisis de estabilidad y la sintonización de un control PID por Ziegler
Nichols, con ello se pudo obtener respuestas rápidas y precisas.
 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
realizó un programa en Matlab que nos presenta. Se elige el modelo que presenta
un mejor orden y desempeño, ya que los restantes podrían requerir más recursos
computacionales para su procesamiento, el mejor modelo es el número 7, que
presenta los siguientes valores: na=2; nb=2; nk=1 en donde tuvimos un Fitness
del 100%.
 La selección del tipo de PID resulta de mucho ayuda al momento de tener ciertas
características de diseño, ya que cada tipo de PID cuenta con características que
lo haces propio de su tipo; teniendo un modelo adecuado, las variables a
controlar y las características de diseño se puede establecer el mejor tipo de PID
según la necesidad.
 El método de Ziegler-Nichols es un criterio de sintonización de reguladores PID
que basa las reglas de ajuste en mediciones experimentales del comportamiento
de ciertas plantas y el efecto de las diversas acciones de control sobre su

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 35


respuesta, para la sintonización de la planta del presente trabajo se trabajó con
valores no overshoot, pese a ello se tuvo que realizar un ajuste fino para obtener
el efecto deseado.

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

Bravo F.; Chilcañán A.; Zabala B.; Zambrano S. 36

También podría gustarte