09-17-2007 11:23 AM
09-18-2007 01:34 PM
Hi Ali84,
I’m not sure about what is the product inside the sum. I want to ask some questions:
1. Is your array zero or one indexed?
2. The step (paso) is a constant of 0.314?
3. Assuming that N=20, then I(N-1) = I(19) = 0.00121 and is always constant?
If you could give more details we can create a program that does this without any third party software.
Hola Ali84,
No me queda claro el producto dentro de la sumatorio. Quisiera hacer algunas preguntas:
1. ¿El arreglo comienza en cero o en uno?
2. ¿Paso es una constante de 0.314?
3. Asumiendo que N=20, ¿entonces I(N-1) = I(19) = 0.00121 y es siempre constante?
Si me da mas detalles, podemos crear un programa que realiza esto sin otro programa de terceros.
Tania Lozoya | NI Mexico
09-18-2007 02:41 PM
09-18-2007 02:43 PM
09-20-2007 09:54 AM - edited 09-20-2007 09:54 AM
Hola Alicia,
Te anexo una imagen del código equivalente para lo que me indicaste. Me quedan algunas dudas:
1. ¿Cómo se define 0.314? Para este caso lo dejo como una constante.
2. Si se está usando I como un arreglo indexado en 0, de N elementos, entonces se debe recorrer desde 0 a N-1 (0 a 19), lo cual se hace con I, ¿por qué en la n que multiplica a 0.314 se realiza desde 1 a N-1 (1 a 20)?
Una sumatoria básicamente es repetir una operación o un conjunto de operaciones. Como se trata de una sumatoria finita, en computación generalmente se utilizan los ciclos “for”. El ciclo “for”, es una estructura que ejecuta un numero finito definido por N, en este caso el ciclo “for” detecta el número de elementos en I, y eso define N implícitamente, si I tiene 20 el ciclo se ejecuta 20 veces. La letra i en el cuadro azul es n, o el número de repeticiones que lleva el ciclo. Cada repetición obtenemos un elemento de I, es decir I(n). Le sumo 1 a i o n, porque en la formula n comienza en 1 y termina en 20. 0.314 lo dejo como constante. Multiplica I(n), n+1 y 0.314, suma el resultado anterior. Para recordar la suma de la repetición anterior uso “shift registers”, comienzo en 0, y cada iteración sumo el resultado de la multiplicación y lo guardo para la siguiente, al final de los 20 ciclos, obtengo la suma de los 20 productos. Al final lo multiplico por 2 y divido entre N.
No obtengo el mismo resultado que en la imagen que envías, quisiera verificar esto para obtener exactamente lo que requieres y verificar que no haya cometido un error al crear el código.
¡Saludos!
Tania Lozoya | National Instruments
Mensaje editado por Tania Lozoya
09-22-2007 03:06 PM
Hola. Muchas gracias por el código que tuvo a bien enviarme. Ya lo implementé en LabView, pero como usted dice, me da resultados distintos. Sin embargo, a lo largo de la semana estuve revisando mi código (en el que hago los cálculos en Mathcad) e identifiqué el por qué algunas veces LabView fallaba en obtener los resultados de Mathcad. Era cuestión de sincornización. Según vi, LabView iba demasiado rápido para que Mathcad procesara los datos a tiempo. Ya puse unos retardos en el código y todo funciona mejor.
También vi la posibilidad de usar el Mathscript de LabView, pero como estoy usando la versión 7.1 no cuento con ella. Sin embargo más adelante se puede explorar esa posibilidad.
Seguiré trabajando en el código que me envió para tratar de entender bien el funcionamiento y hacer los cálculos que necesito.
Agradezco mucho su ayuda. Si logro obtener los resultados necesarios modificando el programa se lo haré saber pues así sería mejor par ami proyecto.
Saludos!
Ali.
09-24-2007 10:34 AM
Hola Alicia,
Quisiera saber por qué los resultados salieron diferentes en MathCad y en LabVIEW. Lo que podemos hacer para verificar como están funcionando los dos ciclos es mostrar los resultados de cada ciclo que estemos realizando, para compararlos, posiblemente se debe a que los dos códigos estén haciendo algo diferente y sea cuestión de sintaxis. Tal vez si me explicas con palabras como funciona tu código de forma detallada, puedo encontrar la razón por la que no estén haciendo lo mismo. Tal vez tenga que ver con índices.
¡Saludos!
Tania Lozoya | National Instruments México
09-27-2007 02:52 PM
Hola de nuevo. Muchas gracias por su ayuda. Lo que el programa hace es hacer los cálculos de las series de Fourier a partir de un arreglo de datos, en este caso son 16 elementos. Lo que hace el programa es calcular los 4 coeficientes de las series. Hice un segundo programa en Mathcad que quizá esté más claro. Adjunto la imagen de cualquier modo. La sumatoria se hace con los 16 valores del arreglo y envía el total, que es el coeficiente correspondiente.
De cualquier modo, como le comenté modifiqué un poco los programas y ya no me ha dado problemas el VI para enviar a y leer los datos de Mathcad.
Saludos y gracias de nuevo!
09-28-2007 01:04 PM - edited 09-28-2007 01:04 PM
Hola Alicia,
Aquí está el programa que calcula todos los coeficientes. Espero que te sea de ayuda. ¡Saludos!
Tania Lozoya | National Instruments
Mensaje editado por Tania Lozoya
09-30-2007 03:03 PM
Muchas gracias por su ayuda. En verdad este programa me va a ser de gran utilidad.
Fue muy amable de su parte y de nuevo gracias.
Alicia.