instrumentaciÓn avanzada labview mathscript. instrumentaciÓn avanzada mathscript es un lenguaje de...

Post on 22-Jan-2015

28 Views

Category:

Documents

11 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

•MathScript es un lenguaje de programación de alto nivel que incluye más de 600 funciones.

•Funciones de algebra lineal, filtros digitales, funciones para resolver ecuaciones diferenciales, probabilidad, estadísticas, etc.

•Se pueden crear funciones del usuario.

•Los scripts son interpretados secuencialmente por líneas.

•Los scripts son archivos de texto que pueden ser editados por cualquier editor de textos. Deben ser grabados con extensión “.m”

•Visualizar datos en «plots».

•Los comandos de MathScript son similares a los de Matlab (algunos comandos puede que no estén implementados)

LabVIEW MathScript

Ejemplo escrito en Matlab (1) Ejemplo escrito en Matlab(2)

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

MathScript se puede usar de dos maneras;

-En un “Nodo MathScript”, en el cual aparece como un cuadro dentro del diagrama de bloques de un VI (disponible en Functions/Mathematics/Scripts&Formulas palette).

-En una ventana MathScript como una herramienta matemática totalmente independiente de LabVIEW.

LabVIEW MathScript

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

La ventana Workspace, contiene Variables, Script, History en sub-ventanas conteniendo los siguientes tab:

Variables: Lista todas las variables generadas. El valor numérico de estas variables pueden ser desplegados.

Script: Abre un Editor de Script. Para abrir otro Script editor: Select File/New Script Editor.

History: Muestra una lista de todos los comandos previos ejecutados.

Ventana MathScript Windows

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript>>4+5

ans = 9

>>ans+7ans = 16

Varios comandos pueden ser escritos en una misma línea, separando los comandos por coma o punto y coma.

Con “;” el resultado no es desplegado pero sí es ejecutado

Con “,” el resultado es visible

>>z=5;x=4,y=8x = 4

y = 8

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptMathScript distingue entre minúsculas y mayúsculas.

Help, escribir primero help seguido de la función o comando. Los comandos conocidos por lo general incluyen un ejemplo.

>>help plot

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

Formato de números

El comando format es usado para seleccionar distintas presentación de los números.

Format short, 100*pi (5 dígitos)

Format long (16 dígitos)

Format short e (5 dígitos y exp. de 10)

Format long e (16 dígitos y exp. De 10)

Para la mayoría de los casos basta con format short, que es el formato por defecto. Para resetear el formato escriba “format short”

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptFormato de números

X1=0.1

X1=1e-1

X3=2e2

X4=2*10^2

X5=exp(1)

X6=4+3i

Todas las variables generadas en una sesión de MathScript son guardadas en un MathScript Workspace. Para ver los contenidos de esas variables menú Tools/Workspace/Variables (tab).

Alternativamente se puede usar el comando who

Borrar una variable con clear x6.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptMATRICES Y VECTORES

Para crear una matriz, usamos “,” o espacio“,” o espacio para separar elementos de una fila y ““;”;” para separar columnas.

Para crear una matriz que tengan “1 y 2” en la primera fila y “ 3 y 4” en la segunda, escribimos:

>>A=[1,2;;3,4]A = 1 2 3 4

La transpuesta de una matriz con apóstrofe:

>>B=A'B =

1 3 2 4

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

MathScript - Creación de Matrices Abrimos un corchete, introducimos los valores deseados separados por espacios o comas y cerramos con un corchete.

Los elementos individuales de un array se acceden utilizando subíndices; así z(5) en el ejemplo es igual a 6.

Otra forma de introducir arrays, mediante notación dos puntos, (6:1:10), crea un array que comienza en 6, incrementa en 1 y finaliza en 10.

z=[1:9]z=[1 2 3 4 5 6 7 8 9]z=[1,3,4,5,6,7,9]

z(5)

ans =

6

z =

6 7 8 9 10

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptPara crear un vector fila desde 0 a 4 con incremento de 1:

M=[0:4]

Para crear un vector fila desde 0 a 4 con incrementos de 0.5:

M=[0:0.5:4]

Para crear un vector columna desde 0 a 4 con incremento de 1:

M=[0:4]’

Crear matrices por combinación de vectores:

C1=[1,2,3];C2=[4,5,6];

>>M=[C1,C2]

M =

1 2 3 4 5 6

>>N=[C1;C2]

N =

1 2 3 4 5 6

>>N'

ans =

1 4 2 5 3 6

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptPara direccionar un elemento de una matriz se usa indexación standard

(número de fila, número de columna)

El elemento indexado se inicia con uno, no con cero como en LabVIEW.

M=[1 2 3 4; 5 6 7 8]

Producto de dos vectores (elemento x elemento), operador punto (.)>>[1 2 3 4].*[5 6 7 8]ans = 5 12 21 32

Ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

Ejemplo

>>A=[1 2 3 4]

A =

1 2 3 4

>>B=[4 5 6 7]

B =

4 5 6 7

>>A*B

Error in function * at line 1: The sizes of the input matrices are incompatible. Verify that the matrices have the same size or that one is a scalar.

>>A.*B

ans =

4 10 18 28

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Otra forma de crear arrays:

Función linspace

linspace(primer exponente, último exponente, número de valores) linspace(primer exponente, último exponente, número de valores)

>>linspace(1,10,10)ans =

1 2 3 4 5 6 7 8 9 10

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

TEXTOTEXTO

Una cadena de caracteres es texto rodeado entre comillas simples (‘)

>>t='esto es una cadena de caracteres‘

t =

esto es una cadena de caracteres

t(13:18)

ans =

cadena

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

MathScript sigue el convenio usual, donde un número complejo se escribe de la forma 4+7*i (4+7*j).

Las operaciones matemáticas sobre números complejos se escriben de la misma forma que con números reales.

Las funciones real, imag, abs y angle son útiles para la conversión entre las formas polar y rectangular.

NUMEROS COMPLEJOS

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

function Rt = rvt (r, t) %Definición de la función%Rt Resistencia variable con la temperatura%Parametros r=Resistencia a 20 grados%Parametros dt=t-20;dt=t-20;% Rt (r,t) devuelve el valor de R alfa=0.004;Rt=r*(1+alfa*dt);

function Xc=XC(C,f)XC=1/(2*pi*50*C*1e-6)

function reactancia=XL(L,f)XL=2*pi*f

ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

function Rt = rvt (r, t) %Definición de la función%Rt Resistencia variable con la temperatura%Parametros r=Resistencia a 20 grados%Parametros dt=t-20;dt=t-20;% Rt (r,t) devuelve el valor de R alfa=0.004;Rt=r*(1+alfa*dt);

ejemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

ARCHIVOS SCRIPT

MathScript permite leer órdenes desde un simple archivo de texto grabado previamente con extensión ‘m’.

corriente.m

U=220;Z=5+4*j;I=U/ZIm=abs(I)Ir=real(I)Ij=imag(I)phi_g=angle(I)*180/pi

>>type corriente

U=220;Z=5+4*j;I=U/ZIm=abs(I)Ir=real(I)Ij=imag(I)phi=angle(I)*180/pi

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Las funciones tienen que estar grabadas en el directorio de trabajo -por defecto de LabVIEW Data-.

LabVIEW MathScript

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

x=1while x<15x=2*xend

for x = 1:1:10y=sin(x)end

for x=1:100if x<50x=x+1elseif x>=50x=x+2endend

MathScript- While – For - If

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

MathScript- While – For - Ifmynumber=input('ingrese un numero entero')switch mynumbercase -1disp('numero negativo');case 0disp('numero cero');case 1disp('numero positivo');otherwisedisp('ingresó otro número');end

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

MathScript- While – For - If

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Recuperación de ondas de corriente

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

EjemploEjemplo

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

t=[0:.1:100];y1=sin(0.2*t);y2=sin(0.6*t);y=y1+y2;plot(t,y1,'r',t,y2,'b',t,y,'g')

LabVIEW MathScript

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

t=[0:.1:10];y1=sin(0.2*t);y2=sin(0.6*t);y=y1+y2;fprintf('Variable medida %.2f con dos decimales\n',y)

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScriptGrabar y leer a txt

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

fid = fopen('testvoltage.txt', 'w');fprintf(fid, '%.2f\n', u);fclose(fid);

fid = fopen(filename, mode)

fprintf(fid, format, b, ...)

Grabar a txt

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Grabar a txt

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Leer txt

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Leer txt

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

VariablesVariables

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

OPERACIONES RELACIONALES Y LÓGICAS

OPERADORES RELACIONALES

OPERADORES LÓGICOS

Igual == No igual ~= Menor que < Mayor que > Menor o igual que <= Mayor o igual que >=

AND & OR | NOT ~

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Funciones definidas por el usuario

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

EjercicioEjercicio

Graficar vectores XY

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LabVIEW MathScript

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Plotear una onda seno

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

GRAFICAS EN MathScript

Primero se crean los valores para el eje horizontal x (variable independiente), seguido se calcula el eje vertical y (variable dependiente).

La orden plot(x, y) genera la gráfica:

x=0:0.1:2*pi;y=sin(x);plot(x,y);grid on;title('Señal Seno')xlabel('Tiempo')ylabel('Volt')

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Text(x,y,’string’)

EjercicioEjercicio

x=0:0.1:2*pi;y=sin(x);plot(x,y);text(2,0.8,'seno')gtext('función seno')

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADAMathScript Node

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Funciones a aplicar en Ingeniería EléctricaFunciones a aplicar en Ingeniería Eléctrica

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

PROBLEMAS GUÍA 7PROBLEMAS GUÍA 7

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 1Ejercicio 1

Ejercicio 1.- Grafique cinco ciclos completos para las funciones seno y coseno en un Plot con la sintaxis de MathScript. En el gráfico la función seno debe aparecer en color rojo y la función coseno en azul. 

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 2.- Comprobación de compatibilidad entre Matlab y MathScript: Copiar el script del Trabajo Práctico Nº 2 de Dinámica de Máquinas Eléctricas en un nodo MathScript y modificando los gráficos de salida para obtener la figura siguiente:

Ejercicio 2Ejercicio 2

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 2Ejercicio 2

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 2Ejercicio 2

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 3.- Adquiera una muestra de 10 lecturas con el demo “Read Tensión” y a través de estructuras events y nodos MathScript grabe y lea el archivo txt, obteniendo la lectura en un array. (Obtenga en help información de cómo emplear las funciones: fopen, fprintf, fclose, fscan)

Ejercicio 3Ejercicio 3

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 4: A partir de un archivo ‘csv’ con registros de ondas de tensiones y corrientes obtenidas con el analizador HIOKI en un ensayo de generador trifásico, obtener a partir de sintaxis de MathScript los THDu y THDi, de una de las fases. A partir de los datos de FFT calcular la corriente de neutro.Incorporar el espectro de frecuencia de los armónicos contenidos en la corriente de fase.

Ejercicio 4Ejercicio 4

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

PROBLEMAS ADICIONALES

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio Ejercicio

Ejercicio 8.- Resuelva el siguiente ejercicio de un sistema trifásico utilizando MathScript en el cual deben ingresar como variables: Z=R+jX y U1rms. Obtenga en indicadores Meter datos de potencia activa total, reactiva total y factor de potencia del sistema. Graficar el triángulo de potencias.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Agregar Gráfico del Triángulo de Potencias.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 9.- Resolver el problema del secuencímetro lámpara-capacitor con los datos indicados en la figura siguiente. Complete con los diagramas fasoriales de caídas de tensión en cada una de las cargas y el correspondiente desplazamiento de neutro. Incorporar un indicador de secuencia directa o inversa.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Llamar rutinas MatlabLlamar rutinas Matlab

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

Ejercicio 10. Construir un VI que represente un sistema trifásico equilibrado 3x380V con cargas resistivas conectadas en estrella y inductivas en triángulo. Graficar el diagrama fasorial tensión-corriente, y las indicaciones en vatímetros, varmetros y cofímetros.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio 11.- A partir de los datos grabados en el Analizador de Redes HIOKI en un ensayo de laboratorio con una lámpara de bajo consumo LFC de 20 W se obtuvo la siguiente tabla:El factor de desplazamiento medido en el Hioki fue de 0.935.Obtener la señal de corriente utilizando sentencias de MathScript en un plot con los detalles de la figura:

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

Ejercicio.- Diseñe un subVI “LFC” –lámpara fluorescente compacta- con fuentes simuladas que sea capaz de generar la misma onda de corriente.

Complete la aplicación obteniendo para un sistema trifásico de 3x380V los siguientes datos:1. THDF% 2. Espectro de frecuencias 3. Factor de potencia verdadero (mostrando en un mismo Meter el

ángulo y el ángulo correspondiente a )4. Valor eficaz de la corriente para una lámpara en un Meter.5. Corriente de línea y neutro para un sistema equilibrado conformado

por 100 lámparas por fase.6. Potencias activas, reactivas y aparentes por fase y totales.

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

LFC20W.viLFC20W.vi

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

INSTRUMENTACIÓN AVANZADAINSTRUMENTACIÓN AVANZADA

EjercicioEjercicio

top related