Hallo,
wir sind gerade dabei in der Universität mit Trnsys Simulationen zu gewissen realen Anwendungen zu erstellen. In meinem Fall (dient nur als Beispiel) brauche ich Hilfe bei einer, eventuell simplen, Frage: gibt es eine Möglichkeit Auswahlmöglichkeiten (also Schaltflächen, Konsoleneingaben) in der Simulation, also bei dem Graphen, zu erstellen, womit ich gewisse Typen, respektive Berechnungen, anhand von verschiedenen, von mir definierten, Fällen durchführen kann? In meinem Fall würde ich gerne je nach Benutzereingabe (in der Simulation) verschiedene Berechnungen für verschiedene Wärmepumpen durchführen können. Simpel gefragt: kann man in Trnsys selber Schaltflächen erstellen, also den Nutzer mit der Simulation interagieren lassen?
Alles anzeigen
Alles anzeigen
wir sind gerade dabei in der Universität mit Trnsys Simulationen zu gewissen realen Anwendungen zu erstellen. In meinem Fall (dient nur als Beispiel) brauche ich Hilfe bei einer, eventuell simplen, Frage: gibt es eine Möglichkeit Auswahlmöglichkeiten (also Schaltflächen, Konsoleneingaben) in der Simulation, also bei dem Graphen, zu erstellen, womit ich gewisse Typen, respektive Berechnungen, anhand von verschiedenen, von mir definierten, Fällen durchführen kann? In meinem Fall würde ich gerne je nach Benutzereingabe (in der Simulation) verschiedene Berechnungen für verschiedene Wärmepumpen durchführen können. Simpel gefragt: kann man in Trnsys selber Schaltflächen erstellen, also den Nutzer mit der Simulation interagieren lassen?
Brainfuck-Quellcode
- Version 15.0
- *********************************************************************
- *
- * Brauchwasseranlage für IT-Projekt
- *
- * Version 1.1
- *
- *********************************************************************
- *
- * (basiert auf IEA High Performance House
- * Row_21_T_E_C_HP.DCK)
- *
- ASSIGN DHW_Listing.LST 6
- ASSIGN DHW_out.hour 93
- ASSIGN DHW_out.year 94
- ASSIGN DHW_out.month 95
- *
- * Brauchwasserprofil (Stundenweise)
- ASSIGN ..\Daten\brau1001.dat 22
- *
- * !!!!! Anpassen von TGROUND bei Wechsel der Wetterdaten!!!!!
- ASSIGN ..\Daten\MilaHour.dat 21
- *
- CONSTANCE 1
- * Mittlere Erdtemperatur
- TGROUND = 6.69
- *
- EQUATIONS 3
- * Simulationszeit: 1 Jahr (8760 h) --- ACHTUNG: START bei 1 (nicht 0)
- START = 1
- STOP = 8760
- STEP = 0.25
- *
- SIMULATION START STOP STEP
- WIDTH 72
- LIMITS 500 200
- *
- UNIT 9 TYPE 9 WETTERDATEN LESEN
- PARAMETERS 30
- * MODE SKIP NUMBER INTERVAL
- -1 0 8 1
- * Daten aus Datei -- Bei Minus keine Interpolation
- -1 1 0
- -2 1 0
- -3 1 0
- -4 3.6 0
- -5 3.6 0
- -6 1 0
- 7 1 0
- 8 1 0
- 21 -1
- *
- UNIT 10 TYPE 9 Einlesen Lastprofil Brauchwasser
- par 9
- -1 0 1 1
- -1 1 0
- 22 -1
- *
- EQUATIONS 1
- TA=[9,6]
- *
- *
- *********************************************************************
- * HEATING SYSTEM AND STORAGE TANK
- **********************************************************************
- *
- CONSTANTS 1
- * U-Wert Tank
- UTANK = 1.0
- *
- EQUATIONS 2
- * DHW load:
- * brau1001.dat is normalised to 100 l/d
- * 4 Persons x 40 l/d = 160 l/d at 40°C
- DHWload = 1.6*[10,1]*(40-TGROUND)/(MAX(30,[22,3])-TGROUND)
- * Power for DHW (in kJ/h)
- DHWpow = 3600*6
- *
- *---------------------------------------------------------------------
- *
- UNIT 22 TYPE 4 Storage Tank
- PARAMS 20
- * 1 2 3 4 5 6 7 8 9 10 11 12
- * mode Vol C2 rho Ut H1 AuxM heating1............
- 1 0.3 4.19 1000 UTank -1.6 1 1 1 51 2 DHWpow
- *
- * 13 14 15 16 17 18 19 20
- * heating2............... UAf Tflue Tboil
- 2 2 51 2 0 0 15 105
- * UAf=9.3 to model 60 W circulation loss
- INPUTS 7
- * T_hS M_hS T_load M_load T_env heat1 heat2
- 0,0 0,0 TGROUND DHWload 0,0 0,0 0,0
- 15 0 8.0 0 15 1 0
- DERIVATIVES 3
- * 1 Initial temp. of fluid: top tank segment ... bottom
- 50 30 10
- *
- *
- *
- *******************************************************
- * OUTPUT
- *******************************************************
- *
- EQUATIONS 1
- QINh = [22,8]/3600
- UNIT 40 TYPE 25 PRINTER hour
- PARAMETERS 4
- 1 START STOP 93
- INPUTS 6
- TA DHWload 22,3 22,13 22,1 QINh
- TOUT DHWload T1 T2 T3 QIN
- *
- *
- UNIT 41 TYPE 24 INTEGRATOR MONTH
- PARAMETERS 1
- -1
- INPUTS 3
- 22,5 22,6 22,8
- 0 0 0
- *
- EQUATIONS 4
- QLOSS = [41,1]/3600
- QLOAD = [41,2]/3600
- QIN = [41,3]/3600
- QOUT = QLOAD+QLOSS
- *
- UNIT 42 TYPE 25 PRINTER MONTH
- PARAMETERS 4
- -1 START STOP 95
- INPUTS 4
- QLOAD QLOSS QIN QOUT
- QLOAD QLOSS QIN QOUT
- *
- CONSTANCE 1
- *Primärenergiefaktor Strom
- PEF_EL = 2.35
- *
- EQUATIONS 1
- TEMP = -7 + (27/8760)*TIME
- UNIT 90 TYPE 113
- PARAMETERS 3
- 1 1 1
- INPUTS 2
- 0,0 TEMP
- 35 -7
- * 22,3 TA
- * 50 10
- EQUATIONS 4
- *
- * Hier kann der selbst errechnete COP eingebungen werden
- MY_COP=[90,1]
- * Energie für Brauchwasser
- DHWaux=[22,8]/3600
- * Primärenergie für Brauchwasser
- PRI_DHW=DHWaux*PEF_EL/MAX(1,MY_COP)
- * Gesamte Primärenergie mit Berücksichtigung von 5 kWh für Hilfsenergie
- PRIMARY=PRI_DHW+PEF_EL*5/8760
- *
- *
- UNIT 43 TYPE 24 INTEGRATOR YEAR
- PARAMETERS 1
- 8760
- INPUT 3
- DHWaux PRI_DHW PRIMARY
- 0 0 0
- *
- EQUATIONS 1
- * Integrierter Wert = Leistungsziffer
- COP_mean = PEF_EL*[43,1]/MAX(0.0001,[43,2])
- *
- UNIT 44 TYPE 25 PRINTER YEAR
- PARAMETERS 4
- 8760 START STOP 94
- INPUT 4
- 43,1 43,2 43,3 COP_mean
- DHWaux PRI_DHW PRIMARY COP_mean
- ***************************************************************
- *! ONLINE GRAPHICS
- ***************************************************************
- *
- UNIT 23 TYPE 65 ONLINE GRAPHICS
- PARAMETERS 10
- * 1 Number of variables displayed on left axis
- 2
- * 2 Number of variables displayed on right axis
- 1
- * 3 Min Y-axis value for left axis
- -20
- * 4 Max Y-axis value for left axis
- 80
- * 5 Min Y-axis value for right axis
- 2
- * 6 Max Y-axis value for right axis
- 5
- * 7 Number of plots per simulation
- 1
- * 8 X-axis gridpoints per plot
- 12
- * 9 shut off Online;
- * 0 or more: display Online ; -1 or less: do not display Online
- 0
- * 10 Output: 10 or more: logical unit number for output file
- * -1 or lower: do not generate output file
- -1
- *
- INPUTS 3
- TA 22,3 MY_COP
- T_luft_außen T_wasser_warm COP
- *
- LABELS 5
- C -
- Temperatur
- Leistungsziffer
- Online
- END
Quellcode
- SUBROUTINE TYPE113 (TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*)
- C**************************************************************************
- C LUFT/WASSER-WÄRMEPUMPE
- C**************************************************************************
- DOUBLE PRECISION XIN,OUT
- INTEGER*4 INFO
- DIMENSION PAR(3),XIN(2),OUT(3),INFO(15)
- CHARACTER*3 YCHECK(3),OCHECK(3)
- C FIRST CALL - DO THE USUAL STUFF
- IF (INFO(7).GE.0) GO TO 100
- INFO(3)=2
- INFO(4)=3
- INFO(6)=3
- INFO(9)=1
- CALL TYPECK(1,INFO,2,3,0)
- DATA YCHECK /'TE1','MF1','TE1'/
- DATA OCHECK /'TE1','MF1','PW1'/
- CALL RCHECK(INFO,YCHECK,OCHECK)
- 100 CONTINUE
- tv = XIN(1)
- temp = XIN(2)
- IF (temp <= 2.) THEN
- COP_A=0.0555*temp+2.8889
- COP_ATop=0.0778*temp+3.544
- COP_ABot=0.088*temp+2.618
- ELSE IF ((temp > 2.) .AND. (temp <= 10.)) THEN
- COP_A=0.1625*temp+2.675
- COP_ATop=0.175*temp+3.35
- COP_ABot=0.088*temp+2.618
- ELSE IF ((temp > 10.) .AND. (temp<=15.)) THEN
- COP_A=0.075*temp+3.5
- COP_ATop=0.12*temp+3.9
- COP_ABot=0.04*temp+3.1
- ELSE IF (temp > 15.) THEN
- COP_A=0.075*temp+3.5
- COP_ATop=0.15*temp+3.45
- COP_ABot=0.04*temp+3.1
- END IF
- IF (COP_A<1.)THEN
- COP_A=1.
- END IF
- IF (COP_ABot<1.)THEN
- COP_ABot=1.
- END IF
- IF (COP_ATop<1.)THEN
- COP_ATop=1.
- END IF
- !50 Grad Celsius Vorlauftemperatur
- IF (temp <=2.)THEN
- COP_B=0.067*temp+2.371
- COP_BTop=0.0556*temp+2.689
- COP_BBot=0.033*temp+1.73
- ELSE IF ((temp >2.) .AND. (temp <=7.)) THEN
- COP_B=0.067*temp+2.371
- COP_BTop=0.0846*temp+2.631
- COP_BBot=0.14*temp+1.52
- ELSE IF ((temp >7.) .AND. (temp <=15.)) THEN
- COP_B=0.067*temp+2.371
- COP_BTop=0.0846*temp+2.631
- COP_BBot=0.044*temp+2.194
- ELSE IF(temp > 15.) THEN
- COP_B=0.049*temp+2.645
- COP_BTop=0.06*temp+3
- COP_BBot=0.03*temp+2.4
- END IF
- IF (COP_B<1.)THEN
- COP_B=1.
- END IF
- IF (COP_BTop<1.)THEN
- COP_BTop=1.
- END IF
- IF (COP_BBot<1.)THEN
- COP_BBot=1.
- END IF
- !COP durch Interpolation Berechnen
- COP=COP_A+((COP_B-COP_A)/(50.-35.))*(tv-35.)
- COP_Ideal=COP_ATop+((COP_BTop-COP_ATop)/(50.-35.))*(tv-35.)
- COP_Un=COP_ABot+((COP_BBot-COP_ABot)/(50.-35.))*(tv-35.)
- C SET THE OUTPUTS
- OUT(1) = COP
- OUT(2) = COP_Ideal
- OUT(3) = COP_Un
- RETURN 1
- END