You are on page 1of 9

`

TRATAMIENTO DE SEALES DE VELOCIDAD Y CORRIENTE DE UN MOTOR DC

Christian Niola: cniola@est.ups.edu.ec


Elvis Landi: elandic@est.ups.edu.ec
Procesamiento Digital de Seales-Ingeniera Electrnica (SI)
RESUMEN

En el documento se realiza un reporte de la adquisicin de las seales de velocidad y corriente de un motor


DC mediante un microcontrolador dsPIC para luego desarrollar un algoritmo que sea capaz de
promediarlas en un cierto periodo de muestreo y as ser visualizadas en una interfaz grfica. El lenguaje
utilizado es C programado en MPLAB X y visualizacion se lo realiza mediante comunicacin serial entre
el dsPIC y MATLAB. El motor ser alimentado con el generador de funciones envindole una seal
senoidal a su entrada con una amplitud, offset y frecuencia cualquiera necesaria para que rote.

OBJETIVOS

Medir corriente y voltaje del motor CC para luego ser procesadas y visualizadas grficamente.
Tomar muestras peridicas de las seales y realizar un promedio entre estas.
Realizar el algoritmo en un microcontrolador dsPIC.
Realizar una comunicacin serial del Pic hacia una interfaz grfica para visualizar las seales.

INTRODUCCION

El procesamiento de seales digitales es un mtodo para el anlisis, manipulacin y transformacin de


seales elctricas las cuales contienen alguna informacin. Tuvo sus inicios en el procesamiento analgico
que se realiza mediante circuitos compuestos por capacitores, resistores, inductores, amplificadores
operaciones entre otros. Generalmente existe el procesamiento de seales en tiempo discreto y tiempo
continuo. DSP tuvo sus inicios en el desarrollo de cuatro reas claves que son radar, sonar, exploracin
espacial e imgenes mdicas.

Gran parte de DSP se relaciona con las telecomunicaciones, procesamiento de voz, audio, video adems de
microcontroladores que hacen posible la obtencin de las seales para su anlisis. A continuacin, iremos
desarrollando la prctica en base a lo mencionado.

MARCO TEORICO

-Microcontrolador dsPic

Controlador digital de seales de 16 bits, de alto desempeo, adecuado para aplicaciones de propsito
general y de audio. Memoria de programa 48kB, SRAM 2048 Bytes, ADC de 12 bits, 200 ksps y 13
canales; interface codecs de audio comunes incluyendo AC'97 y IS; puertos SPI, IC, y CAN, 2 UART's.

Caracteristicas

Entradas convertidoras analgico-digitales de 12 bit.


PWMs Timmers
2 UART (Receptor/Transmisor Universal Asncrono) utilizados para la comunicacin serial
Multiples entradas y salidas digitales.

-Comunicacin serial

Es un protocolo de comunicacin entre dispositivos. Utilizado para adquisicin de datos si tiene un


dispositivo de muestreo. Comnmente en computadoras se tiene puertos serial rs232 tambin se utilizan
para dispositivos de instrumentacin.

MATERIALES Y HERRAMIENTAS

En la tabla se puede observar los materiales y herramientas de manera general que son necesarios para el
desarrollo de esta prctica.
`

Tabla 1 Materiales y Herramientas


dsPic30F4013
OSCILADOR 4MHz
C.I MAX232
GENERADOR DE FUNCIONES
FUENTE DE ALIMENTACION CONTINUA
MOTOR/GENERADOR CD
CAPACITORES
RESISTORES
CABLE MULTIPAR
PROTOBOAR
CABLE SERIAL/USB

DESARROLLO

Se deber realizar la configuracin de manera que del motor se obtenga las seales de velocidad y corriente
luego hacer la conversin analgico-digital para la visualizacin de las seales, teniendo estas realizar un
muestreo cada cierto periodo para finalmente realizar un promedio de ellas. El siguiente esquema nos
muestra una gua general

Figura.1. Estructura general de la prctica.

Para poner en marcha primeramente se realiz las siguientes conexiones en el protoboard.

Conexiones de dsPIC, max 232, motor, cable usb/serial.

Figura.2. Microcontrolador dsPic30F4013 [1].


`

Figuara.3 Diagrama utilizado para el DSPIC [4].

RA0
RA1
RA2

Figura.4. Conexin del dsPIC, max232 y entradas analgicas [3].

Conexin del motor y medicin de corriente

RA1 RA2
Medicion de corriente

RA0
R=1 ohm
GENERADOR DE
FUNCIONES

M G

Figura.5 Conexin del motor, generador y entradas analgicas hacia el dsPIC.


`

Conexiones realizadas fsicamente

Figura.6 Conexin del dsPIC, max 232, cable serial y adicionalmente el pickit para grabar los programas en el
microcontrolador.

Figura.6 Conexin del motor, generador de funciones y dsPIC.

Algoritmo desarrollado en C de MPLAB X compilador xc16

* File: motor.c
* Author: Adrian_Landi94
*
* Created on 27 de octubre de 2017, 7:46
*/
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
#include <libpic30.h>

_FOSC(CSW_FSCM_OFF & FRC_PLL16); // Fosc=16x7.5MHz, Fcy=30MHz


_FWDT(WDT_OFF); // Watchdog timer off
_FBORPOR(MCLR_DIS); // Disable reset pin

unsigned int read_analog_channel(int channel)


{
ADCHS = channel; // Select the requested channel
ADCON1bits.SAMP = 1; // Start sampling
__delay32(30); // 1us delay @ 30 MIPS
ADCON1bits.SAMP = 0; // Start Converting
while (!ADCON1bits.DONE); // Should take 12 * Tad = 3.2us
return ADCBUF0;
`

}
/*
*
*/
void setup()
{
// Configure all 4 port D pins as digital outputs
TRISD = 0;
ADCON3bits.ADCS = 15; // Tad = 266ns, conversion time is 12*Tad
ADCON1bits.ADON = 1; // Turn ADC ON

// Setup UART
U1BRG = 48; // 38400 baud @ 30 MIPS
U1MODEbits.UARTEN = 1; // Enable UART
}

int main(void)
{
// variables de almacenamiento
int vol[20]; //tamano de muestras en este caso 20 muestras
int vol2[20];
int vol3[20];
int pVel[20];
int corr[20];
int pcorr[20];
unsigned char i;
// Configuracion de entradas analogicas del DSPIC
ADCON3bits.ADCS = 15; // Tad = 266ns, conversion time is 12*Tad
ADCON1bits.ADON = 1; // Habilitacion de ADC ON
setup();

while(1){
for(i=0; i<20; i++){
vol[i]=read_analog_channel(0); //voltaje ADC
pVel[i]=(pVel[i]+vol[i])/2; // promedio del voltaje
corr[i]=read_analog_channel(1)-read_analog_channel(2); // calculo de la corriente
pcorr[i]=(pcorr[i]+corr[i])/2; //promedio de la corriente

__delay32(3000000);
}
//enviamos los datos serialmente utilizando la libreria UART
for(i=0; i<20; i++){
printf(" %d", vol[i]); //voltaje ingresado
}
for(i=0; i<20; i++){
printf(" %d", pVel[i]); //promedio del voltaje
}
for(i=0; i<20; i++){
printf(" %d", corr[i]); //enviamos la corriente
}
for(i=0; i<20; i++){
printf(" %d", pcorr[i]); //enviamos promedio de la corriente
}
printf("\n");
}
}
`

Algoritmo desarrollado en Matlab para la visualizacion grfica.

close all;
clc;
clear
%Borra datos que se encuentren previos y vuelve a declarar el puerto y
la
%velocidad de transmisin
delete(instrfind({'port'},{'COM9'}));
puerto=serial('COM9');
puerto.BaudRate=38400;
fopen(puerto);%abre el puerto a utilizar

%Ciclo para ir realizando la grafica paso a paso


while (1)
valor=fscanf(puerto); %leemos los datos enviados seralmente
valor1 = strsplit(valor,' '); %separamos por espacios
valor2=str2double(valor1); %separamos en celdas tipo double
valor3=double((valor2*5)/4095); %convertimos a votaje
%separamos las senales pertenecientes a cada parametro: velocidad,
%corrientes, promedios dependiendo su posicion en las celdas
v=valor3(:,2:21); % separamos del vector las 20 priemras muestras son
de voltaje
pv=valor3(:,22:41); % muestras de promedio voltaje
crr=valor3(:,42:61); % muestras de corriente
pcor=valor3(:,62:81); % muestras de promedio corriente
%graficamos en una ventana de cuatro graficas para ello utilizamos
el
%subplot
subplot(2,2,1)
drawnow
plot(v,'r') %grafica del velocidad
title('VELOCIDAD')
axis([0, 20, 0 5])
subplot(2,2,3)
drawnow
plot(pv,'g') %grafica del promedio de la velocidad
title('PROMEDIO')
axis([0, 20, 0 5])
subplot(2,2,2)
drawnow
plot(crr,'b') %grafica de la corriente
title('CORRIENTE')
axis([0, 20, 0 0.2])
subplot(2,2,4)
drawnow
plot(pcor,'k') %grafica deL promedio corriente
title('PROMEDIO')
axis([0, 20, 0 0.2])
end
fclose(puerto);
delete(puerto);
`

RESULTADOS

Para probar el funcionamiento configuramos el generador de funciones de la siguiente manera:

Corremos el programa de matlab y obtenemos las siguientes grficas.

Figura.7 Al encender el motor obtenemos una seal ruidosa de velocidad y corriente

Figura.8 Al ser promediadas, las seales comienzan a tener su forma senoidal.


`

Figura.8 Pasan ms periodos y la seal se encuentran ms sinosoidales.

Figura.9 Cuando hayan pasado un nmero grande de periodos podemos ver la seal esta suavizada.

CONCLUSIONES

El microcontrolador es el dispositivo de mayor importancia ya que contiene la configuracin del


convertidor analgico digital el cual permite la adquisicin de las seales, adems de la discretizacin de
estas para poder realizar el anlisis y manipulacin. Obtenidas las seales procedimos a realizar el cdigo
para el muestreo durante ciertos periodos y luego ser visualizados mediante una interfaz grfica en Matlab.

El cable USB-Serial DB9 que se utilizo fue un hembra (extremo-serial DB9) esto permiti la lectura de los
datos desde el microcontrolador hacia la PC, si se utiliza uno de tipo macho se deber realizar las
configuraciones pertinentes.

En cuanto a la manipulacin de las seales se pudo realizar ya que se obtuvo las n muestras por periodos y
luego realizar un promedio entre ellas utilizando la ecuacin ((Periodo1+Perio2+Periodo3+Pn) / n
muestras de periodo).
`

Al aumentar en nmero de periodos y promedios de estas, las seales se iban suavizando y teniendo forma
de la onda senoidal, justamente lo que trataba esta prctica de reconstruccin de la seal mediante
promedios. Esta tcnica puede ser muy bien utilizada en procesamiento de imgenes.

REFERENCIAS

[1] Hoja de datos dsPic30F4013 disponible [online]:


http://ww1.microchip.com/downloads/en/devicedoc/70138c.pdf

[2] http://www.microchip.com/forums/m124076.aspx

[3] Examples mikroelectronica LIBRARY UART

[4] http://www.braintom.net/microcontrolador-dspic-practica-1/

http://www.electronics-base.com/dspic-tutorial/dspic-a-d-converter/dspic30f-analog-to-digital-converter-
adc-example

https://geekelectronica.com/recepcion-de-datos-por-puerto-serial-y-graficacion-en-matlab/

You might also like