Asignacion de Polos

10
Ingeniería Mecatrónica DISEÑO DE CONTROL AUTOMATICO Sección: 001 ASIGNACION DE POLOS Profesor: JUAN MANUEL SOLIS SALAZAR Alumno: Marín Ortega Zabdiel Jesahías Página 1 de 10 BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Facultad de Ciencias de

description

Polos complejos

Transcript of Asignacion de Polos

Page 1: Asignacion de Polos

Ingeniería Mecatrónica

DISEÑO DE CONTROL AUTOMATICO

Sección: 001

ASIGNACION DE POLOS

Profesor: JUAN MANUEL SOLIS SALAZAR

Alumno: Marín Ortega Zabdiel Jesahías

3 de Marzo de 2013

Página 1 de 8

Facultad de Ciencias de la Electrónica

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA

Page 2: Asignacion de Polos

Índice:

Marco teórico___________________________________________________3

Desarrollo del Programa___________________________________________4

Ejemplo y análisis________________________________________________7

Conclusiones___________________________________________________8

Bibliografía_____________________________________________________8

Página 2 de 8

Page 3: Asignacion de Polos

Marco teórico

El método de Asignación de Polos es algo análogo al método del Lugar Geométrico de las Raíces ya que se colocan los polos en lazo cerrado en las posiciones deseadas. La diferencia básica es que en el Lugar Geométrico de las Raíces se sitúan los polos en lazo cerrado dominantes, mientras que el diseño por Asignación de Polos se colocan todos los polos de lazo cerrado en las posiciones que se deseen. Este diseño 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 asignación de polos en forma arbitraria, esta exigencia es que el sistema sea de estado completamente controlable.

Pasos para determinar la matriz K utilizando el método de sustitución directa:

1. Verificar que el sistema sea de estado completamente controlable.

2. Determinar el polinomio del sistema deseado.

3. Determinar el polinomio característico de la matriz A-BK.

4. Igualar los polinomios (sistema deseado y el polinomio característico de A-BK).

5. Determinar los valores de la matriz K.

6. Establecer la ley de control u=-Kx.

Página 3 de 8

Page 4: Asignacion de Polos

Desarrollo del Programa

function asigpoloop= menu ('eliga la opción 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 ==1preal=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);elseend 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');

Página 4 de 8

Page 5: Asignacion de Polos

pima=fread(ident, [1,X],'*double');polos=preal+pima*1i;fclose(ident); endtam=size(a);while(tam(1,1)~=tam(1,2)) disp('El tamaño de la matriz es incorrecto') a=input('Escriba una matriz de tamaño nxn:'); tam=size(matrizA);endlonga=length(a);longb=length(b);longc=length(c);while(longa~=longb) disp('El tamaño del vector b es incorrecto') b=input('Escriba una vector de tamaño nx1:'); longb=length(b);endwhile(longc~=longb) disp('El tamaño del vector c es incorrecto') b=input('Escriba una vector de tamaño nx1:'); longb=length(b);endwhile(length(polos)~=longa) disp('El número de polos escritos es incorrecto') polos=input('Escriba el número correcto de polos:');endb=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')

Página 5 de 8

Page 6: Asignacion de Polos

title('comparación de la respuesta al impulso del sistema');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')enddisplay(k)

Página 6 de 8

Page 7: Asignacion de Polos

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

Página 7 de 8

Page 8: Asignacion de Polos

Conclusión:

En conclusión este método puede ser utilizado para identificar si un sistema es controlable o no, para realizar la asignación de polos de manera arbitraria y visualizar si la respuesta del sistema es la deseada. Este método es muy útil para la el diseño de sistemas de control donde se tiene el nivel de información de las variables de estado.

Bibliografía:

OGATA, KATSUHIKO. Ingeniería de Control Moderna. 3ª edición. Prentice-Hall Hispanoamericana, S.A. 1998.

KUO, BENJAMIN. Sistemas de control Automático. 7ª edición. Prentice-Hall Hispanoamericana, S.A. 1996.

OGATA, KATSUHIKO. Problemas de Ingeniería de Control utilizando MATLAB. Prentice-Hall Iberia 1999.

Página 8 de 8