Descargar

Controlador electrónico de velocidad PID usando CPLD (página 4)

Enviado por Cesar


Partes: 1, 2, 3, 4

Este es otro bloque importante dentro del sistema, ya que es el encargado de tomar los valores del PID y convertirlos en diferentes valores de ancho de pulso con lo cual se realiza el control del motor.

Este bloque está conformado por un contador de módulo 255 el cual irá incrementándose hasta llegar a ser igual al valor de selección que es enviado del PID en ese instante se cambia el estado de la señal a cero hasta que el contador llegue a su valor máximo, cuando el valor del contador se desborda se pone la señal a uno nuevamente, con lo cual se obtiene una señal que varia el ancho de pulso en función del valor de comparación.

Desarrollo del programa.

ModPWM:

PROCESS (reloj)

–la variable vreloj1 será una secuencia lógica

VARIABLE vreloj1:std_logic;

BEGIN

–cuando el pulso sea positivo del reloj de 256KHz, el vreloj1 niega el –valor anterior lógico, y lo guarda en la señal sreloj1

IF (reloj'event and reloj= '1')THEN

vreloj1:=NOT vreloj1;

ELSE vreloj1:=vreloj1;

END IF;

sreloj1<=vreloj1;

END PROCESS;

PROCESS (sreloj1)

VARIABLE aux0:integer RANGE 0 TO 255;

BEGIN

–cuando el pulso sea positivo en la señal sreloj1, empezar un conteo que –se almacenara en la variable aux0, sera una cuenta de 0 hasta 255, este –valor de conteo se almacenara en la señal scuenta

IF (sreloj1'EVENT AND sreloj1= '1')THEN

aux0:=aux0 + 1;

ELSE aux0:=aux0;

END IF;

scuenta<=aux0;

END PROCESS ;

PROCESS (reloj)

VARIABLE vpwm:std_logic;

VARIABLE vsel:integer RANGE 0 TO 255;

BEGIN

–la señal sel del bloque del signo, se guarda en la variable vsel limitado –entre 0 a 255

vsel:=sel;

–cuando el pulso sea negativo o "0" del reloj de 256KHz, empieza la –comparación de scuenta a 0 y a la variable vsel, cuando scuenta es 0 la –variable vpwm asume el valor"0", cuando scuenta es igual a vsel asume –el valor "1", esta variable vpwm, se va a la salida sal

IF(reloj'event AND reloj = '0') THEN

IF(scuenta=0) THEN

vpwm:='0';

ELSE vpwm:=vpwm;

END IF;

IF(scuenta=vsel)THEN

vpwm:='1';

ELSE vpwm:=vpwm;

END IF;

END IF;

sal<=vpwm;

END PROCESS ;

6.4.6 Contador del tacómetro

edu.red

Fig. 6.16: Bloque del contador del tacómetro

Con este bloque se realiza la realimentación del sistema, básicamente está conformado por un contador que recoge los pulsos enviados por el tacómetro y los acumula por un periodo de muestreo (200ms), cuando el valor ingresado por clear es cero el valor de la cuenta se pone a uno para empezar nuevamente, el valor de clear se pone a uno cada 200ms mas un ciclo de reloj del reloj principal, es decir un ciclo después de cada periodo de muestreo.

Desarrollo del programa.

tacometro:

process (t201ms,entradapulsos)

variable vcont : integer RANGE 0 TO 31;

bejín

–representan a un circuito antirebote

bx<= pulsos nand pulsos;

cx<= ax nand bx;

ax<= pulsos nand cx;

entradapulsos <= cx;

–cuando el pulso sea "1" del reloj a 201ms, la variable vcont, limitado –entre 0 a 31, se vuelve a 0

IF (t201ms = '1') THEN

vcont := 0;

–cuando los pulsos sean positivos del tacometro, la variable vcont –empiza a sumarse 1, la variable vcont se guarda en la señal retro

ELSIF (entradapulsos'EVENT AND entradapulsos = '1') THEN

vcont := vcont + 1;

ELSE

vcont := vcont;

END IF;

retro<=vcont;

END PROCESS;

6.5 Detalles del entorno de programación MAX+PLUSII, para el programa diseñado en el CPLD MAX 7000S EPM7128.

Una vez realizado el programa, en lenguaje VHDL, se procederá a los siguientes entornos del MAX+PLUSII.

6.5.1. Compilación.

edu.red

Fig.6.17 Ventana de compilación del MAX+PLUSII para el programa diseñado.

Al realizar la compilación se genera el archivo *.scf, y el *.pof, que es para la simulación y el programador correspondientemente. También se genera un archivo *.rpt, el cuál detallará todo el proceso de la compilación

Se detalla lo más importante del texto, del archivo de reporte generado por la compilación:

Project Information c:max_p112original1.rpt

MAX+plus II Compiler Report File

Version 10.2 07/10/2002

Compiled: 12/09/2004 21:41:41

***** Project compilation was successful

ORIGINAL1

** DEVICE SUMMARY **

edu.red

***** Logic for device 'original1' compiled without errors.

Device: EPM7128SLC84-6

Device Options:

Turbo Bit = ON

Security Bit = OFF

Enable JTAG Support = ON

User Code = ffff

MultiVolt I/O = OFF

Device-Specific Information: c:max_p112original1.rpt

original1

** RESOURCE USAGE **

edu.red

Total dedicated input pins used:1/4 ( 25%)

Total I/O pins used:11/64 ( 17%)

Total logic cells used:103/128 ( 80%)

Total shareable expanders used:47/128 ( 36%)

Total Turbo logic cells used:103/128 ( 80%)

Total shareable expanders not available (n/a):9/128 ( 7%)

Average fan-in:10.70

Total fan-in:1103

Total input pins required:7

Total fast input logic cells required:0

Total output pins required:1

Total bidirectional pins required:0

Total reserved pins required:4

Total logic cells required:103

Total flipflops required:69

Total product terms required:320

Total logic cells lending parallel expanders:0

Total shareable expanders in database:45

Synthesized logic cells:9/ 128 ( 7%)

Memory Allocated

—————–

Peak memory allocated during compilation = 8,816K

6.5.2 Simulación.

Se procede a utilizar la aplicación del Waveform Editor y la aplicación del Simulator. Se utilizará estas dos aplicaciones, para realizar la simulación interactiva, para observar el resultado del programa diseñado.

Sea la primera simulación, se dará para la velocidad 0, hasta un tiempo límite de 205ms.

edu.red

Fig.6.18 Ventana del WaveformEditor del MAX+PLUSII, para la primera simulación, velocidad 0.

edu.red

Fig.6.19 Ampliación de la ventana del WaveformEditor del MAX+PLUSII, para la primera simulación, velocidad 0.

En la simulación se procedió a lo siguiente:

Setpoint[4..0]: "00001"

Reloj: 256KHz = Periodo de 3.9us.

Pulsos: 5 Hz = periodo de 200ms = total de 1 pulso durante 200ms.

Se obtiene de la simulación:

Sal: Periodo = 2ms; Ancho de pulso = 0.9 ms.

Esta simulación indica que esta a la mínima velocidad, o que el motor se está deteniendo.

Sea la segunda simulación, se dará para la velocidad 31, hasta un tiempo límite de 205ms.

edu.red

Fig.6.20: Ventana del WaveformEditor del MAX+PLUSII, para la primera simulación, velocidad 31.

edu.red

Fig.6.21: Ampliación de la ventana del WaveformEditor del MAX+PLUSII, para la primera simulación, velocidad 31.

En la simulación se procedió a lo siguiente:

Setpoint[4..0]: "11111"

Reloj: 256KHz = Periodo de 3.9us.

Pulsos: 160 Hz = periodo de 6.25ms = total de 32 pulsos durante 200ms.

Se obtiene de la simulación:

Sal: : Periodo = 2ms; Ancho de pulso = 0.05 ms.

Esta simulación indica que esta a la máxima velocidad.

6.5.3 Contenido de programación en el CPLD MAX7000S EPM7128

El contenido de programación en el CPLD MAX7000S EPM7128, se detallará en la aplicación del Floorplan Editor del MAX+PLUSII.

edu.red

Fig.6.22. Ventana del Floorplan Editor del MAX+PLUSII.

En esta ventana del Floorplan Editor del MAX+PLUSII, se detalla las 8 LAB o 8 bloques de arreglo lógico, y cada LAB contiene 16 celdas, haciendo un total de 128 celdas. En cada ampliación de la ventana del Floorplan Editor del MAX+PLUSII, se muestra las celdas ocupadas por cada instrucción, ciclo, conteo, entrada, salida, variable, señal del programa.

edu.red

Fig.6.23. Ampliación 1 de la ventana del Floorplan Editor del MAX+PLUSII.

edu.red

Fig.6.24. Ampliación 2 de la ventana del Floorplan Editor del MAX+PLUSII.

edu.red

Fig.6.25. Ampliación 3 de la ventana del Floorplan Editor del MAX+PLUSII.

edu.red

Fig.6.26. Ampliación 4 de la ventana del Floorplan Editor del MAX+PLUSII.

6.5.4 Visualizador de jerarquía del programa diseñado.

Se utiliza está aplicación del MAX+PLUSII, para observar los archivos que conforma todo el programa compilado, así como sus ramas del programa, correspondientes a las librerías, así como sus respectivas funciones.

edu.red

Fig.6.27 Ventana del visualizador de jerarquía del programa diseñado.

6.6 Análisis de consumo de potencia.

Sea la ecuación:

edu.red

Asumimos:

edu.red

Asumimos:

edu.red

Asumimos

edu.red

6.7 Análisis económico

Tabla 6.04: Costo de componentes.

Componente

Cantidad

Precio ( S/.)

Calidad de precio

CPLD MAX7000S EPM7128

1

35

Precio distribuidor

Socket para el CPLD MAX7000S EPM7128

1

9

Precio distribuidor

Motor velocidad-estable DC magnético EG-520ED-3B

1

10

Precio

Minorista

C.I. HCF4047B

1

4

Precio

Minorista

C.I. 4N25

1

2

Precio

Minorista

Regulador de voltaje LM7805

1

2

Precio

Minorista

Buffer HC041

1

4

Precio

Distribuidor

Conmutador de ranura óptico

1

5

Precio

Minorista

TIP 42, TIP 41

4

6

Precio

Minorista

BC548

7

3.5

Precio

Minorista

Dipswhitch 5 selecciones

1

3.5

Precio

Minorista

LED

6

3

Precio

Minorista

Resistencia multivueltas 5K(

1

4

Precio

Minorista

Resistencias de carbón

25

5

Precio

Minorista

Capacitores

7

1.5

Precio

Minorista

Placa doble cara

1

6

Precio

Minorista

Placa una cara

1

2

Precio

Minorista

Sub-total 1

105.5

Tabla 6.05: Costo de gastos diversos.

Gastos diversos

Cantidad

Costo (S/.)

Quemada de placa

2

16

Sub-total 2

16

Tabla 6.06: Costo Total

Sub-total 1

S/. 105.5

Sub-total 2

S/. 16

Total

S/. 121.5

CAPÍTULO VII

Conclusiones y bibliografía

7.1 Conclusiones y Recomendaciones.

Se logro implementar un modulo de sistema de control de velocidad, e implementar los circuitos de regulación de voltaje, reloj, selección, acoplamiento óptico, puente H, sensor de velocidad y del MAX 7000S.

El sistema de control de velocidad, cuenta con un controlador PD, y no con un controlador PID como debería ser teóricamente, debido a conflictos con el software MAX+PLUSII.

El sistema de control de velocidad, regula la velocidad pero no de la manera propuesta teóricamente, es decir 32 velocidades, existe una velocidad máxima y una velocidad mínima.

El CPLD MAX 7000S EPM7128 es de poca capacidad, para realizar completamente este proyecto, pues el sistema de control de velocidad le falta un visualizador de velocidad.

En el CPLD MAX 7000S EPM 7128 se puede realizar aplicaciones de pequeña capacidad, por ejemplo: se puede realizar un número determinado de decodificadores, divisores de frecuencia, no es adecuado para aplicaciones de mayor capacidad, comparado con las aplicaciones realizadas en los microcontroladores.

El FPGA FLEX 10K es recomendable para aplicaciones de normal a mayor capacidad, comparado con el CPLD MAX 7000S EPM 7128, la capacidad es mucho mayor. Pero no se podría lograr la implementación, salvo en el módulo educativo Altera, pues el Laboratorio de Control y Microelectrónica, carece de un quemador de FLEX 10K.

El software MAX+PLUS II Baseline, o versión educativa, tiene limitaciones, por ejemplo en la aplicación de Editor de Texto, no acepta números reales, solo números enteros, así como los componentes de la líbrería VHDL"93.

El Laboratorio de Control y Microelectrónica, debería contar con otros 2 módulos más, para el desarrollo normal de clases para los alumnos, así como para investigación de los tesistas, así como más literatura del lenguaje de programación en VHDL.

7.2 Referencias bibliográficas.

  • INGENIERIA DE CONTROL MODERNO, Segunda edición, Katsuhiko Ogata. Ed. Prentice Hall Hisponamericana S.A., 1993.

  • SISTEMAS DE CONTROL EN TIEMPO DISCRETO, Segunda edición, Katsuhiko Ogata. Ed. Prentice Hall Hisponamericana S.A., 1996.

  • VHDL, Lenguaje para síntesis y modelado de circuitos, Primera edición, Pardo Carpio y Boluda Grau. Ed. Alfaomega Grupo Editor S.A., 2000.

  • DISEÑO DIGITAL, PRINCIPIOS Y PRÁCTICAS, Primera edición, Jhon Wakerly. Ed. Prentice Hall Hisponamericana S.A., 1991.

  • INTRODUCCIÓN A LOS SISTEMAS DE COMUNICACIONES, Primera edición, Stremmler, Ed. Prentice Hall Hisponamericana S.A., 1992

  • GUÍA DEL MODULO ALTERA, Laboratorio de Control y Microelectrónica UNSA, Yanyachi R. y Yanyachi D, 2004.

  • GUÍA DE USO DEL MAX+PLUS II , Laboratorio de Control y Microelectrónica UNSA, Yanyachi R. y Yanyachi D, 2004.

  • MAX+PLUS II, A Perspective, Section 2, Altera Corporation, 1997.

  • Altera, Max 7000 Programmable Logic Device Family, Altera Corporation, 1997.

  • University Program Design Laboratory Package, Altera Corporation, 1997.

 

 

Autor:

Cesar

 

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente