Aug 06, 2020
Ing. Guillermo Murcia [email protected]. Jorge Luis Strack [email protected]
• Ejercicio Integrador:
Implementación de un Algoritmo recursivo para calcular RMS mediante MathScript
Contenido de esta clase
2
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Todas estas estructuras sirven para incorporar código en formato de texto a
nuestra aplicación en LabVIEW.
• Expression Node
• Formula Node
• MathScript
• MATLAB Script
Expression Node
3
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Se utiliza para operaciones “simples”
Formula Node
4
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Un Formula Node es un cuadro que puede
ser redimensionado, donde se alojan
fórmulas matemáticas y lógicas para su
evaluación.
Formula Node
5
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Los terminales de entrada y salida son variables numéricas que se
generan adicionándolas desde el menú de la estructura.
También pueden trabajar con Arrays
Formula Node: Sintaxis
6
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Asignación =
Condición ? :
Relacional == != > < >= <=
Aritméticas: + - * / **
La estructura Formula Node acepta :
If
Case
While
For
7
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
12 xxy
Formula Node: Sintaxis
Ejemplos…
8
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Formula Node: Sintaxis
Ejemplos: una estructura IF de la forma…:If (x>0) then
……
Else
……
End ifSe puede programar así:
9
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Formula Node: Sintaxis
Ejemplos: una estructura IF de la forma…: If (x>0) then
……
Else
……
End if
Condición .T.OperadorCondicional
Condición .F.
? : …………
Expresión.
……
También se puede programar así:
10
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
¿Cuando las fórmulas son máscomplicadas?
•Llamar a MathScript
(se necesita instalar el complemento “MathScriptRT”)
• Llamar a MATLAB Script
(se necesita instalar “Matlab”
MathScript
11
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
•MathScript es un lenguaje de programación de alto nivel que incluye más de800 funciones.
•Funciones de algebra lineal, filtros digitales, funciones para resolverecuaciones 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 editorde textos. Deben ser grabados con extensión “.m”
•Permite visualizar datos en plots.
•Permite correr un gran número de comandos y funciones de un archivo
•Los comandos de MathScript son similares a los de Matlab (algunos comandospuede que no estén implementados)
MathScript
12
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
MathScript puede ser usado de dos maneras;
-En una ventana MathScript como una herramienta matemática totalmenteindependiente de LabVIEW.
-En un “Nodo MathScript”, en el cual aparece como un cuadro dentro deldiagrama de bloques de un VI (disponible enFunctions/Mathematics/Scripts&Formulas palette).
13
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
MathScript como una ventana independiente
14
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
MathScript como una ventana independiente
15
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
En caso de duda escribir primero “help” seguido de la función o comando. Los
comandos conocidos por lo general incluyen un ejemplo.
>>help plot
MathScript como una ventana independiente
16
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
MathScript como una ventana independiente
códigoEjecuta el código
Ejemplo: Plotear
una onda seno
Resultado
17
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Aparece como un cuadro dentro del diagrama de bloques de un VI
Se puede usar la herramienta MathScript desde el
diagrama de bloque mediante el Nodo MathScript
18
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
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')
Nodo MathScriptEjemplo:
19
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Nodo MathScriptEjemplo:
20
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Nodo MATLAB script
Permite ejecutar comandos de MATLAB corriendo este programa en segundo plano. Para ello, MATLAB debe estar previamente instalado en la PC.
21
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Nodo MATLAB scriptSi bien el código se ejecuta en segundo plano, se abrirá una ventana de comando, que facilitará la depuración del mismo.
22
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Nodo MATLAB script
En esta ventana se pueden ejecutar comandos antes de volcarlos a la ventana de MATLAB script en LabVIEW.
Para acceder a la ayuda ejecutar el comando help, o help + el nombre del comando.
Para información más detallada, escribir doc + el nombre del comando.
23
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Nodo MATLAB script
Para intercambiar datos entre el script y eldiagrama de bloques, la ventana MATLAB script, aligual que Mathscript y Formula Node, permiteañadir entradas (INPUTS) y salidas (OUTPUTS).
Guía de
Ejercicios
N° 10
24
El algoritmo RMS recursivo permite calcular el valor eficaz de unaseñal a partir de una ventana de “N” muestras, actualizándose en cadanueva muestra con mínimo esfuerzo computacional:
M. H. J Bollen, I. Y. H. Gu, “Signal processing of power quality disturbances”,
Algoritmo RMS recursivo
26
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
n : número de muestra.
N: cantidad de muestras de la ventana de integración (ventana deslizante)
u[n]: muestra de la señal en el instante “n”
R[n]: término sumatorio en el instante “n”
URMS [n]: valor eficaz estimado
M. H. J Bollen, I. Y. H. Gu, “Signal processing of power qualitydisturbances”,
Algoritmo RMS recursivo
27
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
Código:
N=40;
rms0_max = 0;
for n = 1 : size(ch0,2)
if (n==1)
r0(n) = ch0(n)^2;
else if (n<=N)
r0(n) = ch0(n)^2 + r0(n-1);
else
r0(n) = ch0(n)^2 - ch0(n-N)^2 + r0(n-1);
end
end
rms0(n) = sqrt(r0(n)/N);
end
Algoritmo RMS recursivo
28
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
La frecuencia de una señal periódica se puede obtener
contando la cantidad de veces por segundo que la señal cruza en forma ascendente a un nivel
de “disparo”
m: número de muestra.
ntrg: nivel de disparo.
ch(n): muestra de la señal en el instante “n”
dt: intervalo de tiempo entre muestras
frec: frecuencia estimada
Algoritmo para determinar Frecuencia
29
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata
primer_cruce=1;ultimo_cruce=1;primero = false;ciclos = 0;
for m = 2:size(ch,2)if (ch(m-1)<ntrg) && (ch(m)>ntrg)
if (primero0 == false)primer_cruce = m; primero= true;
elseultimo_cruce = m;ciclos = ciclos+ 1;
endend
endif (primero == true)
frec = ciclos/(dt*(ultimo_cruce - primer_cruce)); end
Se aplica a señales de tiempo discreto periódicas.
La DFT de una secuencia finita de longitud N es:
Valor eficaz de la
componente k-ésima del
espectro frecuencial
Tratamiento de señales en tiempo discreto. Alan V. Oppenheim
DFT: Transformada Discreta de Fourier
30
INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica
Facultad de Ingeniería – Universidad Nacional de Mar del Plata