VENSIM INTRODUCCIÓN A LA DINAMICA DE SISTEMAS J. Forrester, ingeniero de sistemas del Instituto Tecnológico de Masachussets (MIT) desarrolló esta metodología durante la década de los cincuenta. La primera aplicación fue el análisis de la estructura de una empresa norteamericana, y el estudio de las oscilaciones muy acusadas en las ventas de esta empresa, publicada como Industrial Dynamics. En 1969 se publica la obra Dinámica Urbana, en la que se muestra cómo el "modelado DS" es aplicable a sistemas de ciudades. En 1970, aparece El modelo del mundo, trabajo que sirvió de base para que Meadows y Meadows realizasen el I Informe al Club de Roma, divulgado posteriormente con el nombre de Los límites del crecimiento. Estos trabajos y su discusión popularizaron la Dinámica de Sistemas a nivel mundial. Forrester estableció un paralelismo entre los sistemas dinámicos (o en evolución) y uno hidrodinámico, constituido por depósitos, intercomunicados por canales con ó sin retardos, variando mediante flujos su nivel, con el concurso de fenómenos exógenos (=externos),...Todos estos elementos tienen su correspondiente símbolo propio en la DS . ===> Figuras simbólicas (símil hidrodinámico) El comportamiento de un sistema (embalse, río, depuradora, etc. ) vendría esquematizado por una serie de depósitos (niveles) interrelacionados por un conjunto de elementos auxiliares (variables de flujo, auxilares, de retardo, de parámetros o factores exógenos) que llenan y vacían aquéllos, al igual como sucede con un depósito (nivel), afectado por flujos positivos o llenado del depósito, y flujos negativos o vaciado del depósito. Partiendo de un sistema, para llegar a la construcción de su modelo, seguiremos los siguientes pasos: 1. Descripción del sistema, diferenciando sus elementos y las relaciones que los ligan: Redacción escrita. 2. Diagrama causal, o formalización gráfica de la descripción contenida en el texto anterior. 3. Definición precisa de cada magnitud, dando un código a cada variable. 4. Dibujar el diagrama Forrester ó MDS, recolocando los símbolos de forma comprensible. 5. Formular el sistema de ecuaciones. Traducción del anterior diagrama a relaciones matemáticas, reconocibles posteriormente por la herramienta informática de soporte del modelo (Dynamo). 6. Etapa de calibrado, donde intervienen fundamentalmente los expertos conocedores del fenómeno o sistema bajo estudio. 7. Análisis de sensibilidad, o estudio de cómo varían las variables endógenas (= internas) frente a variaciones pequeñas de los parámetros. 8. Contraste del modelo, primeramente con los hechos observados. 9. Readaptación del modelo, recogiendo estas enseñanzas. Queda, tras estos pasos, la labor de mantenimiento del modelo, con la incorporación periódica de nueva información, nuevos datos, cambios de comportamiento, evolución del sistema, etc... 1 MODELIZACIÓN Y SIMULACIÓN CON VENSIM 1.1. Descripción general. El Vensim es un software para la construcción de modelos, según las técnicas de la dinámica de sistemas. Funciona bajo windows, y también en ordenador Macintosh. Está potenciado con diversas herramientas que facilitan la creación del modelo, su ejecución, análisis y mantenimiento, como son la pizarra para dibujar el diagrama causal, las distintas opciones de importación y exportación de datos y resultados, a través de ficheros lotus, excel y de texto. El editor de ecuaciones que ayuda a completar las relaciones matemáticas entre variables. Se dispone de varias opciones de simulación, optimización, análisis de sensibilidad y de contraste con la realidad, filtrado de kalman, presentación gráfica y numérica de resultados. Incluye un potente generador de aplicaciones, que mediante un software adicional permite distribuir cuantas copias se precise del modelo convertido en un ejecutable autónomo. 1.2. Disco de demostración. El disco autónomo incluye diversos modelos, programados mediante el generador de aplicaciones (venapp), y encapsulados con vensim runtime. Es también posible construir modelos sin otra limitación que la de no poder ser salvados. Es necesario tener 7,8 Mb de espacio libre en su disco duro, espacio necesario para la instalación del programa. IMPORTANTE: ACUERDO DE LICENCIA DE USO DEL DISCO DE DEMOSTRACION, GENTILEZA DE LA EMPRESA VENTANA SYSTEMS INC, ¡El disco es para un uso no comercial, solo para uso educacional y como demostrativo de las características de Vensim, quedando prohibidos su reproducción, el uso comercial y en trabajos de consultoría, y/o su venta. 1.3. Instalación del software La Versión educativa (Venple32.exe) la encontrara en el CDROM interactivo picando en el botón documentos y dentro de esa página en la barra de herramientas superior en “RECURSOS”. Una vez descargado y ejecutado el programa al igual que otros programas de windows nos saldrá una ventana de presentación pique en “Next”, acepte la licencia y elija una opción, este ejemplo se realizo eligiendo: “Instalación de VENSIM para usos educacionales”. Seleccione un directorio de trabajo y de un nombre al icono de acceso directo de la barra de tareas de windows. Una vez realizada esta operación pulse en “install” y el programa se instalara en el directorio seleccionado. 1.4. Arrancando la demostración. Normalmente, la instalación habrá dispuesto un icono como éste, en el grupo seleccionado. Haciendo doble click con el ratón en él, arranca la demostración. 2 La pantalla inicial es la siguiente: Vamos a simular a continuación el sistema hidrodinámico propuesto: En la opción File, seleccionamos “New Modell” Se abre la ventana donde fijaremos las condiciones del tiempo objeto de la simulación, la información que deseamos darle al diagrama de Forrester (Sketch) y las unidades donde añadimos las unidades de (m3, m3/day, m2 y m). 3 Hacemos click (con el ratón) en el icono de Variables de Nivel . El cursor cambiará a una barra (I). La posicionamos en la parte superior de la pizarra (workbench). Hacemos nuevo click en la pizarra. Aparece una caja , donde escribimos la palabra “Cantidad de agua en el depósito”, una vez creada la caja podemos hacerla más grande pulsando en la esquina y arrastrando, o bien moverla pulsando en el centro y arrastrando: De igual manera creamos la otra variable de nivel que tiene nuestro sistema que es la cantidad de agua en la parcela. Si cometemos un error, podemos comer (borrar) los elementos que estorban con el icono del . Si pulsamos sobre el icono de la mano podemos moverlos y recolocarlos comecocos fácilmente, además si colocados sobre cada uno de los elementos (nube, caja, flecha, etc.) pulsamos con el botón derecho del ratón se mostrara la presentación de sus propiedades, por ejemplo si pulsamos sobre la variable de nivel podemos cambiar la fuente y posición del texto, el tipo de caja, etc. De esta manera dibujamos una variable auxiliar del sistema (el grado de humedad del suelo), y para diferenciarla de las variables de pulsando el icono de creación de variables del sistema nivel, pulsamos sobre ella con el botón derecho del ratón y cambiamos el tipo de caja a un circulo. A continuación definimos los flujos: Haciendo click en el icono de variables de flujo , el cursor cambiará . Haciendo click por encima de la caja anterior (variable de nivel) y moviendo el ratón hacia la misma, aparecerá una flecha que sigue al movimiento del ratón, así mismo nos mostrará una caja donde definiremos el flujo (variación de un nivel). Hacemos click sobre la caja de la primera variable de nivel y sobre la caja de la segunda para representar los flujos entre los dos niveles y así sucesivamente hasta obtener la siguiente figura: 4 También podemos denominar las variables de flujo pulsando en el icono , el cursor cambiará a una barra, y pinchando sobre las cajas de los flujos, escribiremos los nombres de éstos: entrada y salida de agua del depósito, etc. Los parámetros y condiciones iniciales los introducimos de manera similar a como lo hicimos con la variable auxiliar, a continuación pulsando en el icono de los canales de información , unimos estas variables con los flujos asociados, haciendo primero click en el nombre, y después llevando la flecha hasta el símbolo del flujo. Las flechas pueden ser líneas simples o curvas, según que “estiremos” con el ratón los manipuladores (o) de las mismas. Podemos visualizar y añadir nuevas variables al diagrama mediante el botón , por ejemplo para definir las unidades adecuadamente necesitamos introducir los intervalos de tiempo en algunas variables <STEP TIME> como son el drenaje y la evapotránspiración. Mediante el botón podemos añadirle todos aquellos comentarios explicativos que necesitemos para una mejor compresión del diagrama. Todos los botones antes mencionados constituyen la barra de dibujo del programa Tenemos ahora completamente especificada la estructura del modelo: 5 A continuación, de la opción File, selecciono la opción de guardar “Save as”, donde indico el subdirectorio y el nombre que le doy al fichero. En este caso, practica.mdl. Este formato es ascii y lo podemos leer con el editor de textos de Windows: “wordpad”. Especificaremos las ecuaciones que definen de forma precisa las relaciones indicadas gráficamente entre las distintas variables. y los nombres de las variables aparecerán seleccionadas, haciendo Hacemos click en el icono click sobre ellas aparecerá “el editor de ecuaciones”: 6 Completamos la ecuación añadiendo las condiciones iniciales, por ejemplo inicialmente en el depósito hay 100 m3, en type (tipo) seleccionamos variable de nivel (level), y en las unidades introducimos m3, además podemos incluir comentarios o elegir una variable como condición inicial Las unidades a utilizar se modifican de la siguiente manera: en la barra de herramientas del programa picamos en “model” y se desplegara un menú donde seleccionamos “setting...” en esta pantalla seleccionamos la pestaña “unit” y añadimos nuestras unidades que cambiaremos por las que tiene el programa por defecto. Cuando la ecuación está completada, podemos chequear la ecuación pulsando en “check syntax” y pulsar “O.K.”, por ahora no es aconsejable pulsar en “check model” que nos hace un chequeo global del sistema de ecuaciones asociadas al sistema. Siguiendo con las demás variables, el modelo del sistema estará completo, cuando todas las variables estén bien definidas. Consideraremos como parámetros la superficie de la parcela 100 metros cuadrados y el flujo de salida constante del depósito 10 m3/día: Consideremos el caso de variables cuyos datos se meten en forma de tablas de valores, en función del tiempo, o de los valores de otra variable. Por ejemplo consideremos el flujo de entrada al depósito se controla con una válvula manual que cambiaremos cada día en función de la cantidad de agua que haya en el depósito. Pinchando en “Válvula Manual”, pasamos al editor de ecuaciones, donde seleccionamos en “type” la opción “Lookup”, para darle valores, pinchamos en el botón “As graph”, así introduciremos en el siguiente gráfico los valores que tendrá la válvula cada día en función del depósito. Nos aparece el siguiente panel de entrada numérica o gráfica de valores x,y de la tabla, se introducen los valores con el teclado o con el ratón, estirando la línea poligonal que dibujamos. Al pulsar sobre O.K., se visualizan los valores en el editor de ecuaciones, que es otra forma de introducirlos: 7 Quedándonos la variable definida como: Por último nos queda definir el flujo de entrada al depósito que la relación entre las dos variables “apertura de la válvula manual” y “capacidad del depósito”, para ello hacemos click en el icono y en el nombre de la variable: “Flujo de agua de entrada al depósito” y en la pantalla del editor de ecuaciones definimos el modelo “Válvula manual (Cantidad de agua en el depósito)” 8 Ahora definiremos la variable de flujo “Drenaje” que es función de la variable exógena “Grado de humedad del suelo” que depende a su vez de la “cantidad de agua que hay en la parcela en función del tiempo t”. Para ello pinchando en su símbolo, pasamos al editor de ecuaciones, donde seleccionamos en “type” la opción “Auxiliar”, y definimos pinchando en la pestaña “Funcions”, la opción IF THEN ELSE donde podemos definir una condicional que si es verdadera nos dará un valor y si es falsa otro: 9 Disponemos de otras funciones dinámicas, como son los retardos delay y smooth, que permiten referenciar los valores de una variable en función de su valores anteriores con un tipo variable de retardo, según la función. Si en la edición, hemos cometido errores, al pulsar el botón O.K, nos describirá el error y posicionará el cursor donde fue detectado el error. El espaciado y las mayúsculas no son significativos. Terminado la definición de las ecuaciones asociadas al sistema pulsando en el documento donde se ven todas las ecuaciones y sus parámetros. El botón se muestra nos marca los bucles de realimentación o feed-back. Con el icono y siguientes podemos trazar los árboles de causas, usos, bucles presentes, y relaciones de una variable (seleccionada) cualquiera: En la barra de herramientas superior del programa desplegamos la opción de menú “Model” en ella tenemos dos opciones “Chequear el modelo” y “Chequear las unidades”. Si el modelo es incorrecto una pantalla nos mostrará y dirigirá los pasos a realizar para corregirlos. Hemos realizado varias etapas como son la descripción del sistema y su representación, así como su modelización, procedemos ahora a la simulación. Para ello tenemos en la barra superior las herramientas de simulación: en el cuadrito de texto escribimos el nombre que deseamos darle a nuestra simulación y que nos permitirá posteriormente la comparación gráfica de varias simulaciones realizadas. y daremos comienzo a la simulación, a continuación Pulsamos sobre el botón aparecerá una pantalla donde están seleccionadas los parámetros de nuestro sistema de ecuaciones, picando sobre ellos nos permite modificarlos. Así mismo, también nos permite cambiar el tipo de integración numérica con el que se van a resolver nuestro sistema de ecuaciones simultaneas, así podemos elegir bien “EULER” o bien “RK4”. Para este ejemplo y sus pantallas posteriores se eligió la integración de “EULER”. Ambas son formas matemáticas bastante utilizadas para la resolución de sistemas de ecuaciones simultaneas. 10 Pulsando en termina la resolución del sistema de ecuaciones y podemos observar los distintos resultados de nuestra simulación en el intervalo de tiempo definido inicialmente. Pulsando primero en el botón y posteriormente sobre una de las variables podemos mediante las ,y dar “salida gráfica y numérica” a la variable y sus causas. Por ejemplo utilidades supongamos “la cantidad de agua en el depósito: 11 Con las botones podemos movernos por las diferentes pantallas seleccionadas, cuando tenemos abiertas varias vistas de nuestra simulación. ya que nos permite rápidamente controlar El botón de panel de control es muy útil acciones como definir las variables, el periodo de tiempo a simular, la escala, las condiciones de salida y impresión de los gráficos y las simulaciones abiertas. Así cuando hayamos hecho múltiples simulaciones en la pantalla “Datasets” veremos los nombres de las simulaciones realizadas y elegir aquellas que queremos comparar. Con y compararemos dos o más variables gráficamente. Prosiga haciendo click en las herramientas para explorar el modelo que hemos ido creando siguiendo este ejemplo. Elija distintos parámetros o cambie las condiciones del sistema para conseguir mejorar el rendimiento del sistema, comportamiento en casos extremos, etc. y todas las posibilidades que ofrece la simulación de sistemas dinámicos. . Bibliografía recomendada: * Articulo de Antonio Barron: http://ourworld.compuserve.com/homepages/telinges/homepage.htm * Javier Aracil: Introducción a la dinámica de sistemas. Alianza Universidad Textos. * Silvio Martínez Vicente y Alberto Requena: Dinámica de Sistemas: Alianza Editorial. * Donald R. Drew: Dinámica de Sistemas Aplicada. Isdefe Ingeniería de Sistemas. * Departamento Métodos Cuantitativos de Telefónica de España: Modelos de Simulación Integral para Empresas. Colección Gestión. AHCIET. * Peter M. Senge: La quinta disciplina. Granica. * Robert L. Eberlein: Vensim User´s Guide. Vensim Reference Manual. Ventana Systems Inc. *Pugh-Roberts Associates: Professional DYNAMO Plus, y Professional DYNAMO (Windows): References Manual. PA Consulting Group, Inc. * Las obras mencionadas de Forrester están publicadas en PRODUCTIVITY PRESS. Otra editorial: Prentice Hall. 12