Running: ./testmodel.py --libraries=/home/hudson/saved_omc/libraries/.openmodelica/libraries/ --ompython_omhome=/usr IDEAS_IDEAS.Airflow.AHU.Adsolair58.conf.json loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/IDEAS 3.0.0/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo", uses=false) Using package ModelicaServices with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo) Using package Modelica with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo) Using package IDEAS with version 3.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/IDEAS 3.0.0/package.mo) Using package Complex with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo) Running command: translateModel(IDEAS.Airflow.AHU.Adsolair58,tolerance=0.001,outputFormat="empty",numberOfIntervals=5000,variableFilter="",fileNamePrefix="IDEAS_IDEAS.Airflow.AHU.Adsolair58") translateModel(IDEAS.Airflow.AHU.Adsolair58,tolerance=0.001,outputFormat="empty",numberOfIntervals=5000,variableFilter="",fileNamePrefix="IDEAS_IDEAS.Airflow.AHU.Adsolair58") Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo): time 0.0136/0.0136, allocations: 170.3 kB / 15.11 MB, free: 5.969 MB / 13.93 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/IDEAS 3.0.0/package.mo): time 0.8639/0.8639, allocations: 132.3 MB / 148.1 MB, free: 200 kB / 106.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo): time 1.861/1.861, allocations: 223.2 MB / 403.2 MB, free: 6.73 MB / 330.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo): time 0.0009855/0.0009855, allocations: 98.31 kB / 485.5 MB, free: 14.15 MB / 362.7 MB Warning: Ignoring unknown experiment annotation option: __Dymola_Algorithm = "Lsodar" Notification: Performance of FrontEnd - loaded program: time 0.0003917/0.0003918, allocations: 11.98 kB / 0.5641 GB, free: 2.137 MB / 442.7 MB Notification: Performance of FrontEnd - Absyn->SCode: time 0.6131/0.6135, allocations: 81.57 MB / 0.6437 GB, free: 39.27 MB / 458.7 MB Notification: Performance of FrontEnd - scodeFlatten: time 5.979/6.593, allocations: 1.983 GB / 2.627 GB, free: 11.38 MB / 0.6823 GB Notification: Performance of FrontEnd - mkProgramGraph: time 0.0004712/6.593, allocations: 86.48 kB / 2.627 GB, free: 11.3 MB / 0.6823 GB Notification: Performance of FrontEnd - DAE generated: time 20.45/27.05, allocations: 4.209 GB / 6.836 GB, free: 43.85 MB / 0.8698 GB Notification: Performance of FrontEnd: time 3.146e-06/27.05, allocations: 4.594 kB / 6.836 GB, free: 43.85 MB / 0.8698 GB Notification: Performance of Transformations before backend: time 0.001739/27.05, allocations: 196.6 kB / 6.836 GB, free: 43.83 MB / 0.8698 GB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 1260 * Number of variables: 1260 Notification: Performance of Generate backend data structure: time 0.05193/27.1, allocations: 10.79 MB / 6.846 GB, free: 39.89 MB / 0.8698 GB Notification: Performance of prepare preOptimizeDAE: time 5.731e-05/27.1, allocations: 10 kB / 6.846 GB, free: 39.89 MB / 0.8698 GB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.02168/27.12, allocations: 2.621 MB / 6.849 GB, free: 39.41 MB / 0.8698 GB Notification: Performance of preOpt evaluateParameters (simulation): time 0.0355/27.16, allocations: 8.534 MB / 6.857 GB, free: 38.16 MB / 0.8698 GB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.001157/27.16, allocations: 430.3 kB / 6.858 GB, free: 38.12 MB / 0.8698 GB Notification: Performance of preOpt expandDerOperator (simulation): time 0.004449/27.16, allocations: 0.5146 MB / 6.858 GB, free: 38.12 MB / 0.8698 GB Notification: Performance of preOpt clockPartitioning (simulation): time 0.02384/27.19, allocations: 6.415 MB / 6.864 GB, free: 37.47 MB / 0.8698 GB Notification: Performance of preOpt findStateOrder (simulation): time 0.0003213/27.19, allocations: 1.969 kB / 6.864 GB, free: 37.47 MB / 0.8698 GB Notification: Performance of preOpt replaceEdgeChange (simulation): time 0.002172/27.19, allocations: 219.5 kB / 6.865 GB, free: 37.47 MB / 0.8698 GB Notification: Performance of preOpt inlineArrayEqn (simulation): time 0.0002944/27.19, allocations: 206.3 kB / 6.865 GB, free: 37.46 MB / 0.8698 GB Notification: Performance of preOpt removeEqualRHS (simulation): time 0.01804/27.21, allocations: 5.556 MB / 6.87 GB, free: 37.41 MB / 0.8698 GB Warning: The model contains alias variables with redundant start and/or conflicting nominal values. It is recommended to resolve the conflicts, because otherwise the system could be hard to solve. To print the conflicting alias sets and the chosen candidates please use -d=aliasConflicts. Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.07004/27.28, allocations: 27.8 MB / 6.897 GB, free: 25.22 MB / 0.8698 GB Notification: Performance of preOpt comSubExp (simulation): time 0.01629/27.29, allocations: 4.77 MB / 6.902 GB, free: 25.13 MB / 0.8698 GB Notification: Performance of preOpt evalFunc (simulation): time 0.001073/27.3, allocations: 164.7 kB / 6.902 GB, free: 25.03 MB / 0.8698 GB Error: An independent subset of the model has imbalanced number of equations (318) and variables (320). variables: on_internal theConCon.dT theConCon.Q_flow theConEva.dT theConEva.Q_flow senTemFanSupOut.port_b.Xi_outflow[1] senTemFanSupOut.port_b.h_outflow valRecupTop.k valRecupTop.kVal valRecupTop.phi valRecupTop.dp valBypassTop.k valBypassTop.kVal valBypassTop.phi valBypassTop.dp valBypassTop.port_b.Xi_outflow[1] valBypassTop.port_b.h_outflow valRecupBot.k valRecupBot.kVal valRecupBot.phi valRecupBot.dp valRecupBot.m_flow valBypassBottom.k valBypassBottom.kVal valBypassBottom.phi valBypassBottom.dp resBot.port_b.Xi_outflow[1] resBot.port_b.h_outflow TFanSupOut fixedTemperature.port.Q_flow fan_flow_set[2].y fan_flow_set[1].y conCon.dT conCon.Q_flow TSupIn.T sum.u[5] sum.u[4] sum.u[3] sum.u[2] sum.u[1] fanBot.PToMed.y fanBot.PToMed.u2 fanBot.PToMed.u1 fanBot.heaDis.QThe_flow fanBot.heaDis.WHyd fanBot.gain.y fanBot.dp_actual fanBot.eff.rho fanBot.vol.heaFloSen.Q_flow fanBot.vol.hOut_internal fanBot.etaMot fanBot.etaHyd fanBot.eta fanBot.dpMachine fanBot.heatPort.T fanBot.y_actual fanBot.dp fanBot.port_a.p eva.dynBal.ports_mXi_flow[2,1] eva.dynBal.ports_mXi_flow[1,1] eva.dynBal.ports_H_flow[2] eva.dynBal.ports_H_flow[1] eva.dynBal.Hb_flow eva.dynBal.mbXi_flow[1] eva.dynBal.mXi[1] eva.dynBal.U eva.dynBal.medium.dT eva.dynBal.medium.p_bar eva.dynBal.medium.MM eva.dynBal.medium.R_s eva.dynBal.medium.u eva.dynBal.medium.X[2] eva.dynBal.medium.T eva.dynBal.medium.d eva.dynBal.medium.Xi[1] eva.heatPort.Q_flow eva.X_w eva.p eva.ports[2].h_outflow fanTop.PToMed.y fanTop.PToMed.u2 fanTop.PToMed.u1 fanTop.heaDis.QThe_flow fanTop.heaDis.WHyd fanTop.gain.y fanTop.dp_actual fanTop.eff.rho fanTop.vol.heaFloSen.Q_flow fanTop.vol.hOut_internal fanTop.etaMot fanTop.etaHyd fanTop.eta fanTop.dpMachine fanTop.heatPort.T fanTop.y_actual fanTop.dp fanTop.port_b.p con.dynBal.ports_mXi_flow[2,1] con.dynBal.ports_mXi_flow[1,1] con.dynBal.ports_H_flow[2] con.dynBal.ports_H_flow[1] con.dynBal.Hb_flow con.dynBal.mbXi_flow[1] con.dynBal.mXi[1] con.dynBal.U con.dynBal.medium.dT con.dynBal.medium.p_bar con.dynBal.medium.MM con.dynBal.medium.R_s con.dynBal.medium.u con.dynBal.medium.X[2] con.dynBal.medium.T con.dynBal.medium.d con.dynBal.medium.Xi[1] con.heatPort.Q_flow con.p con.T con.ports[2].h_outflow IEH.wetBulOut.XiSatRefIn IEH.wetBulOut.XiSat IEH.wetBulOut.TWetBul IEH.wetBulIn.XiSatRefIn IEH.wetBulIn.XiSat IEH.wetBulIn.TWetBul IEH.negate.y IEH.theCon.dT IEH.theCon.Q_flow IEH.preHeaFloBot.port.Q_flow IEH.preHeaFloTop.port.Q_flow IEH.eps_NTU IEH.eps_NTU_half IEH.NTU IEH.C_star IEH.C_max IEH.C_min IEH.C_bot IEH.C_top IEH.Qmax IEH.T_top_in_wet IEH.Xw_out_bot IEH.Xw_out_top IEH.Xw_sat_Tout_bot IEH.Xw_sat_Tin_bot IEH.Xw_sat_Tout_top IEH.Xw_sat_Tin_top IEH.Xw_80_Tout_top IEH.T_top_in IEH.T_bot_in IEH.Xw_in_bot IEH.mFloAdiBot.y IEH.TOutBot IEH.volTop.dynBal.ports_mXi_flow[2,1] IEH.volTop.dynBal.ports_mXi_flow[1,1] IEH.volTop.dynBal.ports_H_flow[2] IEH.volTop.dynBal.ports_H_flow[1] IEH.volTop.dynBal.Hb_flow IEH.volTop.dynBal.mbXi_flow[1] IEH.volTop.dynBal.mXi[1] IEH.volTop.dynBal.U IEH.volTop.dynBal.medium.dT IEH.volTop.dynBal.medium.p_bar IEH.volTop.dynBal.medium.MM IEH.volTop.dynBal.medium.R_s IEH.volTop.dynBal.medium.u IEH.volTop.dynBal.medium.X[2] IEH.volTop.dynBal.medium.T IEH.volTop.dynBal.medium.d IEH.volTop.dynBal.medium.Xi[1] IEH.volTop.heatPort.Q_flow IEH.volTop.X_w IEH.volTop.mWat_flow IEH.volTop.T IEH.volBot.dynBal.ports_mXi_flow[2,1] IEH.volBot.dynBal.ports_mXi_flow[1,1] IEH.volBot.dynBal.ports_H_flow[2] IEH.volBot.dynBal.ports_H_flow[1] IEH.volBot.dynBal.Hb_flow IEH.volBot.dynBal.mbXi_flow[1] IEH.volBot.dynBal.mXi[1] IEH.volBot.dynBal.U IEH.volBot.dynBal.medium.dT IEH.volBot.dynBal.medium.p_bar IEH.volBot.dynBal.medium.MM IEH.volBot.dynBal.medium.R_s IEH.volBot.dynBal.medium.u IEH.volBot.dynBal.medium.X[2] IEH.volBot.dynBal.medium.T IEH.volBot.dynBal.medium.d IEH.volBot.dynBal.medium.Xi[1] IEH.volBot.heatPort.Q_flow IEH.volBot.X_w IEH.E IEH.Q IEH.state_b2_inflow.X[2] IEH.state_b2_inflow.T IEH.state_a2_inflow.X[2] IEH.state_a2_inflow.T IEH.state_b1_inflow.X[2] IEH.state_b1_inflow.T IEH.state_a1_inflow.X[2] IEH.state_a1_inflow.T IEH.m1_flow IEH.port_b2.h_outflow IEH.port_b1.h_outflow TEvaExp.y com.heatCapacitor.port.Q_flow com.heatCapacitor.der_T com.heatCapacitor.T com.P_comp.y com.P_refrig.y com.and1.u1 com.hystMin.y com.hystMin.u com.hystMax.y com.hystMax.u com.onInt.y com.onInt.u com.tempMod com.Teva com.Qc_exp.y com.Qh_exp.y com.preHeaFloCon.port.Q_flow com.port_a.Q_flow hexSupOut.vol1.dynBal.ports_mXi_flow[1,1] hexSupOut.vol1.dynBal.ports_H_flow[1] hexSupOut.vol1.dynBal.medium.dT hexSupOut.vol1.dynBal.medium.p_bar hexSupOut.vol1.dynBal.medium.MM hexSupOut.vol1.dynBal.medium.R_s hexSupOut.vol1.dynBal.medium.u hexSupOut.vol1.dynBal.medium.X[2] hexSupOut.vol1.dynBal.medium.T hexSupOut.vol1.dynBal.medium.d hexSupOut.vol1.mXi[1] hexSupOut.vol1.Xi[1] hexSupOut.vol1.U hexSupOut.vol1.T hexSupOut.vol1.ports[1].h_outflow hexSupOut.state_b1_inflow.X[2] hexSupOut.state_b1_inflow.T hexSupOut.state_a1_inflow.X[2] hexSupOut.state_a1_inflow.T adsCon.TFanFil.uu[1] adsCon.TFanFil.x[1] adsCon.TFanFil.y adsCon.damMax.y adsCon.chiPid.risingEdge.u adsCon.chiPid.conPID.addSat.y adsCon.chiPid.conPID.addSat.u2 adsCon.chiPid.conPID.addI.u3 adsCon.chiPid.conPID.I.y_reset_in adsCon.chiPid.conPID.I.y adsCon.chiPid.conPID.I.u adsCon.chiPid.conPID.trigger adsCon.chiPid.conPID.addPID.y adsCon.chiPid.conPID.P.y adsCon.chiPid.conPID.P.u adsCon.chiPid.conPID.controlError adsCon.chiPid.conPID.y adsCon.chiPid.conPID.u_m adsCon.chiPid.conPID.u_s adsCon.absdT.y adsCon.absdT.u adsCon.damPid.kIn adsCon.damPid.revActIn adsCon.damPid.realExpression.y adsCon.damPid.risingEdge.u adsCon.damPid.conPID.addSat.y adsCon.damPid.conPID.addSat.u2 adsCon.damPid.conPID.addI.u3 adsCon.damPid.conPID.I.y_reset_in adsCon.damPid.conPID.I.y adsCon.damPid.conPID.I.u adsCon.damPid.conPID.trigger adsCon.damPid.conPID.addPID.y adsCon.damPid.conPID.P.y adsCon.damPid.conPID.P.u adsCon.damPid.conPID.controlError adsCon.damPid.conPID.y adsCon.damPid.conPID.u_m adsCon.damPid.conPID.u_s adsCon.damPid.y adsCon.onDelAdi.t_next adsCon.onDelAdi.delaySignal adsCon.onDelAdi.y adsCon.onDelAdi.u adsCon.onChiExp.y adsCon.onAdiaExp.y adsCon.mod adsCon.yBypBot adsCon.yRecBot adsCon.yRecTop adsCon.yBypTop P m_condens x_out X_sat_evap BPF E state_b2_inflow.X[2] state_b2_inflow.T state_a2_inflow.X[2] state_a2_inflow.T state_b1_inflow.X[2] state_b1_inflow.T dp2 dp1 port_b2.Xi_outflow[1] port_b2.h_outflow port_b2.p port_a2.h_outflow port_a2.p port_b1.Xi_outflow[1] port_b1.h_outflow port_b1.p port_a1.p $whenCondition2 $whenCondition1 $whenCondition3 $whenCondition4 equations: 1 : dp1 = port_a1.p - port_b1.p 2 : dp2 = port_a2.p - port_b2.p 3 : state_b1_inflow.X[2] = 1.0 - port_b1.Xi_outflow[1] 4 : state_b1_inflow.T = 273.15 + (port_b1.h_outflow + (-2501014.5) * port_b1.Xi_outflow[1]) / (1006.0 * state_b1_inflow.X[2] + 1860.0 * port_b1.Xi_outflow[1]) 5 : state_a2_inflow.X[2] = 1.0 - IEH.Xw_in_bot 6 : state_a2_inflow.T = 273.15 + (port_a2.h_outflow + (-2501014.5) * IEH.Xw_in_bot) / (1006.0 * state_a2_inflow.X[2] + 1860.0 * IEH.Xw_in_bot) 7 : state_b2_inflow.X[2] = 1.0 - port_b2.Xi_outflow[1] 8 : state_b2_inflow.T = 273.15 + (port_b2.h_outflow + (-2501014.5) * port_b2.Xi_outflow[1]) / (1006.0 * state_b2_inflow.X[2] + 1860.0 * port_b2.Xi_outflow[1]) 9 : E = IEH.E + eva.dynBal.U + con.dynBal.U 10 : BPF = min(1.0, max(0.0, IDEAS.Utilities.Math.Functions.spliceFunction((TEvaExp.y - com.Teva) * (if noEvent(IEH.TOutBot - com.Teva > 0.1) or noEvent(IEH.TOutBot - com.Teva < -0.1) then 1.0 / (IEH.TOutBot - com.Teva) else if noEvent(IEH.TOutBot - com.Teva < 0.05) and noEvent(IEH.TOutBot - com.Teva > -0.05) then (IEH.TOutBot - com.Teva) / 0.01 else IDEAS.Utilities.Math.Functions.BaseClasses.smoothTransition(IEH.TOutBot - com.Teva, 0.1, 10.0, -150.0, 11900.0, -361000.0, 5340000.0, -38000000.0, 104000000.0)), 1.0, -0.2 + abs(IEH.TOutBot - TEvaExp.y), 0.1))) 11 : X_sat_evap = 0.621964713077499 / (-0.378035286922501 + eva.p / smooth(1, if noEvent(-273.16 + com.Teva > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + com.Teva)) else if noEvent(-273.16 + com.Teva < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(com.Teva) else 0.25 * (-273.16 + com.Teva) * (-3.0 + (-273.16 + com.Teva) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(com.Teva) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + com.Teva))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + com.Teva)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(com.Teva)))) 12 : x_out = BPF * IEH.volBot.dynBal.medium.Xi[1] + (1.0 - BPF) * min(X_sat_evap, IEH.volBot.dynBal.medium.Xi[1]) 13 : m_condens = valRecupBot.m_flow * (IEH.volBot.dynBal.medium.Xi[1] - x_out) 14 : adsCon.onAdiaExp.y = on and Tset < TSupIn.T and (pre(adsCon.onAdiaExp.y) or Tset < IEH.TOutBot and pre(adsCon.damMax.y)) 15 : adsCon.onChiExp.y = on and adsCon.onDelAdi.y and Tset < IEH.TOutBot and (pre(adsCon.onChiExp.y) or 0.1 + Tset < IEH.TOutBot) 16 : adsCon.onDelAdi.y = if adsCon.onDelAdi.delaySignal then time >= adsCon.onDelAdi.t_next else false 17 : algorithm $whenCondition1 := adsCon.onDelAdi.u; $whenCondition2 := not adsCon.onDelAdi.u; when initial() then adsCon.onDelAdi.delaySignal := adsCon.onDelAdi.u; adsCon.onDelAdi.t_next := -1.0 + time; elsewhen $whenCondition1 then adsCon.onDelAdi.delaySignal := true; adsCon.onDelAdi.t_next := time + adsCon.onDelAdi.delayTime; elsewhen $whenCondition2 then adsCon.onDelAdi.delaySignal := false; adsCon.onDelAdi.t_next := -1.0 + time; end when; 18 : adsCon.damPid.revActIn = adsCon.onAdiaExp.y or adsCon.onChiExp.y or IEH.TOutBot < TSupIn.T 19 : adsCon.damPid.conPID.controlError = adsCon.damPid.conPID.u_s - adsCon.damPid.conPID.u_m 20 : adsCon.damPid.conPID.P.u = adsCon.damPid.conPID.addP.k1 * adsCon.damPid.conPID.u_s + adsCon.damPid.conPID.addP.k2 * adsCon.damPid.conPID.u_m 21 : adsCon.damPid.conPID.P.y = adsCon.damPid.conPID.P.k * adsCon.damPid.conPID.P.u 22 : adsCon.damPid.conPID.addPID.y = adsCon.damPid.conPID.addPID.k1 * adsCon.damPid.conPID.P.y + adsCon.damPid.conPID.addPID.k2 * adsCon.damPid.conPID.Dzero.k + adsCon.damPid.conPID.addPID.k3 * adsCon.damPid.conPID.I.y 23 : adsCon.damPid.conPID.addSat.u2 = adsCon.damPid.conPID.gainPID.k * adsCon.damPid.conPID.addPID.y 24 : adsCon.damPid.conPID.y = smooth(0, if noEvent(adsCon.damPid.conPID.addSat.u2 > adsCon.damPid.conPID.limiter.uMax) then adsCon.damPid.conPID.limiter.uMax else if noEvent(adsCon.damPid.conPID.addSat.u2 < adsCon.damPid.conPID.limiter.uMin) then adsCon.damPid.conPID.limiter.uMin else adsCon.damPid.conPID.addSat.u2) 25 : der(adsCon.damPid.conPID.I.y) = adsCon.damPid.conPID.I.k * adsCon.damPid.conPID.I.u 26 : adsCon.damPid.conPID.I.u = adsCon.damPid.conPID.addI.k1 * adsCon.damPid.conPID.u_s + adsCon.damPid.conPID.addI.k2 * adsCon.damPid.conPID.u_m + adsCon.damPid.conPID.addI.k3 * adsCon.damPid.conPID.addI.u3 27 : adsCon.damPid.conPID.addSat.y = adsCon.damPid.conPID.addSat.k1 * adsCon.damPid.conPID.y + adsCon.damPid.conPID.addSat.k2 * adsCon.damPid.conPID.addSat.u2 28 : adsCon.damPid.conPID.addI.u3 = adsCon.damPid.conPID.gainTrack.k * adsCon.damPid.conPID.addSat.y 29 : adsCon.damPid.conPID.I.y_reset_in = (-adsCon.damPid.conPID.P.y) - adsCon.damPid.conPID.Dzero.k 30 : adsCon.damPid.conPID.u_s = adsCon.damPid.realExpression.y * Tset 31 : adsCon.damPid.conPID.trigger = adsCon.damPid.risingEdge.u and not pre(adsCon.damPid.risingEdge.u) 32 : adsCon.damPid.conPID.u_m = adsCon.damPid.realExpression.y * adsCon.TFanFil.y 33 : adsCon.damPid.y = if on then adsCon.damPid.conPID.y else 0.0 34 : adsCon.damPid.realExpression.y = (if adsCon.damPid.revActIn then -1.0 else 1.0) * adsCon.damPid.kIn 35 : adsCon.absdT.y = if noEvent(adsCon.absdT.u >= 0.0) then adsCon.absdT.u else -adsCon.absdT.u 36 : adsCon.absdT.u = adsCon.add.k1 * TSupIn.T + adsCon.add.k2 * TEvaExp.y 37 : adsCon.yBypTop = if not adsCon.onAdiaExp.y and on and not adsCon.onChiExp.y then 1.0 - adsCon.damPid.y else 0.0 38 : adsCon.yRecTop = if on then 1.0 else 0.0 39 : adsCon.yRecBot = if on then if adsCon.onChiExp.y then 1.0 else min(2.0 * adsCon.damPid.y, 1.0) else 0.0 40 : adsCon.yBypBot = if on then if adsCon.onChiExp.y then 0.0 else min(2.0 + (-2.0) * adsCon.damPid.y, 1.0) else 0.0 41 : adsCon.chiPid.conPID.controlError = adsCon.chiPid.conPID.u_s - adsCon.chiPid.conPID.u_m 42 : adsCon.chiPid.conPID.P.u = adsCon.chiPid.conPID.addP.k1 * adsCon.chiPid.conPID.u_s + adsCon.chiPid.conPID.addP.k2 * adsCon.chiPid.conPID.u_m 43 : adsCon.chiPid.conPID.P.y = adsCon.chiPid.conPID.P.k * adsCon.chiPid.conPID.P.u 44 : adsCon.chiPid.conPID.addPID.y = adsCon.chiPid.conPID.addPID.k1 * adsCon.chiPid.conPID.P.y + adsCon.chiPid.conPID.addPID.k2 * adsCon.chiPid.conPID.Dzero.k + adsCon.chiPid.conPID.addPID.k3 * adsCon.chiPid.conPID.I.y 45 : adsCon.chiPid.conPID.addSat.u2 = adsCon.chiPid.conPID.gainPID.k * adsCon.chiPid.conPID.addPID.y 46 : adsCon.chiPid.conPID.y = smooth(0, if noEvent(adsCon.chiPid.conPID.addSat.u2 > adsCon.chiPid.conPID.limiter.uMax) then adsCon.chiPid.conPID.limiter.uMax else if noEvent(adsCon.chiPid.conPID.addSat.u2 < adsCon.chiPid.conPID.limiter.uMin) then adsCon.chiPid.conPID.limiter.uMin else adsCon.chiPid.conPID.addSat.u2) 47 : der(adsCon.chiPid.conPID.I.y) = adsCon.chiPid.conPID.I.k * adsCon.chiPid.conPID.I.u 48 : adsCon.chiPid.conPID.I.u = adsCon.chiPid.conPID.addI.k1 * adsCon.chiPid.conPID.u_s + adsCon.chiPid.conPID.addI.k2 * adsCon.chiPid.conPID.u_m + adsCon.chiPid.conPID.addI.k3 * adsCon.chiPid.conPID.addI.u3 49 : adsCon.chiPid.conPID.addSat.y = adsCon.chiPid.conPID.addSat.k1 * adsCon.chiPid.conPID.y + adsCon.chiPid.conPID.addSat.k2 * adsCon.chiPid.conPID.addSat.u2 50 : adsCon.chiPid.conPID.addI.u3 = adsCon.chiPid.conPID.gainTrack.k * adsCon.chiPid.conPID.addSat.y 51 : adsCon.chiPid.conPID.I.y_reset_in = 0.6 / adsCon.chiPid.conPID.k + (-adsCon.chiPid.conPID.P.y) - adsCon.chiPid.conPID.Dzero.k 52 : adsCon.chiPid.conPID.u_s = adsCon.chiPid.realExpression.y * Tset 53 : adsCon.chiPid.conPID.trigger = adsCon.chiPid.risingEdge.u and not pre(adsCon.chiPid.risingEdge.u) 54 : adsCon.chiPid.conPID.u_m = adsCon.chiPid.realExpression.y * adsCon.TFanFil.y 55 : adsCon.mod = if adsCon.onChiExp.y then adsCon.chiPid.conPID.y else 0.6 56 : adsCon.damPid.kIn = if noEvent(adsCon.absdT.y > adsCon.inverseXRegularized.delta) or noEvent(adsCon.absdT.y < (-adsCon.inverseXRegularized.delta)) then 1.0 / adsCon.absdT.y else if noEvent(adsCon.absdT.y < 0.5 * adsCon.inverseXRegularized.delta) and noEvent(adsCon.absdT.y > (-0.5) * adsCon.inverseXRegularized.delta) then adsCon.absdT.y / adsCon.inverseXRegularized.delta ^ 2.0 else IDEAS.Utilities.Math.Functions.BaseClasses.smoothTransition(adsCon.absdT.y, adsCon.inverseXRegularized.delta, 1.0 / adsCon.inverseXRegularized.delta, (-15.0) / adsCon.inverseXRegularized.delta, 119.0 * (1.0 / adsCon.inverseXRegularized.delta) ^ 2.0, (-361.0) * (1.0 / adsCon.inverseXRegularized.delta) ^ 3.0, 534.0 * (1.0 / adsCon.inverseXRegularized.delta) ^ 4.0, (-380.0) * (1.0 / adsCon.inverseXRegularized.delta) ^ 5.0, 104.0 * (1.0 / adsCon.inverseXRegularized.delta) ^ 6.0) 57 : adsCon.damMax.y = adsCon.damPid.y > 0.97 or adsCon.damPid.y < 0.03 58 : adsCon.TFanFil.uu[1] = TFanSupOut / adsCon.TFanFil.u_nominal 59 : der(adsCon.TFanFil.x[1]) = adsCon.TFanFil.r[1] * (adsCon.TFanFil.x[1] - adsCon.TFanFil.uu[1]) 60 : adsCon.TFanFil.y = adsCon.TFanFil.gain * adsCon.TFanFil.u_nominal * adsCon.TFanFil.x[1] 61 : hexSupOut.state_a1_inflow.X[2] = 1.0 - senTemFanSupOut.port_b.Xi_outflow[1] 62 : hexSupOut.state_a1_inflow.T = 273.15 + (senTemFanSupOut.port_b.h_outflow + (-2501014.5) * senTemFanSupOut.port_b.Xi_outflow[1]) / (1006.0 * hexSupOut.state_a1_inflow.X[2] + 1860.0 * senTemFanSupOut.port_b.Xi_outflow[1]) 63 : hexSupOut.state_b1_inflow.X[2] = 1.0 - hexSupOut.vol1.Xi[1] 64 : hexSupOut.state_b1_inflow.T = 273.15 + (hexSupOut.vol1.ports[1].h_outflow + (-2501014.5) * hexSupOut.vol1.Xi[1]) / (1006.0 * hexSupOut.state_b1_inflow.X[2] + 1860.0 * hexSupOut.vol1.Xi[1]) 65 : hexSupOut.vol1.T = 273.15 + (hexSupOut.vol1.ports[1].h_outflow + (-2501014.5) * hexSupOut.vol1.Xi[1]) / (1006.0 * (1.0 - hexSupOut.vol1.Xi[1]) + 1860.0 * hexSupOut.vol1.Xi[1]) 66 : hexSupOut.vol1.dynBal.medium.dT = -273.15 + hexSupOut.vol1.dynBal.medium.T 67 : hexSupOut.vol1.dynBal.medium.p_bar = 1e-05 * port_b2.p 68 : hexSupOut.vol1.dynBal.medium.MM = 1.0 / (55.50843506179199 * hexSupOut.vol1.Xi[1] + 34.52428788658843 * hexSupOut.vol1.dynBal.medium.X[2]) 69 : hexSupOut.vol1.ports[1].h_outflow = 1006.0 * hexSupOut.vol1.dynBal.medium.dT * hexSupOut.vol1.dynBal.medium.X[2] + (2501014.5 + 1860.0 * hexSupOut.vol1.dynBal.medium.dT) * hexSupOut.vol1.Xi[1] 70 : hexSupOut.vol1.dynBal.medium.R_s = 287.0512249529787 * hexSupOut.vol1.dynBal.medium.X[2] + 461.5233290850878 * hexSupOut.vol1.Xi[1] 71 : hexSupOut.vol1.dynBal.medium.u = -84437.5 + hexSupOut.vol1.ports[1].h_outflow 72 : 0.8333333333333334 * hexSupOut.vol1.dynBal.medium.d = 9.869232667160129e-06 * port_b2.p 73 : hexSupOut.vol1.dynBal.medium.X[2] = 1.0 - hexSupOut.vol1.Xi[1] 74 : hexSupOut.vol1.mXi[1] = hexSupOut.vol1.Xi[1] * hexSupOut.vol1.dynBal.m 75 : hexSupOut.vol1.U = hexSupOut.vol1.dynBal.m * hexSupOut.vol1.dynBal.medium.u 76 : hexSupOut.vol1.dynBal.ports_H_flow[1] = semiLinear(-0.0, senTemFanSupOut.port_b.h_outflow, hexSupOut.vol1.ports[1].h_outflow) 77 : hexSupOut.vol1.dynBal.ports_mXi_flow[1,1] = semiLinear(-0.0, senTemFanSupOut.port_b.Xi_outflow[1], hexSupOut.vol1.Xi[1]) 78 : -hexSupOut.vol1.dynBal.ports_H_flow[1] = semiLinear(0.0, hexSupOut.vol1.ports[1].h_outflow, hexSupOut.vol1.ports[1].h_outflow) 79 : -hexSupOut.vol1.dynBal.ports_mXi_flow[1,1] = semiLinear(0.0, hexSupOut.vol1.Xi[1], hexSupOut.vol1.Xi[1]) 80 : com.port_a.Q_flow = (-com.Qc_exp.y) * (1.0 + com.preHeaFloEva.alpha * (TEvaExp.y - com.preHeaFloEva.T_ref)) 81 : com.preHeaFloCon.port.Q_flow = (-com.Qh_exp.y) * (1.0 + com.preHeaFloCon.alpha * (com.heatCapacitor.T - com.preHeaFloCon.T_ref)) 82 : com.Qh_exp.y = com.tempMod * com.P_refrig.y * adsCon.mod * com.onInt.y + sum.u[4] 83 : com.Qc_exp.y = (-com.tempMod) * com.P_refrig.y * adsCon.mod * com.onInt.y 84 : sum.u[4] = com.tempMod * com.P_comp.y * (com.fraPmin + adsCon.mod * (1.0 - com.fraPmin)) * com.onInt.y 85 : com.tempMod = if com.smoothTmpPro then IDEAS.Utilities.Math.Functions.spliceFunction(1.0, 0.0, -1.0 + min(com.hystMax.u, com.hystMin.u) / com.modulatingRange, 1.0) else 1.0 86 : com.onInt.y = if com.onInt.u then com.onInt.realTrue else com.onInt.realFalse 87 : com.hystMax.y = not pre(com.hystMax.y) and com.hystMax.u > com.hystMax.uHigh or pre(com.hystMax.y) and com.hystMax.u >= com.hystMax.uLow 88 : com.hystMax.u = com.T_max - com.heatCapacitor.T 89 : com.hystMin.y = not pre(com.hystMin.y) and com.hystMin.u > com.hystMin.uHigh or pre(com.hystMin.y) and com.hystMin.u >= com.hystMin.uLow 90 : com.hystMin.u = com.Teva - com.T_min 91 : com.onInt.u = com.and1.u1 and adsCon.onChiExp.y 92 : com.and1.u1 = com.hystMax.y and com.hystMin.y 93 : com.P_refrig.y = Modelica.Blocks.Tables.Internal.getTable2DValue(com.P_refrig.tableID, com.heatCapacitor.T, com.Teva) 94 : com.P_comp.y = Modelica.Blocks.Tables.Internal.getTable2DValue(com.P_comp.tableID, com.heatCapacitor.T, com.Teva) 95 : com.heatCapacitor.der_T = der(com.heatCapacitor.T) 96 : com.heatCapacitor.C * com.heatCapacitor.der_T = com.heatCapacitor.port.Q_flow 97 : com.Teva = com.T_evap.k1 * com.const.k + com.T_evap.k2 * IEH.TOutBot 98 : IEH.state_a1_inflow.X[2] = 1.0 - valBypassTop.port_b.Xi_outflow[1] 99 : IEH.state_a1_inflow.T = 273.15 + (valBypassTop.port_b.h_outflow + (-2501014.5) * valBypassTop.port_b.Xi_outflow[1]) / (1006.0 * IEH.state_a1_inflow.X[2] + 1860.0 * valBypassTop.port_b.Xi_outflow[1]) 100 : IEH.state_b1_inflow.X[2] = 1.0 - con.dynBal.medium.Xi[1] 101 : IEH.state_b1_inflow.T = 273.15 + (con.ports[2].h_outflow + (-2501014.5) * con.dynBal.medium.Xi[1]) / (1006.0 * IEH.state_b1_inflow.X[2] + 1860.0 * con.dynBal.medium.Xi[1]) 102 : IEH.state_a2_inflow.X[2] = 1.0 - IEH.Xw_in_bot 103 : IEH.state_a2_inflow.T = 273.15 + (port_a2.h_outflow + (-2501014.5) * IEH.Xw_in_bot) / (1006.0 * IEH.state_a2_inflow.X[2] + 1860.0 * IEH.Xw_in_bot) 104 : IEH.state_b2_inflow.X[2] = 1.0 - eva.dynBal.medium.Xi[1] 105 : IEH.state_b2_inflow.T = 273.15 + (eva.ports[2].h_outflow + (-2501014.5) * eva.dynBal.medium.Xi[1]) / (1006.0 * IEH.state_b2_inflow.X[2] + 1860.0 * eva.dynBal.medium.Xi[1]) 106 : IEH.E = IEH.volTop.dynBal.U + IEH.volBot.dynBal.U 107 : IEH.TOutBot = 273.15 + (IEH.port_b2.h_outflow + (-2501014.5) * IEH.volBot.dynBal.medium.Xi[1]) / (1006.0 * (1.0 - IEH.volBot.dynBal.medium.Xi[1]) + 1860.0 * IEH.volBot.dynBal.medium.Xi[1]) 108 : IEH.volBot.X_w = IEH.volBot.s[1] * IEH.volBot.dynBal.medium.Xi[1] 109 : IEH.volBot.dynBal.medium.dT = -273.15 + IEH.volBot.dynBal.medium.T 110 : IEH.volBot.dynBal.medium.p_bar = 1e-05 * eva.p 111 : IEH.volBot.dynBal.medium.MM = 1.0 / (55.50843506179199 * IEH.volBot.dynBal.medium.Xi[1] + 34.52428788658843 * IEH.volBot.dynBal.medium.X[2]) 112 : IEH.port_b2.h_outflow = 1006.0 * IEH.volBot.dynBal.medium.dT * IEH.volBot.dynBal.medium.X[2] + (2501014.5 + 1860.0 * IEH.volBot.dynBal.medium.dT) * IEH.volBot.dynBal.medium.Xi[1] 113 : IEH.volBot.dynBal.medium.R_s = 287.0512249529787 * IEH.volBot.dynBal.medium.X[2] + 461.5233290850878 * IEH.volBot.dynBal.medium.Xi[1] 114 : IEH.volBot.dynBal.medium.u = -84437.5 + IEH.port_b2.h_outflow 115 : 0.8333333333333334 * IEH.volBot.dynBal.medium.d = 9.869232667160129e-06 * eva.p 116 : IEH.volBot.dynBal.medium.X[2] = 1.0 - IEH.volBot.dynBal.medium.Xi[1] 117 : IEH.volBot.dynBal.mXi[1] = IEH.volBot.dynBal.medium.Xi[1] * IEH.volBot.dynBal.m 118 : IEH.volBot.dynBal.U = IEH.volBot.dynBal.m * IEH.volBot.dynBal.medium.u 119 : IEH.volBot.dynBal.ports_H_flow[1] = semiLinear(valRecupBot.m_flow, port_a2.h_outflow, IEH.port_b2.h_outflow) 120 : IEH.volBot.dynBal.ports_mXi_flow[1,1] = semiLinear(valRecupBot.m_flow, IEH.Xw_in_bot, IEH.volBot.dynBal.medium.Xi[1]) 121 : IEH.volBot.dynBal.ports_H_flow[2] = semiLinear(-valRecupBot.m_flow, IEH.port_b2.h_outflow, IEH.port_b2.h_outflow) 122 : IEH.volBot.dynBal.ports_mXi_flow[2,1] = semiLinear(-valRecupBot.m_flow, IEH.volBot.dynBal.medium.Xi[1], IEH.volBot.dynBal.medium.Xi[1]) 123 : IEH.volBot.dynBal.mbXi_flow[1] = IEH.volBot.dynBal.ports_mXi_flow[1,1] + IEH.volBot.dynBal.ports_mXi_flow[2,1] 124 : IEH.volBot.dynBal.Hb_flow = IEH.volBot.dynBal.ports_H_flow[1] + IEH.volBot.dynBal.ports_H_flow[2] 125 : der(IEH.volBot.dynBal.U) = IEH.volBot.dynBal.Hb_flow + IEH.volBot.heatPort.Q_flow 126 : der(IEH.volBot.dynBal.mXi[1]) = IEH.volBot.dynBal.mbXi_flow[1] + IEH.mFloAdiBot.y 127 : IEH.volTop.T = 273.15 + (IEH.port_b1.h_outflow + (-2501014.5) * IEH.volTop.dynBal.medium.Xi[1]) / (1006.0 * (1.0 - IEH.volTop.dynBal.medium.Xi[1]) + 1860.0 * IEH.volTop.dynBal.medium.Xi[1]) 128 : IEH.volTop.X_w = IEH.volTop.s[1] * IEH.volTop.dynBal.medium.Xi[1] 129 : IEH.volTop.dynBal.medium.dT = -273.15 + IEH.volTop.dynBal.medium.T 130 : IEH.volTop.dynBal.medium.p_bar = 1e-05 * con.p 131 : IEH.volTop.dynBal.medium.MM = 1.0 / (55.50843506179199 * IEH.volTop.dynBal.medium.Xi[1] + 34.52428788658843 * IEH.volTop.dynBal.medium.X[2]) 132 : IEH.port_b1.h_outflow = 1006.0 * IEH.volTop.dynBal.medium.dT * IEH.volTop.dynBal.medium.X[2] + (2501014.5 + 1860.0 * IEH.volTop.dynBal.medium.dT) * IEH.volTop.dynBal.medium.Xi[1] 133 : IEH.volTop.dynBal.medium.R_s = 287.0512249529787 * IEH.volTop.dynBal.medium.X[2] + 461.5233290850878 * IEH.volTop.dynBal.medium.Xi[1] 134 : IEH.volTop.dynBal.medium.u = -84437.5 + IEH.port_b1.h_outflow 135 : 0.8333333333333334 * IEH.volTop.dynBal.medium.d = 9.869232667160129e-06 * con.p 136 : IEH.volTop.dynBal.medium.X[2] = 1.0 - IEH.volTop.dynBal.medium.Xi[1] 137 : IEH.volTop.dynBal.mXi[1] = IEH.volTop.dynBal.medium.Xi[1] * IEH.volTop.dynBal.m 138 : IEH.volTop.dynBal.U = IEH.volTop.dynBal.m * IEH.volTop.dynBal.medium.u 139 : IEH.volTop.dynBal.ports_H_flow[1] = semiLinear(IEH.m1_flow, valBypassTop.port_b.h_outflow, IEH.port_b1.h_outflow) 140 : IEH.volTop.dynBal.ports_mXi_flow[1,1] = semiLinear(IEH.m1_flow, valBypassTop.port_b.Xi_outflow[1], IEH.volTop.dynBal.medium.Xi[1]) 141 : IEH.volTop.dynBal.ports_H_flow[2] = semiLinear(-IEH.m1_flow, IEH.port_b1.h_outflow, IEH.port_b1.h_outflow) 142 : IEH.volTop.dynBal.ports_mXi_flow[2,1] = semiLinear(-IEH.m1_flow, IEH.volTop.dynBal.medium.Xi[1], IEH.volTop.dynBal.medium.Xi[1]) 143 : IEH.volTop.dynBal.mbXi_flow[1] = IEH.volTop.dynBal.ports_mXi_flow[1,1] + IEH.volTop.dynBal.ports_mXi_flow[2,1] 144 : IEH.volTop.dynBal.Hb_flow = IEH.volTop.dynBal.ports_H_flow[1] + IEH.volTop.dynBal.ports_H_flow[2] 145 : der(IEH.volTop.dynBal.U) = IEH.volTop.dynBal.Hb_flow + IEH.volTop.heatPort.Q_flow 146 : der(IEH.volTop.dynBal.mXi[1]) = IEH.volTop.dynBal.mbXi_flow[1] + IEH.volTop.mWat_flow 147 : IEH.mFloAdiBot.y = (IEH.Xw_out_bot - IEH.Xw_in_bot) * valRecupBot.m_flow 148 : IEH.T_bot_in = 273.15 + (port_a2.h_outflow + (-2501014.5) * IEH.Xw_in_bot) / (1006.0 * IEH.state_a2_inflow.X[2] + 1860.0 * IEH.Xw_in_bot) 149 : IEH.T_top_in = 273.15 + (valBypassTop.port_b.h_outflow + (-2501014.5) * valBypassTop.port_b.Xi_outflow[1]) / (1006.0 * IEH.state_a1_inflow.X[2] + 1860.0 * valBypassTop.port_b.Xi_outflow[1]) 150 : IEH.Xw_80_Tout_top = if IEH.simplifiedMassBalance then 0.4975717704619992 / (-0.3024282295380008 + con.p / smooth(1, if noEvent(-273.16 + IEH.volTop.T > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T)) else if noEvent(-273.16 + IEH.volTop.T < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T) else 0.25 * (-273.16 + IEH.volTop.T) * (-3.0 + (-273.16 + IEH.volTop.T) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T)))) else valBypassTop.port_b.Xi_outflow[1] + (IEH.Xw_sat_Tout_top - valBypassTop.port_b.Xi_outflow[1]) * IEH.eps_NTU 151 : IEH.Xw_sat_Tin_top = 0.621964713077499 / (-0.378035286922501 + con.p / smooth(1, if noEvent(-273.16 + IEH.T_top_in > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_top_in)) else if noEvent(-273.16 + IEH.T_top_in < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_top_in) else 0.25 * (-273.16 + IEH.T_top_in) * (-3.0 + (-273.16 + IEH.T_top_in) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_top_in) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_top_in))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_top_in)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_top_in)))) 152 : IEH.Xw_sat_Tout_top = 0.621964713077499 / (-0.378035286922501 + con.p / smooth(1, if noEvent(-273.16 + IEH.volTop.T > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T)) else if noEvent(-273.16 + IEH.volTop.T < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T) else 0.25 * (-273.16 + IEH.volTop.T) * (-3.0 + (-273.16 + IEH.volTop.T) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.volTop.T)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.volTop.T)))) 153 : IEH.Xw_sat_Tin_bot = 0.621964713077499 / (-0.378035286922501 + eva.p / smooth(1, if noEvent(-273.16 + IEH.T_bot_in > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_bot_in)) else if noEvent(-273.16 + IEH.T_bot_in < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_bot_in) else 0.25 * (-273.16 + IEH.T_bot_in) * (-3.0 + (-273.16 + IEH.T_bot_in) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_bot_in) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_bot_in))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.T_bot_in)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.T_bot_in)))) 154 : IEH.Xw_sat_Tout_bot = 0.621964713077499 / (-0.378035286922501 + eva.p / smooth(1, if noEvent(-273.16 + IEH.TOutBot > 1.0) then 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.TOutBot)) else if noEvent(-273.16 + IEH.TOutBot < -1.0) then IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.TOutBot) else 0.25 * (-273.16 + IEH.TOutBot) * (-3.0 + (-273.16 + IEH.TOutBot) ^ 2.0) * (IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.TOutBot) - 611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.TOutBot))) + 0.5 * (611.657 * exp(17.2799 + (-4102.99) / (-35.719 + IEH.TOutBot)) + IDEAS.Utilities.Psychrometrics.Functions.sublimationPressureIce(IEH.TOutBot)))) 155 : IEH.Xw_out_top = min(if adsCon.onDelAdi.u then max(IEH.Xw_80_Tout_top, valBypassTop.port_b.Xi_outflow[1]) else valBypassTop.port_b.Xi_outflow[1], IEH.Xw_sat_Tout_top) 156 : IEH.Xw_out_bot = min(IEH.Xw_in_bot, IEH.Xw_sat_Tout_bot) 157 : IEH.T_top_in_wet = if adsCon.onDelAdi.u then IEH.wetBulIn.TWetBul else IEH.T_top_in 158 : IEH.C_min = min(IEH.C_top, IEH.C_bot) 159 : IEH.C_max = max(IEH.C_top, IEH.C_bot) 160 : IEH.C_star = min(IEH.C_min * (if noEvent(IEH.C_max > 1.0) or noEvent(IEH.C_max < -1.0) then 1.0 / IEH.C_max else if noEvent(IEH.C_max < 0.5) and noEvent(IEH.C_max > -0.5) then IEH.C_max else IDEAS.Utilities.Math.Functions.BaseClasses.smoothTransition(IEH.C_max, 1.0, 1.0, -15.0, 119.0, -361.0, 534.0, -380.0, 104.0)), 0.9999999000000001) 161 : IEH.NTU = (if adsCon.onDelAdi.u then IEH.UA_adia_on else IEH.UA_adia_off) / max(1.0, IEH.C_min) 162 : IEH.eps_NTU_half = 1.0 - exp((-1.0 + exp((-IEH.C_star) * (0.5 * IEH.NTU) ^ 0.78)) * (if noEvent(IEH.C_star / (0.5 * IEH.NTU) ^ 0.22 > 0.01) or noEvent(IEH.C_star / (0.5 * IEH.NTU) ^ 0.22 < -0.01) then (0.5 * IEH.NTU) ^ 0.22 / IEH.C_star else if noEvent(IEH.C_star / (0.5 * IEH.NTU) ^ 0.22 < 0.005) and noEvent(IEH.C_star / (0.5 * IEH.NTU) ^ 0.22 > -0.005) then IEH.C_star / ((0.5 * IEH.NTU) ^ 0.22 * 0.0001) else IDEAS.Utilities.Math.Functions.BaseClasses.smoothTransition(IEH.C_star / (0.5 * IEH.NTU) ^ 0.22, 0.01, 100.0, -1500.0, 1190000.0, -361000000.0, 53400000000.0, -3800000000000.0, 104000000000000.0))) 163 : IEH.eps_NTU = (-1.0 + ((1.0 - IEH.eps_NTU_half * IEH.C_star) / max(0.01, 1.0 - IEH.eps_NTU_half)) ^ 2.0) / (((1.0 - IEH.eps_NTU_half * IEH.C_star) / max(0.01, 1.0 - IEH.eps_NTU_half)) ^ 2.0 - IEH.C_star) 164 : IEH.volTop.mWat_flow = (IEH.Xw_out_top - valBypassTop.port_b.Xi_outflow[1]) * IEH.m1_flow 165 : IEH.preHeaFloTop.port.Q_flow = (-IEH.Q) * (1.0 + IEH.preHeaFloTop.alpha * (IEH.volTop.T - IEH.preHeaFloTop.T_ref)) 166 : IEH.preHeaFloBot.port.Q_flow = (-IEH.negate.y) * (1.0 + IEH.preHeaFloBot.alpha * (IEH.TOutBot - IEH.preHeaFloBot.T_ref)) 167 : IEH.theCon.Q_flow = IEH.theCon.G * IEH.theCon.dT 168 : IEH.theCon.dT = IEH.TOutBot - IEH.volTop.T 169 : IEH.negate.y = IEH.negate.k * IEH.Q 170 : IEH.wetBulIn.XiSatRefIn = (1.0 - valBypassTop.port_b.Xi_outflow[1]) * IEH.wetBulIn.XiSat / (1.0 - IEH.wetBulIn.XiSat) 171 : IEH.wetBulIn.XiSat = 0.621964713077499 / (-0.378035286922501 + 0.001634903221903779 * con.p * exp(-17.2799 - (-4102.99) / (-35.719 + IEH.wetBulIn.TWetBul))) 172 : (-273.15 + IEH.wetBulIn.TWetBul) * (1006.0 * (1.0 - valBypassTop.port_b.Xi_outflow[1]) + 1860.0 * IEH.wetBulIn.XiSatRefIn + 4184.0 * (valBypassTop.port_b.Xi_outflow[1] - IEH.wetBulIn.XiSatRefIn)) = (-273.15 + IEH.T_top_in) * (1006.0 * (1.0 - valBypassTop.port_b.Xi_outflow[1]) + 1860.0 * valBypassTop.port_b.Xi_outflow[1]) + 2501014.5 * (valBypassTop.port_b.Xi_outflow[1] - IEH.wetBulIn.XiSatRefIn) 173 : IEH.wetBulOut.XiSatRefIn = (1.0 - IEH.volTop.dynBal.medium.Xi[1]) * IEH.wetBulOut.XiSat / (1.0 - IEH.wetBulOut.XiSat) 174 : IEH.wetBulOut.XiSat = 0.621964713077499 / (-0.378035286922501 + 0.001634903221903779 * con.p * exp(-17.2799 - (-4102.99) / (-35.719 + IEH.wetBulOut.TWetBul))) 175 : (-273.15 + IEH.wetBulOut.TWetBul) * (1006.0 * (1.0 - IEH.volTop.dynBal.medium.Xi[1]) + 1860.0 * IEH.wetBulOut.XiSatRefIn + 4184.0 * (IEH.volTop.dynBal.medium.Xi[1] - IEH.wetBulOut.XiSatRefIn)) = (-273.15 + IEH.volTop.T) * (1006.0 * (1.0 - IEH.volTop.dynBal.medium.Xi[1]) + 1860.0 * IEH.volTop.dynBal.medium.Xi[1]) + 2501014.5 * (IEH.volTop.dynBal.medium.Xi[1] - IEH.wetBulOut.XiSatRefIn) 176 : IEH.Qmax = IEH.C_min * (IEH.T_bot_in - IEH.T_top_in_wet) 177 : IEH.C_top = IEH.m1_flow * (if adsCon.onDelAdi.u then (IDEAS.Fluid.HeatExchangers.IndirectEvaporativeHex$IEH.Medium1.specificEnthalpy(IDEAS.Fluid.HeatExchangers.IndirectEvaporativeHex$IEH.Medium1.ThermodynamicState(con.p, IEH.wetBulOut.TWetBul, {IEH.wetBulOut.XiSat, 1.0 - IEH.wetBulOut.XiSat})) - IDEAS.Fluid.HeatExchangers.IndirectEvaporativeHex$IEH.Medium1.specificEnthalpy(IDEAS.Fluid.HeatExchangers.IndirectEvaporativeHex$IEH.Medium1.ThermodynamicState(con.p, IEH.wetBulIn.TWetBul, {IEH.wetBulIn.XiSat, 1.0 - IEH.wetBulIn.XiSat}))) * (if noEvent(IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul > 0.01) or noEvent(IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul < -0.01) then 1.0 / (IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul) else if noEvent(IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul < 0.005) and noEvent(IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul > -0.005) then 10000.0 * (IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul) else IDEAS.Utilities.Math.Functions.BaseClasses.smoothTransition(IEH.wetBulOut.TWetBul - IEH.wetBulIn.TWetBul, 0.01, 100.0, -1500.0, 1190000.0, -361000000.0, 53400000000.0, -3800000000000.0, 104000000000000.0)) else 1014.54) 178 : IEH.C_bot = 1014.54 * valRecupBot.m_flow 179 : IEH.Q = IEH.Qmax * IEH.eps_NTU 180 : con.T = 273.15 + (con.ports[2].h_outflow + (-2501014.5) * con.dynBal.medium.Xi[1]) / (1006.0 * (1.0 - con.dynBal.medium.Xi[1]) + 1860.0 * con.dynBal.medium.Xi[1]) 181 : con.dynBal.medium.dT = -273.15 + con.dynBal.medium.T 182 : con.dynBal.medium.p_bar = 1e-05 * con.p 183 : con.dynBal.medium.MM = 1.0 / (55.50843506179199 * con.dynBal.medium.Xi[1] + 34.52428788658843 * con.dynBal.medium.X[2]) 184 : con.ports[2].h_outflow = 1006.0 * con.dynBal.medium.dT * con.dynBal.medium.X[2] + (2501014.5 + 1860.0 * con.dynBal.medium.dT) * con.dynBal.medium.Xi[1] 185 : con.dynBal.medium.R_s = 287.0512249529787 * con.dynBal.medium.X[2] + 461.5233290850878 * con.dynBal.medium.Xi[1] 186 : con.dynBal.medium.u = -84437.5 + con.ports[2].h_outflow 187 : 0.8333333333333334 * con.dynBal.medium.d = 9.869232667160129e-06 * con.p 188 : con.dynBal.medium.X[2] = 1.0 - con.dynBal.medium.Xi[1] 189 : con.dynBal.mXi[1] = con.dynBal.medium.Xi[1] * con.dynBal.m 190 : con.dynBal.U = con.dynBal.m * con.dynBal.medium.u 191 : con.dynBal.ports_H_flow[1] = semiLinear(IEH.m1_flow, IEH.port_b1.h_outflow, con.ports[2].h_outflow) 192 : con.dynBal.ports_mXi_flow[1,1] = semiLinear(IEH.m1_flow, IEH.volTop.dynBal.medium.Xi[1], con.dynBal.medium.Xi[1]) 193 : con.dynBal.ports_H_flow[2] = semiLinear(-IEH.m1_flow, con.ports[2].h_outflow, con.ports[2].h_outflow) 194 : con.dynBal.ports_mXi_flow[2,1] = semiLinear(-IEH.m1_flow, con.dynBal.medium.Xi[1], con.dynBal.medium.Xi[1]) 195 : con.dynBal.mbXi_flow[1] = con.dynBal.ports_mXi_flow[1,1] + con.dynBal.ports_mXi_flow[2,1] 196 : con.dynBal.Hb_flow = con.dynBal.ports_H_flow[1] + con.dynBal.ports_H_flow[2] 197 : der(con.dynBal.U) = con.dynBal.Hb_flow + con.heatPort.Q_flow 198 : der(con.dynBal.mXi[1]) = con.dynBal.mbXi_flow[1] 199 : fanTop.dp = port_a1.p - fanTop.port_b.p 200 : fanTop.heatPort.T = 260.7720490561929 + 0.0009898344007047621 * fanTop.vol.hOut_internal 201 : fanTop.vol.hOut_internal = 22650.4725 202 : -fanTop.dpMachine = port_a1.p - fanTop.port_b.p 203 : fanTop.eff.rho = 1.184307920059215e-05 * port_a1.p 204 : fanTop.dp_actual = fanTop.port_b.p - port_a1.p 205 : fanTop.dp_actual = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(0.0, fanTop.y_actual, {fanTop.eff.preDer3[1], fanTop.eff.preDer3[2], fanTop.eff.preDer3[3], fanTop.eff.preDer3[4], fanTop.eff.preDer3[5], fanTop.eff.preDer3[6], fanTop.eff.preDer3[7], fanTop.eff.preDer3[8], fanTop.eff.preDer3[9], fanTop.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanTop.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanTop.eff.pCur3.dp[10]})), fanTop.y_actual * (IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(5.735833333333333, 1.0, {fanTop.eff.preDer3[1], fanTop.eff.preDer3[2], fanTop.eff.preDer3[3], fanTop.eff.preDer3[4], fanTop.eff.preDer3[5], fanTop.eff.preDer3[6], fanTop.eff.preDer3[7], fanTop.eff.preDer3[8], fanTop.eff.preDer3[9], fanTop.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanTop.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanTop.eff.pCur3.dp[10]})) + (-2.867916666666666) * (IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(6.022625, 1.0, {fanTop.eff.preDer3[1], fanTop.eff.preDer3[2], fanTop.eff.preDer3[3], fanTop.eff.preDer3[4], fanTop.eff.preDer3[5], fanTop.eff.preDer3[6], fanTop.eff.preDer3[7], fanTop.eff.preDer3[8], fanTop.eff.preDer3[9], fanTop.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanTop.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanTop.eff.pCur3.dp[10]})) - IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(5.449041666666666, 1.0, {fanTop.eff.preDer3[1], fanTop.eff.preDer3[2], fanTop.eff.preDer3[3], fanTop.eff.preDer3[4], fanTop.eff.preDer3[5], fanTop.eff.preDer3[6], fanTop.eff.preDer3[7], fanTop.eff.preDer3[8], fanTop.eff.preDer3[9], fanTop.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanTop.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanTop.eff.pCur3.dp[10]}))) / 0.2867916666666667)) 206 : fanTop.PToMed.u2 = 0.0 207 : fanTop.etaHyd = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanTop.eff.per.hydraulicEfficiency, 0.0, {fanTop.eff.hydDer[1], fanTop.eff.hydDer[2], fanTop.eff.hydDer[3], fanTop.eff.hydDer[4], fanTop.eff.hydDer[5], fanTop.eff.hydDer[6], fanTop.eff.hydDer[7]}, fanTop.y_actual, 0.05), IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanTop.eff.per.hydraulicEfficiency, 6.882296599878566, {fanTop.eff.hydDer[1], fanTop.eff.hydDer[2], fanTop.eff.hydDer[3], fanTop.eff.hydDer[4], fanTop.eff.hydDer[5], fanTop.eff.hydDer[6], fanTop.eff.hydDer[7]}, fanTop.y_actual, 0.05)) 208 : fanTop.etaMot = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanTop.eff.per.motorEfficiency, 0.0, {fanTop.eff.motDer[1], fanTop.eff.motDer[2]}, fanTop.y_actual, 0.05), IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanTop.eff.per.motorEfficiency, 6.882296599878566, {fanTop.eff.motDer[1], fanTop.eff.motDer[2]}, fanTop.y_actual, 0.05)) 209 : sum.u[2] = fanTop.PToMed.u2 / smooth(1, if noEvent(-1e-05 + fanTop.eta > 1e-06) then fanTop.eta else if noEvent(-1e-05 + fanTop.eta < -1e-06) then 1e-05 else 0.25 * (-1e-05 + fanTop.eta) * (-3.0 + (-10.0 + 1000000.0 * fanTop.eta) ^ 2.0) * (10.0 - 1000000.0 * fanTop.eta) + 0.5 * (fanTop.eta + 1e-05)) 210 : fanTop.eta = fanTop.etaHyd * fanTop.etaMot 211 : fanTop.gain.y = fanTop.gain.k * fan_flow_set[1].y 212 : fanTop.etaHyd * fanTop.heaDis.WHyd = fanTop.PToMed.u2 213 : fanTop.heaDis.QThe_flow + fanTop.PToMed.u2 = if fanTop.heaDis.motorCooledByFluid then sum.u[2] else fanTop.heaDis.WHyd 214 : fanTop.PToMed.u1 = 0.0 215 : fanTop.PToMed.y = fanTop.PToMed.k1 * fanTop.PToMed.u1 + fanTop.PToMed.k2 * fanTop.PToMed.u2 216 : -fanTop.vol.heaFloSen.Q_flow = (-fanTop.PToMed.y) * (1.0 + fanTop.prePow.alpha * (fanTop.heatPort.T - fanTop.prePow.T_ref)) 217 : TEvaExp.y = 273.15 + (eva.ports[2].h_outflow + (-2501014.5) * eva.dynBal.medium.Xi[1]) / (1006.0 * (1.0 - eva.dynBal.medium.Xi[1]) + 1860.0 * eva.dynBal.medium.Xi[1]) 218 : eva.X_w = eva.s[1] * eva.dynBal.medium.Xi[1] 219 : eva.dynBal.medium.dT = -273.15 + eva.dynBal.medium.T 220 : eva.dynBal.medium.p_bar = 1e-05 * eva.p 221 : eva.dynBal.medium.MM = 1.0 / (55.50843506179199 * eva.dynBal.medium.Xi[1] + 34.52428788658843 * eva.dynBal.medium.X[2]) 222 : eva.ports[2].h_outflow = 1006.0 * eva.dynBal.medium.dT * eva.dynBal.medium.X[2] + (2501014.5 + 1860.0 * eva.dynBal.medium.dT) * eva.dynBal.medium.Xi[1] 223 : eva.dynBal.medium.R_s = 287.0512249529787 * eva.dynBal.medium.X[2] + 461.5233290850878 * eva.dynBal.medium.Xi[1] 224 : eva.dynBal.medium.u = -84437.5 + eva.ports[2].h_outflow 225 : 0.8333333333333334 * eva.dynBal.medium.d = 9.869232667160129e-06 * eva.p 226 : eva.dynBal.medium.X[2] = 1.0 - eva.dynBal.medium.Xi[1] 227 : eva.dynBal.mXi[1] = eva.dynBal.medium.Xi[1] * eva.dynBal.m 228 : eva.dynBal.U = eva.dynBal.m * eva.dynBal.medium.u 229 : eva.dynBal.ports_H_flow[1] = semiLinear(valRecupBot.m_flow, IEH.port_b2.h_outflow, eva.ports[2].h_outflow) 230 : eva.dynBal.ports_mXi_flow[1,1] = semiLinear(valRecupBot.m_flow, IEH.volBot.dynBal.medium.Xi[1], eva.dynBal.medium.Xi[1]) 231 : eva.dynBal.ports_H_flow[2] = semiLinear(-valRecupBot.m_flow, port_a2.h_outflow, eva.ports[2].h_outflow) 232 : eva.dynBal.ports_mXi_flow[2,1] = semiLinear(-valRecupBot.m_flow, IEH.Xw_in_bot, eva.dynBal.medium.Xi[1]) 233 : eva.dynBal.mbXi_flow[1] = eva.dynBal.ports_mXi_flow[1,1] + eva.dynBal.ports_mXi_flow[2,1] 234 : eva.dynBal.Hb_flow = eva.dynBal.ports_H_flow[1] + eva.dynBal.ports_H_flow[2] 235 : der(eva.dynBal.U) = eva.dynBal.Hb_flow + eva.heatPort.Q_flow 236 : der(eva.dynBal.mXi[1]) = eva.dynBal.mbXi_flow[1] - m_condens 237 : fanBot.dp = fanBot.port_a.p - port_b2.p 238 : fanBot.heatPort.T = 273.15 + (fanBot.vol.hOut_internal + (-2501014.5) * resBot.port_b.Xi_outflow[1]) / (1006.0 * (1.0 - resBot.port_b.Xi_outflow[1]) + 1860.0 * resBot.port_b.Xi_outflow[1]) 239 : fanBot.vol.hOut_internal = resBot.port_b.h_outflow 240 : -fanBot.dpMachine = fanBot.port_a.p - port_b2.p 241 : fanBot.eff.rho = 1.184307920059215e-05 * fanBot.port_a.p 242 : fanBot.dp_actual = port_b2.p - fanBot.port_a.p 243 : fanBot.dp_actual = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(0.0, fanBot.y_actual, {fanBot.eff.preDer3[1], fanBot.eff.preDer3[2], fanBot.eff.preDer3[3], fanBot.eff.preDer3[4], fanBot.eff.preDer3[5], fanBot.eff.preDer3[6], fanBot.eff.preDer3[7], fanBot.eff.preDer3[8], fanBot.eff.preDer3[9], fanBot.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanBot.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanBot.eff.pCur3.dp[10]})), fanBot.y_actual * (IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(5.735833333333333, 1.0, {fanBot.eff.preDer3[1], fanBot.eff.preDer3[2], fanBot.eff.preDer3[3], fanBot.eff.preDer3[4], fanBot.eff.preDer3[5], fanBot.eff.preDer3[6], fanBot.eff.preDer3[7], fanBot.eff.preDer3[8], fanBot.eff.preDer3[9], fanBot.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanBot.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanBot.eff.pCur3.dp[10]})) + (-2.867916666666666) * (IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(6.022625, 1.0, {fanBot.eff.preDer3[1], fanBot.eff.preDer3[2], fanBot.eff.preDer3[3], fanBot.eff.preDer3[4], fanBot.eff.preDer3[5], fanBot.eff.preDer3[6], fanBot.eff.preDer3[7], fanBot.eff.preDer3[8], fanBot.eff.preDer3[9], fanBot.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanBot.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanBot.eff.pCur3.dp[10]})) - IDEAS.Fluid.Movers.BaseClasses.Characteristics.pressure(5.449041666666666, 1.0, {fanBot.eff.preDer3[1], fanBot.eff.preDer3[2], fanBot.eff.preDer3[3], fanBot.eff.preDer3[4], fanBot.eff.preDer3[5], fanBot.eff.preDer3[6], fanBot.eff.preDer3[7], fanBot.eff.preDer3[8], fanBot.eff.preDer3[9], fanBot.eff.preDer3[10]}, 1474.784768211921, 6.882296599878566, IDEAS.Fluid.Movers.BaseClasses.Characteristics.flowParametersInternal(10, {fanBot.eff.pCur3.V_flow[1], 1.506388888888889, 2.093611111111111, 2.766111111111111, 3.404444444444445, 4.126944444444445, 4.755833333333333, 5.289444444444444, 5.735833333333333, 6.882296599878566}, {1474.784768211921, 1385.080699783717, 1350.112158264775, 1290.148185219666, 1195.18238180882, 1021.221087347719, 838.2547779821157, 653.2833644258774, 470.3072782286494, fanBot.eff.pCur3.dp[10]}))) / 0.2867916666666667)) 244 : fanBot.PToMed.u2 = 0.0 245 : fanBot.etaHyd = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanBot.eff.per.hydraulicEfficiency, 0.0, {fanBot.eff.hydDer[1], fanBot.eff.hydDer[2], fanBot.eff.hydDer[3], fanBot.eff.hydDer[4], fanBot.eff.hydDer[5], fanBot.eff.hydDer[6], fanBot.eff.hydDer[7]}, fanBot.y_actual, 0.05), IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanBot.eff.per.hydraulicEfficiency, 6.882296599878566, {fanBot.eff.hydDer[1], fanBot.eff.hydDer[2], fanBot.eff.hydDer[3], fanBot.eff.hydDer[4], fanBot.eff.hydDer[5], fanBot.eff.hydDer[6], fanBot.eff.hydDer[7]}, fanBot.y_actual, 0.05)) 246 : fanBot.etaMot = homotopy(IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanBot.eff.per.motorEfficiency, 0.0, {fanBot.eff.motDer[1], fanBot.eff.motDer[2]}, fanBot.y_actual, 0.05), IDEAS.Fluid.Movers.BaseClasses.Characteristics.efficiency(fanBot.eff.per.motorEfficiency, 6.882296599878566, {fanBot.eff.motDer[1], fanBot.eff.motDer[2]}, fanBot.y_actual, 0.05)) 247 : sum.u[3] = fanBot.PToMed.u2 / smooth(1, if noEvent(-1e-05 + fanBot.eta > 1e-06) then fanBot.eta else if noEvent(-1e-05 + fanBot.eta < -1e-06) then 1e-05 else 0.25 * (-1e-05 + fanBot.eta) * (-3.0 + (-10.0 + 1000000.0 * fanBot.eta) ^ 2.0) * (10.0 - 1000000.0 * fanBot.eta) + 0.5 * (fanBot.eta + 1e-05)) 248 : fanBot.eta = fanBot.etaHyd * fanBot.etaMot 249 : fanBot.gain.y = fanBot.gain.k * fan_flow_set[2].y 250 : fanBot.etaHyd * fanBot.heaDis.WHyd = fanBot.PToMed.u2 251 : fanBot.heaDis.QThe_flow + fanBot.PToMed.u2 = if fanBot.heaDis.motorCooledByFluid then sum.u[3] else fanBot.heaDis.WHyd 252 : fanBot.PToMed.u1 = 0.0 253 : fanBot.PToMed.y = fanBot.PToMed.k1 * fanBot.PToMed.u1 + fanBot.PToMed.k2 * fanBot.PToMed.u2 254 : -fanBot.vol.heaFloSen.Q_flow = (-fanBot.PToMed.y) * (1.0 + fanBot.prePow.alpha * (fanBot.heatPort.T - fanBot.prePow.T_ref)) 255 : P = sum.k[1] * sum.u[1] + sum.k[2] * sum.u[2] + sum.k[3] * sum.u[3] + sum.k[4] * sum.u[4] + sum.k[5] * sum.u[5] 256 : TSupIn.T = 273.15 + (port_a2.h_outflow + (-2501014.5) * IEH.Xw_in_bot) / (1006.0 * (1.0 - IEH.Xw_in_bot) + 1860.0 * IEH.Xw_in_bot) 257 : conCon.Q_flow = conCon.G * conCon.dT 258 : conCon.dT = com.heatCapacitor.T - con.T 259 : fan_flow_set[1].y = if on_internal then dpSet[1] else 0.1 260 : fan_flow_set[2].y = if on_internal then dpSet[2] else 0.1 261 : resTop.dp = fanTop.port_b.p - con.p 262 : resBot.dp = eva.p - fanBot.port_a.p 263 : resBot.port_b.h_outflow = $OMC$inStreamDiv(($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) * port_a2.h_outflow + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07) * eva.ports[2].h_outflow) / ($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)), port_a2.h_outflow) 264 : resBot.port_b.Xi_outflow[1] = $OMC$inStreamDiv(($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) * IEH.Xw_in_bot + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07) * eva.dynBal.medium.Xi[1]) / ($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)), IEH.Xw_in_bot) 265 : valBypassBottom.dp = port_a2.p - eva.p 266 : valBypassBottom.phi = sqrt(1.0 / ((valBypassBottom.l + (1.0 - valBypassBottom.l) * (0.5826750000000001 * adsCon.yBypBot ^ 3.0 + 0.222823 * adsCon.yBypBot ^ 2.0 + 0.192212 * adsCon.yBypBot)) ^ (-2.0) + (if booleanConstant.k then valBypassBottom.yAdd ^ (-2.0) else 0.0))) 267 : valBypassBottom.kVal = valBypassBottom.phi * valBypassBottom.Kv_SI 268 : valBypassBottom.k = sqrt(1.0 / (3.203895937459951 + valBypassBottom.kVal ^ (-2.0))) 269 : -valRecupBot.m_flow = homotopy(IDEAS.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp(valBypassBottom.dp, valBypassBottom.k, valBypassBottom.m_flow_turbulent), 4.69 * valBypassBottom.dp / valBypassBottom.dp_nominal_pos) 270 : valRecupBot.dp = port_a2.p - eva.p 271 : valRecupBot.phi = sqrt(1.0 / ((valRecupBot.l + (1.0 - valRecupBot.l) * (0.5826750000000001 * adsCon.yRecBot ^ 3.0 + 0.222823 * adsCon.yRecBot ^ 2.0 + 0.192212 * adsCon.yRecBot)) ^ (-2.0) + (if booleanConstant.k then valRecupBot.yAdd ^ (-2.0) else 0.0))) 272 : valRecupBot.kVal = valRecupBot.phi * valRecupBot.Kv_SI 273 : valRecupBot.k = sqrt(1.0 / (11.82027723096367 + valRecupBot.kVal ^ (-2.0))) 274 : valRecupBot.m_flow = homotopy(IDEAS.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp(valRecupBot.dp, valRecupBot.k, valRecupBot.m_flow_turbulent), 4.69 * valRecupBot.dp / valRecupBot.dp_nominal_pos) 275 : valBypassTop.dp = con.p - port_b1.p 276 : valBypassTop.phi = sqrt(1.0 / ((valBypassTop.l + (1.0 - valBypassTop.l) * (0.5826750000000001 * adsCon.yBypTop ^ 3.0 + 0.222823 * adsCon.yBypTop ^ 2.0 + 0.192212 * adsCon.yBypTop)) ^ (-2.0) + (if booleanConstant.k then valBypassTop.yAdd ^ (-2.0) else 0.0))) 277 : valBypassTop.kVal = valBypassTop.phi * valBypassTop.Kv_SI 278 : valBypassTop.k = sqrt(1.0 / (2.503043701140587 + valBypassTop.kVal ^ (-2.0))) 279 : -IEH.m1_flow = homotopy(IDEAS.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp(valBypassTop.dp, valBypassTop.k, valBypassTop.m_flow_turbulent), 4.69 * valBypassTop.dp / valBypassTop.dp_nominal_pos) 280 : valRecupTop.dp = con.p - port_b1.p 281 : valRecupTop.phi = sqrt(1.0 / ((valRecupTop.l + (1.0 - valRecupTop.l) * (0.5826750000000001 * adsCon.yRecTop ^ 3.0 + 0.222823 * adsCon.yRecTop ^ 2.0 + 0.192212 * adsCon.yRecTop)) ^ (-2.0) + (if adsCon.onDelAdi.u then valRecupTop.yAdd ^ (-2.0) else 0.0))) 282 : valRecupTop.kVal = valRecupTop.phi * valRecupTop.Kv_SI 283 : valRecupTop.k = sqrt(1.0 / (13.04776755879451 + valRecupTop.kVal ^ (-2.0))) 284 : IEH.m1_flow = homotopy(IDEAS.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp(valRecupTop.dp, valRecupTop.k, valRecupTop.m_flow_turbulent), 4.69 * valRecupTop.dp / valRecupTop.dp_nominal_pos) 285 : TFanSupOut = 273.15 + (senTemFanSupOut.port_b.h_outflow + (-2501014.5) * senTemFanSupOut.port_b.Xi_outflow[1]) / (1006.0 * hexSupOut.state_a1_inflow.X[2] + 1860.0 * senTemFanSupOut.port_b.Xi_outflow[1]) 286 : sum.u[5] = if adsCon.onDelAdi.u then 770.0 else 0.0 287 : sum.u[1] = if on_internal then 780.0 else 150.0 288 : theConEva.Q_flow = theConEva.G * theConEva.dT 289 : theConEva.dT = fixedTemperature.T - TEvaExp.y 290 : theConCon.Q_flow = theConCon.G * theConCon.dT 291 : theConCon.dT = fixedTemperature.T - con.T 292 : fan_flow_set[2].y = port_b2.p - port_a2.p 293 : fan_flow_set[1].y = port_b1.p - port_a1.p 294 : fixedTemperature.port.Q_flow + theConEva.Q_flow + theConCon.Q_flow = 0.0 295 : com.port_a.Q_flow + eva.heatPort.Q_flow - theConEva.Q_flow = 0.0 296 : con.heatPort.Q_flow + (-conCon.Q_flow) - theConCon.Q_flow = 0.0 297 : com.preHeaFloCon.port.Q_flow + com.heatCapacitor.port.Q_flow + conCon.Q_flow = 0.0 298 : valBypassTop.port_b.Xi_outflow[1] = $OMC$PositiveMax(0.0, 1e-07) * 0.0025 / $OMC$PositiveMax(-0.0, 1e-07) 299 : valBypassTop.port_b.h_outflow = $OMC$PositiveMax(0.0, 1e-07) * 0.5 * fanTop.vol.hOut_internal / $OMC$PositiveMax(-0.0, 1e-07) 300 : senTemFanSupOut.port_b.Xi_outflow[1] = $OMC$PositiveMax(-0.0, 1e-07) * 0.5 * resBot.port_b.Xi_outflow[1] / $OMC$PositiveMax(-0.0, 1e-07) 301 : senTemFanSupOut.port_b.h_outflow = $OMC$PositiveMax(-0.0, 1e-07) * 0.5 * fanBot.vol.hOut_internal / $OMC$PositiveMax(-0.0, 1e-07) 302 : IEH.preHeaFloTop.port.Q_flow + IEH.volTop.heatPort.Q_flow - IEH.theCon.Q_flow = 0.0 303 : IEH.preHeaFloBot.port.Q_flow + IEH.volBot.heatPort.Q_flow + IEH.theCon.Q_flow = 0.0 304 : port_b2.Xi_outflow[1] = $OMC$PositiveMax(-0.0, 1e-07) * 0.5 * hexSupOut.vol1.Xi[1] / $OMC$PositiveMax(-0.0, 1e-07) 305 : port_b2.h_outflow = $OMC$PositiveMax(-0.0, 1e-07) * 0.5 * hexSupOut.vol1.ports[1].h_outflow / $OMC$PositiveMax(-0.0, 1e-07) 306 : IEH.Xw_in_bot = 0.01 * ($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)) / ($OMC$PositiveMax(-0.0, 1e-07) + $OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)) 307 : port_a2.h_outflow = 45300.945 * ($OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)) / ($OMC$PositiveMax(-0.0, 1e-07) + $OMC$PositiveMax(-valRecupBot.m_flow, 1e-07) + $OMC$PositiveMax(valRecupBot.m_flow, 1e-07)) 308 : port_b1.Xi_outflow[1] = ($OMC$PositiveMax(IEH.m1_flow, 1e-07) * con.dynBal.medium.Xi[1] + $OMC$PositiveMax(-IEH.m1_flow, 1e-07) * valBypassTop.port_b.Xi_outflow[1]) / ($OMC$PositiveMax(-0.0, 1e-07) + $OMC$PositiveMax(IEH.m1_flow, 1e-07) + $OMC$PositiveMax(-IEH.m1_flow, 1e-07)) 309 : port_b1.h_outflow = ($OMC$PositiveMax(IEH.m1_flow, 1e-07) * con.ports[2].h_outflow + $OMC$PositiveMax(-IEH.m1_flow, 1e-07) * valBypassTop.port_b.h_outflow) / ($OMC$PositiveMax(-0.0, 1e-07) + $OMC$PositiveMax(IEH.m1_flow, 1e-07) + $OMC$PositiveMax(-IEH.m1_flow, 1e-07)) 310 : adsCon.onAdiaExp.y = adsCon.onDelAdi.u 311 : adsCon.chiPid.risingEdge.u = adsCon.onChiExp.y 312 : on_internal = on 313 : adsCon.damPid.risingEdge.u = on 314 : $whenCondition3 = adsCon.damPid.conPID.trigger 315 : $whenCondition4 = adsCon.chiPid.conPID.trigger Notification: Performance of preOpt encapsulateWhenConditions (simulation) : time 0.01324/27.31, allocations: 6.426 MB / 6.909 GB, free: 24.67 MB / 0.8698 GB Error: pre-optimization module encapsulateWhenConditions (simulation) failed.