You are on page 1of 4

%septiembre 22 d2 2015

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% ERRER EN ESTADO ESTACIONARIO
%
%El desempeo de un sistema de control discreto se mide por su error en
%
%estado estacionario o permanente ess y depende de la seal de entrada.
%
%
%
%Este programa esta orientado a determinar la ganancia K de tal manera
que%
%los valores en que oscila esta variable hagan que el sistema sea
estable.%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%

clc;
disp(' ERROR DE UN SISTEMA ');
disp('ERROR EN ESTADO ESTACIONARIO CON REALIMENTACION UNITARIA');
disp(' ');
disp('SELECCIONE UNA OPCIN :');
disp(' 1: PARA UNA FUNCION DE TRANSFERENCIA EN EL PL "s" ');
disp(' 2: PARA UNA FUNCION DE TRANSFERENCIA EN EL PL "z"');
w=input('SELECCIONE LA OPCION : ');
disp(' ');

% % % numgls=[0 0 0 1 2 1] %%[10];
% % % dengls= [1 5.55 8.1 5.05 3 2.5]%[1 2+10j -26+20j 52]%%[1 1.5 0.25]
%%poly([0 -1]);

switch w
%LOS DATOS DEBEN SER INGRESADOS EN EL PLANO s
case 1
T = input('Ingrese el valor de tiempo de muestreo : T = ');
numgls = input('Ingrese coeficientes del numeradorz PL "s" : num = ');
dengls = input('Ingrese coeficientes del denominador PL "s": den = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(s) = ');
%1ro Funcion de Transferencia en el tiempo discreto G(z)

Gls=tf(numgls,dengls)

Gz=c2d(Gls,T,'zoh')
%funcin de transferencia en lazo cerrado
Tz=feedback(Gz,1)

'LOS POLOS DE z EN LAZO CERRADO'


pause
r=pole(Tz)
M=abs(r)
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA ESCALON (ERROR DE POSICIN)')
disp('___________________________________________________________________
__________________________')

Kp=dcgain(Gz)
ess=1/(1+Kp)
GzKv=Gz*(1/T)*tf([1 -1],[1 0],T);
GzKv=minreal(GzKv,0.00001);

%Mejorar o disminuir K a un valor deseado


disp('DISMUYE EL ess EN UN 50%')

K=(1/(0.40*ess)-1)/Kp
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA RAMPA(ERROR DE VELOCIDAD)')
disp('___________________________________________________________________
__________________________')
Kv=dcgain(GzKv)
essv=T/Kv
GzKa=Gz*(1/T^2)*tf([1 -2],[1 0 0],T);
GzKa=minreal(GzKa,0.00001);
%Mejorar o disminuir K a un valor deseado
disp('DISMUYE EL ess EN UN 50%')

K2= (1/(0.40*essv*Kv))
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA PARABOLA (ERROR DE ACELERACIN)')
disp('___________________________________________________________________
__________________________')
Ka=dcgain(GzKa)
essa=(T^2)/Ka
%Mejorar o disminuir K a un valor deseado
disp('DISMUYE EL ess EN UN 50%')
K3=(1/(0.40*essa*Ka))
pause

case 2
T = input('Ingrese el valor de tiempo de muestreo : T = ');
numglz = input('Ingrese coeficientes del numeradorz PL "z" : num = ');
denglz = input('Ingrese coeficientes del denominador PL "z": den = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(z) = ');

Gls=tf(numglz,denglz);

Gz=c2d(Gls,T,'zoh')

Tz=feedback(Gz,1)
'LOS POLOS DE z EN LAZO CERRADO'
r=pole(Tz)
M=abs(r)
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA ESCALON (ERROR DE POSICIN)')
disp('___________________________________________________________________
__________________________')

Kp=dcgain(Gz)
ess=1/(1+Kp)
GzKv=Gz*(1/T)*tf([1 -1],[1 0],T);
GzKv=minreal(GzKv,0.00001);

%Mejorar o disminuir K a un valor deseado


disp('DISMUYE EL ess EN UN 50%')

K=(1/(0.85*ess)-1)/Kp
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA RAMPA(ERROR DE VELOCIDAD)')
disp('___________________________________________________________________
__________________________')
Kv=dcgain(GzKv)
essv=T/Kv
GzKa=Gz*(1/T^2)*tf([1 -2],[1 0 0],T);
GzKa=minreal(GzKa,0.00001);
%Mejorar o disminuir K a un valor deseado
disp('DISMUYE EL ess EN UN 50%')
K=1/(0.40*essv*Kv)
pause
disp('___________________________________________________________________
__________________________')
disp('ENTRADA PARABOLA (ERROR DE ACELERACIN)')
disp('___________________________________________________________________
__________________________')
Ka=dcgain(GzKa)
essa=(T^2)/Ka
%Mejorar o disminuir K a un valor deseado
disp('DISMUYE EL ess EN UN 50%')
K=1/(0.85*essa*Ka)
pause
end

% %%%%%%ENTRADA ESCALON (ERROR EN POSICIN)%%%%%%


%
% [numz,denz] = tfdata(Gz,'v');
%
% %2do Error en estado estacionario Ess
% % Para el error en estado estacionario del sistema con
retroalimentacion unitaria
% % %en este caso no se considera K
% % Ref(z) ----> 1/(1-z^-1)
% % ess=lim (1-z^-1)-----------
% % z-->1 1 + G(z)*H(z) ----> H(z)=1 ,
retroalimentacion unitaria
% % Tenemos:
% % 1
% % ess = --------------
% % 1 + lim G(z)
% % z-->1
% %
% % kp = lim G(z)
% % z-->1
% kp=polyval(numz,1)/polyval(denz,1)
% ess=1/(1+kp)

%3ro Si quiere que disminuya o mejore a un valor deseado, en este caso se


considera K
% + ___ _______
% --->{X}---| K |---->| G(z) |---------->
% - ^ |
% | ________ |
% --------| 1 |<---------
%
% Aqui se disminuye en un 50%
% 1
% (0.5)*ess = ------------
% 1 + kp*K
% Despejando K:
% K=(1/(0.85*ess)-1)/kp%%

You might also like