• No se han encontrado resultados

6.2 Controladores para los motores

6.2.1 Motor de impulso

Como se va a implementar un controlador digital, es discretizar la funcón de transferencia obtenida. Para ello se necesita primero encontrar un tiempo de muestreoT adecuado, esto es puede realizar en función del tiempo de levantamiento

tr que es el tiempo que le toma al sistema pasar del 5% al 95% del valor final, [106]. La medición detr se muestra en la Figura 6-2

tr = 0.0266−0.0012 = 0.0255. (6-18)

Con este valor, tenemos que se puede tomar un valor para el tiempo de muestreo

T entre 1/12 y 1/8 de tr. Es decir, un valor entre (0.0021,0.0032). Entonces,

seleccionamos el tiempo de muestreo T = 0.0026s.

Figura 6-2: Valores para obtener el tiempo de levantamiento del sistema tr a

partir de la respuesta al escalón.

Con el valor del periodo de muestreo, podemos obtener la función de transferencia pulso equivalente para el motor de impulso precedido de un retenedor de orden cero, así G(z) = (1−z−1)Z { G(s) s } = 0.03473z+ 0.01801 z20.9177z+ 0.1362. (6-19) A partir de (6-19) se procede a diseñar el controlador, que en este caso se hará por medio del Lugar Geométrico de las Raíces (LGR), como se presenta a continuación.

6.2 Controladores para los motores 107

1. Encontrar la ubicación de los polos deseados de lazo cerrado: Para ello se necesita establecer un par de criterios de diseño:

Sobrepaso máximo (Mp): 1%.

Tiempo de establecimiento 80% del tiempo del sistema. Con el sobrepaso máximo se obtiene el valor deseado deζ

ζ = √ Mp2 π2+M p2 = √ 0.12 π2+ 0.12 = 0.826 (6-20) Con el tiempo de establecimiento deseado se obtiene ωn

Para obtener el tiempo de establecimiento deseado se necesita el tiempo de establecimiento del sistema en lazo abierto que es ts = 0.0395

tsd = 0.8·ts = 0.8·0.0395 = 0.0316 (6-21) ωn= 4 tsd·ζ = 4 0.0316·0.826 = 153.363 (6-22)

Con estos valores ya se puede encontrar el polo deseado:

zd =e−ζωnT ·e−jωn

1−ζ2T

= 0.7013 +j0.1603 (6-23) 2. Encontrar el ángulo que debe aportar el controlador a partir de la condición

de ángulo:

∠C(z) +G(z) = ±180◦ (6-24) ∠G(z) = (zd−0.4935)−∠(zd−0.7142)−∠(zd−0.1635) (6-25) ∠G(z) =−110.5182◦ (6-26) ∠C(z) =−180◦−(−110.5182◦) =−69.4818◦ (6-27) 3. Seleccionar el controlador a diseñar

Se diseño un controlador PI porque una acción integral garantiza que la referencia realmente se puede alcanzar [61].

P I = K·(z−a)

z−1 (6-28)

4. Encontrar los polos y ceros del controlador

Figura 6-3: Diagrama para el calculo de a.

∠(zd−a) =∠C(z) +∠(zd−1) = 82.3013◦ (6-30)

Ahora, con la ayuda de trigonometría calculamos el valor de a:

a=Real(zd)−

Im(zd)

tanC(z) = 0.7013−

0.1603

tan 82.3013 = 0.6796 (6-31)

5. Aplicar la condición de magnitud para hallar el valor de K

K = ⏐ ⏐ ⏐ ⏐ (zd−0.1861)(zd−0.7316)(zd−1) 0.0347(zd−a)(zd−(−0.5184)) ⏐ ⏐ ⏐ ⏐ = 4.3174 (6-32) Finalmente el controlador a implementar es:

C(z) = 4.3174·(z−0.6796)

(z−1) (6-33)

Para implementar este controlador en un microcontrolador, hay que pasar el controlador a una ecuación en diferencias como se detalla a continuación:

(6-33) es equivalente a:

U(z) E(z) =

4.3174·(1−0.6796z−1)

(1−z−1) (6-34)

A partir de esta ecuación se puede obtener el paso del dominioz al dominio k:

6.2 Controladores para los motores 109

Figura 6-4: Respuesta al escalón del sistema en lazo abierto y en lazo cerrado con el controlador.

Por lo tanto, la ecuación en diferencias será:

u[k] = 4.3174e[k]−0.6796e[k−1] +u[k−1] (6-36)

6.2.2

Motor de Direccionamiento

En el caso del motor de direccionamiento, debemos tomar la función de transferencia de posición angular a voltaje de entrada, no de la velocidad angular como en el caso de motor de impulso. Para modificar la función de transferencia, solo basta con agregar un integrador, que es lo quese necesita para obtener la posición a partir de la velocidad. Es decir que consideraremos la función de transferencia dada por

¯

Gdi(s) =

7039

s(s2+ 827.8s+ 4.631×104). (6-37) Es de notar que la respuesta de este sistema en lazo abierto es inestable, por lo que la selección del periodo de muestreo debe hacerse para el comportamiento deseado de lazo cerrado. Teniendo en cuenta que se desearía que el motor de direccionamiento lograra estabilizarse lo más pronto posible, sin sobrepaso máximo,

vamos a diseñar un controlador de tiempo mínimo sin oscilaciones entre mustras, capaz de seguir una entrada escalón y para unT = 1s [107]. Este último se define después de realizar algunas pruebas que garanticen que la señal de control no se sature, para garantizar el comportamiento líneal.

La función de transferencia pulso equivalente para el motor de dirección en posición es G(z) = (1−z−1)Z { ¯ Gdi(s) s } = 0.15034(z+ 0.0182) z(z−1) = 0.15034z−1(1 + 0.0182z−1) 1−z−1 . (6-38) La forma del controlador en este método de diseño es

D(z) = F(z)

G(z)(1−F(z)), (6-39)

dondeF(z)es la función de transferencia de lazo cerrado deseada tipo FIR (Finite Impulse Response, es decir, tiene todos sus polos en el origen). Para hallar analíticamente F(z) se deben hacer análisis relacionados con la realizabilidad de D(z), la estabilidad del sistema de lazo cerrado, garantizar que el error de positición en estado estacionario sea cero y que no existan oscilaciones entre muestras. Todo lo anterior se resume en las siguientes consideraciones:

F(z) = ⎧ ⎪ ⎨ ⎪ ⎩

Debe incluir el retardo de G(z).

Debe incluir TODOS los ceros deG(z).

Debe incluir un polinomio de ajuste M(z).

y 1−F(z) = ⎧ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎩

Debe incluir el máximo número de polos en 1 entre los de G(z)

y los de G(z).

Debe incluir los polos INESTABLES deG(z).

Debe incluir un polinomio de ajuste A(z).

Es decir F(z) = Retardo deG(z)  z−1 Ceros deG(z)    (1 + 0.03071z−1)M(z) (6-40) y para 1−F(z) 1−F(z) = (1−z−1)    max Polos enz= 1deG(z)yR(z) A(z) (6-41)

6.2 Controladores para los motores 111

Ahora se debe garantizar que el orden de F(z) sea igual al de 1−F(z). Para ello el orden de A(z) debe ser un orden mayor a M(z) y, además, el número de incógnitas a encontrar debe ser igual al orden de F(z) y 1−F(z). Así las cosas

M(z) =m0 y A(z) = 1 +a1z−1. Entonces F(z) =z−1(1 + 0.0182z−1)m0 =m0z−1 + 0.0182m0z−2 (6-42) y 1−F(z) = (1−z−1)(1 +a 1z−1) = 1−(1−a1)z−1−a1z−2. (6-43) Despejando F(z) de (6-43) tenemos F(z) = (1−a1)z−1+a1z−2. (6-44) Igualando las dos expresiones paraF(z), (6-42) y (6-44), obtenemos el sistema de ecuaciones que nos permite finalizar el diseño

m0 = 1−a1,

0.0182m0 = a1,

(6-45)

donde m0 = 0.9821y a1 = 0.0179. Por lo que

D(z) = 6.533z

(z+ 0.01787). (6-46)

Además, la función de transferencia del sistema de lazo cerrado se puede escribir como

F(z) = 0.9821z−1+ 0.0179z−2,

que muestra que después de un periodo de muestreo el sistema ya ha alcanzado más del 98% del valor final. Es decir, el tiempo de establecimeinto del sistema de lazo cerrado resulta siendo de 1 segundo, igual al periodo de muestreo del sistema. La respuesta al escalón de π/2 (90o) del sistema de lazo cerrado y la acción de control necesaria para lograrlo se puede ver en la Figura 6-5. La señal de control toma un valor máximo de 10.3 V para el giro de 90o del vehículo, que

evidentemente puede ser proporcionado por las baterías del mismo.

Motor de Dosificación

Para el motor de dosificación, se diesña un control de velocidad tambén de tiempo de establecimiento mínimo (como el diseñado para el motor de dirección), teniendo en cuenta que deseamos que la bandeja de dosificación gire a 11 r.p.m., equivalentes

0 0.5 1 1.5 2 2.5 3 3.5 4 0

0.5 1 1.5

Posición del motor 1/10 señal de control

Tiempo (seconds)

Amplitud

Figura 6-5: Respuesta al escalón deπ/2del sistema de control de posición para el motor de direccionamiento.

a 1.1518 rad/s. Lo anterior implica que diseñamos un control que siga una entrada escalón de amplitud 1.1518, sin oscilaciones entre muestras, paraT = 0.015 s. El periodo de muestreo se selecciona luego de verificar que la acción de control para el sistema de lazo cerrado no se sature y el controlador satisfaga todas las condiciones de diseño.

La función de transferencia pulso equivalente para el motor de dosificación será

G(z) = (1−z−1)Z { ¯ Gdi(s) s } = 0.14996(z+ 0.00172) z(z−0.3012) = 0.14996z−1(1 + 0.00172z−1) 1−0.3012z−1 . (6-47) Siguiendo el mismo procedimiento de diseño que para el motor de dirección, definimos F(z) =z−1(1 + 0.00172z−1)m0 =m0z−1+ 0.00172m0z−2 (6-48) y 1−F(z) = (1−z−1)(1 +a1z−1) = 1−(1−a1)z−1−a1z−2. (6-49) DespejandoF(z)de (6-43) tenemos F(z) = (1−a1)z−1+a1z−2. (6-50) Igualando las dos expresiones paraF(z), (6-42) y (6-44), obtenemos el sistema de

6.3 Controlador de Trayectoria 113