Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Modelacion Posicion Motor DC

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 4

Physical Setup

El motor de CC es un actuador comn en control sistemas. Provee movimiento rotatorio directamente y, acoplado con ruedas dentadas o poleas y cables, puede proveer movimiento transicional. El circuito elctrico de la armadura y el diagrama de cuerpo libre del rotor se muestran en la siguiente figura:

Para este ejemplo, asumimos los valores siguientes para los parmetros fsicos. Estos valores se derivaron experimentalmente de un motor real del laboratorio de control para alumnos de grado del Carnegie Mellon.

momento de inercia del rotor (J) = 0.01 kg.m^2/s^2 coeficiente de amortiguamiento del sistema mecnico (b) = 0.1 Nms constante de fuerza electromotriz (K=Ke=Kt) = 0.01 Nm/Amp resistencia elctrica (R) = 1 ohm inductancia elctrica (L) = 0.5 H entrada (V): Fuente de Tensin salida (theta): posicin del eje el rotor y eje se consideran rgidos

Ecuaciones del Sistema


El torque del motor, T, se relaciona con la corriente de armadura, i, por un factor constante Kt. La fuerza contraelectromotriz (emf), e, se relaciona con la velocidad de rotacin mediante las siguientes ecuaciones

En unidades del sistema internacional SI (las que usaremos), Kt (constante de armadura) es igual a Ke (constante del motor).

De la figura de arriba podemos escribir las siguientes ecuaciones basadas en la ley de Newton combinado con la ley de Kirchhoff:

1. Funcin de Transferencia
Usando Transformadas de Laplace las ecuaciones del modelo de arriba pueden expresarse en trminos de s.

Eliminando I(s) podemos obtener la siguiente funcin de transferencia, donde la velocidad de rotacin es la salida y la tensin es una entrada.

Sin embargo como durante este ejemplo estamos mirando a la posicin, como que es la salida. Podemos obtener la posicin integrando Theta Punto, por lo tanto solo necesitamos dividir la funcin de transferencia por s.

2. Espacio de Estado
Estas ecuaciones pueden tambin representarse en la forma espacio de estado. Si elegimos posicin del motor, velocidad del motor, y corriente de armadura como las variables de estado, podemos escribir las ecuaciones como sigue:

Requerimientos de diseo

Quisiramos poder posicionar muy precisamente al motor, entonces el error de estado estacionario de la posicin del motor debera ser cero. Adems quisiramos que el error de estado estacionario debido a una perturbacin tambin sea nulo. El otro requerimiento a la performance es que el motor alcance muy rpidamente su posicin final. En este caso, queremos tener un tiempo de establecimiento de 40ms. y un sobrepico menor que 16%. Si simulamos la entrada de referencia (R) por una entrada escaln unitario, entonces la salida velocidad del motor debera tener:

Tiempo de establecimiento menor que 40 milisegundos Sobrepico menor que 16% Error de estado estacionario nulo Sin error de estado estacionario debido a una perturbacin

Representacin en Matlab y respuesta a lazo abierto


1. Funcin de Transferencia
Podemos poner la funcin de transferencia en Matlab definiendo el numerador y el denominador como vectores: Cree un nuevo archivo-m e ingrese los siguientes comandos:
J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];

Ahora veamos qu hace el sistema original a lazo abierto. Copie el siguiente comando al final del archivo-m y ejectelo en la ventana de comandos del Matlab:
step(num,den,0:0.001:0.2)

Debera obtenerse la figura siguiente:

De la figura vemos que cuando se aplica 1 volt al sistema, la posicin del motor cambia en 6 radianes, seis veces mayor que la posicin deseada. Para una entrada escaln de 1 volt, el motor debe girar alrededor de 1 radian. Adems, el motor alcanza un estado estacionario que no satisface los criterios de diseo

2. Espacio de Estado
Podemos poner las ecuaciones de espacio de estado en el Matlab definiendo las matrices del sistema como sigue:
J=3.2284E-6; b=3.5077E-6;

K=0.0274; R=4; L=2.75E-6; A=[0 1 0 0 -b/J K/J 0 -K/L -R/L]; B=[0 ; 0 ; 1/L]; C=[1 0 0]; D=[0];

La respuesta al escaln se obtiene mediante el comando


step(A,B,C,D)

Desgraciadamente, Matlab responde con


Warning: Divide by zero ??? Index exceeds matriz dimensions. matriz) (divisin por cero) (ndice excede dim de

Error in ==> /usr/local/lib/matlab/toolbox/control/step.m On line 84 ==> dt = t(2)-t(1);

Con esta representacin de las ecuaciones dinmicas estn habiendo problemas numricos de escalamiento . Para solucionar el problema, escalamos el tiempo mediante tscale = 1000. Ahora la salida tiempo estar en milisegundos en lugar de en segundos. Las ecuaciones estn dadas por
tscale = 1000; J=3.2284E-6*tscale^2; b=3.5077E-6*tscale; K=0.0274*tscale; R=4*tscale; L=2.75E-6*tscale^2; A=[0 1 0 0 -b/J K/J 0 -K/L -R/L]; B=[0 ; 0 ; 1/L]; C=[1 0 0]; D=[0];

La salida parece la misma que cuando se obtuvo atravs de la funcin de transferencia, pero el vector tiempo debe ser dividido por tscale.
[y,x,t]=step(A,B,C,D); plot(t/tscale,y) ylabel('Amplitud') xlabel('Tiempo (seg)')

http://www.ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/motor1.html#ecuaciones

También podría gustarte