Академический Документы
Профессиональный Документы
Культура Документы
CEAD PALMIRA
2019
Retomando la función de transferencia hallada en la anterior fase para el sistema calefactor:
transferencia:
𝑒 −0.5𝑠
𝐺(𝑠) = 88 ∗
1 + 13𝑠
• ANALIZAR EL DISEÑO DE FILTROS DIGITALES Y VERIFICAR SU APLICABILIDAD
AL PROYECTO PLANTEADO.
Fuente propia.
Nótese que, a diferencia de la fase anterior, no se utilizó un muestreador de ningún tipo, y que la
función ‘IoDelay’ nos sirve para declarar el exponencial, el número que le sigue es el valor que
Graficamos:
Se obtiene:
Imagen: respuesta ante entrada escalón unitario del sistema gz. Fuente propia.
Cómo el método nos pide organizar las potencias de manera decrecientes, debemos realizar el
0.6743
𝐺𝑧 = 𝑧 −5 ∗ ( )
𝑧 − 0.9923
𝑧 −5
𝐺𝑧 = 0.6743 ∗ ( )
𝑧 − 0.9923
𝑧 −5
𝐺𝑧 = 0.6743 ∗ ( 𝑍 )
𝑧 0.9923
−
𝑧 𝑧
𝑧 −4
𝐺𝑧 = 0.6743 ∗ ( )
1 − 0.9923𝑧 −1
Numerador: [0 0 0 1]
Denominador: [1 -0.9923]
Introducimos las instrucciones en MATLAB, recordemos que para declarar la entrada escalón se
X = [0 20*ones(1,60)];
Código MATLAB.
clc;
clear all;
clear figures;
nurn=[0 0 0 1];
den=[1 -0.9923];
x=[0 20*ones(1,1000)]
k=0:1000;
grid
ylabel ('y(k)')
Es importante tener en cuenta que cómo la entrada “x” es un escalón, ésta debe estar multiplicada
por 20, tal como lo decía el ejemplo de la fase anterior. Verificamos el vector de entrada “x”.
Hay que interpretar que la función de transferencia en Z está muestreada a 0,1s. Esto quiere decir
𝑧 −5
𝐺𝑧 = 0.6743 ∗ ( )
𝑧 − 0.9923
1 0.6743
𝐺𝑧 = 5
∗( )
𝑧 𝑧 − 0.9923
0.6743
𝐺𝑧 = ( 6 )
𝑧 − 0.9923𝑧 5
Ingresamos los parámetros en MATLAB, es importante tener en cuenta que para esta ocasión se
debe realimentar de manera unitaria el sistema, la entrada escalón tiene valor de 20, y que se
usará el mismo tiempo de muestreo de 0,1s que en las anteriores actividades. De esta manera
close all
clear all
clc
T=0.1
Gz=tf([0.6743],[1 -0.9923 0 0 0 0 0],T) %definición bloque directo
Hz=1 %Hz=tf(1,[1 0.5],-1) %definición bloque realimentación
rlocus(Gz*Hz) %obtención lugar de las raíces figura 1
xlabel('eje real')
ylabel('eje imaginario')
title ('lugar de las raices')
axis([-1.5 1.5 -1.5 1.5]) %escalado de ejes
Mz=feedback(Gz,Hz) %sistema realimentado
polos=pole(Mz) %comprobación de estabilidad
abs(polos) %comprobación módulo mayor Igual a 1
figure % figura 2
pzmap(Mz) %plano de polos y ceros
axis([-1.5 1.5 -1.5 1.5]) %escalado de ejes
xlabel('eje real')
ylabel('eje imaginario')
title ('plano de polos y ceros')
figure % figura 3
step(20*Mz) % comprobación respuesta
xlabel('k*t')
ylabel('Amplitud')
title('respuesta escalón unitario')
Se verifican los sistemas que nos arroja MATLAB y concuerdan con lo calculado:
Igualmente, se nos entregan los polos del sistema con realimentación unitaria:
Obtenemos el plano de polos y ceros:
los polos en lazo cerrado se presentan por fuera del círculo unitario como se muestra en la
siguiente imagen:
• ANALIZAR EL DISEÑO DE CONTROLADORES PID DISCRETOS Y VERIFICAR SU
gs=tf(88,[13 1],'IoDelay',0.5)
gz=c2d(gs,0.1)
Con la FT ya ingresada en Matlab, nombrada “gz”, graficamos el lugar geométrico de las raíces
con la ayuda del comando “rlocus”
Como se puede notar, no hay un punto de ganancia crítico que corte el eje imaginario, por esto,
debemos utilizar el método de Ziegler-Nichols.
Graficamos la respuesta al impulso unitario del sistema en lazo abierto, y trazamos una línea
tangente en el punto de inflexión de la curva, para lo cual escribimos el siguiente código.
step(gz)
pp=pole(gz)
dt=0.1;
t=0:dt:100;
y=step(20*gz,t)';
dy=diff(y)/dt;
[m,p]=max(dy);
d2y=diff(dy)/dt;
yi=y(p);
ti=t(p);
L=ti-yi/m;
tau=(y(end)-yi)/m+ti-L;
Aplicamos:
Ahorra hallamos el valor de “L”, en donde corta la recta tangente al eje X.
L=0.679
12.861
𝐾𝑝 = 1.2 ∗ ( ) = 22.7293
0.679
𝑇𝑖 = 2𝐿 = 2 ∗ 0.679 = 1.358
𝑧 −5
𝐺𝑧 = 0.6743 ∗ ( )
𝑧 − 0.9923
1 0.6743
𝐺𝑧 = ∗ ( )
𝑧 5 𝑧 − 0.9923
0.6743
𝐺𝑧 = ( )
𝑧 6 − 0.9923𝑧 5
𝑃 = 𝐾𝑝 = 22.7293
𝐾𝑝 22.7293
𝐼= = = 16.7373
𝑇𝑖 1.358
𝐷 = 𝐾𝑝 ∗ 𝑇𝑑 = 7.71659
Procedemos a sintonizar el controlador PID con la ayuda de la herramienta de Matlab para lograr
alcanzar una mejor respuesta:
Verificamos las condiciones de diseño obtenidas con el sintonizador de simulink:
Con los nuevos valores hallados, operamos con regla de tres y obtenemos los parámetros de
arranque para el controlador PID:
0.02220 = 𝐾𝑝 = 𝑃
𝐾𝑝 𝐾𝑝 0.02220
= 𝐼; 0.001865 = ; 𝑇𝑖 = ; 𝑇𝑖 = 11.9034
𝑇𝑖 𝑇𝑖 0.001865
0.024577
𝐷 = 𝐾𝑝 ∗ 𝑇𝑑; 0.024577 = 𝐾𝑝 ∗ 𝑇𝑑; 𝑇𝑑 = = 1.10707
0.02220
𝑇 1 − 𝑧 −1
𝑈(𝑧) = 𝐾𝑝 [1 + ( ) + 𝑇𝑑 ∗ ( )] 𝐸(𝑧)
𝑇𝑖(1 − 𝑧 −1 ) 𝑇
𝑻 𝟏 − 𝒛−𝟏
𝑼(𝒛) = 𝟎. 𝟎𝟐𝟐𝟐𝟎 [𝟏 + ( ) + 𝑻𝟏. 𝟏𝟎𝟕𝟎𝟕 ∗ ( )] 𝑬(𝒛)
𝟏𝟏. 𝟗𝟎𝟑𝟒(𝟏 − 𝒛−𝟏 ) 𝑻