Você está na página 1de 22

VILCATOMA SUAZNABAR RÓSULO 1

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

 Modificando el programa PID6.m y guardando como P6.m :


clc
echo on

% Fichero de ajuste empírico de reguladores P


% (c) David Huarac Rojas
% Departamento de Electricidad y electronica. UNCP

% Pulse una tecla para continuar


pause

clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT

% Calcularemos la respuesta al escalón del sistema de control con


% realimentación de lazo simple

%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| Kp |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%

% Introducimos los parámetros del regulador P


% de función de transferencia :
% Gc(s)= Kp

echo off

Kp=input('Introduzca la constante proporcional Kp = ');

% La función de transferencia del regulador es

numc=[Kp] ;

denc=[1];

% La función de transferencia de la planta (motor + reductor) es

VILCATOMA SUAZNABAR RÓSULO 2


nump=[5];

denp=conv([0.55 1 0],[30]) ;

% La función de transferencia en lazo abierto será

numg=conv(numc,nump);
deng=conv(denc,denp);

% Y la función de transferencia del sistema en lazo cerrado

[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)

% La respuesta al escalón será


clf
t=[0:0.05:30];
step(num,den,t); grid; title ('Respuesta al escalon')
disp(' ')
disp(' ')
disp(' ')
disp('Para ver la respuesta al escalón abra la Figura en el menu
WINDOWS')
disp(' ')
disp(' ')
disp('Pulse una tecla para continuar')
pause

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

VILCATOMA SUAZNABAR RÓSULO 3


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

integral(i+1)= integral(i) + error(i+1)*0.05;


end
manipp= Kp*error;

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

 Seleccionando la respuesta más adecuada (Kp = 5):

VILCATOMA SUAZNABAR RÓSULO 4


VILCATOMA SUAZNABAR RÓSULO 5
B) Controlador PI

 Modificando el programa PID6.m y guardando como PI6.m :

clc
echo on

% Fichero de ajuste empírico de reguladores PI


% (c) David Huarac Rojas
% Departamento de Electricidad y electronica. UNCP

% Pulse una tecla para continuar


pause

clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT

% Calcularemos la respuesta al escalón del sistema de control con


% realimentación de lazo simple

%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| PI |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%

% Introducimos los parámetros del regulador PI


% de función de transferencia :
% Gc(s)= Kp(1 + 1/ Ti s) = (KpTi s + Kp) / Tis

echo off

Kp=input('Introduzca la constante proporcional Kp = ');


Ti=input('Introduzca el tiempo integral Ti = ');

% La función de transferencia del regulador es

numc=[Kp*Ti, Kp] ;

denc=[Ti, 0];

% La función de transferencia de la planta (motor + reductor) es

VILCATOMA SUAZNABAR RÓSULO 6


nump=[5];

denp=conv([0.55 1 0],[30]) ;

% La función de transferencia en lazo abierto será

numg=conv(numc,nump);
deng=conv(denc,denp);

% Y la función de transferencia del sistema en lazo cerrado

[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)

% La respuesta al escalón será


clf
t=[0:0.05:30];
step(num,den,t); grid; title ('Respuesta al escalon')
disp(' ')
disp(' ')
disp(' ')
disp('Para ver la respuesta al escalón abra la Figura en el menu
WINDOWS')
disp(' ')
disp(' ')
disp('Pulse una tecla para continuar')
pause

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

VILCATOMA SUAZNABAR RÓSULO 7


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

integral(i+1)= integral(i) + error(i+1)*0.05;


end
manipp= Kp*error;
manipi= (Kp/Ti)*integral;

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

 Seleccionando la respuesta más adecuada con el programa PI6.m :

Kp = 3.5

Ti = 4

VILCATOMA SUAZNABAR RÓSULO 8


VILCATOMA SUAZNABAR RÓSULO 9
C) Controlador PD

 Modificando el programa PID6.m y guardando como PD6.m :

clc
echo on

% Fichero de ajuste empírico de reguladores PD


% (c) David Huarac Rojas
% Departamento de Electricidad y electronica. UNCP

% Pulse una tecla para continuar


pause

clc
% CONTROL DE POSICION DE LA ARTICULACION BASE DE UN ROBOT

% Calcularemos la respuesta al escalón del sistema de control con


% realimentación de lazo simple

%
% CONTROL MOTOR CC + CARGA EQ. REDUCTOR
% ____ _____________ _______
% Ang. Ref + | | | 5 | | 1 |
Ang.salida
% --->( )--->| PD |--->|------------ |------>|-------|---->
% - ^ |____| | s(0.55s + 1)| | 30 | |
% | ------------- ------- |
% | |
% | |
% | |
% ------------------------------------------------
%
%

% Introducimos los parámetros del regulador PD


% de función de transferencia :
% Gc(s)= Kp(1 + Td·s) = KpTd s + Kp

echo off

Kp=input('Introduzca la constante proporcional Kp = ');


Td=input('Introduzca el tiempo derivativo Td = ');

% La función de transferencia del regulador es

numc=[Kp*Td, Kp] ;

denc=[1];

% La función de transferencia de la planta (motor + reductor) es

1
VILCATOMA SUAZNABAR RÓSULO
0
nump=[5];

denp=conv([0.55 1 0],[30]) ;

% La función de transferencia en lazo abierto será

numg=conv(numc,nump);
deng=conv(denc,denp);

% Y la función de transferencia del sistema en lazo cerrado

[num,den]=feedback(numg,deng,1,1,-1);
disp(' ')
disp(' ')
disp('La función de transferencia del sistema realimentado es')
printsys(num,den)

% La respuesta al escalón será


clf
t=[0:0.05:30];
step(num,den,t); grid; title ('Respuesta al escalon')
disp(' ')
disp(' ')
disp(' ')
disp('Para ver la respuesta al escalón abra la Figura en el menu
WINDOWS')
disp(' ')
disp(' ')
disp('Pulse una tecla para continuar')
pause

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

integral(i+1)= integral(i) + error(i+1)*0.05;


end
manipp= Kp*error;
manipd= Kp*Td*derivada;

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

 Seleccionando la respuesta más adecuada con el programa PD6.m :

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

a) Hallando “L” y “T”

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

 Usando el el programa ZN1.m

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:

SISTEMA SINTONIZADO AJUSTADO MANUALMENTE:

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

a) Hallamos la Kcr a partir de la ecuación característica:

𝑠 3 + 302 + 200𝑠 + 400𝐾𝑝 = 0

 Mediante el criterio de estabilidad de Routh:

𝑆3
1 200

𝑆2
30 400Kp

𝑆1 6000 −400𝐾𝑝
=0
30

𝑆0

6000 −400𝐾𝑝
=0  𝐾𝑐𝑟 = 15
30

 Hallando 𝑾𝒄𝒓 :

(𝑗𝑤)3 + (𝑗𝑤)2 + (𝑗𝑤)1 + 400𝐾𝑝 = 0  𝑊𝑐𝑟 = √400

 Hallando 𝑷𝒄𝒓
2𝜋
𝑃𝑐𝑟 = = 0.31
√400

1
VILCATOMA SUAZNABAR RÓSULO
8
 Utilizando Matlab (para K = 15 ):

b) Graficar con los valores de Kp, Ti y Td.

𝐾𝑝 = 0.6𝐾𝑐𝑟 = 0.6(15) = 9

𝑇𝑖 = 0.5𝑃𝑐𝑟 = 0.5(0.31) = 0.155


𝑇𝑑 = 0.125𝑃𝑐𝑟 = 0.125(0.31) = 0.03875

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:

SISTEMA SINTONIZADO AJUSTADO MANUALMENTE:

2
VILCATOMA SUAZNABAR RÓSULO
2

Você também pode gostar