Introducción Al Modelado Y Simulación De Sistemas Técnicos Y Físicos .

Transcription

Introducción al Modelado y Simulaciónde Sistemas Técnicos y Físicoscon ModelicaPeter FritzsonCircuito tage1PI1Mecánica pring1inertia3ground1speedSensor1

Para información adicional, incluyendo archivos de ejercicios y soluciones descargables, visite: lapágina web del libro en http://www.openmodelica.org, la página web de Modelica Associationhttp://www.modelica.org, la página web del autor http://www.ida.liu.se/ petfr, la página web delgrupo de investigación en Modelica del autor http://www.ida.liu.se/labs/pelab/modelica o escribaun correo electrónico al autor del libro peter.fritzson@liu.se. Para información adicional de laversión en español escriba un correo a José Luis Villa Ramírez a jvilla@unitecnologica.edu.coTraducciónLa versión original de este libro ha sido traducida de la versión original en inglés al español por:Sebastián Dormido BencomoCatedrático de Universidad de Ingeniería de Sistemas y AutomáticaUniversidad Nacional de Educación a DistanciaMadrid, EspañaAlfonso Urquía MoraledaProfesor Titular de Universidad de Ingeniería de Sistemas y AutomáticaUniversidad Nacional de Educación a DistanciaMadrid EspañaEsta versión es una versión revisada y actualizada por:José Luis Villa RamírezProfesor TitularUniversidad Tecnológica de BolívarCartagena, ColombiaDerechos reservadosDe la edición en inglés:Introduction to Modeling and Simulation of Technical and Physical Systems with Modelica.ISBN: 978-1-1180-1068-6, Wiley-IEEE Press, September 2011.Copyright 2003-2015 Wiley-IEEE PressDe la edición traducida al español:Copyright 2015 Peter FritzsonISBN: 978-91-7685-924-7Quedan reservados todos los derechos. Queda prohibida cualquier forma de reproducción o uso deesta obra sin contar con la autorización de los titulares de la propiedad intelectual. No se supone

ninguna responsabilidad de patente con respecto al uso de la información aquí contenida. Aunquese han tomado todas las precauciones en la preparación de este libro, el editor no asumeresponsabilidad alguna por los errores u omisiones. Tampoco se asume ninguna responsabilidadpor los daños que puedan resultar del uso de la información aquí contenida.Diseño de cubiertaParte del material del Tutorial de Modelica, la Especificación del Lenguaje Modelica, ydocumentación y código de las librerías de Modelica que están disponibiles enhttp://www.modelica.org han sido reproducidas en este libro con permiso de ModelicaAssociation bajo la Modelica Licence 2 Copyright 1998-2015, Modelica Association. Vea lascondiciones de la licencia (incluyendo la restricción de la garantía) /ModelicaLicense2.html. Licenciado porModelica Association bajo la Modelica License 2.No Asunción de Responsabilidades de la Licencia de ModelicaEl software (fuentes, binarios, etc.) en su forma original o modificada se proporciona “tal comoestá” y los propietarios de los derechos de autor no asumen ninguna responsabilidad por sucontenido cualquiera que sea. No se asume ninguna garantía expresa o implícita, incluidas entreotras, las garantías implícitas de comercialización y de adecuación a un fin en particular. Enningún caso los propietarios de los derechos de autor, o cualquiera que modifique y/o redistribuyael paquete, es responsable de daño alguno directo, indirecto, incidental, especial, ejemplar, oconsiguiente, que surjan de cualquier forma de uso de este software, incluso si se indica laposibilidad de tal daño.Nombres de marcas registradasModelica es una marca registrada de Modelica Assocation. . Dymola es una maca registradade Dassault Systèmes. MATLAB y Simulink son marcas registradas de MathWorks Inc.Java es una marca de Oracle Inc. Mathematica y Wolfram SystemModeler son marcasregistradas de Wolfram Research Inc.

Tabla de ContenidoCAPÍTULO 1CONCEPTOS BÁSICOS .11.1 Sistemas y Experimentos . 21.1.1Sistemas Naturales y Artificiales . 31.1.2Experimentos . 51.2El Concepto de Modelo . 51.3 Simulación . 71.3.1Razones para la Simulación . 81.3.2Peligros de la Simulación . 91.4Construcción de Modelos . 101.5 Análisis de Modelos . 111.5.1Análisis de la Sensibilidad . 111.5.2Diagnóstico Basado en Modelos . 121.5.3Verificación y Validación de Modelos . 121.6 Clases de Modelos Matemáticos . 131.6.1Clases de Ecuaciones . 141.6.2Modelos Dinámicos vs. Estáticos . 151.6.3Modelos Dinámicos de Tiempo Continuo vs. de Tiempo Discreto . 161.6.4Modelos Cuantitativos vs. Cualitativos . 181.7Utilización del Modelado y la Simulación en el Diseño de Productos . 181.8Ejemplos de Modelos de Sistemas. 211.9Resumen . 251.10Referencias . 25

CAPÍTULO 2UN RECORRIDO RÁPIDO POR MODELICA . 272.1 Comenzando con Modelica . 282.1.1Variables y Tipos Predefinidos . 322.1.2Comentarios . 352.1.3Constantes . 362.1.4Variabilidad . 362.1.5Valores Iniciales por Defecto . 372.2Modelado Matemático Orientado a Objetos . 372.3 Clases e Instancias . 382.3.1Creación de Instancias . 392.3.2Inicialización. 412.3.3Clases Especializadas . 422.3.4Reutilización de Clases a través de Modificaciones . 432.3.5Clases Predefinidas y Atributos . 442.4Herencia . 442.5 Clases Genéricas . 452.5.1Parámetros de Clase que son Instancias . 462.5.2Parámetros de Clase que son Tipos . 482.6 Ecuaciones. 492.6.1Estructuras de Ecuaciones Repetitivas . 512.6.2Ecuaciones Diferenciales Parciales . 522.7 Modelado Físico No Causal . 522.7.1Modelado Físico vs. Modelado Orientado a Bloques . 532.8 El Modelo de Componentes de Software de Modelica . 552.8.1Componentes. 562.8.2Diagramas de Conexiones . 562.8.3Conectores y Clases connector . 582.8.4Conexiones . 592.8.5Conexiones Implícitas con las palabras clave Inner/Outer . 602.8.6Conectores Expandibles para Buses de Información . 61

2.8.7Conectores tipo Stream . 622.9 Clases Parciales . 632.9.1Reutilización de las Clases Parciales . 642.10Diseño y Uso de una Librería de Componentes . 662.11Ejemplo: Librería de Componentes Eléctricos . 662.11.1Resistencia . 662.11.2Condensador . 672.11.3Inductor. 672.11.4Fuente de tensión . 682.11.5Tierra . 692.12El Modelo de un Circuito Sencillo . 692.13Arrays . 712.14Construcciones algorítmicas . 732.14.1Secciones de Algoritmos y Sentencias de Asignamiento . 742.14.2Sentencias . 752.14.3Funciones . 762.14.4Sobrecarga de Operadores y Números Complejos . 782.14.5Funciones Externas . 802.14.6Algoritmos Vistos como Funciones . 812.15Eventos Discretos y Modelado Híbrido . 822.16Paquetes . 872.17Anotaciones . 892.18Convenciones de Nombres . 902.19Librerías Estándar de Modelica . 912.20Implementación y Ejecución de Modelica . 932.20.1Traducción Manual del Modelo del Circuito Sencillo . 952.20.2Transformación a la Forma de Espacio de Estados . 98

2.20.3Método de Solución . 992.21Historia . 1022.22Resumen . 1072.23Literatura . 1072.24Ejercicios . 109CAPÍTULO 3CLASES Y HERENCIA . 1133.1Contrato entre el Diseñador y el Usuario de la Clase . 1133.2Ejemplo de una Clase . 1143.3 Variables . 1153.3.1Nombres de Variables Duplicados . 1163.3.2Nombres de Variables Idénticos y Nombres de Tipos . 1163.3.3Inicialización de Variables . 1173.4Comportamiento como Ecuaciones . 1173.5Control de Acceso. 1193.6Simulación del Ejemplo del Alunizaje . 1203.7 Herencia . 1233.7.1Herencia de Ecuaciones . 1243.7.2Herencia Múltiple . 1253.7.3Procesado de los Elementos de la Declaración y Uso Previo a la Declaración . 1273.7.4Orden de la Declaración de las Cláusulas extends . 1273.7.5El Ejemplo del Alunizaje Usando Herencia . 1283.8Resumen . 1303.9Literatura . 130

CAPÍTULO 4METODOLOGÍA DE MODELAMIENTO DE SISTEMAS . 1314.1 Construcción de Modelos de un Sistema . 1314.1.1Modelado Deductivo vs. Modelado Inductivo . 1324.1.2Enfoque Tradicional . 1334.1.3Enfoque Basado en Componentes Orientados a Objetos . 1344.1.4Modelado Descendente vs. Modelado Ascendente . 1354.1.5Simplificación de Modelos . 1364.2 Modelado de un Sistema de un Tanque . 1374.2.1Usando del Enfoque Tradicional . 1384.2.2Usando el Enfoque Basado en Componentes Orientado a Objetos . 1404.2.3Sistema de un Tanque con un Controlador continuo tipo PI . 1414.2.4Tanque con Controlador PID Continuo . 1454.2.5Dos Tanques Interconectados . 1484.3 Modelamiento descendente de un motor de corriente continua (CC) a partir de componentespredefinidos . 1494.3.1Definición del Sistema . 1494.3.2Descomposición en subsistemas y esquema de la comunicación . 1504.3.3Modelamiento de los Subsistemas . 1514.3.4Modelamiento de las Partes en los Subsistemas . 1524.3.5Definición de las interfaces y las conecciones . 1544.3.6Diseño de clases de interfaces-conectores . 1554.4Resumen . 1564.5Literatura . 157CAPÍTULO 5LA LIBRERÍA ESTANDAR DE MODELICA. 1595.1Resumen . 1675.2Literatura . 167APÉNDICE AGLOSARIO . 169

APÉNDICE BLOS COMANDOS DE OPENMODELICA Y OMNOTEBOOK. 177B.1Libro Electronico Interactivo OMNotebook. 177B.2Comandos Comunes y Pequeños Ejemplos . 180B.3Lista completa de Commandos . 181B.4OMShell y Dymola . 188APÉNDICE C MODELAMIENTO TEXTUAL CON OMNOTEBOOK YDRMODELICA 191C.1HelloWorld . 192C.2Pruebe DrModelica con los Modelos de VanDerPol y DAEExample. 193C.3Un sistema de Ecuaciones Simple . 193C.4Modelamiento Híbrido de una Bola que Rebota . 193C.5Modelamiento Híbrido con una muestra . 194C.6Secciones de Funciones y de Algortimos . 194C.7Adicionar un Component Conectado a un Circuito Existente . 194C.8Modelamiento Detallado de un Circuito Eléctrico . 196APÉNDICE DEJERCICIOS DE MODELAMIENTO GRÁFICO . 201D.1Motor DC Simple . 201D.2Motor DC con Resorte e Inercia. . 202D.3Motor DC con Controlador . 202

D.4Motor DC como un Generador . 203REFERENCIAS . 205INDICE. 211

iPrefacioEste libro enseña los conceptos básicos del modelado y simulación, y proporciona unaintroducción al lenguaje Modelica que es adecuada para personas que están familiarizadas conconceptos básicos de programación. Da una introducción básica acerca de los conceptos demodelado y simulación, así como de los fundamentos del modelado basado en componentesorientado a objetos adecuada para aquellos que inician en el tema. El libro tiene los siguientesobjetivos: Ser un texto útil en cursos introductorios sobre modelado y simulación. Ser fácilmente accesible para las personas que no han tenido experiencia previa enmodelado, simulación y programación orientada a objetos. Proveer una introducción básica de los conceptos del modelado físico, modeladoorientado a objetos, y modelado basado en components. Proveer ejemplos de demostración de modelamiento en algunas áreas de aplicaciónseleccionadas.El libro contiene ejemplos de modelos en diferentes dominios de aplicación, así como ejemplosque combinan varios dominios.Todos los ejemplos y ejercicios en este libro están disponibles en un material electrónico deautoestudio llamado DrModelica, basado en este libro y en el libro mas extenso Principles ofObject-Oriented Modeling of Simulation with Modelica 2.1 Fritzson (2004), para el cual se haplaneado una version mas actualizada. DrModelica guía gradualmente al lector desde ejemplos yejercicios introductorios simples a unos más avanzados. Parte de este material de enseñanza puedeser descargado de manera gratuita del sitio web del libro, www.openmodelica.org, donde sepuede encontrar material de enseñanza adicional relacionado con este libro.AgradecimientosA los miembros de la Modelica Association que crearon el lenguaje Modelica, y han contribuidocon muchos ejemplos de código Modelica en los documentos Modelica Language Rationale yModelica Language Specification (ver http://www.modelica.org), algunos de los cuales son

iiusados en este libro. Los miembros que contribuyeron a varias versiones de Modelica semencionan más adelante.En primer lugar, agradezco a mi esposa, Anita, quien me ha apoyado y me ha soportadodurante este esfuerzo de redacción de este libro.Un agradecimiento especial a Peter Bunus por su ayuda con ejemplos de modelos, algunasfiguras, formateado de MicroSoft Word, y por muchas discusiones inspiradoras. Muchas gracias aAdrian Pop, Peter Aronsson, Martin Sjölund, Per Östlund, Adeel Asghar, Mohsen TorabzadehTari, y muchas otras personas que contribuyeron al esfuerzo de OpenModelica por su gran trabajoen el compilador y el sistema de OpenModelica, y también a Adrian por hacer que la herramientaOMNotebook finalmente funcione. Muchas gracias a Hilding Elmqvist por compartir la visiónacerca de un lenguaje de modelado declarativo, por iniciar el esfuerzo para diseñar Modelicainvitando a investigadores e ingenieros para formar un grupo de diseño, por servir como el primerpresidente de la Asociación Modelica, y por el entusiasmo y las muchas contribuciones al diseñodel lenguaje incluyendo la presión por un concepto de clase unificada. También agradezco por suinspiración en cuanto a material de presentación incluyendo la búsqueda de ejemplos clásicos deecuaciones.Muchas gracias a Martin Otter por servir como el segundo presidente de la AsociaciónModelica, por su entusiasmo y energía, y sus contribuciones al diseño de la librería Modelica, pordos de las tablas y parte del texto en el Capítulo 5 sobre las librerías de Modelica a partir de lasespecificaciones del lenguaje Modelica, así como inspiración en cuanto a material depresentación. Gracias a Jakob Mauss quien hizo la primera version del glosario, y a variosmiembros de la Asociación Modelica por las mejoras en el mismo.Muchas gracias a Eva-Lena Lengquist Sandelin y Susanna Monemar por ayudar con losejercicios, y por preparar la primera version del material de enseñanza desarrollado comocuaderno interactivo DrModelica, el cual hace que los ejemplos en este libro sean más accesiblespara el aprendizaje interactivo y la experimentación.Gracias a Peter Aronsson, Adrian Pop, Jan Brugård, Hilding Elmqvist, Vadim Engelson, DagFritzson, Torkel Glad, Pavel Grozman, Emma Larsdotter Nilsson, Håkan Lundvall, y Sven-ErikMattsson por comentarios constructivos en diferentes partes del libro. Gracias a Hans Olsson yMartin Otter quien editó las recientes versiones de la especificación Modelica. Gracias por suscomentarios y recomendaciones a todos los miembros de PELAB y a los empleados de MathCoreEngineering.Linköping, Septiembre de 2003 y Mayo de 2015Peter Fritzson

iiiPrólogoSin ningún género de dudas puede considerarse la Tesis Doctoral “Dymola: A structured modellanguage for large continuous systems” leída en 1978 por Hilding Elmqvist y realizada en el LundInstitute of Tecnology (Suecia) bajo la supervisión del Prof. K. J. Åström el punto de partida delposterior nacimiento de Modelica.Las ideas fundamentales que incorporaba el lenguaje de modelado Dymola fue la utilizaciónde ecuaciones en general (no sentencias de asignación), una metodología orientada a objetos y unesquema nuevo de conexionado entre componentes. Esto permitió por primera vez que losdesarrolladores de modelos contemplasen el proceso de modelado desde una perspectiva física yno matemática. Una consecuencia de todo lo dicho es que el lenguaje de modelado es acausal, esdecir la causalidad computacional se establece cuando se traduce el modelo completo y es unapropiedad global de todo el modelo y no de los componentes que lo constituyen. Esta propiedadde acausalidad es un requisito esencial para la reusabilidad de los componentes y es una de lasgrandes ventajas de este nuevo paradigma de modelado.Sin embargo uno de los grandes problemas con todas las herramientas de modelado que ibansurgiendo tomando como base estas ideas era la falta de transportabilidad de los modelosdesarrollados que eran dependientes del entorno utilizado. A mediados de la década de losnoventa Hilding Elmqvist reconociendo este hecho inicia un esfuerzo unificador que va a darcomo resultado el desarrollo del lenguaje de modelado Modelica. La definición de Modelica sehace con la participación de muchos expertos de diferentes dominios de la ingeniería así como dela gran mayoría de desarrolladores de los lenguajes de modelado orientado a objetos que habíanido surgiendo.El objetivo de Modelica fue crear un lenguaje de modelado capaz de expresar la conducta demodelos de un amplio abanico de campos de la ingeniería y sin limitar a los modelos a unaherramienta comercial en particular. Se puede pues considerar a Modelica no solo como unlenguaje de modelado sino como una especificación de dominio público que permite elintercambio de modelos.Modelica es así un lenguaje de modelado que no tiene propietario y su nombre es una marcaregistrada de la “Modelica Association” que es la responsable de la publicación de laespecificación del lenguaje Modelica que entre otras ofrece a los desarrolladores de modelos lassiguientes características:

iv Encapsulación del conocimiento. El modelador debe ser capaz de codificar todo elconocimiento relacionado a un objeto particular en una forma compacta y con puntos deinterfaz bien definidos con el exterior.Capacidad de i

Modelica es una marca registrada de Modelica Assocation. . Dymola es una maca registrada de Dassault Systèmes. MATLAB y Simulink son marcas registradas de MathWorks Inc. Java es una marca de Oracle Inc. Mathematica y Wolfram SystemModeler son marcas registradas de Wolfram Research Inc.