Reporte U2

12
Unidad 2 Matlab y PIC18F4455 Victor M. Armijo Gómez J. Guillermo Castro Montoya Materia: Control Automático Profesor: MC. Juan Antonio González Ramírez Torreón, Coahuila a 2 de Julio de 2012

description

Sistema de segundo orden utilizando Matlab y simulink

Transcript of Reporte U2

Page 1: Reporte U2

Unidad 2

Matlab y PIC18F4455

Victor M. Armijo Gómez J. Guillermo Castro Montoya

Materia: Control Automático

Profesor:

MC. Juan Antonio González Ramírez

Torreón, Coahuila a 2 de Julio de 2012

Page 2: Reporte U2

INTRODUCCION

MATLAB es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Mac OS X.

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación 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 simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, 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 simulación electrónica así como en las pruebas reales. Electronics Workbench es un software capaz de simular circuitos digitales o electrónicos a través de un laboratorio virtual compuesto por varios paneles donde se ofrecen instrumentos para el diseño de dispositivos electrónicos. 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 específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos 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 botón o de otra interrupción, el consumo de energía durante el sueño (reloj de la CPU y los periférico de la mayoría) puede ser sólo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más 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.”

Page 3: Reporte U2

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

Gráfica de Matlab

Page 4: Reporte U2

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

Grafica Simulink Finalmente, generamos un circuito electrónico en Workbench utilizando amplificadores operacionales, para asi obtener lo siguiente:

Page 5: Reporte U2

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, llamándose: Caso sub-amortiguado.

Page 6: Reporte U2

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); } }

Page 7: Reporte U2

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; } }

Page 8: Reporte U2

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; } }

Page 9: Reporte U2

D) INOUT #include <18F4455.h> #fuses XTPLL,PLL1,CPUDIV1,USBDIV,NOWDT,NOLVP,NOPROTECT,VREGEN,NOPBADEN,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; } }

Page 10: Reporte U2

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); } } } } }

Page 11: Reporte U2
Page 12: Reporte U2

CONCLUSIONES: J. GUILLERMO CASTRO En estas prácticas utilizamos el software de Matlab para resolver sistemas de cualquier orden asi como generar su diagrama eléctrico 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 led´s y dos display´s de 7 segmentos, cada una de estas prácticas se logró solo haciendo ciertas modificaciones al circuito eléctrico. VICTOR ARMIJO Con Matlab, aprendimos a resolver problemas complejos de sistemas de orden ‘n’ así como su diagrama eléctrico 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 ecuación obtenida en Matlab, lo que nos permite tener una guía para poder armar el circuito real. Finalmente con los microcontroladores, aprendimos a generar programas capaces de llevar a cabo una función 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.