Está en la página 1de 31

[Escriba texto]

Práctica 1. Control de posición angular de motores de


corriente continua por realimentación lineal del vector
de estados

Grupo 2:
Jian Pierre Arevalo Morales
Jose Rodríguez Martínez

Control de máquinas y accionamientos eléctricos


Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Universidad de Área de Ingeniería de Sistemas y Automática


Almería Departamento de Informática
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Práctica 1. Control de posición angular de motores de


corriente continua por realimentación lineal del vector de
estados
Conceptos que se analizan en esta práctica
En esta práctica se va a volver a utilizar el motor de corriente continua que los alumnos han manejado
en la asignatura de Regulación Automática para llevar a cabo el control de la posición angular usando
realimentación lineal del vector de estados. En las prácticas de la asignatura de Regulación Automática
los alumnos han caracterizado ya la principal no-linealidad del dispositivo (zona muerta), han obtenido
funciones de transferencia tanto experimentales como basadas en ecuaciones del electromagnetismo
y la mecánica y han diseñado controladores basados en la función de transferencia. En esta práctica se
centrarán en:

1. Realización de ensayos mediante el método de la curva de reacción (uso de escalones) para


obtener la función de transferencia y una descripción interna donde los estados sean la posición y
la velocidad angular.
2. Diseño de un controlador de la posición angular por realimentación lineal del vector de estados.
Regulación al origen, seguimiento de trayectorias.
3. Diseño y ensayo en simulación de un estimador de estados suponiendo que únicamente se pudiera
medir la posición angular.

La duración aproximada de la práctica será de 4 horas (2 sesiones).

1. Revisión de la instalación de los equipos y no linealidades del motor


La primera actividad que deben llevar a cabo los estudiantes es familiarizarse con el dispositivo que
se va a usar en las prácticas y ejecutar algunos programas de prueba. El kit que se va a utilizar está
compuesto por dos motores de corriente continua controlados por armadura (uno hace de motor y
otro de generador de tensión proporcional a la velocidad de giro - tacogenerador o tacodinamo). La
descripción completa del sistema y de su instalación se encuentra en el apéndice, que los alumnos
deberán leer con detenimiento antes de proceder al desarrollo de la práctica. Es muy importante
que los estudiantes tengan mucho cuidado con el equipo, al realizar las conexiones de alimentación
y el puerto USB y al fijar la placa a la mesa de prácticas. No deben tocar los bornes de conexión de
los cables a los motores. Se trata de equipamiento delicado y de difícil reparación. Para el presente
curso académico se van a utilizar un laboratorio de control de motores de corriente continua
©MarsCrimson Control Board desarrollado por el alumno José Atienza Piedra en su Trabajo Fin de
Grado

Hay que hacer notar que los motores tienen varias limitaciones que hacen que su comportamiento
dinámico diste mucho de ser lineal, hecho que los estudiantes deben tener en consideración a la
hora de desarrollar las prácticas de la asignatura:

- El rango de la tensión de entrada a la armadura del motor es de -5 a 5 V. Por tanto, el motor


puede girar en ambos sentidos. La velocidad angular se mide en V, que se pueden convertir a
rpm o rad/s usando la constante tacométrica del motor que viene en el catálogo del fabricante
(ver apéndice, modelo ref.: 110143).
- El conjunto tarjeta-motor tiene una zona muerta considerable (típicamente entre 0.8 y 2 V,
dependiendo del motor concreto).
- La salida del motor presenta ruido, como se puede comprobar ejecutando los programas de
prueba que se incluyen en el apéndice.

2
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

- El periodo de muestreo está fijado a 0.01 s. Los conceptos asociados al control por computador
de sistemas dinámicos se analizan en otras asignaturas, aunque en clase de prácticas se
comentarán los aspectos básicos que el alumno debe conocer a la hora de controlar los motores.

A pesar de sus limitaciones, el kit constituye un sistema muy interesante puesto que permite
experimentar los conceptos de la teoría de control lineal en un sistema real, así como experimentar
con fenómenos que aparecen en las aplicaciones reales de ingeniería.

Los pasos que debe llevar a cabo el alumno para desarrollar este primer apartado de la práctica son
los siguientes:

1. Aunque los motores deben de estar correctamente instalados y disponibles para su uso durante
esta práctica es necesario que el alumno verifique si el programa de prueba del motor funciona
desde Simulink. En caso contrario, debe de solicitar la ayuda del profesor, hasta conseguir el
funcionamiento correcto de ese programa de prueba ("Escalones.slx").
2. El modelo "Escalones.slx" será el que se tome como base para realizar distintas modificaciones.
Dicho programa incorpora:
- Un tiempo de muestreo de 0.01 segundos en todos los bloques que hacen uso de esa opción.
- Dos bloques "To workspace" configurados en modo "Timeseries". El objetivo es poder
representar los gráficos en Matlab para poder confeccionar las memorias de prácticas
incluyendo títulos adecuados, leyendas en los ejes, fondo blanco, etc. El primero guarda la
entrada del sistema (u) y el segundo la salida del sistema (y).
- Un filtro digital implementado internamente en el bloque del motor (a este nivel el alumno
no tiene que comprender los conceptos asociados al muestreo y a la representación en
tiempo discreto usando la transformada Z, pues estos conceptos se tratan en la asignatura
Control por computador). Ese filtro es equivalente a poner a la salida del sistema un sistema
de primer orden con una ganancia estática 1 (no amplifica ni atenúa) y una constante de
tiempo de 0.1 segundos, con lo que se consigue quitar algo el nivel de ruido y de
cuantificación que tiene la señal original que se obtiene con el programa del fabricante. El
alumno puede, si lo desea, comprobar la diferencia en la salida con y sin ese bloque de
filtrado desactivando la casilla correspondiente en el bloque del motor.
- Cinco bloques “Step” que permiten simular cuatro escalones unitarios. El primer bloque
“Step” se utilizará para superar la zona muerta del motor y poder aplicar el resto de
escalones dentro de la zona lineal de éste. Para ello el alumno deberá de configurar los
bloques calculando la zona muerta del motor (cálculo que deberá realizar tal y como se
especifica en el siguiente apartado).
- Debe configurar todos los bloques que hagan uso de periodo de muestreo - sample time
("Motor DC", "To Workspace", "Step", ...) con un periodo de muestreo de 0.01 [s] (o bien
poniendo -1 para que herede el tiempo de muestreo de otros bloques) en el caso de que no
lo tenga.

Figura 1. Programa básico y secuencia de escalones en velocidad angular

3
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Se ha comprobado el correcto funcionamiento de nuestro motor 9 ejecutando el archivo (¨Escalones.slx¨) y no


hemos tenido ningún problema, debido a que la respuesta del motor presenta una respuesta de primer orden y
sin ruido.

4
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

2. Obtención de modelos usando el método de la curva de reacción en torno a


distintos puntos de operación. Obtención de modelos nominales de la posición
angular (función de transferencia y espacio de estados)

1. Obtener un modelo de la posición angular en forma de función de transferencia (revisar lo hecho


en Regulación Automática), válido para la zona de voltaje intermedio (zona más lineal). Para
ello, se obtendrá el modelo de velocidad introduciendo un tren de escalones y se tomará como
nominal el correspondiente a la zona media de trabajo (zona más lineal, en torno a 3V). Se
añadirá un integrador para pasar de velocidad a posición angular y una ganancia que
proporcione la pendiente del integrador (conversión V a rad/s). Se puede ver en la figura 2 un
ejemplo de implementación (dicha figura además incorpora el sistema de control por
realimentación lineal del vector de estados con integrador y un estimador de estado, será de
utilidad como ejemplo para ir construyendo los distintos apartados de la práctica).
2. Obtener a partir de dicha función de transferencia la descripción interna tomando como
variables de estado la velocidad y la posición angular. Obtener también la forma canónica de
control.
3. Implementar en simulación los dos modelos (Matlab y o Simulink) y comparar que proporcionan
las mismas salidas ante entradas iguales.

1.

En primer lugar, realizamos el ensayo del motor para determinar las zonas no lineales, introduciendo una rampa
unitaria como entrada, para este caso se tiene que abrir el archivo “zona_muerta_saturacion.mat”. Los
resultados que se obtuvieron son los siguientes:

La saturación del motor se encuentra entre -3.6 y 3.67, por lo que se puede decir que el motor se puede
comportar correctamente dentro del rango de -4 V a 4 V.

La zona muerta se presenta entre los puntos -0.45 y 0.93, haciendo una aproximación el motor no tendrá
respuesta en el rango de -0.5 V a 1V.

Por lo que la zona lineal se comportara, como se muestra en la siguiente gráfica, a partir de una entrada inferior
de 1 V (o más) hasta los 4V.

5
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

En la siguiente grafica se puede observar un ensayo de entrada de 5 escalones, donde se observa que
la respuesta del motor es de primer orden sin retardo.

En el primer escalón se introduce una entrada que supere la zona muerta, en este caso, de 1.5 V, a
partir de ahí los siguientes escalones son de entrada 1 V.

La zona donde presenta mejor comportamiento lineal es en el tercer escalón, en el instante de 10


segundos.

A partir de estos datos que se muestran en la figura, encontraremos los parámetros que rigen el
comportamiento de primer orden:

Ganancia estática 𝐾, que la calculamos con la variación de salida (en régimen permanente) respecto
de la variación de entrada.

∆ 𝑌 (2,63 − 1,69) 𝑉
𝐾= = = 0,94
∆𝑈 (4 − 3) 𝑉

Constante de tiempo 𝜏, se calcula como el tiempo en el que la salida llega al 63% del régimen
permanente.

𝜏 = 𝑡(0,63(∆𝑌) + 𝑌 ) − 10

𝜏 = 𝑡(0,63(2,63 − 1,69) + 1,69) − 10

𝜏 = 𝑡(2,28) − 10 = 10,155 − 10 = 0,155

6
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Por lo que, la función de transferencia 𝐺 (𝑠) tendrá la siguiente expresión:


0,94
𝐺 (𝑠) =
0,155𝑠 + 1
Ahora, una vez obtenida dicha función, se comprueba que el modelo teórico cumple con la respuesta
del motor real, para este caso, se ejecutara el archivo “workspace_parte2” y se mostrara las curvas
como se observa en la siguiente figura.

Para modelar la función de transferencia de la posición del motor 𝐺 (𝑠), se ha tenido que añadir un
integrador al modelo teórico calculado 𝐺 (𝑠), ya que la velocidad es la derivada de la posición en el
tiempo.

𝑑𝛼
=𝑣
𝑑𝑡
Aplicando transformada de Laplace:

𝑠 𝛼(𝑠) = 𝑉(𝑠) = 𝐺 (𝑠)

𝐺 (𝑠)
𝛼(𝑠) = 𝐺 (𝑠) =
𝑠
0,94 1
𝐺 (𝑠) = .
0,155𝑠 + 1 𝑠

7
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

2.

Para construir la descripción interna, partiremos desde el estado de velocidad y posición, hallados
anteriormente:

Al ser un polinomio de segundo grado, tenemos que definir dos variables de estado:

Despejado de X1

Y partiendo de que X2=X1´; se tiene

Por lo que la ecuación de salida de posición sería:

Y la ecuación de salida de velocidad quedaría:

Sustituyendo, pero con nuestros valores, quedaría:

´ 0 1 𝑋 0
·Ecuación de estado = 0 − + 𝑈(𝑠)
´
,
𝑋 .

𝑋
·Ecuación de salida (posición)  𝑌(𝑠) = [0,94 0] + [0] 𝑈(𝑠)
𝑋

8
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

𝑋
·Ecuación de salida (velocidad)  𝑌(𝑠) = [0 0,94] + [0] 𝑈(𝑠)
𝑋

Ahora usaremos la forma canónica de control para llegar a la representación interna:

En primer lugar, se dividirá numerador y denominador de G1’(s) por 𝜏:


0,94
0,155
𝐺1´(𝑠) =
1
𝑠 + 𝑠
0,155
De esta forma ya será posible construir las formas canónicas de las matrices A, B, C y D:

- Pasar la matriz A a su forma canónica de control (Acc).


0 1 0 1
𝐴= 1 → 𝐴𝑐𝑐 = 1
0 − 0 −
0,155 0,155
- Pasar la matriz B a su forma canónica de control (Bcc).
0
1 0
𝐵= → 𝐵𝑐𝑐 =
1
0,155
- Pasar la matriz C a su forma canónica de control (Ccc).
0,94
𝐶 = [0,94 0] → 𝐶𝑐𝑐 = 0
0,155

- Pasar la matriz D a su forma canónica de control (Dcc).


𝐷 = 𝐷𝑐𝑐 = [0]

Por tanto, la forma canónica del espacio de estados de G1’(s) es:

´ 0 1 𝑋 0
·Ecuación de estado = 0 − + 𝑈(𝑠)
´
,
𝑋 1

, 𝑋
·Ecuación de salida (posición)  𝑌(𝑠) = 0 + [0] 𝑈(𝑠)
, 𝑋
, 𝑋
·Ecuación de salida (velocidad)  𝑌(𝑠) = 0 + [0] 𝑈(𝑠)
, 𝑋

Por motivos didácticos, las matrices A, B, C y D se presentarán en la forma canónica de observación:

- Pasar la matriz A a su forma canónica de observación (Aco).


0 1 0 0
𝐴= 1 → 𝐴𝑐𝑜 = 1
0 − 1 −
0,155 0,155
- Pasar la matriz B a su forma canónica de observación (Bco).
0 0,94
𝐵= 1 → 𝐵𝑐𝑜 = 0,155
0,155 0
- Pasar la matriz C a su forma canónica de observación (Cco).
𝐶 = [0,94 0] → 𝐶𝑐𝑜 = [0 1]

9
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

- Pasar la matriz D a su forma canónica de observación (Dco).


𝐷 = 𝐷𝑐𝑜 = [0]

3.

Comparamos los modelos de la posición y velocidad a través del archivo simulink


“Comparacion23_posvel.slx” que se muestra en la siguiente imagen:

A través de la diferencia, se compara la salida con la función de transferencia que corresponda, y tras
ejecutar dicho archivo, con el “scope”, en las siguientes figuras se muestra que dicha diferencia es
cero, la cual certifica que las dos señales son iguales:

10
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Por lo tanto, se puede decir que la representación externa e interna se ha realizado de forma
satisfactoria.

11
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

3. Diseño de controladores de la posición angular por realimentación lineal del


vector de estados

Para la descripción interna en que los estados son la posición y la velocidad angular, diseñar una ley
de control por realimentación lineal del vector de estados para los siguientes escenarios:

1. Partiendo de una posición inicial distinta de cero, llevarla al origen (diseño de 𝑯).
2. Partiendo de condiciones iniciales nulas, seguir una referencia constante de posición angular de
valor 4 V (diseño de 𝑯𝒓 ).
3. Partiendo de condiciones iniciales nulas, seguir un tren de referencias ascendentes y
descendentes (entre 3 y 4 V) introduciendo además perturbaciones en el voltaje de entrada
(diseño con integrador 𝑯𝒊 ).

Se puede tomar como ejemplo el diagrama de la figura 2. Los alumnos deberán imponer
especificaciones dinámicas y de estacionario lógicas (que eviten que la señal de control entre en
saturación con frecuencia) y ensayar los controladores diseñados primero en simulación (siguiendo
los ejemplos de clase de teoría) y después en el motor real. Comentar los resultados obtenidos y
sobre todo el efecto que la zona muerta tiene sobre los mismos. Las especificaciones para el bucle
cerrado pueden ser dos polos reales distintos, dos polos reales iguales (las constantes de tiempo
asociadas en ambos casos deben ser superiores a 1 segundo), o dos polos complejos conjugados
asociados a una especificación de sobreoscilación (no superior al 10%) y tiempo de pico (no inferior a
1 segundo).

1.

Partiremos con el modelo del motor de entrada y salida realizado en el ejercicio 2.

0,94 𝑘
𝐺(𝑠) = =
0,155𝑠 + 𝑠 𝜏𝑠 + 𝑠
Normalizando la función de transferencia:

𝑘/𝜏
𝐺(𝑠) =
𝑠 + 𝑠/𝜏

De lo que podemos obtener:

𝑘 1
𝑏 = ; 𝑎 = 0; 𝑎 =
𝜏 𝜏
Para continuar necesitaremos recurrir a un espacio de estados que cumpla:

1 0
𝑦(𝑡) = 𝐶 · 𝑥(𝑡) = · 𝑥(𝑡)
0 1

12
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

La entrada al sistema viene dada por:

0 1 0 0 1 0 0 0 1
𝐴 = 1 − 𝑘 [ℎ ℎ ] = 1 − 𝑘 𝑘 = 𝑘ℎ −1 + 𝑘ℎ
0 − 0 − ℎ − ℎ
𝜏 𝜏 𝜏 𝜏 𝜏 𝜏 𝜏
Usamos el polinomio característico en bucle cerrado:

1 1
𝛿= = = 0,69
𝜋 𝜋
𝑆𝑂 + 1 +1
5
ln2 ln2
100 100
𝜋 𝜋 𝑟𝑎𝑑
𝜔 = = = 4,34
√1 − 𝛿 1 − 0,69 𝑠

El polinomio característico se igualará con la siguiente expresión:

𝑠 −1 1 + 𝑘ℎ 𝑘ℎ
|𝑠𝐼 − 𝐴 | = 𝑘 ℎ 1+𝑘ℎ =𝑠 +𝑠 +
𝑠+ 𝜏 𝜏
𝜏 𝜏

13
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Sustituyendo en el polinomio característico se igualará con la siguiente expresión:

𝑘ℎ
𝜆 =𝜔 = 18,84 =
𝜏
𝜆 𝜏 18,84 · 0,155
ℎ = = = 3,11
𝑘 0,94
1 + 𝑘ℎ
𝜆 = 2𝜔 𝛿 = 5,99 =
𝜏
𝜆 𝜏−1
ℎ = = −0,076
𝑘

Para cumplir las especificaciones de tp=1s y S0=5% se usará la matriz:

𝐻 =[ℎ ℎ ] = [3,11 − 0,076]

Para comprobar, se hizo un script donde calcula el vector H, abriendo el archivo “calculo_H.mat”, sin
seguir el sistema de referencia, es decir, solo cuando se introduce un escalón unitario.

Finalmente introducimos los datos en “simulink”, en bucle cerrado y se comprueba que cumple con las
especificaciones, ya que el sistema alcanza un tiempo de pico de 1 segundo y una sobreoscilación del
5%.

Se introduce una referencia distinta de cero, en este caso de 2V, y luego llevarla hasta cero, para que
el sistema siga la referencia.

14
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Se implementó con el motor y se comprueba que el sistema no sigue la referencia.

Nota: Los datos de las simulaciones y del motor real se guardaron en el archivo “3_1_workspace”.

15
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

2.

Para el caso de seguimiento de consignas, habrá que cambiar la entrada al sistema y añadirle una
matriz Hr que multiplica a la referencia:

𝑥 (𝑡)
𝑢(𝑡) = −𝐻 · 𝑥(𝑡) + 𝐻 · 𝑟(𝑡) = −[ ℎ ℎ ] + ℎ · 𝑟(𝑡)
𝑥 (𝑡)

Sustituyendo la entrada en la ecuación de estados:

𝑥̇ (𝑡) = 𝐴 · 𝑥(𝑡) + 𝐵 · 𝑢(𝑡) = 𝐴 · 𝑥(𝑡) + 𝐵 · −𝐻 · 𝑥(𝑡) + 𝐻 · 𝑟(𝑡)

= (𝐴 − 𝐵 · 𝐻) · 𝑥(𝑡) + 𝐵 · 𝐻 · 𝑟(𝑡) = 𝐴 · 𝑥(𝑡) + 𝐵 · 𝐻 · 𝑟(𝑡)

Suponiendo que el sistema está en régimen estacionario servirá para eliminar el estado del sistema, ya
que la derivada respecto del tiempo es nulo.

0=𝐴 · 𝑥(∞) + 𝐵 · 𝐻 · 𝑟(∞)

𝑥(∞) = 𝐴 · 𝐵 · 𝐻 · 𝑟(∞)

Se sabe que el error en el régimen estacionario será siempre constante, por lo que la expresión
anterior quedará de la siguiente manera:

𝑥(∞) = 𝐴 · 𝐵·𝐻 ·𝑟

Sustituyendo en la ecuación de salida:

𝑦(∞) = 𝐶 · 𝑥(∞) = −𝐶 · 𝐴 · 𝐵·𝐻 ·𝑟

Despejando Hr y suponiendo que la referencia es igual a la salida, se obtendrá lo siguiente:


1 1
𝐻 =− =−
𝐶·𝐴 ·𝐵 𝐶 · (𝐴 − 𝐵 · 𝐻) ·𝐵

Reemplazando las matrices para calcular Hr, resulta que equivale al primer termino de la matriz H.
1 1 1
𝐻 =− =− =− =ℎ
0 0 0 1+𝑘ℎ 𝜏 0 1
[1 0] · −𝑘 ℎ 1+𝑘ℎ · 𝑘 𝑘ℎ 𝑘ℎ · 𝑘 −ℎ
𝜏 𝜏 𝜏 1 0 𝜏
Por lo tanto, para las especificaciones de tp=1s y S0=5%, Hr valdrá:

𝜆 𝜏
𝐻 =ℎ = = 3,11
𝑘
Al usar el script “script_3_2.m” que calcula Hr para un escalón unitario, se comprueba que cumple las
especificaciones, como el tiempo de pico en 1 segundo.

16
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

En la simulación ocurre lo contrario, al usar una referencia distinta, como el que se pedía en el guion
de prácticas (4V), con un retraso de 1 segundo, el motor real puede presentar problemas si existe
perturbaciones o por la zona muerta, para ello se implementó una simulación con los datos obtenidos
en simulink, comprobándose que se cumple el tiempo de pico y la sobreoscilación.

Nota: Los datos de las simulaciones y del motor real se guardaron en el archivo “3_2_workspace”.

17
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

3.

Primeramente, se establece la matriz Hi, que permitirá corregir los errores, previamente se introducirá
un integrador en el error para obtener 𝜉(𝑡) y una perturbación d(t).

La ecuación del error se relaciona con el esquema de control visto en teoría:

𝑒(𝑡) = 𝜉̇ = 𝑟(𝑡) − 𝑦(𝑡) = 𝑟(𝑡) − 𝐶 · 𝑥(𝑡)

𝑥 (𝑡)
𝑢(𝑡) = −𝐻 · 𝑥(𝑡) − 𝐻 · 𝜉(𝑡) + 𝑑(𝑡) = −[ℎ ℎ ] + ℎ · 𝜉(𝑡) + 𝑑(𝑡)
𝑥 (𝑡)

Para tener en cuenta este error, se incluirá su ecuación al espacio de estados y al conjunto se le
llamará espacio aumentado. Este cambio de variables contará con el subíndice 𝑎 de aumentado:

𝑥̇ (𝑡) 0 𝐴 0 𝑥(𝑡) 𝐵 0
𝑥 ̇ (𝑡) = = 𝐴 · 𝑥 (𝑡) + 𝐵 · 𝑢(𝑡) + · 𝑟(𝑡) = · + · 𝑢(𝑡) + · 𝑟(𝑡)
𝜉̇ 1 −𝐶 0 𝜉(𝑡) 0 1

0 1 0 𝑥 (𝑡) 0
𝑥 (𝑡) 0
= 0 −1/𝜏 0 · + 𝑘/𝜏 · 𝑢(𝑡) + · 𝑟(𝑡)
1
−1 0 0 𝜉(𝑡) 0

𝑢(𝑡) = −[𝐻 𝐻 ] · 𝑥 (𝑡) + 𝑑(𝑡)

Los cálculos se realizarán siguiendo el criterio de Ackerman, primero se toma el polinomio


característico original, el cual incluye los parámetros para que se cumplan las especificaciones, y se
multiplica por un polo de constante de tiempo 𝜏 que será de un valor de 0.01 segundos.
1 1
𝑃 , =𝑃 · 𝑠+ = (𝑠 + 𝜆 𝑠 + 𝜆 ) · 𝑠 + =𝑠 +𝜆 𝑠 +𝜆 𝑠+𝜆
𝜏 𝜏

Se obtienen unos nuevos parámetros 𝜆 con subíndice a y se prosigue con el método de Ackerman de la
siguiente manera:

𝑃 , =𝐴 +𝜆 𝐴 +𝜆 𝐴 +𝜆

Si se desarrolla este último polinomio característico, se puede sacar factor común algunos elementos
que se incluyen en la matriz Wa:

𝑊 = [𝐵 𝐴 · 𝐵 𝐴 ·𝐵 ]

Por último, se obtiene una sola matriz Ha con todos los parámetros h que resultan de interés de la
siguiente forma:

𝐻 = [0 0 1] · 𝑊 ·𝑃 , = [ℎ ℎ ℎ ] = [101,9 16,4 − 310,7]

Estos cálculos resultan más complejos, por lo que estarán en el script “calculo_Hi.m” de Matlab,
además, se incluye la siguiente grafica donde muestra el correcto funcionamiento de Hi.

18
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Para comprobar el control del sistema, se ha realizado una simulación, en donde se cuatro escalones
unitarios ascendentes y descendentes, además de dos perturbaciones de 10 a los 12.5 segundos. En la
siguiente imagen se muestra que el calculo de Hi es correcto, ya que el sistema sigue las referencias
impuestas y rechazar las perturbaciones.

Nota: Los datos de las simulaciones y del motor real se guardaron en el archivo “3_3_workspace”.

19
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

4. Diseño de un predictor de estados

En este apartado se va a suponer que no se dispone de algunas medidas de variables de estado del
motor y se van a diseñar predictores, que serán ensayados en simulación y, si la planificación de la
práctica lo permite, en los motores reales.

1. En primer lugar, se supondrá que no se dispone de medidas de velocidad ni posición angular. Se


diseñará un predictor en bucle abierto (sin usar la realimentación de la salida a través del vector
𝑳), que permita estimar los valores de velocidad y posición angular. Analizar en simulación la
influencia de los errores de modelado (variaciones de ganancia y constante de tiempo de
±𝟏𝟎%).
2. Suponiendo que se puede medir la posición angular (como se está haciendo en la práctica,
integrando la medida de la velocidad), diseñar un predictor en bucle cerrado que permita
estimar la velocidad de giro del motor. Comparar la velocidad real medida por el sensor por la
estimada por el predictor y analizar el efecto de errores de modelado como en el apartado
anterior.
3. Comparar en simulación los resultados alcanzados con el predictor en bucle abierto y el
predictor en bucle cerrado.

Figura 2. Esquema completo de control por realimentación lineal del vector de estado con integrador y predictor

20
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

1.

En primer lugar, se partirá de la simulación siguiente, este diagrama de bloque se encuentra en el


archivo “apartado41simulacion.slx”:

Se observa el bucle State Space, que hará del sistema cuya posición y velocidad se desean estimar.
Justo abajo se sitúa el conjunto estimador, sin realimentación. El valor Hi en la referencia permitirá
amortiguar el efecto de la perturbación de la referencia, pero el de la salida no.

Debido a que el error se introduce en la salida de posición y la velocidad se visualiza antes, el error en
velocidad debe ser nulo, pero el de posición deberá tener un escalón en 8s, resultado de la diferencia
de la posición estimada y el real fruto de la acción de perturbación en la salida.

-Forma de posición y velocidad

21
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

La gráfica de error es la siguiente:

Nota: Los datos de las simulaciones y del motor real se guardaron en el archivo “workspace4_1.mat” y
para el cálculo se realizó un script con el nombre “scrpit41.mat”.

A continuación, se modificarán los valores de constante de tiempo y ganancia. De esta forma, se


modificará el espacio de estados recogido en el bloque State Space.

En primer lugar, vemos el incremento de la constante de tiempo y la ganancia en un 10%. Estas


gráficas presentan la forma de la posición y velocidad estimada superpuestas a la real, y el error de
estimación (respectivamente):

-Forma de posición y velocidad

22
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

-Error de estimación

Nota: Para el cálculo se realizó un script con el nombre “scrpit41mas10.mat”.

Según se observa, el error de modelado introducido hace que las estimaciones suben o bajen de valor,
pero conservan la misma forma que la señal real que se pretende predecir. En cuanto a la velocidad, se
observa como el estimador predice muy bien dicha variable con respecto a la real.

Por último, se analizará la posición. En este caso, el error es mucho mayor que en la estimación de la
velocidad. El estimador siempre subestima a la posición real, ofreciendo un valor no nulo y positivo de
error. Al igual que ocurría con la velocidad, en los transitorios hay un aumento del error (pero siempre
subestimando), que finalmente tiende a un valor constante de error, en este caso, no nulo. Además,
tal y como se dijo al principio, se observa la gran incidencia de la perturbación en la salida de posición,
lo que genera un aumento rápidamente del error.

Ahora, pasaremos a ver el caso de la disminución de la ganancia en un 10%. Las gráficas obtenidas son
las siguientes:

23
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

-Forma de posición y velocidad

-Error de estimación

Nota: Para el cálculo se realizó un script con el nombre “scrpit41menos10.mat”.

Al igual que en el caso anterior (incremento), el error de modelado introducido hace que las
estimaciones suben o bajen de valor, pero conservan la misma forma que la señal real que se pretende
predecir.

24
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Con respecto a la velocidad, en su error, se observa una simetría especular con respecto al observado
en el caso anterior (incremento). En el primer pico de velocidad, el estimador sobreestima dicho valor,
lo que genera un pico negativo en el error. Existe un paralelismo entre el error de velocidad para el
presente caso y el anterior es el mismo, que comparten las mismas características, pero en
contraposición. El error en régimen permanente sigue siendo nulo.

Para la posición, se puede decir que existe cierto paralelismo hasta el instante 8s, pues hasta ese
momento existe simetría especular. El estimador tiende a sobreestimar la posición, lo que provoca
errores negativos. En régimen permanente, el error se estabiliza en un valor negativo no nulo para los
dos primeros estados estacionarios. La perturbación a la salida produce una fuerte disminución del
error (en el instante 8s). El tercer régimen permanente que se alcanza entonces presentar un error
nulo, lo que no ocurría con el caso anterior.

2.

Primero, realizamos un script para el calculo del predictor L y su representación gráfica, como en la
imagen siguiente, en la que se muestra que la dinámica del error se estabiliza en cero más rápido que
el sistema, para ello se implementó el archivo “calculo_L.mat”.

25
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Ahora, una vez calculado el predictor, se partirá de la simulación siguiente, para ello se implementó el
archivo “apartado42teoria.mat”:

Esta operativa permitirá definir una matriz a la referencia que atenúe los efectos de una perturbación
a la entrada. Para ver el efecto del desarrollo expuesto en el modelado del estimador, se ha colocado
en dicho archivo de Simulink una perturbación en forma de escalón (de amplitud 5V y step time de 5s).
Además, se ha colocado otra perturbación a la salida (de amplitud 0.1V y step time de 8s). Esta última
perturbación no será corregida por el estimador, por lo que fallará en la predicción que realizará para
ese momento.

El estimador obtenido se probará en el motor final mediante “apartado42motor.slx”, donde se


sustituye el bloque State Space por el propio del motor. Además, a la salida de del motor se sustituye
la matriz C ([1 0]) por un integrador. Esto se debe a que, en el bloque State Space, C es una matriz
identidad 2x2, por lo que la salida de este es tanto velocidad como posición, debiéndose multiplicar
por C ([1 0] para posición o [0 1] para velocidad) para conseguir la salida que se quiera; pero el bloque
del motor solo proporciona una salida: la velocidad. Cabe destacar, que la referencia en ambos
sistemas es un voltaje (posición). Pero en esta parte nos da error, por lo que no podemos seguir con la
práctica y no conseguimos solucionarlo para verlo en el “modo real” del motor.

Por lo que mostraremos solo las gráficas de simulación:

26
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

-Superposición velocidad estimada y simulación

Se observa como el estimador predice la velocidad del motor de forma correcto (generalmente).

Se observa como los efectos de la perturbación a la referencia son bien estimados.

3.

El presente ejercicio plantea una comparación de los apartados 4.1 y 4.2, dentro del ámbito de
simulación, es decir, dentro del ámbito teórico. Por lo que sí podemos hacer una comparación.

Empezamos con las siguientes gráficas (ya mostradas anteriormente) 

·Para bucle cerrado (apartado 4.2):

-Forma de posición y velocidad

27
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

-Error de estimación

·Para bucle abierto (apartado 4.1):

-Forma de posición y velocidad

28
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

-Error de estimación

Si se comparan las gráficas expuestas, se observan los siguientes aspectos:

- Comparación de velocidad: Se observa cómo, en bucle abierto, la estimación de velocidad presenta


un error nulo y no le afecta la perturbación que se da en la salida. En cambio, para la estimación de la
velocidad en bucle cerrado, en el instante 8s, cuando se aplica dicha perturbación, la estimación deja
de ser buena en un corto periodo de tiempo, registrándose una subestimación por parte del estimador
en cuanto a la velocidad. La forma de onda es muy similar.

- Comparación de posición: En este caso, se observa como ambas señales son prácticamente idénticas.
Los errores son nulos hasta el instante 8s. En bucle cerrado, la perturbación a la salida provoca un pico
de tensión, mientras que en bucle abierto este pico ocurre con pendiente infinita. Esto se traduce en
una forma de los errores distinta. Si embargo, el valor absoluto del error en el régimen permanente
que provoca tal perturbación es el mismo. En bucle abierto, este llega a través de un escalón a dicho
valor, mientras que en bucle cerrado lo hace paulatinamente. Además, se observa que, en bucle
cerrado, dicho error es negativo (sobrestimación) y en bucle abierto es positivo (subestimación).

29
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Apéndice: instalación y puesta en funcionamiento del motor de corriente continua

Componentes del kit

El laboratorio de control de motores de corriente continua ©MarsCrimson Control Board consta de


dos motores de corriente continua Maxon® A-max 22, 1 cable USB, 1 fuente de potencia y un
microcontrolador STM32F4® Discovery®. Uno de los motores se usa como motor (recibe una tensión
en los bornes del rotor y como consecuencia gira) y otro como generador de tensión (al estar ligado al
otro motor a través de un eje, el giro mecánico produce una tensión continua proporcional a la
velocidad de giro, dando lugar a un sensor de velocidad angular denominado tacodinamo o
tacogenerador).

Además la ©MarsCrimson Control Board consta de 3 LEDs de estado, uno rojo y azul indicadores de
que al sistema le está llegando corriente y otro verde que parpadeará cuando la ©MarsCrimson
Control Board se conecte mediante USB al PC. Por último debajo de la ©MarsCrimson Control Board
se encuentra un botón de reset.

Instalación

Los alumnos deberán de bajarse de la página de la asignatura tres archivos imprescindibles para realizar la
práctica y poder comunicarse con el motor. Estos archivos son: ‘MarsCrimson.p’, ‘MC_v01.p’ y ‘Escalones.slx’, tal
y como se puede ver en la siguiente figura. El archivo ‘MarsCrimson.p’ es el archivo donde se implementa la clase
para comunicarse con el motor mediante el puerto serie mientras que el archivo ‘MC_v01.p’ permite
implementar el bloque de Simulink que hace uso de la anterior clase para comunicarse con el motor. Por último,
la función ‘Escalones.slx’ es la plantilla en Simulink donde el alumno podrá comenzar a desarrollar las prácticas.

30
Control de máquinas y accionamientos eléctricos
Grado en Ingeniería Eléctrica
Grupo de Automática, Robótica y Mecatrónica (TEP-197)

Figura A.1. Archivos necesarios para el funcionamiento del motor

Para el correcto funcionamiento del modelo de Simulink, o de cualquier otro modelo desarrollado por
el alumno los dos archivos .p deben de encontrarse dentro del propio directorio de trabajo donde se
encuentre el modelo de Simulink que se esté desarrollando o en cualquier directorio incluido en el
path de Matlab, como por ejemplo el directorio ../MATLAB/

Si el alumno hace doble click sobre el bloque ‘Motor DC’ de la plantilla de Simulink se abrirá un cuadro
de diálogo desde donde podrá configurar diversos parámetros del programa de comunicación con el
motor. Dichos parámetros son:

 Puerto Serie: puerto serie por el cual se está realizando la comunicación con el motor. Por
defecto es el puerto 4, ‘COM4’ En caso de error el alumno deberá de comprobar mediante el
‘Administrado de dispositivos’ de Windows en qué puerto serie se encuentra conectado el
motor.
 Tiempo de muestreo: tiempo de muestreo con el que se realiza la comunicación con el motor.
El valor por defecto es 10 milisegundos. Se recomienda no cambiar este valor.
 Filtro: activando esta casilla se realiza un filtro paso bajo a la salida del motor para filtrar el
ruido de esta y, de esta manera, facilitar el control de este. Se recomienda activar esta casilla
para realizar las prácticas.

Figura A.2. Configuración del bloque Motor DC

31

También podría gustarte