Você está na página 1de 12

Unidad 2 Matlab y PIC18F4455

Victor M. Armijo Gmez J. Guillermo Castro Montoya

Materia: Control Automtico Profesor: MC. Juan Antonio Gonzlez Ramrez

Torren, Coahuila a 2 de Julio de 2012

INTRODUCCION MATLAB es un software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est disponible para las plataformas Unix, Windows y Mac OS X. Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Este software nos permiti simular sistemas de primer y segundo orden en los tres casos diferentes. E > 1, E = 1 y E < 1. De esta manera pudimos comparar resultados con los diferentes software de simulacin electrnica as como en las pruebas reales.

Electronics Workbench es un software capaz de simular circuitos digitales o electrnicos a travs de un laboratorio virtual compuesto por varios paneles donde se ofrecen instrumentos para el diseo de dispositivos electrnicos. Con ste software simulamos el circuito con amplificadores para representar los sistemas de primer y segundo orden, de la misma manera que en Matlab con sus 3 casos diferentes.

Un microcontrolador es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los cuales cumplen una tarea especfica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y perifricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y ,funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendr la capacidad para mantener la funcionalidad a la espera de un evento como pulsar un botn o de otra interrupcin, el consumo de energa durante el sueo (reloj de la CPU y los perifrico de la mayora) puede ser slo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batera de larga duracin. Otros microcontroladores pueden servir para roles de rendimiento crtico, donde sea necesario actuar ms como un procesador digital de seal (DSP), con velocidades de reloj y consumo de energa ms altos.

En este caso utilizamos un PIC18F4455, se programo para obtener diferentes aplicaciones simples, desde un simple encendido y apagado de un led hasta un segundero con displays de 7 segmentos.

En este ejemplo, agregamos el script de Matlab para un sistema de segundo orden enfocado en el caso 3, cuando E < 1. clear clc clf %% Segundo orden Wn = 1; E = 0.5; num = [0 0 Wn^2]; den = [1 2*E*Wn Wn^2]; t = 0:0.01:15; y = step(num,den,t); figure plot(t,y,'r'),grid on

Grfica de Matlab

De igual manera, se hizo el diagrama en simulink con las mismas caractersticas que el script de Matlab.

Grafica Simulink

Finalmente, generamos un circuito electrnico en Workbench utilizando amplificadores operacionales, para asi obtener lo siguiente:

Se puede observar que en las tres formas diferentes en la que se estudio un sistema de segundo orden en el caso tres, obtenemos la misma grafica, llamndose: Caso sub-amortiguado.

MICROCONTROLADOR A) BLINK: #include <18F4455.h> #fuses XTPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL1, CPUDIV1, VREGEN, PUT #use delay (clock=48000000) #include <usb_bootloader.h> #byte portb = 0x0F81 void main(void) { set_tris_b(0xFE); while(TRUE) { output_toggle(PIN_B0); //invierte el estado del pin delay_ms(500); } }

B) COUNT: #include <18F4455.h> #fuses XTPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL1, CPUDIV1, VREGEN, PUT #use delay (clock=48000000) #include <usb_bootloader.h> #byte portb = 0x0F81 int8 dato; #locate dato = 0x05 void main(void) { set_tris_b(0xF0); dato = 0; while (TRUE) { portb = dato; dato ++; delay_ms(500); if(dato>15) dato = 0; } }

C) ROTABIT #include <18F4455.h> #fuses XTPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL1, CPUDIV1, VREGEN, PUT #use delay (clock=48000000) #include <usb_bootloader.h> #byte portb = 0x0F81 int8 dato; #locate dato = 0x05 void main(void) { set_tris_b(0x00); dato = 1; while(TRUE) { portb = dato; dato = dato<<1; //Desplaza un bit hacia la izquierda delay_ms(500); if(!dato) //! = not dato = 1; } }

D) INOUT #include <18F4455.h> #fuses XTPLL,PLL1,CPUDIV1,USBDIV,NOWDT,NOLVP,NOPROTECT,VREGEN,NOPBA DEN,PUT #use delay (clock=48000000) #include <usb_bootloader.h> #byte portb = 0x0F81 int8 dato,datop; #locate dato = 0x05 #locate datop = 0x06 void main(void) { set_tris_b(0xF0); while (TRUE) { datop = portb; dato =(datop & 0xF0)>>4; portb=dato; } }

E) BIN2BCD #include <18F4455.h> #fuses XTPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL1, CPUDIV1, VREGEN, PUT #use delay (clock=48000000) #include <usb_bootloader.h> #byte portd = 0x0F83 int udato,ddato; #locate udato = 0x05 #locate ddato = 0x06 void main (void) { int8 i,j,k; set_tris_d(0xC0); while (TRUE) { for(i=0;i<=5;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { udato = j; portd = udato; bit_set(portd,4); delay_ms(10); bit_clear(portd,4); ddato = i; portd = ddato; bit_set(portd,5); delay_ms(10); bit_clear(portd,5); } } } } }

CONCLUSIONES: J. GUILLERMO CASTRO En estas prcticas utilizamos el software de Matlab para resolver sistemas de cualquier orden asi como generar su diagrama elctrico para observar su grafica y ver su comportamiento, en el software de workbench generamos el circuito con amplificadores operacionales con componentes como resistencias y capacitores con valores previamente calculados, para posteriormente compararlos en Matlab y verificar si son correctos. Respecto al microcontrolador generamos programas para probar su funcionamiento utilizando una barra de leds y dos displays de 7 segmentos, cada una de estas prcticas se logr solo haciendo ciertas modificaciones al circuito elctrico. VICTOR ARMIJO Con Matlab, aprendimos a resolver problemas complejos de sistemas de orden n as como su diagrama elctrico que nos permite comparar graficos y deducir si son correctos o no. Posteriormente en Workbench, aprendimos a generar un circuito a base de amplificadores calculando sus resistencias y capacitores para obtener el mismo resultado que la ecuacin obtenida en Matlab, lo que nos permite tener una gua para poder armar el circuito real. Finalmente con los microcontroladores, aprendimos a generar programas capaces de llevar a cabo una funcin que se le es cargada por medio del puerto usb de la computadora. Programas simples de parpadeo de un bit hasta segunderos mostrados en displays.

Você também pode gostar