Trabajo de Controladores PID
Trabajo de Controladores PID
Trabajo de Controladores PID
TRABAJO 1
Utilizando el programa PID6.m, corregir el programa para controlador P, PI y PD y
seleccionar la respuesta más adecuada que tenga menor tiempo de establecimiento y
sobreimpulso.
A) Controlador P
clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT
%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| Kp |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%
echo off
numc=[Kp] ;
denc=[1];
denp=conv([0.55 1 0],[30]) ;
numg=conv(numc,nump);
deng=conv(denc,denp);
[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)
clf
subplot(2,2,1)
% La entrada es un escalón
escalon=ones(1,length(t)); plot(t,escalon);grid;title('Entrada
escalón')
subplot(2,2,2)
% La respuesta al escalón será
respesc=step(num,den,t); plot(t,respesc);grid; title ('Resp escalón')
subplot(2,2,3)
% La señal de error
error=escalon-respesc';
plot(t,error);grid;title('Señal de error')
%
subplot(2,2,4)
% La señal del controlador
i=0; integral=[];integral(1)=1*0.05;
for i=1:length(t)-1
manip=manipp;
plot(t,manip);grid;title('Señal de control')
disp(' ')
disp(' ')
disp(' ')
disp('Vea en la Figura la evolución de la señal de error ')
disp('y la señal de salida del controlador P')
disp(' ')
disp('Tenga en cuenta que una señal de control de magnitud elevada')
disp('saturará con toda seguridad al actuador del proceso')
disp(' ')
clc
echo on
clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT
%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| PI |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%
echo off
numc=[Kp*Ti, Kp] ;
denc=[Ti, 0];
denp=conv([0.55 1 0],[30]) ;
numg=conv(numc,nump);
deng=conv(denc,denp);
[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)
clf
subplot(2,2,1)
% La entrada es un escalón
escalon=ones(1,length(t)); plot(t,escalon);grid;title('Entrada
escalón')
subplot(2,2,2)
% La respuesta al escalón será
respesc=step(num,den,t); plot(t,respesc);grid; title ('Resp escalón')
subplot(2,2,3)
% La señal de error
error=escalon-respesc';
plot(t,error);grid;title('Señal de error')
%
subplot(2,2,4)
% La señal del controlador
i=0; integral=[];integral(1)=1*0.05;
for i=1:length(t)-1
manip=manipp + manipi ;
plot(t,manip);grid;title('Señal de control')
disp(' ')
disp(' ')
disp(' ')
disp('Vea en la Figura la evolución de la señal de error ')
disp('y la señal de salida del controlador PI')
disp(' ')
disp('Tenga en cuenta que una señal de control de magnitud elevada')
disp('saturará con toda seguridad al actuador del proceso')
disp(' ')
Kp = 3.5
Ti = 4
clc
echo on
clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT
%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| PD |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%
echo off
numc=[Kp*Td, Kp] ;
denc=[1];
1
VILCATOMA SUAZNABAR RÓSULO
0
nump=[5];
denp=conv([0.55 1 0],[30]) ;
numg=conv(numc,nump);
deng=conv(denc,denp);
[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)
clf
subplot(2,2,1)
% La entrada es un escalón
escalon=ones(1,length(t)); plot(t,escalon);grid;title('Entrada
escalón')
subplot(2,2,2)
% La respuesta al escalón será
respesc=step(num,den,t); plot(t,respesc);grid; title ('Resp escalón')
subplot(2,2,3)
% La señal de error
error=escalon-respesc';
plot(t,error);grid;title('Señal de error')
%
subplot(2,2,4)
1
VILCATOMA SUAZNABAR RÓSULO
1
% La señal del controlador
derivada= diff(error)./diff(t);
derivada(length(t))=derivada(length(t)-1);
i=0; integral=[];integral(1)=1*0.05;
for i=1:length(t)-1
manip=manipp + manipd ;
plot(t,manip);grid;title('Señal de control')
disp(' ')
disp(' ')
disp(' ')
disp('Vea en la Figura la evolución de la señal de error ')
disp('y la señal de salida del controlador PD')
disp(' ')
disp('Tenga en cuenta que una señal de control de magnitud elevada')
disp('saturará con toda seguridad al actuador del proceso')
disp(' ')
Kp = 50
Td = 0.5
1
VILCATOMA SUAZNABAR RÓSULO
2
1
VILCATOMA SUAZNABAR RÓSULO
3
TRABAJO 2
Utilizando el fichero zn1.m , sintonizar el regulador PID aplicando el primer método de
Ziegler–Nichols para controlar una planta de la que se desconoce su dinámica.
a) Hallar “L” y “T” , imprimiendo la curva “S” y para lo cual hallar la tangente en punto de
inflexión.
b) Hallar los valores de Kp, Ti y Td.
c) Realizar un ajuste o sintonía final de manera manual de tal manera que el
sobreimpulso swa menos al 25%.
b) De la siguiente tabla:
1
VILCATOMA SUAZNABAR RÓSULO
4
𝑇 1.24
𝐾𝑝 = 1.2 = 1.2 = 5.72
𝐿 0.26
𝑇𝑖 = 2𝐿 = 2(1.24) = 0.52
𝑇𝑑 = 0.5𝐿 = 0.5(1.24) = 1.13
1
VILCATOMA SUAZNABAR RÓSULO
5
c) Vemos que el sobreimpulso sobrepasa el 25%, entonces sintonizando manualmente:
𝐾𝑝 = 7
𝑇𝑖 = 0.6
𝑇𝑑 = 0.5
1
VILCATOMA SUAZNABAR RÓSULO
6
SISTEMA SIN AJUSTAR:
1
VILCATOMA SUAZNABAR RÓSULO
7
TRABAJO 3
Utilizando el fichero ZN2.m , sintonizar el regulador PID aplicando el segundo método de
Ziegler-Nichols para controlar una planta inestable en lazo abierto, de función de
transferencia:
400
𝐺𝑐 (s) =
s(𝑠 2 + 30s + 200)
a) Hallar el valor de Kcr y Pcr, los valores para sintonización de controlador PID.
b) Graficar la respuesta con los valores de Kp, Ti y Td.
c) Realizar un ajuste i sintonía final de manera manual de tal manera que el sobreimpulso
sea menor al 25%.
𝑆3
1 200
𝑆2
30 400Kp
𝑆1 6000 −400𝐾𝑝
=0
30
𝑆0
6000 −400𝐾𝑝
=0 𝐾𝑐𝑟 = 15
30
Hallando 𝑾𝒄𝒓 :
Hallando 𝑷𝒄𝒓
2𝜋
𝑃𝑐𝑟 = = 0.31
√400
1
VILCATOMA SUAZNABAR RÓSULO
8
Utilizando Matlab (para K = 15 ):
𝐾𝑝 = 0.6𝐾𝑐𝑟 = 0.6(15) = 9
1
VILCATOMA SUAZNABAR RÓSULO
9
Graficando con el programa ZN2.m
2
VILCATOMA SUAZNABAR RÓSULO
0
c) Realizando un ajuste manual con:
𝐾𝑝 = 50
𝑇𝑖 = 0.155
𝑇𝑑 = 0.5
2
VILCATOMA SUAZNABAR RÓSULO
1
SISTEMA SIN AJUSTAR:
2
VILCATOMA SUAZNABAR RÓSULO
2