Está en la página 1de 8

BENEMRITA UNIVERSIDAD AUTNOMA DE PUEBLA

Facultad de Ciencias de
Ingeniera Mecatrnica

DISEO DE CONTROL AUTOMATICO


Seccin: 001
ASIGNACION DE POLOS

Profesor: JUAN MANUEL SOLIS SALAZAR

Alumno: Marn Ortega Zabdiel Jesahas

3 de Marzo de 2013

Pgina 1 de 8

ndice:

Marco terico___________________________________________________3

Desarrollo del Programa___________________________________________4

Ejemplo y anlisis________________________________________________7

Conclusiones___________________________________________________8

Bibliografa_____________________________________________________8

Pgina 2 de 8

Marco terico
El mtodo de Asignacin de Polos es algo anlogo al mtodo del
Lugar Geomtrico de las Races ya que se colocan los polos en lazo
cerrado en las posiciones deseadas. La diferencia bsica es que en el
Lugar Geomtrico de las Races se sitan los polos en lazo cerrado
dominantes, mientras que el diseo por Asignacin de Polos se colocan
todos los polos de lazo cerrado en las posiciones que se deseen. Este
diseo ubica los polos de lazo cerrado de modo que las condiciones
transitorias sean llevadas a cero de forma preestablecida.
Sin embargo hay un costo asociado con colocar todos los polos en
lazo cerrado, porque para realizarlo se requiere tener buenas medidas
de todas las variables de estado.
Existe un requisito por parte del sistema para poder realizar la
asignacin de polos en forma arbitraria, esta exigencia es que el sistema
sea de estado completamente controlable.
Pasos para determinar la matriz K utilizando el mtodo de
sustitucin directa:
1. Verificar que el sistema sea de estado completamente
controlable.
2. Determinar el polinomio del sistema deseado.
3. Determinar el polinomio caracterstico de la matriz A-BK.
4. Igualar los polinomios (sistema deseado y el polinomio
caracterstico de A-BK).
5. Determinar los valores de la matriz K.
6. Establecer la ley de control u=-Kx.

Pgina 3 de 8

Desarrollo del Programa


function asigpolo
op= menu ('eliga la opcin que desea','sistema nuevo','abrir un
archivo');
if op==1
a=input('Ingrese la matriz a');
b=input('Ingrese el vector b');
z=size(a);
z=z(1);
for i=1:1:z
if i==1
c(i)=1;
else
c(i)=0;
end
end
polos=input('Ingrese los polos deseados');
salvar=menu('desea guardar el ejemplo realizado?', 'si', 'no');
if salvar ==1
preal=real(polos);
pima=imag(polos);
T=(length(a))*(ones([length(a) 1]));
M=[a b' c' preal' pima' T];
archivo=input('ingrese el nombre del archivo (entre comillas
simple)');
archivo=[archivo,'.txt'];
ident=fopen(archivo,'w');
fwrite(ident, M, 'double');
fclose(ident);
else
end
else
archivo=input('Ingrese el nombre del archivo entre comillas');
archivo=[archivo,'.txt'];
ident=fopen(archivo,'r');
AR=fread(ident,'*double');
tamar=size(AR);
Y=tamar(1);
X=AR(Y);
fclose(ident);
ident=fopen(archivo,'r');
a=fread(ident, [X,X],'*double');
b=fread(ident, [1,X],'*double');
c=fread(ident, [1,X],'*double');
preal=fread(ident, [1,X],'*double');
Pgina 4 de 8

pima=fread(ident, [1,X],'*double');
polos=preal+pima*1i;
fclose(ident);
end
tam=size(a);
while(tam(1,1)~=tam(1,2))
disp('El tamao de la matriz es incorrecto')
a=input('Escriba una matriz de tamao nxn:');
tam=size(matrizA);
end
longa=length(a);
longb=length(b);
longc=length(c);
while(longa~=longb)
disp('El tamao del vector b es incorrecto')
b=input('Escriba una vector de tamao nx1:');
longb=length(b);
end
while(longc~=longb)
disp('El tamao del vector c es incorrecto')
b=input('Escriba una vector de tamao nx1:');
longb=length(b);
end
while(length(polos)~=longa)
disp('El nmero de polos escritos es incorrecto')
polos=input('Escriba el nmero correcto de polos:');
end
b=b';
d=0;
CO=ctrb(a,b);
gradoco=rank(CO);
gradoa=rank(a);
if gradoco==gradoa
k=place(a,b,polos);
SISA=ss(a,b,c,d);
figure(1);
anueva=a-b*k;
SISB=ss(anueva, b, c, d);
g_dc=dcgain(a, b, c, d );
g_dc_n=dcgain(anueva, b, c, d );
ganancia=g_dc/g_dc_n;
cnueva=ganancia*c;
SISC=ss(anueva,b,cnueva,d);
step(SISA,'r:',SISB,'b--',SISC,'g')
title('comparacin de la respuesta al impulso del sistema');
Pgina 5 de 8

legend('sistema original', 'sistema con los polos asignados',


'sistema con la ganacia ajustada');
else
SISA=ss(a,b,c,d);
step(SISA);
title('respuesta al impulso del sistema');
display('no es controlable el sistema')
end
display(k)

Pgina 6 de 8

Ejemplo de segundo orden.


a= [-1, 0; -1, -1]
b= [1, 1]
c= [1, 0]
polos= [-2. + 0.1i, -2 - 0.1i]

Matriz definida positivamente


La matriz de Lyapunov es estable
k = 3.0100 -1.0100
P=

0.5000 -0.2500
-0.2500

0.7500

Pgina 7 de 8

Conclusin:
En conclusin este mtodo puede ser utilizado para identificar si
un sistema es controlable o no, para realizar la asignacin de polos de
manera arbitraria y visualizar si la respuesta del sistema es la deseada.
Este mtodo es muy til para la el diseo de sistemas de control donde
se tiene el nivel de informacin de las variables de estado.

Bibliografa:
OGATA, KATSUHIKO. Ingeniera de Control Moderna. 3 edicin.
Prentice-Hall Hispanoamericana, S.A. 1998.
KUO, BENJAMIN. Sistemas de control Automtico. 7 edicin.
Prentice-Hall Hispanoamericana, S.A. 1996.
OGATA, KATSUHIKO. Problemas de Ingeniera de Control utilizando
MATLAB. Prentice-Hall Iberia 1999.

Pgina 8 de 8

También podría gustarte