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

UNIVERSIDAD DE LAS FUERZAS ARMADAS

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

ÁREA DE AUTOMATIZACIÓN Y CONTROL


CONTROL DIGITAL
NRC: 2800

TEMA:
TIPOS DE ALGORITMOS PID DISCRETOS

DOCENTE:
ING. RODOLFO GORDILLO

ALUMNO:
FRANCISCO PALACIOS VILLAFUERTE

PERIODO:
OCTUBRE 2018 – FEBRERO 2019
TIPOS DE ALGORITMOS PID DISCRETOS
1. Explicación matemática
1.1. PID A

Se parte de la siguiente ecuación:

𝑑 𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑐 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝜏)𝑑𝜏 + 𝐾𝑑
𝑑𝑡

Para propósitos de digitalización, se procede a desarrollar la ecuación, aplicando


Euler en atraso:

𝑑𝑢(𝑡) 𝑑𝑒(𝑡) 𝑑 𝑒 2 (𝑡)


= 𝐾𝑐 + 𝐾𝑖 𝑒(𝑡) + 𝐾𝑑
𝑑𝑡 𝑑𝑡 𝑑𝑡 2

𝑑𝑢(𝑡) 𝑢(𝑘) − 𝑢(𝑘 − 1)


=
𝑑𝑡 𝑇=𝐾𝑇 𝑇
𝑑𝑒(𝑡) 𝑒(𝑘) − 𝑒(𝑘 − 1)
=
𝑑𝑡 𝑇=𝐾𝑇 𝑇
𝑑𝑒 2 (𝑡) 𝑒(𝑘) − 2𝑒(𝑘 − 1) + 𝑒(𝑘 − 2)
=
𝑑𝑡 2 𝑇=𝐾𝑇 𝑇2

Por lo tanto, quedaría:

𝑢(𝑘)−𝑢(𝑘−1) 𝑒(𝑘)−𝑒(𝑘−1) 𝑒(𝑘)−2𝑒(𝑘−1)+𝑒(𝑘−2)


= 𝐾𝑐 + 𝐾𝑖 𝑒(𝑘) + 𝐾𝑑
𝑇 𝑇 𝑇2

𝐾𝑑
𝑢(𝑘) = 𝑢(𝑘 − 1) + 𝐾𝑐 [𝑒(𝑘) − 𝑒(𝑘 − 1)] + 𝐾𝑖 𝑇 𝑒(𝑘) + [𝑒(𝑘) − 2𝑒(𝑘 − 1) + 𝑒(𝑘 − 2)]
𝑇

1.2. PID B

Ahora se tiene el siguiente tipo:

𝑑 𝑦(𝑡)
𝑢(𝑡) = 𝐾𝑐 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝜏)𝑑𝜏 − 𝐾𝑑
𝑑𝑡

Y con el proceso similar anterior tenemos:


𝑑 𝑢(𝑡) 𝑑 𝑒(𝑡) 𝑑 2 𝑦(𝑡)
= 𝐾𝑐 + 𝐾𝑖 𝑒(𝑘) − 𝐾𝑑
𝑑𝑡 𝑑𝑡 𝑑𝑡 2

𝑑𝑦(𝑡) 𝑦(𝑘) − 𝑦(𝑘 − 1)


=
𝑑𝑦 𝑇=𝐾𝑇 𝑇

𝑑𝑦 2 (𝑡) 𝑦′(𝑘) − 𝑦′(𝑘 − 1) 𝑦(𝑘) − 2𝑦(𝑘 − 1) + 𝑦(𝑘 − 2)


= =
𝑑𝑦 2 𝑇=𝐾𝑇 𝑇 𝑇2

Finalmente, se obtiene:
𝐾𝑑
𝑢(𝑘) = 𝑢(𝑘 − 1) + 𝐾𝑐 [𝑒(𝑘) − 𝑒(𝑘 − 1)] + 𝐾𝑖 𝑇 𝑒(𝑘) − [𝑦(𝑘) − 2𝑦(𝑘 − 1) + 𝑦(𝑘 − 2)]
𝑇

1.3. PID C

Como último tipo tenemos al C, donde se parte de :

𝑑 𝑦(𝑡)
𝑢(𝑡) = 𝐾𝑐 𝑒(𝑡) − 𝐾𝑖 ∫ 𝑒(𝜏)𝑑𝜏 − 𝐾𝑑
𝑑𝑡

Usando ecuaciones anteriores y la misma aproximación de Euler atraso, tenemos:

𝐾𝑑
𝑢 (𝑘) = 𝑢 (𝑘 − 1) − 𝐾𝑐 [𝑦(𝑘) − 𝑦(𝑘 − 1)] + 𝐾𝑖 𝑇 𝑒(𝑘) − [𝑦(𝑘) − 2𝑦(𝑘 − 1) + 𝑦(𝑘 − 2)]
𝑇

2. REPORTE Y EVALUACIÓN

Se realizó el diagrama en simulink y el esquema general, para cada PID es el


mostrado a continuación. Solo era necesario cambiar la función y los datos de la
salida del sistema.
Figura 1. Sistema realizado en simulink

2.1. PID A
La función del controlador PID_A
function u=pidA(Z);
global ek2 uk1 ek1
y=Z(1);
sp=Z(2);
t=Z(3);
T=0.01;
e=sp-y;
kd=3.36;
kc=18.4;
ki=48;
if t==0
u=kc*e+ki*T*e+kd/T*e;
uk1=u;
ek2=0;
ek1=e;
end

if t>0
u=uk1+kc*(e-ek1)+ki*T*e+kd/T*(e-2*ek1+ek2);
uk1=u;
ek2=ek1;
ek1=e;
end
2.2. PID B

La función del controlador PID_B


function u=pidB(Z);
global yk2 yk1 uk1 ek1
y=Z(1);
sp=Z(2);
t=Z(3);
T=0.01;
e=sp-y;
kd=3.36;
kc=18.4;
ki=48;
if t==0
u=kc*e+ki*T*e-kd/T*y;
yk2=0;
yk1=y;
uk1=u;
ek1=e;
end

if t>0
u=uk1+kc*(e-ek1)+ki*T*e-kd/T*(y-2*yk1+yk2);
yk2=yk1;
yk1=y;
uk1=u;
ek1=e;
end
2.3. PID C

La función del controlador PID_C


function u=pidC(Z);
global yk2 yk1 uk1
y=Z(1);
sp=Z(2);
t=Z(3);
T=0.01;
e=sp-y;
kd=3.36;
kc=18.4;
ki=48;
if t==0
u=-kc*y+ki*T*e-kd/T*y;
yk2=0;
yk1=y;
uk1=u;
end

if t>0
u=uk1-kc*(y-yk1)+ki*T*e-kd/T*(y-2*yk1+yk2);
yk2=yk1;
yk1=y;
uk1=u;
end
2.4. Comparación

Al realizar la comparación, se extrajo los datos de salida en simulink, para


realizar las tres gráficas y a su vez, comparar el sobre impulso u overshoot
de cada uno.

hold on
plot(ya.time,ya.data)
plot(yb.time,yb.data)
plot(yc.time,yc.data)
legend('A','B','C')
Mpa=(max(ya.data)-1)*100
Mpb=(max(yb.data)-1)*100
Mpc=(max(yc.data)-1)*100

Mpa =

9.6390

Mpb =

23.6612

Mpc =

4.0905
Primero, mediante el porcentaje de overshoot, se puede concluir, que el menor y mejor
porcentaje es el de Tipo C, con Mp=4.09%. De esta forma, esto se traslada a la gráfica,
al observar el overshoot del tipo C mucho menor que los demás controladores discretos.
Por lo que se puede concluir que el mejor controlador es el Tipo C.

Вам также может понравиться