INSEL® Eine Simulationsumgebung (nicht nur) für erneuerbare

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