R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD...

52
INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoCEduardo Interiano Cartago, abril 2017 ) ( z PI ) ( ˆ z G O ) ( z motorCD ) ( z R 2 . 1 ) ( z

Transcript of R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD...

Page 1: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

INSTITUTO TECNOLÓGICO DE COSTA RICA

ESCUELA DE INGENIERÍA ELECTRÓNICA

LABORATORIO DE CONTROL AUTOMÁTICO

“Control digital de velocidad de un motor CD con PSoC”

Eduardo Interiano

Cartago, abril 2017

)(zPI

)(ˆ zGO

)(zmotorCD)(zR

2.1

)(z

Page 2: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el
Page 3: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

i

Índice

Capítulo 1: Introducción .............................................................................................................. 1

1.1 Descripción de la planta ................................................................................................... 1

1.2 Descripción del problema................................................................................................. 1

1.3 Objetivos del diseño ......................................................................................................... 2

Capítulo 2: Implementación del controlador ............................................................................... 3

2.1 Arquitectura de control..................................................................................................... 3

2.1 Restricciones de diseño .................................................................................................... 3

2.2 Controlador PI diseñado para la planta ............................................................................ 3

2.3 Controlador PI a implementar en forma discreta ............................................................. 4

2.4 Implementación digital con PSoC 5LP ............................................................................ 4

2.4.1 Condiciones y restricciones del diseño ..................................................................... 5

2.4.2 Selección de las configuraciones para el control ...................................................... 5

2.4.2.1 La base de tiempos ............................................................................................ 6

2.4.2.2 Conversión analógico-digital ............................................................................. 9

2.4.2.3 Múltiples entradas analógicas .......................................................................... 11

2.4.2.4 Salida analógica de control .............................................................................. 13

2.4.2.5 Botones pulsadores .......................................................................................... 16

2.4.2.6 Salidas digitales ............................................................................................... 18

2.4.3 Asignación de las patillas........................................................................................ 19

2.5 Implementación del programa de control....................................................................... 20

2.5.1 Selección del tipo de aritmética .............................................................................. 20

2.5.2 Escalado de las variables de entrada y salida .......................................................... 20

2.5.3 Programación del control digital ............................................................................. 21

2.5.3.1 La rutina de control por interrupciones ........................................................... 21

2.5.4 Implementación del controlador en la placa de desarrollo 050 .............................. 24

Capítulo 3: Análisis de resultados ............................................................................................. 27

3.1 Pruebas de funcionamiento ............................................................................................ 27

3.1.1 Ajuste de la constante KP ....................................................................................... 27

3.1.2 Ajuste de la constante KI ........................................................................................ 27

3.1.3 Pruebas con escalón de entrada............................................................................... 28

3.2 Verificando el cumplimiento de objetivos ..................................................................... 28

Page 4: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

ii

3.2.1 Respuesta ante cambios en la entrada de referencia ............................................... 28

3.2.2 Respuesta ante cambios en la entrada de perturbación ........................................... 29

3.2.3 Respuesta con parámetros desajustados .................................................................. 30

3.3 Verificando la implementación digital ........................................................................... 31

Capítulo 4: Conclusiones ........................................................................................................... 33

Capítulo 5: Recomendaciones ................................................................................................... 34

Capítulo 6: Referencias .............................................................................................................. 35

Apéndice I: Programa completo del regulador PI para PSoC en C .............................................. 36

Apéndice II: Diagramas de bloques del regulador PI en PSoC 5LP............................................. 42

Page 5: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

iii

Índice de figuras

Figura 1.1: Fotografía de la planta hps5130 ................................................................................... 1

Figura 2.1: Estructura del lazo de control mostrando el modelo que se ve desde el regulador ...... 3

Figura 2.2: Base de tiempos e interrupción para el control PI en PSoC 5LP ................................. 6

Figura 2.3: Ventana de configuración del componente Timer del PSoC ........................................ 7

Figura 2.4: Ventana de configuración del reloj de 1MHz para el temporizador ............................ 8

Figura 2.5: Formas de onda de la implementación fija del temporizador (8 bits) .......................... 9

Figura 2.6: Ventana de configuración de la interrupción Isr_Timer .............................................. 9

Figura 2.7: Ventana de configuración del convertidor ADC D- del PSoC ................................ 10

Figura 2.8: Diagrama de la referencia de tensión externa del kit-050 PSoC ................................ 11

Figura 2.9: Etapa de entradas analógicas ...................................................................................... 12

Figura 2.10: Selección del modo de operación 5V o 3.3V de las entradas analógicas y digitales

del PSoC en la placa de desarrollo 050 ......................................................................................... 12

Figura 2.11: Ventana de configuración del selector analógico de dos entradas AMux ................. 13

Figura 2.12: Esquema de la salida analógica de control con VDAC8 y OpAmp ......................... 13

Figura 2.13: Ventana de configuración del convertidor digital-analógico VDAC8 ..................... 14

Figura 2.14: Esquema de la salida analógica de control con DVDAC, PGA y OpAmp .............. 15

Figura 2.15: Ventana de configuración del DVDAC .................................................................... 15

Figura 2.16: Esquema de la salida analógica de control con DVDAC y OpAmp con ganancia 2 16

Figura 2.17: Diagrama de los botones pulsadores para la operación del regulador PI ................ 17

Figura 2.18: Esquema electrónico del pulsador conectado a la patilla P6[1] en la placa de

desarrollo....................................................................................................................................... 17

Figura 2.19: Configuración de las patillas digitales de entrada para los pulsadores .................... 18

Figura 2.20: Diagrama de la conexión del LED4 disponible en la placa de desarrollo 050 ......... 18

Figura 2.21: Ventana de configuración de las patillas digitales de salida .................................... 19

Figura 2.22: Resumen de la asignación de patillas del PSOC en la placa de desarrollo 050 ....... 20

Figura 2.23: Fotografía de la placa de desarrollo PSoC 5LP ejecutando el control PI ................. 24

Figura 3.1: Captura de la pantalla LCD durante el ajuste de la constante proporcional KP ........ 27

Figura 3.2: Captura de la pantalla LCD durante el ajuste de la constante integral KI .................. 28

Figura 3.3: Respuesta de velocidad ante una entrada escalón de 4krpm y comportamiento ante

perturbaciones ............................................................................................................................... 29

Page 6: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

iv

Figura 3.4: Respuesta ante escalón con los parámetros del regulador PI completamente

desajustados y con saturación a 4V de la acción de control. ........................................................ 30

Figura 3.5: Respuesta ante escalón con los parámetros del regulador PI completamente

desajustados. ................................................................................................................................. 31

Figura 3.6: Periodo de la interrupción y duración del algoritmo de control del PI ...................... 32

Page 7: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

v

Prólogo

Este trabajo es el segundo de una serie de ejemplos de diseño, o Diseños de Referencia,

destinados a proporcionar a los estudiantes del curso EL-5409 Laboratorio de Control

Automático ejemplos reales de diseño e implementación de diferentes tipos de controles

electrónicos automáticos.

Estos trabajos ejemplifican todas las facetas del desarrollo e implementación de un proyecto de

control; mostrando así a los estudiantes, cómo se espera que ellos a su vez desarrollen el

proyecto final en dicho curso, haciendo hincapié en la metodología y buenas prácticas de diseño

y construcción.

Con este aporte se espera que los estudiantes realicen mejor sus proyectos y en mucho menos

tiempo; aplicando adecuadamente la teoría, integrando los conocimientos previos y los

particulares del control automático y evitando los errores comunes que se han detectado durante

los años de impartir este curso.

La planta hps5130 ha sido utilizada con éxito durante varios semestres en el Laboratorio de

Control Automático para la realización de los llamados proyectos cortos: “Identificación del

sistema motor hps5130” [3] y “Control de velocidad del sistema motor hps5130” [2]. En estos

proyectos cortos, los estudiantes deben realizar el experimento con el interruptor (4) hacia la

derecha, ver la Figura 1.1, lo cual produce un sistema con un resultado completamente diferente

al mostrado en este documento y por lo tanto no se está dando aquí la solución a ninguno estos

experimentos.

En este segundo ejemplo, se trata de mostrar el diseño de un control PI similar al del ejemplo de

diseño 1 descrito en [3]; pero, en este caso la implementación se realizó en una placa de

desarrollo 050 para PSoC1 5LP de la empresa Cypress. Para una descripción detallada de esta

placa 050, consulte [7].

Como este ejemplo 2 presenta una variante de implementación del control descrito en [3], la

primera parte de cualquier proyecto en el Laboratorio de Control Automático, que consiste en

encontrar los modelos analítico y empírico se ha omitido, así como la parte del diseño del

controlador; pero, éstas pueden revisarse de ser necesario en [3].

1 PSoC: Programmable System on Chip. Sistema híbrido programable contenido en un mismo circuito integrado

Page 8: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el
Page 9: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

1

Capítulo 1: Introducción

1.1 Descripción de la planta

La planta hps5130 dispone de los elementos necesarios para realizar un control de velocidad o un

control de torque de un motor de CD de imán permanente. Los controles se pueden realizar de

forma independiente o como controles anidados.

Los elementos principales de la planta son un motor de CD (2) de 12V y un generador de CD (8)

también de 12V que se encuentran directamente acoplados. Adicionalmente la planta posee un

amplificador de potencia (1), para accionar el motor con señales de ±5V o ±10V; un

tacogenerador con un amplificador de ganancia 2V/1000min-1, como sensor de velocidad angular

(6); un sensor de corriente (7) con su respectivo amplificador de ganancia 10V/A; un codificador

en cuadratura (9), acoplado también al eje del motor-generador e interruptores para crear

electrónicamente una perturbación de carga al generador (5) y para simular un cambio en el

momento de inercia (4).

Figura 1.1: Fotografía de la planta hps5130

1.2 Descripción del problema

El problema consiste en crear un control electrónico que debe ser capaz de mantener la velocidad

constante establecida para sistema; aun ante perturbaciones en la carga del motor; perturbaciones

tales como: cargar, (con una bombilla incandescente), el generador acoplado; o también las

producidas al oponer un torque por fricción al eje de salida del motor.

Este documento se enfoca en la implementación de un control PI digital para la velocidad

angular del motor de CD en una placa de desarrollo basada en PSoC 5LP, las etapas de obtener

los modelos y del diseño del controlador PI pueden revisarse en los capítulos 2 y 3 en [3].

Page 10: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

2

1.3 Objetivos del diseño

Entre los objetivos de control para el diseño se tienen: un sobreimpulso menor al 3%, un tiempo

de estabilización del 2% menor a 150ms y un error de estado estacionario de 0%. El punto de

operación del motor deberá ser de 4krpm y deberá soportar las perturbaciones producidas al

accionar la carga eléctrica acoplada al generador.

Además, el control debe ser implementado de forma digital en un PSoC 5LP para que sirva como

ejemplo de realización de un regulador digital en este tipo de plataforma.

Page 11: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

3

Capítulo 2: Implementación del controlador

2.1 Arquitectura de control

En la Figura 2.1 se ha copiado de nuevo la arquitectura del control descrita en [3] para recordarla

fácilmente al hacer referencia a ésta. El control PI a implementar se encuentra en el camino

directo y actúa directamente sobre la señal de error; pues el diagrama de bloques se ha reducido a

su forma de realimentación unitaria. La entrada y salida del regulador PI deben admitir una

tensión máxima de 5V, ya que la señal de velocidad se ha divido a la mitad con un divisor en su

entrada. Para más detalles revisar [3].

Figura 2.1: Estructura del lazo de control mostrando el modelo que se ve desde el regulador

Con esta factorización el modelo de la planta completa incluyendo al motor puede ser escrito

como:

𝑝𝑙𝑎𝑛𝑡𝑎𝐶𝐷(𝑠) = 1.2 ∗30.86

(𝑠 + 24.6)

2.1 Restricciones de diseño

En la Tabla 2.1 se ha copiado las restricciones de diseño dadas en [3] para tenerlas a mano.

Tabla 2.1: Condiciones establecidas para el control

Condición Tiempo de

estabilización Sobreimpulso

Error de estado

estacionario

Valor 150ms 3% 0%

2.2 Controlador PI diseñado para la planta

La estructura del regulador PI diseñado en [3] se muestra a continuación. Es una forma paralela

ideal expresada en la forma transformada de Laplace.

𝑃𝐼(𝑠) = 𝐾𝑃 +𝐾𝐼

𝑠

1.2R(s) Ω(s)+

-

)(sPI

)(ˆ sGO

)(smotorCD

Page 12: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

4

El regulador PI diseñado en [3], expresado en forma numérica es:

𝑃𝐼(𝑠) = 0.75 +18

𝑠

2.3 Controlador PI a implementar en forma discreta

El controlador en tiempo discreto a implementar es en realidad una aproximación al controlador

en tiempo continuo. La aproximación empleada en [3] para la integral es la backward Euler,

donde se sustituye el integrador en Laplace por su equivalente discreto: 1

𝑠=

𝑇𝑆∗𝑧

(𝑧−1); con TS como

el periodo de muestreo, establecido para este caso en 5ms.

𝑃𝐼(𝑧) =𝑀(𝑧)

𝐸(𝑧)= 𝐾𝑃 +

𝐾𝐼𝑇𝑆𝑧

(𝑧 − 1)

La implementación del regulador será en paralelo, como se ha mantenido en las ecuaciones

anteriores. Cada término se procesa por separado y se separan en:

𝑀𝑃(𝑧) = 𝐾𝑃𝐸(𝑧)

𝑀𝐼(𝑧) =𝐾𝐼𝑇𝑆𝑧

(𝑧 − 1)𝐸(𝑧)

Transformando al dominio del tiempo discreto se obtienen las ecuaciones de diferencia que serán

implementadas, como se muestra en el punto 2.5.3.1, en el sistema PSoC:

𝑚𝑃(𝑘) = 𝐾𝑃𝑒(𝑘)

𝑚𝐼(𝑘) = 𝐾𝐼𝑇𝑆𝑒(𝑘) + 𝑚𝐼(𝑘 − 1)

𝑝𝑖(𝑘) = 𝑚𝑃(𝑘) + 𝑚𝐼(𝑘)

2.4 Implementación digital con PSoC 5LP

Ya que entre los objetivos de control se encuentra definido que el control debe ser implementado

de forma digital en un PSoC 5LP, el aspecto a definir es la estructura del control dentro de las

posibilidades de la placa de evaluación KIT-050 para PSoC 5LP.

Se tiene predefinido y calculado el regulador PI en [3] y allí se ejemplificó con éxito un control

digital PI con un periodo de muestreo de 5ms; implementado en aritmética de punto fijo y con

salida PWM. Dicha implementación fue el resultado principalmente de las limitaciones del

procesador seleccionado, un pequeño microcontrolador de 8 bits. El PSoC 5LP en cambio, tiene

abundantes, flexibles y variados recursos de hardware de entrada y salida, junto a un procesador

de 32 bits ARM Cortex-M3 que corre a una frecuencia de 24MHz; por lo que se tiene una gran

paleta de posibilidades para la implementación. Ya que existe suficiente potencia de cálculo

como para que se pueda producir la salida de control dentro del presupuesto de tiempo de 1/10

de periodo de muestreo, establecido de 5ms, esto es, en menos de 500µs, se escoge entonces,

para este ejemplo, una implementación del regulador PI en aritmética de punto flotante. También

Page 13: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

5

se selecciona una salida por DAC, recurso que no estaba disponible en la implementación

original. En la figura A1 del Apéndice II se muestra el esquema gráfico completo de la

implementación del regulador PI en PSoC 5LP.

2.4.1 Condiciones y restricciones del diseño

Debido a que el PSoC opera a una tensión máxima de 5V se mantendrá el uso de la entrada de

5V al amplificador de la planta y también se utilizará un atenuador para reducir la salida de

velocidad de la planta a la mitad, de tal forma, que los requisitos de entrada y salida para el

sistema PSoC serán de 0 a 5V. Para el ajuste de las constantes del PI se utilizará el

potenciómetro que posee la placa de desarrollo. Ya que se requiere el ajuste de dos constantes,

deberá implementarse una forma de ajuste secuencial utilizando el único potenciómetro

disponible. La Tabla 2.2 resume los requisitos de entrada-salida para el sistema PSoC.

Tabla 2.2: Definición de las entradas y salidas requeridas para el PSoC

Señal Descripción Tipo y rango de operación

Entrada Medición de velocidad angular Analógica de 0 a 5V

Entrada Ajuste de constantes Analógica de 0 a 5V

Salida Señal de tensión para el amplificador

del motor

Analógica, de 0 a 5V

Entrada Pulsador del escalón/guardar Digital, con “pull-up”, activa en bajo

Entrada Pulsador de selección de modo Digital, con “pull-up”, activa en bajo

Salida Escalón para sincronización/pruebas Digital, activa en alto

Salida Tiempo de ejecución del algoritmo

de control.

Digital, activa en alto

Salida LED de estado Digital, activa en alto

Para producir el escalón de velocidad de 4krpm, que se aplicará como señal de referencia al

control, se usará un pulsador normalmente abierto conectado a una entrada digital. Una salida

digital será utilizada para sincronizar el disparo del osciloscopio. Otra salida digital será usada

para producir una señal periódica que sirve para medir el periodo de muestreo y el tiempo de

ejecución del algoritmo de control.

NOTA: Podría haberse utilizado directamente la señal producida por el pulsador para disparar el

osciloscopio; pero, los interruptores mecánicos presentan rebote por lo que la señal de disparo

generada será una copia limpia, con la polaridad correcta y sin rebote de la producida por el

pulsador del escalón.

2.4.2 Selección de las configuraciones para el control

El diseño en PSoC debe tomar en cuenta varios aspectos especiales de la herramienta de

desarrollo llamada Creator, que se instala en una máquina con sistema operativo Windows:

a) Los componentes internos del PSoC se colocan en una o varias hojas. Al momento de

colocarse tienen una configuración por defecto.

Page 14: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

6

b) Los componentes del PSoC, a diferencia de un componente electrónico convencional,

poseen una interfaz programática de aplicación llamada API para todas las funciones del

componente.

c) La configuración por defecto de los componentes puestos de forma gráfica se puede

realizar dentro de una ventana de configuración que se abre al darle doble clic al

componente, por ejemplo la Figura 2.7 para el ADC. También se puede configurar todo

componente a través de su API.

d) Todos los componentes del PSoC tienen una hoja de datos como cualquier componente

electrónico. La hoja de datos contiene una descripción funcional; la descripción de los

modos de operación; descripción de patillas de entradas y salidas; las características

eléctricas de CD y AC; y la descripción de la API del componente. Es imperativo leer la

hoja de datos para poder utilizar adecuadamente cada componente.

e) Algunos componentes se conectan entre sí con líneas analógicas o digitales, como en

cualquier programa de captura de esquemáticos, como en la Figura 2.2; pero, en la

mayoría de los casos, las conexiones entre componentes no son visibles de forma gráfica;

pues, se realizan de manera programática en lenguaje C, a través de variables

compartidas y a veces también por DMA.

f) Todos los componentes deben iniciarse dentro del programa principal en C de previo a su

uso. Para esto, la API de cada componente provee la función

NombredeCadaComponente_Start(), que no recibe parámetros, ni los devuelve.

Vea la etapa de inicio del proceso principal, main, en el Apéndice I.

2.4.2.1 La base de tiempos

Para el control digital se requiere de una base de tiempos adecuada para ejecutar el algoritmo de

control periódicamente, en este caso a 5ms. Es preferible que el algoritmo se ejecute siempre en

el momento indicado por la base de tiempos, sin retardos; por lo que el uso de una interrupción

con baja latencia es recomendable y será utilizada en este caso junto con un temporizador de

hardware de 16 bits, que se alimenta con un reloj de 1MHz derivado del reloj maestro de 24MHz

basado en cristal del kit PSoC 050. En la Figura 2.2 muestra el diagrama esquemático del

temporizador y la Figura 2.4 pueden verse los ajustes descritos para el reloj.

Figura 2.2: Base de tiempos e interrupción para el control PI en PSoC 5LP

Page 15: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

7

En la Figura 2.3se muestra la ventana de configuración del componente Timer. Para producir un

periodo de 5ms a partir del reloj de 1MHz se requiere definir un periodo de 5000 cuentas.

Figura 2.3: Ventana de configuración del componente Timer del PSoC

Page 16: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

8

Figura 2.4: Ventana de configuración del reloj de 1MHz para el temporizador

La generación de la interrupción con el temporizador puede realizarse interna o externamente. En

este caso como ejemplo se utilizó la salida TC de fin del conteo, cuyo diagrama de tiempos en

relación con las otras señales del temporizador se muestra en la Figura 2.5. La señal TC es activa

en alto y dura un ciclo de reloj.

Page 17: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

9

Figura 2.5: Formas de onda de la implementación fija del temporizador (8 bits)

En la Figura 2.6 puede verse la configuración de la interrupción isr_Timer, en la que para no

dejar nada al azar se selecciona el flanco positivo como la señal de disparo de la interrupción.

Figura 2.6: Ventana de configuración de la interrupción Isr_Timer

2.4.2.2 Conversión analógico-digital

Para procesar las entradas analógicas, el PSoC 5LP posee dos convertidores ADC de 12 bits del

tipo de aproximaciones sucesivas (SAR) y un ADC D- de 20 bits. El ADC D- es mucho

Page 18: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

10

más flexible y permite el ajuste de la resolución entre 8 y 20 bits, con una tasa de muestreo

inversamente proporcional a la resolución. Para poder muestrear lo suficientemente rápido, y ya

que no es necesaria una resolución alta, se configurará el ADC a 12 bits a 10000 muestras por

segundo. Para medir más de una entrada con un selector debe usarse el modo Multi-Sample. Esto

también implica que antes de cada lectura del ADC debe de realizase una detención completa de

la conversión, luego la selección de la entrada, en seguida debe reiniciarse la conversión para

finalmente medir el resultado de ésta.

Figura 2.7: Ventana de configuración del convertidor ADC D- del PSoC

Page 19: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

11

Para poder admitir señales de 0-5V, el ADC D- podría utilizar una referencia interna basada

en la tensión de alimentación, con lo que la conversión sería ratimétrica, esto es proporcional a la

tensión de alimentación, en el rango de 0-VDD, lo cual no sería exacto. Para lograr medidas

exactas es preferible utilizar una referencia interna de precisión de 1.024V, con lo cual se podría

medir de manera independiente a la tensión de alimentación del PSoC. Se utilizará por lo tanto la

referencia interna de 1.024V, con la opción de un multiplicador por 6 lo que hará que el ADC

pueda admitir tensiones entre 0 y 6.144V. Además se hará uso de la opción que filtra la

referencia interna con un condensador externo para evitar el ruido; lo que en la placa de

desarrollo 050 implica la selección de la patilla P3.2 para este fin. Como se muestra en la Figura

2.8, un extracto del diagrama esquemático de la placa de desarrollo 050 de Cypress, solo la

patilla P3[2] está conectada a través de R37 al filtro formado por los condensadores C28 y C32.

Ninguna de las resistencias R34 y R73 se encuentran soldadas en la placa; por lo que la opción

de utilizar la patilla P0[3] para salida del filtro no es aplicable en este caso.

Figura 2.8: Diagrama de la referencia de tensión externa del kit-050 PSoC

Con 12 bits de resolución en el ADC, el error de cuantificación, que es equivalente a ±1/2 LSB,

será menor ±1rpm, lo cual a la velocidad de operación de 4krpm representará únicamente un

error de ±0.016%.

2.4.2.3 Múltiples entradas analógicas

Para la operación del regulador PI se requiere medir dos entradas analógicas: a) La

realimentación de velocidad, para el control y b) El valor de ajuste del potenciómetro, para

definir las constantes de operación KP y KI en el modo de calibración. Se utilizará entonces un

selector analógico AMux configurado para dos entradas. Como se muestra en la Figura 2.9 en la

entrada 0 del selector analógico existe un circuito acondicionador de señal que consiste en un

divisor de tensión, que sirve para atenuar la señal de realimentación de velocidad al 50% y que

en conjunto con el condensador de 1µF forma un filtro antisolapamiento con constante de tiempo

de 3.4ms, para disminuir el ruido de las escobillas del tacómetro que mide la velocidad angular.

NOTA: Los componentes en color azul son externos al circuito integrado PSoC. Algunos, como

el potenciómetro R56, ya se encuentran soldados y conectados en la placa de desarrollo, los otros

deben se añadidos, en este caso sobre la pequeña placa de prototipos incluida en la placa de

desarrollo.

Page 20: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

12

Figura 2.9: Etapa de entradas analógicas

Para seleccionar el modo de operación de las entradas analógicas y digitales del PSoC 5LP en la

placa de desarrollo 050 se dispone de dos selectores tipo puente. Para operación a 5V ambos

tienen que colocarse como lo indica la primera línea de la nota en la Figura 2.10, lo que por

cierto es la posición de fábrica en la que se encuentran los selectores en una placa nueva.

Figura 2.10: Selección del modo de operación 5V o 3.3V de las entradas analógicas y digitales del

PSoC en la placa de desarrollo 050

En la Figura 2.11 se muestra la ventana de configuración del componente selector analógico

llamado AMux. Las opciones seleccionadas fueron escogidas son las recomendadas en la hoja de

datos para este caso de selección exclusiva de una de las dos entradas, ambas en modo común.

Page 21: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

13

Figura 2.11: Ventana de configuración del selector analógico de dos entradas AMux

2.4.2.4 Salida analógica de control

Para la salida de la señal de control se puede usar un convertidor digital a analógico de 8 bits,

llamado VDAC8. La impedancia de salida de este circuito es muy alta; por lo que se separa y

amplifica con un amplificador operacional con ganancia unitaria, como se muestra en la Figura

2.12.

Figura 2.12: Esquema de la salida analógica de control con VDAC8 y OpAmp

El VDAC8 se puede configurar para una ganancia de 16mV/bit, como se muestra en la Figura

2.13 con lo cual, su salida máxima será de 4.08V la que claramente es inferior a 5V. Como el

escalón de prueba para la entrada de referencia del controlador PI está limitado a 4V, hay que

garantizar que la acción de control no superará los 4V en ningún momento, incluyendo durante

las perturbaciones. En este caso, con la selección adecuada de los parámetros del controlador PI

está garantizado que la acción de control no superará los 4V. Como puede verse en la Figura 3.3

donde se aprecia la respuesta del sistema ante el escalón de 4krpm y ante perturbaciones, la

acción de control no alcanza los 4V aun ante perturbaciones.

Page 22: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

14

Figura 2.13: Ventana de configuración del convertidor digital-analógico VDAC8

Si se desea producir una salida más cercana a los 5V, se puede usar un DVDAC de 9 bits, que

posee una ganancia de 8mV/bit y su salida se puede amplificar por dos con un amplificador de

ganancia programable o PGA para lograr una ganancia de 16mV/bit. Como la impedancia de

salida de este amplificador programable también es muy alta, debe separarse y amplificarse con

un amplificador operacional con ganancia unitaria, como se muestra en la Figura 2.14. El

DVDAC usa un truco llamado dither para, usando un VDAC8 internamente, producir una salida

con una resolución de hasta 12 bits. Para eliminar el ruido inherente al dither, se recomienda

colocar un pequeño condensador externo en la salida del DVDAC. En el programa final,

disponible en [8] se utilizó la configuración de la Figura 2.14 con lo que se pudo producir una

acción de control de 4.8V máximo, lo cual es más que suficiente en este caso. Las pruebas

además demostraron que el condensador no es necesario para esta aplicación; ya que el motor de

CD se comporta como un filtro pasa bajas, ejerciendo de hecho la función de filtrado.

En la Figura 2.15 se muestra la configuración de DVDAC para una resolución de 9 bits y una

ganancia de 8mV/bit. El bloque encapsula y esconde todas las operaciones necesarias para hacer

el dithering, simplificando grandemente el trabajo del ingeniero.

Page 23: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

15

Figura 2.14: Esquema de la salida analógica de control con DVDAC, PGA y OpAmp

Figura 2.15: Ventana de configuración del DVDAC

Si se quiere ahorrar el PGA, éste se puede suprimir; pero, entonces el amplificador operacional

de salida debe tener ganancia 2 ajustada por dos resistencias externas, como se muestra en la

Page 24: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

16

Figura 2.16. Como no hay escasez de recursos en este diseño, esta opción no se utilizó; pues

implicaba el uso de dos resistencias externas y con el PGA esto no es necesario.

Si se desea generar una señal analógica de salida más grande o bipolar, por ejemplo de ±10V, el

estándar en sistemas de control industriales, se puede utilizar un amplificador operacional

externo que admita alimentaciones de unos ±15V; pero, este no es el caso.

Figura 2.16: Esquema de la salida analógica de control con DVDAC y OpAmp con ganancia 2

2.4.2.5 Botones pulsadores

Se requieren dos entradas, una para el botón pulsador de selección de modo de operación

(DISPLAY_SELECT) y otro para el botón de doble función escalón/guardar (START). En la

Figura 2.17 se muestra el diagrama electrónico requerido para estas entradas activas en bajo.

Page 25: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

17

Figura 2.17: Diagrama de los botones pulsadores para la operación del regulador PI

La placa de desarrollo 050 contiene dos pulsadores de propósito general, uno conectado a la

patilla P15[5] y otro en la patilla P6[1]. La Figura 2.18 muestra un recorte del esquemático de la

placa de desarrollo 050 donde puede observarse la conexión del pulsador conectado a la patilla

P6[1]. El pulsador conectado a la patilla P15[5] está conectado de idéntica forma. Para garantizar

un estado en la patilla cuando el pulsador no se encuentra presionado se requiere una resistencia

de pull-up que no se encuentra presente en la placa de desarrollo.

Figura 2.18: Esquema electrónico del pulsador conectado a la patilla P6[1] en la placa de desarrollo

Se podrían colocar resistencias externas de pull-up, como se describió en el punto 2.4.2.2 para el

acondicionador de señal del convertidor ADC; pero, existe una forma más fácil, que se muestra

en la Figura 2.19, donde puede verse la configuración de la estructura de las patillas digitales de

entrada. Al seleccionar el modo Resistive pull-up, se conectará una resistencia interna desde la

patilla a la tensión de alimentación VDD, lo cual garantizará el estado alto en la entrada digital.

Page 26: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

18

Figura 2.19: Configuración de las patillas digitales de entrada para los pulsadores

2.4.2.6 Salidas digitales

Se necesitan salidas digitales para mediciones de tiempo de ejecución del algoritmo de control y

para sincronizar el disparo del osciloscopio al momento de capturar las formas de onda de la

respuesta ante escalón. También se requiere una salida digital para activar el LED4 que parpadea

cuando el sistema se encuentra listo para recibir una entrada escalón a través del pulsador

START. En la Figura 2.20 se muestra el esquemático del LED4 conectado a la patilla P6[3] en la

placa de desarrollo 050. Las otras dos salidas digitales y los LED asociados siguen la misma

forma, poseen una resistencia limitadora de 330Ω y se activan en alto.

Figura 2.20: Diagrama de la conexión del LED4 disponible en la placa de desarrollo 050

La Figura 2.21 muestra un ejemplo de la configuración de las patillas digitales de salida como

Strong drive, de tal forma que puedan suplir corriente de salida para activar los LED.

Page 27: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

19

Figura 2.21: Ventana de configuración de las patillas digitales de salida

2.4.3 Asignación de las patillas

Todos los dispositivos PSoC poseen múltiples funciones en cada una de las patillas, al asignar

una función a una de ellas, las otras funciones ya no estarán disponibles. La disponibilidad de las

funciones no es totalmente ortogonal; esto es, hay algunas patillas que tienen funciones

especializadas y a la hora de asignar las patillas hay que comenzar por las que tienen más

restricciones, en este caso las patillas para salidas y entradas analógicas de los amplificadores

operacionales. También, la placa del kit 050 tiene algunas patillas con usos predefinidos, por

ejemplo: las del manejo del LCD; la entrada del potenciómetro; la salida para el filtro de la

referencia interna de tensión del ADC; los dos pulsadores de propósito general; las salidas para

un par de LED; las utilizadas por puerto de comunicación USB y otras más. Para la asignación

de cualquier patilla a una función, siempre es conveniente revisar con detenimiento la

documentación de la placa de desarrollo [4]. La Figura 2.22 muestra el resumen de la asignación

de patillas del regulador PI en PSoC 5LP sobre la placa de desarrollo 050 de Cypress.

Page 28: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

20

Figura 2.22: Resumen de la asignación de patillas del PSOC en la placa de desarrollo 050

2.5 Implementación del programa de control

2.5.1 Selección del tipo de aritmética

Con la restricción de producir la acción de control en menos de 500s, en cualquier

microcontrolador de bajo rendimiento no se intentaría utilizar aritmética de punto flotante, sería

demasiado lento; pero, en este caso, se tiene un procesador de 32 bits ARM Cortex-M3 que

ejecuta a 24MHz por lo que los cálculos se realizarán en aritmética de punto flotante.

2.5.2 Escalado de las variables de entrada y salida

Con El potenciómetro se introducirán al sistema las constantes KP y KI. Loa valores máximos

que se van a representar con el potenciómetro totalmente girado en el sentido de las manecillas

del reloj son: KP = 1 y KI = 40; por lo que 3333 cuentas del ADC será equivalentes a 1 para KP y

a 40 para KI, en tiempo continuo, y 0.2 en tiempo discreto a 5ms. En realidad, debido a pequeñas

pérdidas de tensión al alimentar la placa desde un puerto USB, el valor máximo que alcanza la

salida del potenciómetro es de unos 4.8V por lo que se satura en 3170 cuentas el valor para las

constantes.

Por otro lado, el valor de la velocidad se mide directamente en voltios con una relación de 1V =

1krpm. Para esto se emplean funciones de la API del ADC con valores corregidos, al iniciar el

ADC, para el desplazamiento del cero y la pendiente o ganancia.

Para escalar la salida se tiene que cada bit representa 16mV y simplemente se debe dividir el

valor de tensión a producir entre 0.016 para obtener el valor entero que se debe escribir al DAC8.

En realidad, se multiplica por el recíproco de 16mV, o sea 62.5, luego se convierte a entero y se

satura a un valor entre 0 y 255.

Page 29: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

21

2.5.3 Programación del control digital

Para la simulación y programación del control digital se utilizó el programa gratuito “Creator

v4”; que se puede descargar desde la página de www.cypress.com [6] fabricante del sistema de

desarrollo utilizado. Una limitación de este programa gratuito es que funciona en Windows. El

programa completo se encuentra en el apéndice I.

El programa principal consta de varias partes:

a) Una sección de definiciones de parámetros, constantes y variables

b) La definición del proceso de interrupciones que ejecuta el algoritmo de control y que

posee varias partes que se compilan condicionalmente dependiendo de si están activados

algunos componentes de hardware o no en las hojas de esquemáticos.

c) Un procedimiento para hacer que un proceso se ejecute una sola vez por cada presión

de uno de los pulsadores.

d) Un proceso principal que consta de dos partes: La iniciación condicional de todos los

componentes de hardware activos en las páginas de diagramas y un lazo infinito, que en

este caso es el programa principal basado en una máquina de estados con una sección de

comunicaciones por USB que no es empleada a fondo en este prototipo.

2.5.3.1 La rutina de control por interrupciones

La rutina encargada de realizar el algoritmo de control tiene varias partes y se ha optimizado para

una duración mínima:

a) Elimina el rebote de los pulsadores pasando cada señal por un filtro pasa bajas con una

constante de tiempo de 10ms (dos interrupciones de 5ms). Se realiza la operación AND

sobre dos muestras consecutivas separadas por dos periodos de muestreo; por lo tanto,

solamente señales con una duración en alto de 10ms o más atraviesan el filtro,

eliminando así los rebotes del pulsador. Se muestra a continuación la sección para el

pulsador START.

/* Desplazamiento en memoria y lectura de la entrada */

step_2 = step_1;

step_1 = !(CyPins_ReadPin(START_0));

step = (step_1 && step_2);

/* La salida se activa solo si estuvo en alto τ > T */

b) Señaliza la activación del pulsador START para iniciar el escalón y sincronizar el

disparo del osciloscopio.

Page 30: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

22

/* Señaliza el escalón para sincronizar */

if ( (step && idle) == true)

CyPins_SetPin(STEP_LED_0);

else

CyPins_ClearPin(STEP_LED_0);

c) Lectura de la realimentación de velocidad y cálculo del error.

/* Lee la velocidad actual en krpm */

/* Lee el canal de velocidad */

AMux_Select(SPEED_CHANNEL);

data = ADC_Read16();

/* Convierte las cuentas a voltios 1V = 1krpm */

yk = ADC_CountsTo_Volts((int32) data);

/* Establece el escalón e inicia el cálculo del PI */

if (step == true) {

ek = REFERENCE - yk; // Siga la referencia

}

else {

ek = 0 - yk; // Detenga el motor

ik = 0;

}

d) Procesamiento del algoritmo PI en paralelo, junto con escalado temporal de las

variables para minimizar el tiempo de ejecución.

/* Cálculo del algoritmo de control */

/* Parte integral, el término más a la derecha es ik_1 */

ik = KI*ek + ik;

/* Acción total de control PI */

mk = KP*ek + ik;

d) Verificación de límites para la acción de control y envío por el DVDAC.

/* No puede haber valores negativos. El máximo es 300 */

/* Escala mk al rango del DVDAC 16mV/bit */

vdac = (int16) (mk*VDAC_FACTOR);

/* Satura el valor del DVDAC */

Page 31: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

23

if (vdac > VDAC_MAX) {

vdac = VDAC_MAX;

}

else if (vdac < 0) {

vdac = 0;

}

/* Escribe el valor saturado al DVDAC */

DVDAC_SetValue( (uint8) vdac);

e) Rutina “anti-windup” por saturación del término integral para el próximo ciclo.

/* Satura el término integral para el siguiente ciclo */

if (ik > MAXINTEGRAL)

ik = MAXINTEGRAL;

else

if (ik < -MAXINTEGRAL) ik = -MAXINTEGRAL;

f) Durante la fase de pruebas, también se prende y apaga, con el periodo de la

interrupción, una señal, llamada ISR_LED, testigo de la duración del algoritmo de

control.

/* Indica inicio del proceso con la lectura de la velocidad */

CyPins_SetPin(ISR_LED_0);

{

/* Proceso del algoritmo PI descrito arriba */

}

/* Fin del proceso después de sacar el valor del DAC */

CyPins_ClearPin(ISR_LED_0);

Page 32: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

24

2.5.4 Implementación del controlador en la placa de desarrollo 050

Una descripción completa y detallada de la placa de desarrollo 050 se encuentra en [7].

Figura 2.23: Fotografía de la placa de desarrollo PSoC 5LP ejecutando el control PI

En la fotografía de la placa de desarrollo mostrada en la Figura 2.23 se puede observar la pantalla

LCD con el mensaje de bienvenida al energizar el sistema y los valores pre-programados para las

constantes. Con estos valores el sistema no trabaja adecuadamente, se han colocado así para

forzar a que deban ser ajustados con los valores adecuados para obtener un funcionamiento

correcto, vea en la Figura 3.5 la respuesta que se obtiene con estos parámetros.

También, en la fotografía de la Figura 2.23, pueden verse las terminales para los puntos de

prueba de las señales importantes en el circuito: VOUT, SPEED, GND; los pulsadores SELECT

y SAVE/START, y el potenciómetro para ajustes, POT.

Page 33: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

25

Este modo inicial se reconoce, además del mensaje en pantalla, porque el LED4 parpadea varias

veces por segundo, indicando que se encuentra en espera de

a) Un cambio de modo de operación al pulsar el botón SELECT para entrar al modo de

configuración de constantes; o

b) El inicio de un experimento con el escalón de entrada al presionar el botón START.

Page 34: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el
Page 35: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

27

Capítulo 3: Análisis de resultados

3.1 Pruebas de funcionamiento

La Tabla 3.1 muestra los valores de las constantes a ajustar. Como se trata de ejemplificar el

control digital, usaremos las constantes escaladas con el periodo de muestreo TS = 5ms. La

constante proporcional no se modifica; pues no depende de TS.

Tabla 3.1: Parámetros y escalas para los ajuste de las constantes del regulador PI

Parámetro KP KI

Límites para los parámetros en t-continuo 0 - 1 0 - 40

Escala 4.65V/1 4.65V/40

Valores del PI en tiempo continuo 0.75 18

Valores del PI en tiempo discreto @ 5ms 0.75 0.09

Los valores que se ajustan para las constantes del PI son directamente legibles en las unidades

utilizadas para el control digital y la constante KI ha sido escalada con un periodo de muestreo

de 5ms. Al usar un convertidor ADC de 12 bits, el error de cuantificación es aproximadamente

de ±0.6mV; que equivale en el ajuste de la constante KP entre 0-1 a una variación de ±0.0001 y

en el ajuste de KI entre 0-0.2 a una variación de ±0.000025 por lo que el ajuste de los valores se

puede lograr con facilidad hasta en el cuarto decimal. Además el controlador PI es bastante

robusto y pequeñas desviaciones entre los valores ajustados y los valores calculados no

influencian mucho el resultado del control.

3.1.1 Ajuste de la constante KP

Para ajustar las constantes, estando en el modo inicial, mostrado en la Figura 2.23, con el LED4

parpadeando, se debe presionar el pulsador SELECT. La pantalla LCD mostrará ahora una

imagen como la de la Figura 3.1. El valor mostrado a la derecha del símbolo es el valor actual

del parámetro, el valor mostrado a la izquierda es el valor futuro, el cual se puede ajustar

libremente con el potenciómetro POT. Este valor será copiado a la derecha, si se presiona el

botón SAVE, con lo que quedará guardado para el resto de la sesión y hasta que a) Se dé un

RESET a la placa; o b) Se modifique utilizando este procedimiento descrito.

Figura 3.1: Captura de la pantalla LCD durante el ajuste de la constante proporcional KP

3.1.2 Ajuste de la constante KI

La función del pulsador SELECT es secuencial y si, estando en el modo de ajuste de la constante

proporcional, se presiona una vez más, se entra al modo de configuración de la constante integral

Page 36: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

28

KI, como se muestra en la Figura 3.2. El proceso de ajuste es el mismo que se describió para la

constante proporcional KP, solo que los límites están ajustados para este caso particular.

Figura 3.2: Captura de la pantalla LCD durante el ajuste de la constante integral KI

Presionando una vez más el pulsador SELECT, se regresa al modo principal de operación, desde

el cual se pueden realizar los experimentos de aplicar un escalón de entrada de 4krpm al sistema

cada vez que se presiona el pulsador START.

3.1.3 Pruebas con escalón de entrada

Una vez ajustadas las constantes se realizaron las pruebas de operación para obtener las curvas

de funcionamiento ante un escalón de 4krpm en la entrada de referencia, de tal forma que se

pudiesen verificar los objetivos del control tales como: el tiempo de estabilización, el

sobreimpulso y el error de estado estacionario. Además se sometió el sistema a perturbaciones al

encender la bombilla y luego apagarla y se graficó la respuesta. También con ayuda del

osciloscopio se midió el periodo de muestreo y el tiempo de ejecución del algoritmo de control.

En el siguiente capítulo se procede a analizar los resultados obtenidos en las pruebas. Todo esto

se describe con detalle en el siguiente punto.

3.2 Verificando el cumplimiento de objetivos

Se verifica en esta parte el cumplimiento de las especificaciones de control establecidas por

medio de pruebas que consisten en cambios en la entrada y perturbaciones de carga. Se realizan

y registran mediciones de las variables involucradas con ayuda de un osciloscopio digital.

3.2.1 Respuesta ante cambios en la entrada de referencia

Se muestra en la Figura 3.3 la captura de la respuesta de velocidad ante un escalón equivalente a

4krmp en la entrada de referencia. El valor medido corresponde a la entrada al regulador, que

está atenuada al 50%; por lo que la escala es de 1V/krpm. Esta señal se mide en la patilla llamada

VOUT en el diagrama de la figura A1 del Apéndice II.

El escalón de entrada alcanza los 5V; este valor no corresponde realmente a la señal de

referencia; pues este escalón es una señal digital que lo que define es el instante en el cual se

aplica la referencia interna de 4krpm al sistema y sirve para sincronizar la captura en el

osciloscopio. Esta señal es medida en la patilla llamada STEP_LED en el diagrama de la figura

A1 del Apéndice II.

Page 37: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

29

Figura 3.3: Respuesta de velocidad ante una entrada escalón de 4krpm y comportamiento ante

perturbaciones

Puede observarse en la gráfica que ante un escalón en la entrada de referencia, equivalente a

4krpm, el tiempo de estabilización, medido con ayuda de los cursores, es de 150ms y que no hay

sobreimpulso apreciable, ni error de estado estacionario; confirmando así el cumplimiento de los

objetivos de control establecidos. La curva de velocidad alcanza los 4V, que equivale a 4krpm.

También se puede observar la acción de control cuya salida se encuentra por debajo de los 4V en

todo momento. Esta señal presenta un salto en sincronía con la entrada escalón para luego

alcanzar un valor de estado estacionario cuando el motor alcanza las 4krpm. Esta señal se mide

en la patilla llamada SPEED, conectada al divisor de tensión formado por R_1 y R_2 en el

diagrama de la figura A1 del Apéndice II.

3.2.2 Respuesta ante cambios en la entrada de perturbación

Puede apreciarse al centro de la imagen de la Figura 3.3, la respuesta del sistema ante las

perturbaciones producidas al encender la bombilla conectada al generador, al aplicar una carga al

motor y al eliminar la carga. Al aplicar la perturbación, que se manifiesta como una perturbación

de entrada a la planta, la velocidad disminuye aproximadamente unas 500rpm. La acción de

control aumenta y el motor recupera la velocidad a su valor nominal al cabo de unos 150ms,

eliminando efectivamente el efecto de la perturbación. La última prueba realizada consistió en

apagar la bombilla, la acción de control disminuye hasta el valor antes de la perturbación y se

observa, a la salida, el fenómeno contrario a la aplicación de perturbación: el motor aumenta

momentáneamente su velocidad unas 500rpm, para alcanzar la velocidad nominal de 4kprm al

cabo de otros 150ms.

Page 38: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

30

3.2.3 Respuesta con parámetros desajustados

En la Figura 3.4 se muestra, para contrastar con la respuesta con el regulador bien ajustado, la

respuesta del sistema con los parámetros del regulador PI totalmente desajustados. La respuesta

de velocidad del sistema está subamortiguada. El sobreimpulso es de aproximadamente el 25%,

limitado probablemente por el rango de entrada del ADC; pero, la salida alcanza el valor final

deseado, gracias a la acción de la componente integral del regulador. El tiempo de estabilización

es aproximadamente el doble del tiempo que con el regulador ajustado correctamente, unos

300ms. La acción de control se ha saturado a propósito a 4V para mostrar que esto podría ocurrir

de no haber tomado las precauciones necesarias con la salida del convertidor DAC, ver la etapa

de salida mostrada en la Figura 2.12. La Figura 3.5 es similar, tiene los parámetros desajustados;

pero, en esta no se ha alcanzado la saturación del DAC; pues, utiliza la etapa de salida mostrada

en la Figura 2.16, la cual satura en 4.8V.

Figura 3.4: Respuesta ante escalón con los parámetros del regulador PI completamente

desajustados y con saturación a 4V de la acción de control.

Page 39: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

31

Figura 3.5: Respuesta ante escalón con los parámetros del regulador PI completamente

desajustados.

3.3 Verificando la implementación digital

Para verificar la operación de la implementación del algoritmo de control digital se recurre a la

captura de las señales digitales y con ayuda del osciloscopio se miden los tiempos para

comprobar que cumplen con las especificaciones de periodo de muestreo y duración del

algoritmo de control.

La Figura 3.6 muestra la captura de la señal testigo, llamada ISR_LED en el diagrama de la

figura A1 del Apéndice II, que se enciende al iniciar al algoritmo de control y se apaga al

finalizar éste. De la periodicidad de la onda se puede determinar el periodo de muestreo, que se

encuentra en 5ms y del tiempo en alto se determina la duración del algoritmo de control. El

tiempo en alto representa la duración, que se encuentra en 164s, por debajo del presupuesto de

tiempo de 500s, una décima del periodo de muestreo; y por lo tanto cumple con esta restricción.

Page 40: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

32

Figura 3.6: Periodo de la interrupción y duración del algoritmo de control del PI

Page 41: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

33

Capítulo 4: Conclusiones

Como se analizó en la sección de resultados, se cumplieron los objetivos del control a nivel de

sistema: a) Tiempo de estabilización inferior a 150ms; b) Sobreimpulso inferior al 3%; c) Cero

error de estado estacionario; y d) Eliminación de las perturbaciones.

También se cumplió con los criterios utilizados para el control digital: a) Periodo de muestreo de

5ms; b) Duración del algoritmo de control inferior a una décima del periodo de muestreo, en este

caso, aproximadamente 164µs.

Por lo tanto, para esta aplicación del control de velocidad constante de un motor de CD de imán

permanente de la planta hps5130, se considera acertada y demostrada la realización de un control

digital con PSoC 5LP en la placa de desarrollo 050 de Cypress.

Page 42: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

34

Capítulo 5: Recomendaciones

Para lograr buenos resultados del control digital, se requiere:

a) Obtener un modelo numérico suficientemente aproximado a la dinámica de la planta para que

el diseño posterior del controlador tenga validez.

b) Realizar un diseño del control realista; esto es, no exigiendo condiciones imposibles de

cumplir, y verificar en simulación los resultados de la salida y la acción de control para estar

seguros de que el control y el sistema físico podrán responder adecuadamente.

c) Escoger un tiempo de muestreo adecuado a la dinámica de la planta para garantizar que el

sistema tendrá tiempo suficiente para reaccionar ante los cambios en la acción de control y que

ésta no va a presentar exigencias de cambio exageradas al sistema.

d) Al implementar el sistema de control digital tomar las precauciones necesarias para evitar el

ruido y el solapamiento de la señal, lo que implica:

i) Una buena alimentación sin ruido para el PSoC que incluye: regulación y filtrado de

VCC; buena distribución de tierras, con separación en la placa de las tierras analógica y

digital con unión en un único punto; múltiples condensadores de desacoplo entre VCC y

tierra lo más cerca de las entradas de alimentación de chip y finalmente filtrado de la

referencia interna de tensión para el convertidor ADC.

ii) Un acondicionamiento de las señales de entrada al convertidor ADC que mide las

variables, con un filtro pasabajas antisolapamiento que tenga una frecuencia de corte una

década más alta que el ancho de banda del sistema de control.

e) Para que la implementación digital del algoritmo de control sea equivalente al control

continuo, el algoritmo de control debe ejecutarse en tiempo real dentro de una interrupción

periódica que cumpla con:

i) El periodo de muestreo definido durante el diseño, con una duración temporizada

estrictamente, sin variaciones de tiempo.

ii) Una programación optimizada para su ejecución en menos de una décima del tiempo

de muestreo. En este caso, debido a la gran potencia de cálculo del PSoC 5LP, se pudo

utilizar con éxito aritmética de punto flotante.

Page 43: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

35

Capítulo 6: Referencias

[1] Interiano, E., agosto 2013, “Identificación del sistema motor hps5130”. En línea, disponible

en: http://www.ie.tec.ac.cr/einteriano/Control/Laboratorio/ProyectosCortos

[2] Interiano, E., abril 2017, “Control de velocidad del sistema motor hps5130”. En línea,

disponible en: http://www.ie.tec.ac.cr/einteriano/Control/Laboratorio/ProyectosCortos

[3] Interiano, E., febrero 2015, “Control Digital de un Servo de Velocidad”. En línea, disponible

en: http://www.ie.tec.ac.cr/einteriano/Control/Clase

[4] CY8CKIT-050 PSoC® 5LP Development Kit. En línea, disponible en:

http://www.cypress.com/documentation/development-kitsboards/cy8ckit-050-psoc-5lp-

development-kit , consultado en abril 2017.

[5] PSoC® 5LP: CY8C58LP Family Datasheet: Programmable System-on-Chip (PSoC®). En

línea, disponible en: http://www.cypress.com/documentation/datasheets/psoc-5lp-cy8c58lp-

family-datasheet-programmable-system-chip-psoc, consultada en abril 2017.

[6] PSoC® Creator™ Integrated Design Environment (IDE). En línea, disponible en:

http://www.cypress.com/products/psoc-creator-integrated-design-environment-ide

[7] “CY8CKIT-050 Kit Guide.pdf”. En línea, disponible en:

http://www.cypress.com/file/45276/download

[8] Ejemplo “MotorControl.cywk.zip”. En línea, disponible en

www.ie.tec.ac.cr/einteriano/Control/Laboratorio

Page 44: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

36

Apéndice I: Programa completo del regulador PI para PSoC en C

/* =============================================

* PI motor control

* Copyright Eduardo Interiano, 2017

* All Rights Reserved

* UNPUBLISHED, LICENSED SOFTWARE.

*

* PROPRIETARY INFORMATION

* WHICH IS THE PROPERTY OF Eduardo Interiano.

*

* Remember to set the heap to 0x200 minimum in

* SYSTEM tab for floating point number printing

* =============================================

*/

#include "project.h"

#include "stdbool.h"

#include "stdio.h"

#include "usbuartio.h"

/* Global constants */

#define PWM_MAX 499 // PWM 100% (499) with Tpwm = 500us @ 1MHz (500 counts)

#define PWM_FACTOR 100 // 100 counts/volt with Tpwm = 500us @ 1MHz

#define SPEED_CHANNEL 0 // Mux input for speed feedback

#define POT_CHANNEL 1 // Mux input for PI constants setting

#define VDAC_FACTOR 62.5 // 1bit/0.016mV

#define VDAC_MAX 300 // 4.8V max. with DVDAC 9 bits and PGA x2

#define POT_CONST 3100 // Max. counts to 100%

/* PI algorithm constants */

#define REFERENCE 4 // 4krpm @ 1V por krpm

#define MAXINTEGRAL 4.7 // Limits the integral part to 4.7V

#define DEB_COUNTS 2 // 5ms counts for debounce

#define TS_FACTOR 1 // 5ms counts for Ts = 5ms

/* Global variables */

char displayStr[20] = {'\0'};

/* isr global variables */

volatile bool select_1 = false; // Memory variables for DISPLAY_SELECT button debouncing

volatile bool select_2 = false;

volatile bool Select = false; // Debounced DISPLAY_SELECT button state

volatile bool step_1 = false; // Memory variables for START/SAVE button debouncing

volatile bool step_2 = false;

volatile bool step = false; // Debounced START/SAVE button state

volatile int8 debounce = DEB_COUNTS; // Counter for debouncing when Timer runs faster than 10ms

volatile int8 factor = TS_FACTOR; // Counter for Ts = 5ms when Timer runs faster than 5ms

/* Buttons variables */

bool idle = true; // Signals when step input can be applied

bool run = false; // Clock to advance Display state machine

bool save = false; // flag to preserve PI constants adjustment

/* Button sync enumerated type */

enum DebounceState {WAIT, RUN, PRESS};

/* PI algorithm global variables */

float KP = 0.21; // Proportional default constant

float KI = 0.158; // Integral default constant @ 5ms

volatile float ik = 0; // Integral action and memory

/* Interrupt prototype */

CY_ISR_PROTO(isr_Timer_Handler);

Page 45: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

37

// Interrupt handler declaration

CY_ISR(isr_Timer_Handler)

{

/* ISR PI algoritm local variables */

float yk = 0; // speed feedback

float ek = 0; // speed error

float mk = 0; // total control action

int16 vdac = 0; // For VDAC output

int16 data = 0; // For ADC reading

#if (PWM_Resolution)

int16 pwm = 0; // For PWM output

#endif

/* Debounces the switches */

if (--debounce <= 0) {

select_2 = select_1;

select_1 = !(CyPins_ReadPin(DISPLAY_SELECT_0));

Select = (select_1 && select_2);

step_2 = step_1;

step_1 = !(CyPins_ReadPin(START_0));

step = (step_1 && step_2);

/* Signals step edge for oscilloscope sync */

if ( (step && idle) == true)

CyPins_SetPin(STEP_LED_0);

else

CyPins_ClearPin(STEP_LED_0);

debounce = DEB_COUNTS;

}

/* Performs the PID algorithm every 5ms when in idle state */

if ( (--factor <= 0) && (idle == true)) {

factor = TS_FACTOR;

// Signals the start of the PI algorithm for time compliance measurements

CyPins_SetPin(ISR_LED_0);

// Reads speed value

AMux_Select(SPEED_CHANNEL);

data = ADC_Read16();

/* Converts the counts to volts 1V = 1krpm */

yk = ADC_CountsTo_Volts((int32) data);

/* Set the reference step */

if (step == true) {

ek = REFERENCE - yk; // Follow the reference

}

else {

ek = 0 - yk; // Stop the motor

ik = 0;

}

/* PI control algorithm calculation */

/* Integral part, the rightmost term is also ik_1 */

ik = KI*ek + ik;

/* Total PI control action */

mk = KP*ek + ik;

Page 46: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

38

/* PWM conditional use */

#if defined CY_PWM_PWM_H

/* Scales mk to PWM range */

pwm = (int16) (mk*PWM_FACTOR);

/* Saturates the PWM value */

if (pwm > PWM_MAX) {

pwm = PWM_MAX;

}

else if (pwm < 0) {

pwm = 0;

}

PWM_WriteCompare(pwm); // Outputs PWM saturated value

#endif

/* DVDAC conditional use */

#if defined CY_DVDAC_DVDAC_H

/* Scales mk to DVDAC range */

vdac = (int16) (mk*VDAC_FACTOR);

// saturates the DVDAC value

if (vdac > VDAC_MAX) {

vdac = VDAC_MAX;

}

else if (vdac < 0) {

vdac = 0;

}

DVDAC_SetValue(vdac); // Outputs DVDAC saturated value

#endif

// Indicates the end of the PI algorithm

CyPins_ClearPin(ISR_LED_0);

/* Saturates the integral term for the next period */

if (ik > MAXINTEGRAL)

ik = MAXINTEGRAL;

else

if (ik < -MAXINTEGRAL) ik = -MAXINTEGRAL

}

} // CY_ISR

/* State machine for single step button action */

bool ButtonSync(enum DebounceState* DebounceButton, bool button) {

/* Local variable */

bool buttonstate = false;

/* Button sync */

switch (*DebounceButton) {

case WAIT:

*DebounceButton = button? RUN:WAIT;

break;

case RUN:

*DebounceButton = PRESS;

buttonstate = true;

break;

case PRESS:

*DebounceButton = button? PRESS:WAIT;

break;

default: *DebounceButton = WAIT;

} // switch

return buttonstate;

} // ButtonSync

Page 47: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

39

int main(void)

{

/* USBUART conditional use */

#if defined CY_USBFS_USBUART_H

/* USB variable definitions */

uint16 usbcount;

uint8 usbbuffer[USBUART_BUFFER_SIZE];

uint8 *usbp; // pointer for usbbuffer

char *usbc; // pointer for displayStr

/* Pointers to usbbuffer and displayStr for USB communication */

usbp = &usbbuffer[0];

usbc = &displayStr[0];

#endif

/* PI constants adjustment variables */

int16 pot; // For ADC reading

float potf; // P and I adjust temp variable

/* Definitions of state machines */

enum AdjustState {IDLE, ADJUST_P, ADJUST_I} AdjustMachine = IDLE;

enum DebounceState ButtonSave = WAIT;

enum DebounceState ButtonSelect = WAIT;

/* Startup code for all blocks */

AMux_Start();

ADC_Start();

Timer_Start();

LCD_Start();

/* Correction for ADC_CountsTo_Volts */

ADC_SetOffset(-1); // -1mV offset correction

ADC_SetGain(673); // 0.9895 gain correction

/* QuadDec conditional use */

#if defined CY_QUADRATURE_DECODER_QuadDec_H

QuadDec_Start();

#endif

/* PWM conditional use */

#if defined CY_PWM_PWM_H

PWM_Start();

#endif

/* DVDAC conditional use */

#if defined CY_DVDAC_DVDAC_H

DVDAC_Start();

PGA_Start();

Opamp_Start();

#endif

/* UART conditional use */

#if defined CY_UART_UART_H

UART_Start();

UART_PutString("PI Control v1.0\n\r");

#endif

/* USBUART conditional use */

#if defined CY_USBFS_USBUART_H

/* Start USBFS operation with 5-V operation. */

USBUART_Start(USBFS_DEVICE, USBUART_5V_OPERATION);

#endif

/* Interrrup process init with StartEx not simple Start */

isr_Timer_StartEx(isr_Timer_Handler);

/* Enable global interrupts. */

CyGlobalIntEnable;

Page 48: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

40

/* Infinite loop */

for(;;)

{

/* Sync action buttons for single step */

save = ButtonSync(&ButtonSave,step);

run = ButtonSync(&ButtonSelect,Select);

/* Display state machine uses run and save flags */

switch (AdjustMachine) {

case IDLE:

idle = true;

LCD_Position(0,0);

LCD_PrintString("PI control v1.0 ");

// Show the KP and KI constants in the LCD

sprintf(displayStr,"KP=%.3fKI=%.3f ",KP,KI);

LCD_Position(1,0);

LCD_PrintString(displayStr);

/* Advance the machine state */

AdjustMachine = run? ADJUST_P:IDLE;

/* Blink LED4 every 100ms to signal IDLE state */

CyPins_SetPin(LED4_0);

CyDelay(25);

CyPins_ClearPin(LED4_0);

CyDelay(75);

break;

case ADJUST_P:

idle = false;

LCD_Position(0,0);

LCD_PrintString("Proporcional ");

/* Advance the machine state */

AdjustMachine = run? ADJUST_I:ADJUST_P;

/* Process the proportional constant of the PI */

AMux_Select(POT_CHANNEL);

pot = ADC_Read16();

if (pot < 0) pot = 0; else if (pot > POT_CONST) pot = POT_CONST;

potf = (float) pot/POT_CONST;

/* Display the KP constant new value -> old value */

sprintf(displayStr,"%.4f -> %.4f ",potf,KP);

LCD_Position(1,0);

LCD_PrintString(displayStr);

/* Save the KP value if the START/SAVE button was pressed */

if (save == true) {

KP = potf;

}

break;

Page 49: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

41

case ADJUST_I:

idle = false;

LCD_Position(0,0);

LCD_PrintString("Integral ");

/* Advance the machine state */

AdjustMachine = run? IDLE:ADJUST_I;

/* Process the integral constant of the PI */

AMux_Select(POT_CHANNEL);

pot = ADC_Read16();

if (pot < 0) pot = 0; else if (pot > POT_CONST) pot = POT_CONST;

potf = (0.2*pot)/POT_CONST;

/* Display the KI constant new value -> old value */

sprintf(displayStr,"%.4f -> %.4f ",potf,KI);

LCD_Position(1,0);

LCD_PrintString(displayStr);

/* Save the KI value if the START/SAVE button was pressed */

if (save == true) {

KI = potf;

}

break;

default: AdjustMachine = IDLE;

} // switch

/* USBUART conditional use */

#if defined CY_USBFS_USBUART_H

// Read data from USB_Uart

USB_Uart_Init();

usbcount = USB_Uart_Read(&usbp);

// Echo received data to USB

if (usbcount > 0) {

USB_Uart_Write(usbcount,&usbp);

LCD_Position(1,0);

sprintf(displayStr,"%d chars",usbcount); // Does not work, Overwritten in static IDLE

LCD_PrintString(displayStr);

if (usbcount > 1) USB_Uart_PrintLn(&usbc);

}

#endif

} // for

} // main

/* [] END OF FILE */

Page 50: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

42

Apéndice II: Diagramas de bloques del regulador PI en PSoC 5LP

Figura A1: Diagrama principal completo del regulador PI en PSoC 5LP

Page 51: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

43

Figura A2: Diagrama de comunicaciones opcionales del regulador PI en PSoC 5LP

Page 52: R PI motorCD z · LABORATORIO DE CONTROL AUTOMÁTICO “Control digital de velocidad de un motor CD con PSoC” ... directo y actúa directamente sobre la señal de error; pues el

44

Figura A3: Diagrama de configuración de los relojes del PSoC 5LP para utilizar el USBUART

EIS/eis

2017