Simulation Toolkit de LabVIEW
Simulacion de un sistema fĂsico con LabVIEW
El Toolkit de
LabVIEW Control Desing & Simulation contiene un entorno basado en diagrama
de bloques para la simulación de sistemas dinámicos lineales y no lineales en
tiempo continuo y en tiempo discreto. Muchos algoritmos de simulaciĂłn (es
decir, métodos numéricos para la solución de las ecuaciones diferenciales
subyacente) están disponibles, por ejemplo, diversos métodos de Runge-Kutta. El modelo
matemático para simular debe estar representado en un bucle de simulación, que
en muchos aspectos es similar al bucle While ordinaria en LabVIEW. Se puede ejecutar la simulación tan rápido como
el equipo lo permite, o se puede hacer que se ejecute con un eje de tiempo real
o escala, simulando el comportamiento en tiempo real, con la posibilidad de que
el usuario interactĂşe con el proceso simulado. El bucle de simulaciĂłn se puede
ejecutar en paralelo con bucles While dentro del mismo VI.
El MĂłdulo
de SimulaciĂłn permite no linealidades en la representaciĂłn del modelo. Otros comportamientos
no lineales puede ser escrito en LabVIEW, MathScritp, y el Nodo de fĂłrmula LabVIEW, e integrado en el modelo como un
subVI.
El proceso
de optimizaciĂłn, por lo general, incluye varias interacciones entre el control
del diseño y simulación para lograr el rendimiento deseado del sistema.
Se van a
representar las simulaciones de tres formas diferentes, con mediante el mĂłdulo MatchScript, mediante Signal Arithmetic (anexo
modelado) o como se realiza en el proyecto, mediante lainclusiĂłn de los valores
deseados dentro del Transfer
Function.vi. La simulaciĂłn se realiza, o bien,
mediante de la FunciĂłn de Transferencia del sistema o ecuaciĂłn diferencial.
Para hacer las simulaciones necesitamos The Simulation Loop. El bucle de
simulaciĂłn es el componente principal del MĂłdulo de SimulaciĂłn. Se trata de una versiĂłn
"mejorada" de la versiĂłn del While Loop que integra potentes herramientas para resolver la ecuaciĂłn
diferencial, caracterĂsticas de tiempo internas o externas. Con el MĂłdulo de
SimulaciĂłn, los sistemas de tiempo continuo se puede ejecutar en el mundo
digital discreto. El ciclo consta de tres partes principales:
-Nodo de
entrada (izquierda) - Permite a los parámetros de simulación ser definidas
mediante programaciĂłn.
De forma predeterminada, estos parámetros son estáticos y se puede configurar con un doble clic en el nodo de
entrada. Este nodo se puede expandir haciendo clic en el borde inferior del
nodo para "tomar" el mango y arrastrando hacia abajo para mostrar
adicionales parámetros.
-Bucle
principal - El sistema a simular se coloca aquĂ.
-Nodo de
salida (Derecho) - Devuelve los errores que puedan haber ocurrido en el bucle,
como una funciĂłn transferencia indebida.
Haciendo
doble clic en el nodo de entrada nos aparece:
ConfiguraciĂłn
de una simulaciĂłn:
Hay muchos
parámetros que pueden configurarse para un circuito de simulación dado:
*Parámetros
de simulaciĂłn:
Simulation
Time - Especifica para que en el perĂodo de “Simulation time” cuánto tiempo
será la
simulaciĂłn
de ejecución. No necesario determinan el tiempo de cálculo de la simulación.
Véase a continuación los parámetros de temporización.
Solver Method – MĂ©todo
que se utiliza para resolver bloques tipo integral y diferencial en la
simulaciĂłn.
Hay una amplia variedad de métodos.
Dentro del Solver Method existen
diferentes métodos resolutivos:
• Runge-Kutta
1 (Euler) -Un paso de tamaño fijo, de un solo paso
explĂcito de Runge-Kutta ODE de primer orden.
• Runge-Kutta
2 -Un paso de tamaño fijo, de un solo paso
explĂcito de Runge-Kutta ODE de segundo orden.
• Runge-Kutta
3 -Un paso de tamaño fijo, de un solo paso
explĂcito de Runge-Kutta ODE de tercer orden.
• Runge-Kutta
4 -Un paso de tamaño fijo, de un solo paso
explĂcito de Runge-Kutta ODE de cuarto orden.
• Runge-Kutta
23 -A paso de tamaño variable, de un solo
paso explĂcito de Runge-Kutta ODE de tercer orden.
• Runge-Kutta
45 -Un paso de tamaño variable, de un solo
paso explĂcito de Runge-Kutta ODE solver de quinto orden, que utiliza los coeficientes Dormand-Prince.
• BDF-Un paso de tamaño variable, para ordenes variables (las Ăłrdenes de 1
a 5) la aplicación de la multi-paso atrás fórmula de diferencia (BDF), también
conocido como el MĂ©todo Gear´s. Este mĂ©todo es adecuado para los problemas
moderadamente difĂciles.
• Adams-Moulton
-Un paso de tamaño variable, paso
variables para mĂşltiples (del 1 al 12) la aplicaciĂłn de la Adams-Moulton
predictor-corrector en modo de predecir, evaluar, corregir, evaluar (PECE).
• Rosenbrock -Un paso de tamaño variable, una resoluciĂłn de un sĂłlo paso explĂcito.
Este método es adecuado para algunos problemas de rigidez.
Continuos
Time Step and Tolerance - Son valores de
control Step Size, es decir, el tiempo entre simulaciones utilizado por LabVIEW.
TĂpicamente, el ajuste por defecto será suficiente, pero se puede ajustar si es
necesario.
Discrete
Time - Si bien el predeterminado Auto Discrete Time en general
funciona para la mayorĂa de las simulaciones, se puede forzar LabVIEW para
utilizar un tamaño de paso en especial.
*Parámetros
de sincronizaciĂłn:
Enable
Synchronized Timing - La opciĂłn de
sincronizaciĂłn de software se utiliza siempre realizando simulaciones. Esto va
a resolver la ecuación como más rápido que la CPU pueda o para realizar una
simulaciĂłn en "tiempo real".
Timing
Source - Cuando la aplicaciĂłn de una simulaciĂłn
en el hardware, cambiar la fuente de sincronizaciĂłn del bucle de una
disposiciĂłn hardware de tiempo. Esta opciĂłn se puede utilizar para sincronizar
la ejecuciĂłn de simulaciĂłn con un recurso de hora externo, como el reloj
sistema operativo o un reloj, incluso una tarjeta de adquisiciĂłn de datos.
Loop Timing
Attributes- Estas opciones controlan cĂłmo se
ejecuta el bucle con respecto a la fuente de sincronizaciĂłn seleccionada.
Processor
Assignment- Se puede asignar el microprocesador que
queremos que ejecute este bucle, si es que el PC es multinĂşcleo. Los valores
por defecto serán suficientes.
Las
simulaciones pueden utilizar una amplia variedad de fuentes de señales. La
simulación de señales son
Ăştiles para ver la respuesta del sistema caracterĂstica.
Hay varios
tipos de señales, por ejemplo; “Chirp” ofrece un barrido de frecuencia Ăştil,
“Pulse” proporcionan
buen paso respuesta de la informaciĂłn e “Indexer”, que es Ăştil para el uso de
una señal predeterminada arbitraria, y puede interpolar entre las muestras para
una mejor resoluciĂłn.
Una vez que
la simulación se confirma, una señal del mundo real puede ser sustituida por la
señal de simulación. En esta configuración, la simulación puede realizar
cálculos basados en datos reales y es muy bueno para probar el sistema antes de
controlar el producto.
Para poder
ver los datos del sistema en gráficas debemos estudiar una nueva Waveform Chart llamado Simulation Time Waveform. Localizado
en Funcctions-> Control Design & Simulation-> Simulation-> Graph
Utilities-> Sim Time Waveform palette.
Se puede
mostrar una o varias formas de onda, cambiar los valores mĂnimos y máximos de cualquiera
de los ejes X o Y haciendo doble clic sobre el valor y escribiendo el nuevo
valor. Del mismo modo, puede cambiar la etiqueta del eje. También puede hacer
clic derecho de la parcela leyenda y cambiar el estilo, forma y color de la
traza que se muestra en el gráfico. Como el Waveform Chart tradicional.
Integra una
señal de entrada continua utilizando la ecuación diferencial ordinario (ODE)
que
resuelve
specityspecity forma la simulaciĂłn.
Implementa
el modelo del sistema desde la funciĂłn de transferencia. Se tiene que definir
el
numerador y
el denominador, asĂ como la entrada del sistema.
También
existe la posibilidad de multiplicar-dividir o sumar-restar las señal generada
por la
simulaciĂłn.
Todo ello se realiza con los bloques de la IlustraciĂłn 99.
Limita el
rango válido de la señal a la salida del subVI.
4.3.1-ConfiguraciĂłn
de la simulaciĂłn
4.3.1.1-RepresentaciĂłn
de los modelos state-Space utilizando el nodo de fĂłrmula y los integradores
Un modelo
de espacio de estado es un conjunto de ecuaciones de primer orden diferenciales
que constituyen el modelo del sistema. Es común que los modelos matemáticos de
sistemas dinámicos se escriban como los modelos state-space. Para ser un poco
más especĂficos, aquĂ tenemos un modelo general state-space de segundo orden:
Donde f1(•)
y f2(•) son funciones que tienen en el lado derecho de la ecuaciĂłn un
diferencial de primer orden. Estas funciones pueden ser lineal o no lineal. A
veces se definen una o más variables de salida. Arriba, la variable de salida
es y, y la funciĂłn de salida es g (•)(los puntos en los parĂ©ntesis nos indican
una sucesiĂłn de valores).
Para
implementar el diagrama de bloques de un modelo de state-space, se puede
empezar por agregar un
bloque integrador para cada una de las variables de estado en el diagrama
de bloques. La salida de los
integradores son las variables de estado. Las entradas a los integradores son
los derivados del tiempo, y la f1 (•) y f2 (•) funciones en el modelo
representativo se muestran en estos derivados del tiempo. Para llevar a cabo
las funciones se tienen las dos opciones siguientes (que también se pueden
combinar):
-La
construcciĂłn de las funciones, f1(•) y f2(•), utilizando bloques de funciones
como suma, ganancia,
multiplicación, etc, que están en la simulación de la Paleta de Funciones.
-Escribir
las funciones f1(•) y f2(•) en un nodo de formulas. El Formula Node está en Mathematics
/ Scripts & Formulas Palette (y en la paleta de Structure). Con el Formula
Node las funciones son más fáciles de modificar, y el diagrama de bloques puede
parecer sencillo. Sin embargo, puede ser difĂcil de implementar funciones no
lineales como histéresis, reacción, etc .
AquĂ tenemos
un ejemplo sencillo para usar el Formula Node:
Donde “u”
es la variable de entrada, e “y” es la variable de salida. Un nodo formula se
utiliza para representar el lado derecho de las ecuaciones diferenciales. La
integraciĂłn de se realizan con bloques integradores de Continuos palette.
Utilizando
el Formula Node en lugar de funciones en bloques para el calculo de los
derivados, nos puede dar un diagrama de bloques más simple. Sin embargo, si las
expresiones de las derivadas respecto al tiempo contiene funciones no lineales,
puede ser más difĂcil de aplicar Ă©stos en el Formula Node que con las funciones
en bloques.
Una vez
indicado que se puede realizar de dos formas diferentes, durante la ejecuciĂłn
del proyecto se van a implementar las dos formas de simulaciĂłn.
Aparte del
Formula Node, también se puede usar el MathScript Node, el cual mejora mediante
la adiciĂłn de un idioma nativo basado en texto para implementaciĂłn del
algoritmo matemático en el entorno de programación gráfica.
El
MathScript Node permite que se escoja la sintaxis que se sienta más cómodo para
resolver el problema. Las ecuaciones pueden ser instrumentadas con el
MathScript Node para la exploración de parámetros, simulación, o el despliegue
de una aplicaciĂłn final.
Ubicado en
el subpalette ProgramaciĂłn »Estructuras.
La ventana
de MathScript ofrece un entorno interactivo en el que las ecuaciones pueden ser
los prototipos y se pueden hacer cálculos.
CaracterĂsticas
de la ventana interactiva MathScript:
• Prototipo
de ecuaciones y fórmulas a través de la ventana de comandos.
• Acceda
fácilmente función de ayuda escribiendo Ayuda en la ventana de
comandos.
• Seleccione
una variable para mostrar sus datos en el panel de vista previa e incluso escuchar
el resultado.
• Escribir,
guardar, cargar, archivos de ejecución a través de la ficha de secuencias de comandos.
• Compartir
datos entre el Nodo MathScript en LabVIEW y la ventana de MathScript utilizando
variables globales.
• Avanzada
trazado caracterĂsticas y caracterĂsticas de la imagen de exportaciĂłn.
4.3.1.2-ConfiguraciĂłn
del subVI Transfer Function y Zero-Pole-Gain
Haciendo
doble clic en el subVI Transfer Function.vi, se accede a un menĂş en el que
configura el subVI. Esta configuraciĂłn se puede seleccionar si el sistema es
SISO o MISO en “Polymorphic instance”, en “Parameter Information” tenemos un
box(“Parameter sorce”), se puede seleccionar dos opciones; ”Configuration
Dialog Box” en donde se introducen los vectores de las funciĂłn de transferencia
a calcular, o “Terminal”, que se introduce la FDT mediante un terminal. Si está
en modo “Terminal”, existe la opciĂłn de elegir entre un “Feedthrough” “Direct”
o “Indirect”.
En el anexo
de control se introduce la funciĂłn de transferencia mediante un terminal y
MathScript para la comparaciĂłn de la FDT obtenida con la herramienta de
identificaciĂłn y la ecuaciĂłn diferencial.
El
Zero-Pole-Gain es una herramienta muy similar al Transfer Function.vi. Haciendo
doble clic en el icono, emergerá un cuadro de diálogo para la configuración del
mismo.
Se puede
usar este subVI para sistemas SISO y MISO, según convenga, también puede
configurar para introducir los valores del subVI o bien por cuadro de dialogo o
por terminar.
También se
pueden simular el comportamiento del sistema usando controladores como por
ejemplo el PID.
Ejemplo: SimulaciĂłn del comportamiento de un
motor eléctrico
En la imagen siguiente
se observa el diagrama de bloques que utilicé en la entrada anterior para
comprobar la correcta identificaciĂłn del sistema fĂsico.
La lĂłgica que se
implementa a la izquierda de Simulation Loop es para poder controlar el tiempo
de simulaciĂłn, es decir, si la FDT corresponde a un sistema lento, se puede
acelerar la simulación y si es rápido, se puede ralentizar.
El MathScript Node lo
uso para introducir la FDT identificada anteriormente en el subVI Transfer Function.
El sistema fĂsico
primario, sobre el cual se realizĂł la identificaciĂłn (cuyo diagrama es el de la
imagen anterior) se le ha reducido el tamaño usando la opción que se encuentra
en Edit->Create Simulation Subsistem para un mejor aprovechamiento del
espacio de trabajo.
Para finalizar se crea
un array con las dos salidas del sistema y se muestran los resultados en una
gráfica.
No hay comentarios:
Publicar un comentario