lunes, 29 de noviembre de 2010

DISEÑO DE CONTROLADORES UTILIZANDO MATLAB


Respuesta del motor en función del tiempo:

Código en MATLAB:

clf

A=[-5 1 0;0 -2 1;0 0 -1];

B=[0;0;1];

C=[-1 1 0];

D=0;

pos=input('Type %MP deseado (valores de 0 a 50) =');

Ts=input('Type Tiempo de Asentamiento deseado (en miliseg) =') ;

z=(-log(pos/100))/(sqrt(pi^2+log(pos/100)^2));

wn=4/(z*Ts);

[num,den]=ord2(wn,z);

r=roots(den);

poles=[r(1) r(2) -4];

K=acker(A,B,poles)

Anew=A-B*K ;

Bnew=B ;

Cnew=C ;

Dnew=D ;

Tss=ss(Anew,Bnew,Cnew,Dnew);

'T(s)'

T=tf(Tss);

T=minreal(T)

poles=pole(T)

step(Tss)

title('Respuesta Escal6n Compensada.')

Valores de K:

Función de transferencia y Polos:

Gráfica Correspondiente:

Respuesta Escalón Compensada


DISEÑO DE CONTROLADORES


Los métodos de diseño de controladores en el espacio de estados siguen un procedimiento de dos pasos independientes. El primer paso supone que el estado completo está disponible para ser re-alimentado y usado en el control. Esto en general es falso. Por eso se debe recurrir al segundo paso, que consiste en el diseño de un estimador u observador del estado, que calcula el estado completo a partir de las mediciones disponibles. El algoritmo final de control consistirá entonces en la ley de control obtenida en el primer paso, usando la estimación del estado que provee el observador obtenido en el segundo paso.

La ley de control, para el problema de regulación (es el caso en que se desea llevar el estado al origen: x = 0), consiste en realimentar una combinación lineal del estado. Es decir:

donde K es una matriz de ganancias a determinar.

Es decir que la dinámica del sistema a lazo cerrado puede definirse arbitrariamente, mediante la elección apropiada de los elementos de la matriz K. Apropiada, en este caso, quiere decir que las raíces de la ecuación característica se ubiquen en la posición deseada.

En particular, es posible que un sistema inestable a lazo abierto, se estabilice al cerrar el lazo, eligiendo K de modo que las raíces de la ecuación característica caigan en el interior del círculo unitario.

k=Acker (A,B,P)

Dado el sistema de una sola entrada y un vector P da las posiciones de los polos de lazo cerrado, Acker(A,B,P) utiliza la fórmula de Ackerman para calcular y obtener el vector k tal que la re-alimentación de estado u=kx lugares de los polos de lazo cerrado en los lugares P. Es decir, los valores propios de A-BK coinciden con las entradas de P. Aquí A es el transmisor de estado de la matriz y B es la entrada al vector de estado de transmisión.

Limitaciones:

Acker se limita a sistemas de una sola entrada y el par (A,B) debe ser controlable .



domingo, 28 de noviembre de 2010

MODELADO DE UN MOTOR


Respuesta de la Salida del Puente H al Moto- reductor:


Para el modelamiento se parte de la gráfica anterior:




Se utilizó la frecuencia del sistema con un valor igual

La respuesta a una función escalón:

Código en MATLAB:

um1=[12.56];

den1=[1 17.33 157.75];

sys1=tf(num1,den1)

ZPK(sys1)

SS(sys1)

figure(1)

pzmap(sys1), sgrid, pause;

end


Transfer function:

12.56

---------------------

s^2 + 17.33 s + 157.8

Zero/pole/gain:

12.56

----------------------

(s^2 + 17.33s + 157.8)

a =

x1 x2

x1 -17.33 -9.859

x2 16 0

b =

u1

x1 1

x2 0

c =

x1 x2

y1 0 0.785

d =

u1

y1 0

Continuous-time model


>> ltiview(sys1)










miércoles, 3 de noviembre de 2010

Respuesta en el Tiempo usando MATLAB

FUNCIÓN DE TRANSFERENCIA

Es un modelo matemático que a través de un cociente relaciona la respuesta de un sistema (modelada) a una señal de entrada o excitación (también modelada).

El pico formado por los modelos de la señal de salida respecto de la señal de entrada, permite encontrar los ceros y los polos, respectivamente. Y que representan las raíces en las que cada uno de los modelos del cociente se iguala a cero. Es decir, representa la región frontera a la que no debe llegar ya sea la respuesta del sistema o la excitación al mismo; ya que de lo contrario llegará ya sea a la región nula o se irá al infinito, respectivamente.

Considerando la temporalidad; es decir, que la excitación al sistema tarda un tiempo en generar sus efectos en el sistema en cuestión y que éste tarda otro tiempo en dar respuesta. Esta condición es vista a través de un proceso de convolución, formado por la excitación de entrada convolucionada con el sistema considerado, dando como resultado, la respuesta dentro de un intervalo de tiempo. Ahora, en ese sentido (el de la convolución), se tiene que observar que la función de transferencia está formada por la deconvolución entre la señal de entrada con el sistema. Dando como resultado la descripción externa de la operación del sistema considerado. De forma que el proceso de contar con la función de transferencia del sistema a través de la deconvolución, se logra de forma matrcial o vectorial, considerando la pseudoinversa de la matriz o vector de entrada multiplicado por el vector de salida, para describir el comportamiento del sistema dentro de un intervalo dado. Pareciera un proceso complicado, aunque solo baste ver que la convolución discreta es representada por un producto de una vector o matriz fija respecto de una matriz o vector móvil, o que en forma tradicional se observa como una sumatoria.

RESPUESTA EN EL TIEMPO

Desde el punto de vista del análisis de los sistemas, el interés de esta respuesta reside en que permite establecer el valor del error de estado estable. Respuesta en el dominio del tiempo usando MATLAB.

Para obtener la respuesta de un sistema en el tiempo ante una entrada estándar, debe primero definirse el sistema. Para ello puede definirse en MatLab la función de transferencia propia del sistema o las ecuaciones de estado.

La función de transferencia de un sistema es una relación formada por un numerador y un denominador.

En MatLab debe definirse el numerador Y(s) y el denominador U(s) como vectores, cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S. Por ejemplo, para definir la función de transferencia:

>>y=[1];

>>u=[1 0.25 1];

Para determinar la respuesta en el tiempo para una entrada escalón unitario de este sistema se usa el comando step indicando el vector del numerador y del denominador entre paréntesis. step(num,den)

>>step(y,u)


Estas dos gráficas siguientes nos muestran el comportamiento del sistema para la primera respuesta del sistema analizado


Estas dos graficas siguientes nos muestran el comportamiento del sistema para la segunda respuesta del sistema analizado.




Gráfica en el Dominio del Tiempo