Está en la página 1de 5

Introduccin a la Data Acquisition toolbox de MATLAB

2.1. Introduccin. Bajo la denominacin Data Acquisition toolbox se recogen una serie de funciones desarrolladas en Matlab que proporciona las siguientes funcionalidades para la adquisicin de datos, como son: Un entorno de adquisicin y medida de datos desarrollado sobre un sistema PC compatible provisto de interfases adecuados de entrada y salida de datos Soporte de subsistemas de entrada analgica (ai), salida analgica (ao) y entrada-salida digital (dio) Compatibilidad con las siguientes familias de dispositivos de adquisicin: Advantech, Agilent , Keithley, Measurement Computing Corporation, National Instruments, puerto paralelo (LPT1) y tarjetas de sonido compatibles con Windows. Adquisicin de datos dirigida por eventos. 2.1.1. Componentes. La Data Acquisition toolbox se encuentra formada por 3 tipos de elementos que permiten el paso de informacin entre Matlab y los dispositivos de adquisicin de datos: Ficheros M, cuyo desarrollo permite crear dispositivos objeto, adquirir datos o generar datos de salida, configurar las propiedades de los elementos de adquisicin de datos y procesar los datos adquiridos. La correcta configuracin de estas propiedades permite controlar al dispositivo de adquisicin de datos para que se ajuste a las necesidades del usuario. Motor de adquisicin de datos encargado de almacenar los dispositivos objeto creados, sus configuraciones y propiedades, los datos recogidos o almacenados para su envo, as como el control y sincronizacin de los eventos. Controladores de dispositivos que trasladan las propiedades, eventos y datos entre el motor de adquisicin de datos y el dispositivo fsico de entrada-salida empleado.

2.1.2. Dispositivos objeto. Estos elementos permiten gobernar desde Matlab los diferentes subsistemas de entradasalida presentes en el dispositivo fsico de adquisicin de datos instalado en el PC. Matlab dispone de tres tipos de dispositivos objeto: ai (entrada analgica), ao (salida analgica) y dio (entrada-salida digital). De esta forma, para iniciar una sesin de adquisicin de datos en Matlab se deben seguir los siguientes pasos: Crear un dispositivo objeto, usando para ello las funciones de Matlab analoginput, analogoutput o digitalio segn sea el caso de una entrada analgica, salida analgica o entrada-salida digital, respectivamente. El formato de uso de estas tres funciones es idntico, debindose indicar la denominacin del driver dispuesto por Matlab que es adecuado para el dispositivo fsico de adquisicin (en adelante, tarjeta de adquisicin) de que se dispone. Tambin hay que indicar el identificador de dispositivo que se asocia a la tarjeta de
P-2B.1

adquisicin cuando se instala. Un ejemplo de definicin de un dispositivo objeto de entrada analgica con una tarjeta de National Instruments (como la que se dispone en el laboratorio), con un identificador de dispositivo igual a 1, sera: ai = analoginput(nidaq,1); Configurar los canales de E/S, mediante la funcin addchannel. En ella se hace referencia al dispositivo objeto creado anteriormente. Por ejemplo, para crear un canal de entrada analgico denominado an01usando el canal hardware 1 de la tarjeta en modo diferencial (patillas 5 y 6 del bloque conector en el laboratorio, segn la tabla de especificaciones de la tarjeta), se escribira: an01 = addchannel(ai,1); Si lo que se desea es aadir un grupo de canales hardware, por ejemplo del 0 al 3, se escribira: an0_3 = addchannel(ai,0:3); Definir las propiedades para ajustar la adquisicin de datos a nuestras necesidades. Para conocer las propiedades del objeto que se ha definido, se puede hacer uso de la funcin get(<nombre-objeto>), o bien mediante <nombre-objeto>.[nombre-propiedad]. En principio, las dos propiedades bsicas que interesa ajustar son la frecuencia de muestreo (SampleRate) y el nmero de muestras por disparo (SamplesperTrigger). Se emplea la funcin set, donde se hace referencia al dispositivo objeto empleado, la propiedad que se quiere definir y el valor que se le asigna a la misma: set = (ai, SampleRate, Fs); set(ai,'SamplesPerTrigger',Samples); Tambin es importante conocer cul es el verdadero valor de la frecuencia de muestreo actual, lo hacemos con ActualRate = get(ai,'SampleRate'); Iniciar la adquisicin o salida de datos usando la funcin start. Tras este punto suele ser interesante hacer uso de la funcin getdata y plot o cualquier otra que nos permita la visualizacin o procesamiento de los datos adquiridos y almacenados con la funcin getdata. start(ai) getdata(ai); Finalizacin del proceso haciendo uso de las funciones delete y clear: delete(ai) clear ai

En general, en todas las prcticas con Matlab, el alumno debe desarrollar el cdigo fuente siguiendo las indicaciones del procedimiento. Debe realizar las conexiones entre los distintos instrumentos utilizados (Generador de Seal y Osciloscopio) y el bloque de conexin. Posteriormente debe ejecutar el cdigo fuente (Fichero.m) y probar su correcto funcionamiento. A la hora de redactar su memoria de prcticas, debe adjuntar cada uno de los cdigos fuente y los resultados obtenidos, fundamentalmente las imgenes del osciloscopio (se guardan en una memoria Flash) y los grficos que se obtienen con la funcin plot de Matlab. Se deben explicar y justificar los resultados obtenidos en cada apartado de la prctica. Como ayuda para la realizacin de la prctica el alumno se puede guardar las variables de Matlab en una Flash para su posterior tratamiento fuera del laboratorio.

P-2B.2

2.2. Procedimiento para la Entrada Analgica. 1. Configurar el generador de seal disponible en el laboratorio para que proporcione una seal de salida de 300 Hz con amplitud de 4 V de pico a pico. Ajuste los controles del osciloscopio para verificar la seal generada. Rellene la tabla 2.1.
Control Vertical
VOLTS/DIV Atenuacin Acoplamiento Adquisicin

Tabla P1.2 Control Horizontal Controles de Disparo


SEC/DIV Fuente Flanco

Configure MEDIDAS en el osciloscopio para visualizar la frecuencia y el valor de Vpico-pico de la seal.

2. Desarrollar un cdigo en Matlab que permita adquirir la seal proporcionada por el generador de seal (en las condiciones del apartado anterior) y visualizar la seal adquirida correctamente en escala de tiempo. Para ello, es preciso que se seleccione: - El Input Mode de la tarjeta segn el tipo de fuente de seal. - El canal de entrada que se crea y su cdigo en el bloque de conexiones. - La frecuencia de muestreo. - El nmero de muestras que se adquieren en un disparo, de manera que se visualicen varios ciclos de la seal.
%Se conoce la frecuencia de la seal adquirida. NombredelObjeto = analoginput(nidaq,1); analoginputchannel=addchannel(NombredelObjeto,CC); %CC es el nmero del canal que se aade %Elegimos el Input Type adecuado a la fuente de seal. %NombredelObjeto.InputType = 'Differential'; %Es el modo por defecto %NombredelObjeto.InputType = 'SingleEnded'; %NombredelObjeto.InputType = 'NonrefencedSingleEnded'; Fseal=300; %Frecuencia de la seal adquirida en Hz. Fs= FFFF; % FFFF es la frecuencia de muestreo set(NombredelObjeto,'SampleRate',Fs); ActualRate = get(NombredelObjeto,'SampleRate'); %Es el verdadero valor de la frecuencia de muestreo Samples= SSSS; % SSSS es el nmero de muestras a adquirir. set(ai,'SamplesPerTrigger',Samples); %Ahora seleccionar el tipo de disparo %set(NombredelObjeto,'TriggerType','Inmediate'); %Es el modo de disparo por defecto %set(NombredelObjeto,'TriggerType','Manual'); %set(NombredelObjeto,'TriggerType','Software') start(NombredelObjeto) %trigger(NombredelObjeto); %Si no se ha elegido el modo de disparo por defecto data=getdata(NombredelObjeto); t= %Hacer un vector t que se utilice como base de tiempos para la funcin plot figure (1) plot(t,data); % Borramos objeto y liberamos memoria.

P-2B.3

delete(NombredelObjeto) clear NombredelObjeto

3. Modificar el anterior cdigo para que incluya la posibilidad de seleccionar el nmero de ciclos de seal que se visualizan, en funcin de la frecuencia de la seal que se adquiere y de la frecuencia de muestreo seleccionada en la tarjeta de adquisicin de datos.
%La variable nciclos selecciona el nmero de ciclos de la seal que se desea adquirir nciclos=5; Poner aqu el cdigo Matlab modificado. Justifique la razn de dichas modificaciones!.

4. Modificar el cdigo anterior si se utiliza la funcin


[data,time] = getdata(NombredelObjeto);

5. Igualmente si se utiliza la funcin:


[data,time,abstime] = getdata(NombredelObjeto);

2.3. Procedimiento para la Salida analgica. Junto con las consideraciones descritas para el apartado anterior de entrada analgica, aqu debe tenerse en cuenta que la frecuencia de muestreo que emplee la tarjeta puede no coincidir con la que el usuario indique desde su cdigo Matlab. En el caso de que se seleccione una frecuencia de muestreo que no est en el rango de las disponibles por la tarjeta de adquisicin, se producir un error. De estar dentro del rango, la tarjeta de adquisicin seleccionar la frecuencia de muestreo disponible ms prxima a la indicada por el cdigo Matlab. Se recomienda revisar la propiedad SampleRate con posterioridad a su definicin en el cdigo Matlab para evitar que se est muestreando a una frecuencia que no es la indicada por el usuario. Es necesario definir el modo de disparo para la salida analgica (propiedad TriggerType). La forma ms sencilla es provocar el disparo manualmente. Se puede emplear la funcin trigger(<dispositivo_objeto>) en el momento en el que se desee activar el disparo e iniciar la salida de datos. Evidentemente, habr que haber seleccionado el disparo manual en la variable TriggerType. En cuanto el usuario ha definido los datos que van a formar la seal de salida, debe usar la funcin putdata(<dispositivo_objeto>,<datos>) para colocar dichos datos en el buffer de salida de la tarjeta. 1. Generar una seal senoidal de 300Hz de 4 segundos de duracin y visualizarla en el osciloscopio. Utilizar el canal CH2 del osciloscopio y ajustar los controles del mismo para comprobar la frecuencia y amplitud de la seal generada. 2. Modificar el cdigo Matlab del apartado anterior para que se pueda elegir la frecuencia de la seal generada, as como el nmero de ciclos generados por la tarjeta de adquisicin.

P-2B.4

2.4. Procedimiento para la Entrada/salida digital. En este caso, no es necesario indicar la frecuencia de muestreo ni la duracin de disparo. Bastar con indicar el canal de entrada (o salida) y capturar (o generar) los valores. As, por ejemplo, para seleccionar el canal 0 del dispositivo objeto dio (el cual debe haber sido definido con anterioridad) como entrada, se usara la funcin: addline (dio, 0, in); Y para capturar los valores por dicho canal, se empleara la funcin getvalue. En el caso de la salida digital, el canal debera configurarse como out y usar la funcin putvalue. 1. Desarrollar el cdigo necesario para adquirir un dato digital por el canal 0 de la tarjeta. 2. Modificar el cdigo anterior para que se generen datos digitales por el canal 1. 3. Combinar ambos cdigos para que el dato digital adquirido por el canal 1 se reenva por el canal 0. 4. Cules seran las modificaciones si se desean cuatro canales de entrada y cuatro de salida.

P-2B.5

También podría gustarte