Framework for Modelica Based Function Development
Total Page:16
File Type:pdf, Size:1020Kb
TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Echtzeitsysteme und Robotik Framework for Modelica Based Function Development Bernhard Amadeus Thiele VollständigerAbdruck der von der Fakultät der Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. rer. nat. Alexander Pretschner Prüfer der Dissertation: 1. Univ.-Prof. Dr.-Ing. Alois Knoll 2. Hon.-Prof. Dr.-Ing. Martin Otter 3. Prof. Marc Pouzet, Université Pierre et Marie Curie in the Computer Science Department (DIENS) of École normale supérieure (ENS), Paris/Frankreich Die Dissertation wurde am 15.04.2015 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 03.08.2015 angenommen. Zusammenfassung Rasante Fortschritte in der Leistungsfähigkeit von elektronischen Steuerungsgerä- ten führen zu immer umfangreicheren Softwarefunktionen, die innerhalb des Ent- wicklungsprozesses beherrscht werden müssen. Eine besondere Herausforderung sind hierbei auf vernetzte Recheneinheiten verteilte Softwarefunktionen, welche in Rückkopplung mit physikalischen Prozessen stehen. Für die Entwicklung und Validierung derartiger Funktionen ist es nicht länger aus- reichend, weitgehend autarke Einzelkomponenten zu betrachten, ohne die wech- selseitige Beeinflussung innerhalb des Gesamtsystems (einschließlich der physi- kalischen Prozesse) zu berücksichtigen. Aufgrund von unterschiedlichen wissen- schaftlichen Gemeinschaften hat sich jedoch der Stand der Technik für Modellie- rungssprachen im Bereich physikalischer Systeme sehr unterschiedlich zum Stand der Technik im Bereich der Modellierung von Software entwickelt. Dies erschwert ganzheitliche Entwicklungsansätze. Diese Arbeit befasst sich mit der Entwicklung einer Methodik, welche eine ver- besserte Integration der zwei Welten auf den jeweils aktuellen Stand der Tech- nik ermöglicht: Die Modellierung von (sicherheitsrelevanten) digitalen steuerungs- und regelungstechnischen Funktionen und die Modellierung von physikalischen Multidomänen-Systemen. Als Basis dient die primär für physikalische Systeme ent- wickelte Modellierungssprache Modelica, welche auf folgende Aspekte der Funkti- onsentwicklung hin untersucht wird: a) Die Voraussetzungen, die erfüllt sein müs- sen, um Funktionsmodelle innerhalb eines Entwicklungsprozesses für sicherheits- relevante Systeme implementieren zu können, und b) ihre Nutzung für eine durch- gängige Entwicklungsmethodik, angefangen von der logischen Systemarchitektur bis herunter auf die technische Systemarchitektur. In einem ersten Schritt werden allgemeine Anforderungen an eine domänenori- entierte Modellierungssprache für die sicherheitsrelevante modellbasierte Funkti- onsentwicklung formuliert. Im zweiten Schritt wird Modelica im Hinblick auf die formulierten Anforderungen analysiert und bestehende Defizite werden identifi- ziert. Auf diese Analyse aufbauend, werden auf die Modellierung von digitalen steuerungs- und regelungstechnischen Funktionen zugeschnittene Spracheinschrän- kungen und -erweiterungen vorgeschlagen. Die dadurch spezifizierte Sprache wird als ACG-Modelica bezeichnet und als geeignete Basis für die Implementierung hochwertiger Seriencode-Generatoren angesehen. Im dritten Schritt wird dies durch eine Realisierbarkeitsstudie belegt, in deren Mittelpunkt die Angabe einer translato- rischen Semantik steht, welche eine repräsentative Teilmenge von ACG-Modelica in eine ausgewählte Zielsprache transformiert. Abstract Electronic control technology is evolving leading to more complex software func- tions that need to be managed efficiently within a development process. To manage the complexity of the various stages of development, model-based function devel- opment has become a standard approach. A particular challenge are software func- tions running on distributed, networked computing devices which are in feedback loops with physical processes. For the development and validation of these functions it is no longer sufficient to solely consider a single, self-contained component without taking the interaction of this part within the whole system (including the physics!) into account. How- ever, due to different communities, state-of-the-art modeling languages for software functions have evolved very differently from modeling languages targeted for phys- ical systems. This impedes integrated holistic modeling approaches. This thesis concerns the problem of a development methodology that is capable of integrating the two worlds: State-of-the-art modeling for (safety-related) digital control functions and state-of-the-art modeling for multi-domain physical systems. Based on the physical modeling language Modelica the thesis addresses two aspects of function development: a) the conditions that need to be fulfilled to allow the us- age of Modelica for implementing function models in a safety-related development process with automatic code generation, and b) the use of Modelica as a basis for a seamless development methodology starting from the logical virtual model down to the technical system architecture. In a first step requirements to a high-level, domain-oriented language targeted for safety-related, model-based function development are established. Second, Model- ica is analyzed with respect to the established requirements and present shortcom- ings are identified. Based on this, language restrictions and extensions are proposed, effectively leading to a language sub- and superset for discrete-time controller func- tion modeling, which is deemed suitable as basis for a high-integrity automatic code generator (ACG). Third, the feasibility of implementing such an ACG is demon- strated. Acknowledgements This work would not have been possible without the support of many people to whom I am deeply indebted. First I would like to thank my supervisor Prof. Alois Knoll for accepting me as an external PhD student and for giving me the opportunity to write this thesis. I highly appreciate his valuable feedback, ideas, and guidance that supported my work. I would also like to thank Prof. Marc Pouzet for accepting to be my external reviewer. Most of this work originates from my time as research scientist at the German Aerospace Center (German: Deutsches Zentrum für Luft- und Raumfahrt e.V., ab- breviated DLR) at the Institute of System Dynamics and Control and I am indebted to the director of the institute, Dr. Johann Bals for the opportunity to work on this thesis. I am particularly indebted to Prof. Martin Otter and Dr. Dirk Zimmer who supervised my thesis work at DLR and provided indispensable and comprehensive feedback, support and encouragement that kept me going on. Additionally I would like to thank my colleagues at DLR for the many inspiring discussions and the good laughs that we had together, particularly my long-time office colleague Dr. Tobias Bellmann with whom I shared a passion for Modelica, nifty programming solutions and LATEX. I would also like to warmly thank Prof. Peter Fritzson who is leading the group that develops the OpenModelica compiler at the Programming Environment Laboratory (PELAB) at Linköping University. He gave me the opportunity to join his group after my affiliation to DLR ended and supported my pursuit to finalize this thesis. As a researcher I was part of the Modelica Community and I would like to thank the members of this community for the friendly atmosphere and the good discussions and inspiring ideas during conferences and during the Modelica design meetings that I attended. Last but not least, I would like to thank my friends and my family for supporting me and cheering me up at appropriate times. Thanks to Thomas van Marwick for giving me insight into the use of the Ada programming language for safety-relevant systems. Thanks to my mother, Anna Thiele, for proofreading my thesis in order to spot English language mistakes. And finally, my warmest thanks go to Mihaela who stood by my side at good and bad days and who gave me all support and love that makes life so much more worth living. Contents Contents iii 1. Introduction 1 1.1. Motivation . .1 1.2. Main Contributions . .2 1.3. Thesis Outline . .4 1.4. Related Publications . .5 2. Background 7 2.1. The Complexity Challenge at the Example of the Automotive Sector . .7 2.2. Modeling in (Control) Engineering and Computer Science Communities . .8 2.3. Model-Based Development . .8 2.4. Modeling Tools and Languages for Embedded Systems Design . 11 2.5. Safety Relevant Software Functions . 14 2.5.1. Terminology . 14 2.5.2. Functional Safety Standards . 15 2.5.3. Consequences . 15 2.6. Software Architectures . 16 3. Requirements for Model-Based Function Development 17 3.1. Development Roles . 18 3.2. Modeling Language Requirements . 18 3.3. Graphical Representation Requirements . 22 4. Modelica’s Synchronous Language Elements Extension 25 4.1. Activation of Discrete-Time Equations . 25 4.2. Pre-Modelica 3.3 Support for Sampled-Data Systems . 26 4.3. Sampled-Data Systems with Synchronous Language Elements . 27 4.4. Notes to the Development of the Synchronous Extension . 33 5. Enabling Modelica for Function Development — ACG-Modelica 35 5.1. Motivation . 35 5.1.1. Language Complexity . 35 5.1.2. Terminology . 36 5.2. System Compilation: From Function Model to Target Binary . 37 5.2.1. Tool Qualification . 37 5.2.2. Typical Modelica Code Generation . 39 iii CONTENTS 5.3. Utilization of Suitable Model of Computation . 41 5.3.1. Relevance of Formal Model Specifications