Integrated Simulation Environment Language INSEL® INSEL® Eine Simulationsumgebung (nicht nur) für erneuerbare Energiesysteme Jürgen Schumacher Hochschule für Technik Stuttgart INSEL® Integrated Simulation Environment Language Inhaltsangabe Kleiner geschichtlicher Abriss (Hardware und Software) Graphische Programmierung mit INSEL - Das Schichtenmodell von INSEL Anwendungen: - Energiemeteorologie - Photovoltaik - Solares Kühlen - Gebäudesimulation - Internet Kommunikation - User Block Programmierung - Anwendungsprogrammierung INSEL® Integrated Simulation Environment Language Vannevar Bush M.I.T. Erster Analogrechner 1931 Eingabetische Vannevar Bush (1890 – 1974) Ausgabetische Drehmoment Verstärker Integrierscheibe Wellen und Getriebe Foto: Mathematical Laboratory in Cambridge, England Integrated Simulation Environment Language Setup zur Lösung der Gleichung x´´ + ½ (x´)2 + 3x = 0 INSEL® Integrated Simulation Environment Language 1959: Desktop Analogrechner Telefunken RAT700 INSEL® Integrated Simulation Environment Language INSEL® ca. 1960: Erster „Laptop“ Analogrechner Donner 3500 Integrated Simulation Environment Language INSEL® Konrad Zuse Erster Digitalrechner 1941 Konrad Zuse *1910 Foto: Nachbau der Z3 im Deutschen Museum in München Integrated Simulation Environment Language INSEL® Datenblatt des Z3 Name des Rechners Z3 Technik 600 Relais Rechenwerk, 1600 Relais im Speicherwerk Taktfrequenz 5-10 Hertz Rechenwerk Gleitkommarechenwerk, 16 Takte Multiplikation, 3 Takte Addition, 18 Takte Division Mittlere Rechengeschwindigkeit Multiplikation 3 Sekunden, Divison 3 Sekunden, Addition 0,7 Sekunden Eingabe Dezimaltastatur mit 20 Stellen rechts vom Komma, Umwandlung nach Binärcode Ausgabe Mit Lampen, 4 Dezimalstellen mit Kommaanzeige Wortlänge 22 Bit, Gleitkomma: Mantisse, Exponent und Vorzeichen Anzahl Relais 2000 Anzahl Schrittschalter 10 für Mikroprogrammsteuerung im Gleitkommarechenwerk Speicheraufbau 1400 Relais, 64 Worte à 22 Bit Leistungsaufnahme Ca. 4000 Watt Gewicht Ca. 1000 kg Einsatzgebiet Flügelberechnungen (Flatterproblem) Anzahl verkaufter Rechner 0 Integrated Simulation Environment Language 1958: FORTRAN Standard IBM Lochkarte INSEL® Integrated Simulation Environment Language 1970er: Telefunken TR440 INSEL® Integrated Simulation Environment Language INSEL® CSSL Boom Continuous System Simulation Language 1959: R.F. Selfridge realisiert die erste Simulation eines Analogrechners auf einem Digitalrechner und löst damit einen Boom in der Entwicklung von Programmen und graphischen Programmiersprachen zur Lösung von Differentialgleichungssystemen auf Digitalrechnern aus. INSEL® Integrated Simulation Environment Language 1960er: CSMP IBM Continuous System Modeling Program * Wasserstandsregelung mit zylindrischen Behälter INITIAL PP = 4.0 / (PI * D1 * D1) DYMAMIC * Strukturaussagen HDOT = PP * (Q1 - Q2) Q2 = A2 * SQRT(2.0 * G * H) H = INTGRL(H0,HDOT) A2 = ALPHA * A A = AFGEN(FA,Y) Y = A * XW + B * INTGRL(0.0,XW) XW = H - W * Parameteraussagen PARAM A = 0.1, B = 0.1, Q1 = 40000.E-6, W = 1.5 INCON H0 = 1.5 CONST D1 = 1.0, G = 9.81, ALPHA = 0.8, PI = 3.14159 FUNCT FA = (-1000.0,0.0), (0.0,0.0), (0.7E-2,105.E-4), (1000.0,105.E-4) * Bearbeitungsaussagen METHOD RKS TIMER DELT = 0.1, FINTIM = 50.0, OUTDEL = 0.1 TITLE Wasserstandsregelung mit zylindrischen Behälter PRINT H, A2, Y, W, XW, Q1, Q2 END STOP Zielcode: FORTRAN Integrated Simulation Environment Language INSEL® 1960er: SPICE Universität Berkley Simulationsprogramm für integrierte Schaltkreise Transistorverstärker: SPICE VERSION 2G R1 5 0 1K R2 5 4 10K R3 2 4 300 RE 3 0 10 CE 3 0 0.5NF RA 2 0 500 RIN 1 6 30 CIN 6 5 250NF Q1 2 5 3 QMOD * Spannungsquellen VB 4 0 10V VIN 1 0 AC 1 PULSE (0 1 1NS 1NS 1NS 5NS 12NS) * Transistormodell .MODEL QMOD NPN (RB = 1.6 RC = 0.3 RE = 0.2 + BF = 85 CJE = 19.6PF CJC = 8.9PF TF = 1E-21 + TR = 1.3E-21 IS = 1E-14 C2 = 4.52 C4 = 6.12) * Simulationssteuerung .AC DEC 10 100HZ 1GHZ .TRAN 0.2NS 15NS .PLOT AC VM(2) VP(2) .PRINT TRAN V(1) V(2) V(3) V(4) V(5) V(6) .PLOT TRAN V(2) V(1) (0.0,6.0) .END Integrated Simulation Environment Language SPICE Universität Berkley Integrierte Umgebung von INSEL® INSEL® Integrated Simulation Environment Language PSPICE INSEL® Integrated Simulation Environment Language 1974: TRNSYS Universität Wisconsin/Madison Simulationsprogramm für solarthermische Systeme SIMULATION 0.0 168.0 0.25 UNIT 1 TYPE 9 Datenleser PARAMETERS 8 6.0 1.0 -5 41.868 0.0 6 0.555556 -17.7773 UNIT 2 TYPE 16 Strahlungsprozessor PARAMETERS 6 3 1 8 40.0 4871.0 0.0 INPUTS 6 1,5 1,19 1,20 0,0 0,0 0,0 0.0 0.0 0.0 0.7 40.0 0.0 UNIT 3 TYPE 1 Kollektor PARAMETERS 12 1 1 6.5 4.19 1 50 0.7 15 -1 4.19 1 0.1 INPUTS 10 5,1 5,2 5,2 1,6 2,6 2,4 2,5 0,0 2,9 2,10 60.0 0.0 0.0 1.1 0.0 0.0 0.0 0.7 0.0 40.0 UNIT 4 TYPE 2 Regler PARAMETERS 3 3 10.0 1.0 INPUTS 3 3,1 8,1 4,1 15.0 60.0 0.0 UNIT 5 TYPE 3 Pumpe PARAMETERS 1 325.0 INPUTS 3 8,1 8,2 4,1 60.0 0.0 0.0 UNIT 6 TYPE 6 Zusatzheizung PARAMETERS 3 9999999.0 60.0 4.19 ETC. Integrated Simulation Environment Language INSEL® TRNSYS Universität Wisconsin/Madison Grafische Oberfläche: IISiBat Integrated Simulation Environment Language INSEL® 1989-1998: INSEL Universität Oldenburg Simulationsprogramm für solarelektrische Systeme INSEL® Integrated Simulation Environment Language Dissertation www.inselDi.com - Veröffentlichungen Integrated Simulation Environment Language INSEL® Was ist INSEL heute? Ein Produkt und eingetragenes Warenzeichen der Doppelintegral GbR Stuttgart Ein Akronym für Integrated Simulation Environment Language Eine graphische Programmiersprache Eine modulare Simulationsumgebung nicht nur für erneuerbare Energiesysteme Eine durchgängige Softwarelösung von der Planung bis zur Steuerung und simulationsgestützten Betriebsüberwachung von energietechnischen Anlagen Eine durchstrukturiertes Programmiersystem, das vom Anwender zur Entwicklung von komplett eigenen Softwareentwicklungen genutzt werden kann Integrated Simulation Environment Language INSEL® Die Anwendungsbereiche von INSEL Energiemeteorologie (++) Photovoltaiksysteme (++) Solarthermische Systeme (++) Solarthermische Kraftwerke (+) Gebäudesimulation (+) Gebäudeautomation (o) Facility Management (o) Integrated Simulation Environment Language Graphische Programmierung INSEL 7.0 INSEL® Integrated Simulation Environment Language INSEL® Die Kernidee von INSEL Abbildung des Prinzips der „Strukturierten Programmierung“ auf Blockdiagramme: Es werden nur drei Programmieroptionen zugelassen (mit denen sich alle algorithmischen Probleme lösen lassen) Sequenzstrukturen Strukturierte Verzweigungen Strukturierte Schleifen INSEL® Integrated Simulation Environment Language Die logischen Schichten von INSEL Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept INSEL® Integrated Simulation Environment Language Konzept Schicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept INSEL® Integrated Simulation Environment Language Die Kernkomponente von INSEL: Ein Block OUT = Name(IN,OUT,IP,RP,DP,BP,SP) Name Inputs IN() Interne Variable IP(),RP(),DP() Gruppe Outputs OUT() Numerische Parameter BP() String Parameter SP() INSEL® Integrated Simulation Environment Language INSEL Block Gruppen Constant Blöcke Timer Blöcke Standard Blöcke Loop Blöcke Delay Blöcke If Blöcke Makro Blöcke INSEL® Integrated Simulation Environment Language Der CONST Block OUT = CONST(IN,OUT,IP,RP,DP,BP,SP) CONST Interne Variable IP(),RP(),DP() C-Block OUT(1) = BP(1) BP(1) = Wert der Konstanten INSEL® Integrated Simulation Environment Language Der SCREEN Block OUT = SCREEN(IN,OUT,IP,RP,DP,BP,SP) SCREEN IN(0...6) Interne Variable IP(),RP(),DP() SP(1) = Ausgabeformat S-Block INSEL® Integrated Simulation Environment Language Ein primitivstes Blockdiagramm / INSEL Modell CONST SCREEN OUT(1) = 17 BP(1) = 17 % S P S INSEL Modell 1 CONST 1 17 2 SCREEN 1.1 INSEL® Integrated Simulation Environment Language Modellierungsschicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept Integrated Simulation Environment Language Modellierung im Text Editor INSEL® INSEL® Integrated Simulation Environment Language INSEL Fenster Integrated Simulation Environment Language Beispiele für S-Blöcke Wetterdatenbank Strahlungs- und Temperatursynthese Solarer Luftkollektor Photovoltaik Modul Hinterlüftete Photovoltaik Fassade Sorptionsrad Rotierender Wärmetauscher Befeuchter ... INSEL® Integrated Simulation Environment Language Photovoltaik Block INSEL® Integrated Simulation Environment Language Wetterdatenbank Block MTM INSEL® Integrated Simulation Environment Language INSEL® Strahlungsdatensynthese Block GENGD INSEL® Integrated Simulation Environment Language Der DO Block OUT = DO(IN,OUT,IP,RP,DP,BP,SP) DO Interne Variable IP(),RP(),DP() T-Block OUT(1) = t0, t0+dt,t0+2dt... BP(1) = Startwert t0 BP(2) = Endwert tf BP(3) = Inkrement dt Integrated Simulation Environment Language Der CLOCK Block INSEL® Integrated Simulation Environment Language INSEL® Ein INSEL Modell zur Strahlungssynthese INSEL® Integrated Simulation Environment Language Compiler Schicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept INSEL® Integrated Simulation Environment Language INSEL Rechenfolgeliste DOY PLOT CLOCK MTM GENGD Block CLOCK MTM DOY GENGD PLOT Gruppe Jump T 1 S 1 S 1 S 1 S -4 INSEL® Integrated Simulation Environment Language Der IF Block IF IN(1) = x IN(2) = 0/1 OUT(1) = x Nachfolger werden nur ausgeführt, wenn IN(2) = 1 ist. INSEL® Integrated Simulation Environment Language INSEL Modell mit I-Block und Rechenfolgeliste IF DO CONST NE SCREEN Block Gruppe Jump CONST C 1 DO T 1 NE S 1 IF I -2 SCREEN S -3 INSEL® Integrated Simulation Environment Language Der NULL Block NULL f(x) BP(1) = xmin BP(2) = xmax BP(3) = Delta x TOL x xit INSEL® Integrated Simulation Environment Language INSEL Modell mit L-Block und Rechenfolgeliste f(x) = x2 - 1 TOL POLYN NULL Block Gruppe Jump TOL -L 1 SCREEN S 1 POLYN S 1 NULL L -3 SCREEN S 1 INSEL® Integrated Simulation Environment Language INSEL Fenster Integrated Simulation Environment Language INSEL® INSEL Modell mit D-Block und Rechenfolgeliste GASDEV DO SUM NOP CHS DELAY Block Gruppe Jump DO T 1 GASDEV S 1 CHS S 1 SUM S 1 NOP S 1 DELAY D -5 Integrated Simulation Environment Language INSEL® Zusammenfassung der Konzeptschicht C-Blöcke werden nur zu Beginn der Rechnung ausgeführt T-Blöcke steuern den Ablauf der Simulation Es gibt mehr als 300 S-Blöcke in INSEL Mit L-Blöcken können lokale Schleifen programmiert werden D-Blöcke lösen algebraische Schleifen auf I-Blöcke erlauben Vorwärtsverzweigung in Rechenfolgeliste Teilmodelle können zu einem Makro Block zusammengefasst werden INSEL® Integrated Simulation Environment Language Implementierungsschicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept Integrated Simulation Environment Language INSEL® Programmiersprachen INSEL ist eine Mehr-Sprachen Anwendung Eingangscodes sind .ins und .vee Dateien Der Scanner ist mit dem Scannergenerator Flex++ implementiert, Zwischencode ist C++ Der Parser ist mit dem Parsergenerator Bison++ implementiert, Zwischencode ist C++ Die inselEngine verwendet überwiegend C++ Die meisten Blöcke sind in Fortran programmiert, einige in C/C++ Zielcode sind ausschließlich DLLs Das auszuführende Modell wird als Rechenfolgeliste abgearbeitet Integrated Simulation Environment Language INSEL® Quellcode Dokumentation (extern) C C C C C C C C C C C C C C C C C C C #Begin #Block FOR #Description The FOR block is a user-defined prototype block. #Layout #Inputs 1 #Outputs 1 #Parameters 1 #Strings 0 #Group S #Details #Inputs #IN(1) Any number $x$ #Outputs #OUT(1) $x + p$ #Parameters #BP(1) Any number $p$ #Strings #None Integrated Simulation Environment Language INSEL® Quellcode Dokumentation (intern) C #Internals C #Integers C #IP(1) Return code C #IP(2) Call mode C \begin{detaillist} C \item[-1] Identification call C \item[0] Standard call C \item[1] Constructor call C \item[2] Destructor call C \end{detaillist} C #IP(3) Operation mode C #IP(4) User defined block number C #IP(5) Number of current block inputs C #IP(6) Jump parameter C #IP(7) Debug level C #IP(8..10) Reserved C #Reals C #None C #Doubles C #None C #Dependencies C #Subroutine ID C #End Integrated Simulation Environment Language INSEL® Ein Fortran Block Prototyp (Deklarationen) INCLUDE 'ub0002.h' SUBROUTINE ub0002(IN,OUT,IP,RP,DP,BP,SP) IMPLICIT NONE CHARACTER*80 BNAMES INTEGER INMIN,INS,OUTS,IPS,RPS,DPS,BPMIN,BPS,SPMIN,SPS, & GROUP,OPM PARAMETER (BNAMES = 'FOR' &, OPM = 1 &, INMIN = 1 &, INS = 1 &, OUTS = 1 &, IPS = 10 &, RPS = 0 &, DPS = 0 &, BPMIN = 1 &, BPS = 1 &, SPMIN = 0 &, SPS = 0 &, GROUP = 3) CHARACTER*80 SP(SPS+1) DOUBLE PRECISION DP(DPS+1) INTEGER IP(IPS+1) REAL IN(INS+1),OUT(OUTS+1),RP(RPS+1),BP(BPS+1) Integrated Simulation Environment Language INSEL® Ein Fortran Block Prototyp (Anweisungen) C----------------------------------------------------------------------IF (IP(2) .NE. 0) THEN IF (IP(2) .EQ. -1) THEN C Identification call CALL ID(IN,OUT,IP,RP,DP,BP,SP,BNAMES, & OPM,INMIN,INS,OUTS,IPS,RPS,DPS,BPMIN,BPS,SPMIN,SPS,GROUP) ELSE IF (IP(2) .EQ. 1) THEN C Constructor call ELSE C Destructor call END IF RETURN END IF C---- Standard call ---------------------------------------------------OUT(1) = IN(1) + BP(1) RETURN END C----------------------------------------------------------------------- INSEL® Integrated Simulation Environment Language Schnittstellenschicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept Integrated Simulation Environment Language INSEL® Aufrufkonventionen ub0002.for INCLUDE 'ub0002.h' SUBROUTINE ub0002(IN,OUT,IP,RP,DP,BP,SP) ub0002.h (cdecl) !MS$ ATTRIBUTES C, REFERENCE, DLLEXPORT :: ub0002 INCLUDE 'id.i' ub0002.h (stdcall) !MS$ ATTRIBUTES DLLEXPORT :: ub0002 INSEL® Integrated Simulation Environment Language Ausführungsschicht Oberflächen Modellierung Datenbanken Compiler Ausführung Schnittstellen Implementierung Konzept INSEL® Integrated Simulation Environment Language Zugriff auf die Ausführungsschicht inselEngine inselDi.DLL, inselText.DLL, inselEm.DLL, inselSe.DLL... Fremdprogramme INSEL® Integrated Simulation Environment Language Zusammenfassung Graphische Oberflächen (z.B. HP VEE Panel view) Graphische Simulationsmodelle .vee (z.B. HP VEE Detail view) Text Simulationsmodelle .ins (z.B. Notepad) .etc Datenbanken (z.B. Komponenten, Wetter) INSEL Compiler: inselEngine.DLL Ausführungsschicht: inselDi.DLL, inselText.DLL, inselEm.DLL, inselSe.DLL... Schnittstelle: Aufrufkonventionen (stdcall, cdecl), Header Block Implementierung INSEL Block Konzept INSEL® Integrated Simulation Environment Language Danke für Ihre Aufmerksamkeit www.inselDi.com www.zafh.net
© Copyright 2024 ExpyDoc