| 1 | true
|
|---|
| 2 | ""
|
|---|
| 3 | unmatched equations: 8, 32, 33, 39, 43, 73, 105, 111, 143, 186, 187, 188, 189
|
|---|
| 4 |
|
|---|
| 5 | Index Reduction neccessary!
|
|---|
| 6 | MSS subsets:
|
|---|
| 7 | 188, 159, 158, 189, 162
|
|---|
| 8 | 186, 152, 151, 187, 155
|
|---|
| 9 | 111, 110, 142, 143, 114
|
|---|
| 10 | 32, 3, 2, 33, 5, 39, 38, 50, 51, 80, 54, 49, 46, 53, 29, 23, 25, 11, 55, 99, 104, 77, 78, 88, 98, 72, 74, 86, 73, 105, 76
|
|---|
| 11 | 43
|
|---|
| 12 | 8
|
|---|
| 13 |
|
|---|
| 14 | ##############--MSSS--##############
|
|---|
| 15 | Indices of constraint equations: 8
|
|---|
| 16 |
|
|---|
| 17 | ------------------8------------------
|
|---|
| 18 | Constraint equation to be differentiated:
|
|---|
| 19 | tank.V = tank.crossArea * tank.level
|
|---|
| 20 | Differentiated equation:
|
|---|
| 21 | der(tank.V) = tank.crossArea * der(tank.level)
|
|---|
| 22 |
|
|---|
| 23 | Update Incidence Matrix: 8
|
|---|
| 24 |
|
|---|
| 25 | ##############--MSSS--##############
|
|---|
| 26 | Indices of constraint equations: 43
|
|---|
| 27 |
|
|---|
| 28 | ------------------43------------------
|
|---|
| 29 | Constraint equation to be differentiated:
|
|---|
| 30 | 0.0 = pump.medium.p - pump.p_b_nominal
|
|---|
| 31 | Differentiated equation:
|
|---|
| 32 | 0.0 = der(pump.medium.p)
|
|---|
| 33 |
|
|---|
| 34 | Update Incidence Matrix: 43
|
|---|
| 35 |
|
|---|
| 36 | ##############--MSSS--##############
|
|---|
| 37 | Indices of constraint equations: 32 3 33 5 39 50 51 80 54 49 46 53 29 23 25 11 55 99 104 77 78 88 98 74 86 73 105 76
|
|---|
| 38 |
|
|---|
| 39 | ------------------76------------------
|
|---|
| 40 | Constraint equation to be differentiated:
|
|---|
| 41 | heater.mediums[1].u = heater.mediums[1].h - heater.mediums[1].p / heater.statesFM[2].d
|
|---|
| 42 | Differentiated equation:
|
|---|
| 43 | der(heater.mediums[1].u) = der(heater.mediums[1].h) + (heater.mediums[1].p * der(heater.statesFM[2].d) - der(heater.mediums[1].p) * heater.statesFM[2].d) / heater.statesFM[2].d ^ 2.0
|
|---|
| 44 |
|
|---|
| 45 | ------------------105------------------
|
|---|
| 46 | Constraint equation to be differentiated:
|
|---|
| 47 | heater.Us[1] = heater.ms[1] * heater.mediums[1].u
|
|---|
| 48 | Differentiated equation:
|
|---|
| 49 | der(heater.Us[1]) = heater.ms[1] * der(heater.mediums[1].u) + heater.mb_flows[1] * heater.mediums[1].u
|
|---|
| 50 |
|
|---|
| 51 | ------------------73------------------
|
|---|
| 52 | Constraint equation to be differentiated:
|
|---|
| 53 | heater.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(heater.mediums[1].p, heater.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0))
|
|---|
| 54 | Differentiated equation:
|
|---|
| 55 | der(heater.statesFM[2].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(heater.mediums[1].p, heater.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0), der(heater.mediums[1].p), der(heater.mediums[1].h))
|
|---|
| 56 |
|
|---|
| 57 | ------------------86------------------
|
|---|
| 58 | Constraint equation to be differentiated:
|
|---|
| 59 | heater.flowModel.Fs_p[1] = heater.crossAreas[1] * (heater.mediums[1].p - pump.medium.p) * heater.flowModel.nParallel
|
|---|
| 60 | Differentiated equation:
|
|---|
| 61 | der(heater.flowModel.Fs_p[1]) = heater.crossAreas[1] * (der(heater.mediums[1].p) - der(pump.medium.p)) * heater.flowModel.nParallel
|
|---|
| 62 |
|
|---|
| 63 | ------------------74------------------
|
|---|
| 64 | Constraint equation to be differentiated:
|
|---|
| 65 | heater.heatTransfer.Ts[1] = Modelica.Media.Water.IF97_Utilities.T_props_ph(heater.mediums[1].p, heater.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0))
|
|---|
| 66 | Differentiated equation:
|
|---|
| 67 | der(heater.heatTransfer.Ts[1]) = Modelica.Media.Water.IF97_Utilities.T_ph_der(heater.mediums[1].p, heater.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0), der(heater.mediums[1].p), der(heater.mediums[1].h))
|
|---|
| 68 |
|
|---|
| 69 | ------------------98------------------
|
|---|
| 70 | Constraint equation to be differentiated:
|
|---|
| 71 | heater.statesFM[1].T = Modelica.Media.Water.IF97_Utilities.T_props_ph(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0))
|
|---|
| 72 | Differentiated equation:
|
|---|
| 73 | der(heater.statesFM[1].T) = Modelica.Media.Water.IF97_Utilities.T_ph_der(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0), der(pump.medium.p), der(pump.medium.h))
|
|---|
| 74 |
|
|---|
| 75 | ------------------88------------------
|
|---|
| 76 | Constraint equation to be differentiated:
|
|---|
| 77 | heater.flowModel.dps_fg[1] = (-2.0) * heater.flowModel.Fs_p[1] / (heater.flowModel.nParallel * 2.0 * heater.crossAreas[1])
|
|---|
| 78 | Differentiated equation:
|
|---|
| 79 | der(heater.flowModel.dps_fg[1]) = (-2.0) * der(heater.flowModel.Fs_p[1]) * heater.flowModel.nParallel * 2.0 * heater.crossAreas[1] / (heater.flowModel.nParallel ^ 2.0 * 4.0 * heater.crossAreas[1] ^ 2.0)
|
|---|
| 80 |
|
|---|
| 81 | ------------------78------------------
|
|---|
| 82 | Constraint equation to be differentiated:
|
|---|
| 83 | heater.flowModel.mus[2] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[2].d, heater.heatTransfer.Ts[1], heater.mediums[1].p, heater.statesFM[2].phase)
|
|---|
| 84 | Differentiated equation:
|
|---|
| 85 | der(heater.flowModel.mus[2]) = $DER$$PModelica$PMedia$PWater$PIF97_Utilities$PdynamicViscosity(heater.statesFM[2].d, heater.heatTransfer.Ts[1], heater.mediums[1].p, heater.statesFM[2].phase, der(heater.statesFM[2].d), der(heater.heatTransfer.Ts[1]), der(heater.mediums[1].p))
|
|---|
| 86 |
|
|---|
| 87 | ------------------77------------------
|
|---|
| 88 | Constraint equation to be differentiated:
|
|---|
| 89 | heater.flowModel.mus[1] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0)
|
|---|
| 90 | Differentiated equation:
|
|---|
| 91 | der(heater.flowModel.mus[1]) = der(heater.statesFM[1].d) * $DER$$PModelica$PMedia$PWater$PIF97_Utilities$PdynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0, 1.0, 0.0, 0.0) + der(heater.statesFM[1].T) * $DER$$PModelica$PMedia$PWater$PIF97_Utilities$PdynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0, 0.0, 1.0, 0.0) + der(pump.medium.p) * $DER$$PModelica$PMedia$PWater$PIF97_Utilities$PdynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0, 0.0, 0.0, 1.0)
|
|---|
| 92 |
|
|---|
| 93 | ------------------104------------------
|
|---|
| 94 | Constraint equation to be differentiated:
|
|---|
| 95 | heater.ms[1] = heater.fluidVolumes[1] * heater.statesFM[2].d
|
|---|
| 96 | Differentiated equation:
|
|---|
| 97 | heater.mb_flows[1] = heater.fluidVolumes[1] * der(heater.statesFM[2].d)
|
|---|
| 98 |
|
|---|
| 99 | ------------------99------------------
|
|---|
| 100 | Constraint equation to be differentiated:
|
|---|
| 101 | heater.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0))
|
|---|
| 102 | Differentiated equation:
|
|---|
| 103 | der(heater.statesFM[1].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0), der(pump.medium.p), der(pump.medium.h))
|
|---|
| 104 |
|
|---|
| 105 | ------------------55------------------
|
|---|
| 106 | Constraint equation to be differentiated:
|
|---|
| 107 | pump.Hb_flow = m_flow * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h))
|
|---|
| 108 | Differentiated equation:
|
|---|
| 109 | der(pump.Hb_flow) = m_flow * (der(tank.medium.h) - der(pump.medium.h)) + der(m_flow) * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h))
|
|---|
| 110 |
|
|---|
| 111 | ------------------11------------------
|
|---|
| 112 | Constraint equation to be differentiated:
|
|---|
| 113 | tank.vessel_ps_static[2] = max(0.0, tank.level - tank.portsData[2].height) * system.g * tank.heatTransfer.states[1].d + tank.p_ambient
|
|---|
| 114 | Differentiated equation:
|
|---|
| 115 | der(tank.vessel_ps_static[2]) = system.g * (max(0.0, tank.level - tank.portsData[2].height) * der(tank.heatTransfer.states[1].d) + (if noEvent(0.0 > tank.level - tank.portsData[2].height) then 0.0 else der(tank.level)) * tank.heatTransfer.states[1].d)
|
|---|
| 116 |
|
|---|
| 117 | ------------------25------------------
|
|---|
| 118 | Constraint equation to be differentiated:
|
|---|
| 119 | tank.ports_penetration[2] = Modelica.Fluid.Utilities.regStep(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height, 1.0, 0.001, 0.1 * tank.portsData[2].diameter)
|
|---|
| 120 | Differentiated equation:
|
|---|
| 121 | der(tank.ports_penetration[2]) = smooth(0, if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height > 0.1 * tank.portsData[2].diameter) then 0.0 else if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height < (-0.1) * tank.portsData[2].diameter) then 0.0 else if noEvent(0.1 * tank.portsData[2].diameter > 0.0) then 0.25 * ((tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) * (-999.0) * 2.0 * (tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) / tank.portsData[2].diameter * der(tank.level) * tank.portsData[2].diameter / tank.portsData[2].diameter ^ 2.0 * tank.portsData[2].diameter / tank.portsData[2].diameter ^ 2.0 + der(tank.level) * (-3.0 + 100.0 * ((tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) / tank.portsData[2].diameter) ^ 2.0) * (-9.99) / tank.portsData[2].diameter) else 0.0)
|
|---|
| 122 |
|
|---|
| 123 | ------------------23------------------
|
|---|
| 124 | Constraint equation to be differentiated:
|
|---|
| 125 | tank.portInDensities[2] = Modelica.Media.Water.IF97_Utilities.rho_props_ph(tank.vessel_ps_static[2], tank.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.vessel_ps_static[2], tank.medium.h, 0, 0))
|
|---|
| 126 | Differentiated equation:
|
|---|
| 127 | der(tank.portInDensities[2]) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(tank.vessel_ps_static[2], tank.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.vessel_ps_static[2], tank.medium.h, 0, 0), der(tank.vessel_ps_static[2]), der(tank.medium.h))
|
|---|
| 128 |
|
|---|
| 129 | ------------------29------------------
|
|---|
| 130 | Constraint equation to be differentiated:
|
|---|
| 131 | 0.0 = if tank.regularFlow[2] then tank.ports[2].p - homotopy(tank.vessel_ps_static[2] + 0.5 * tank.portAreas[2] ^ (-2.0) * Modelica.Fluid.Utilities.regSquare2(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.ports_penetration[2] * tank.heatTransfer.states[1].d), false, 1.0), tank.vessel_ps_static[2]) else if tank.inFlow[2] then tank.ports[2].p - tank.vessel_ps_static[2] else -m_flow
|
|---|
| 132 | Differentiated equation:
|
|---|
| 133 | 0.0 = if tank.regularFlow[2] then der(tank.ports[2].p) - homotopy(der(tank.vessel_ps_static[2]) + 0.5 * tank.portAreas[2] ^ (-2.0) * smooth(1, if noEvent((-m_flow) >= tank.m_flow_small) then (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] * 2.0 * m_flow * der(m_flow) + (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * (der(tank.ports_penetration[2]) * tank.portInDensities[2] - tank.ports_penetration[2] * der(tank.portInDensities[2])) / tank.portInDensities[2] ^ 2.0 * m_flow ^ 2.0 else if noEvent((-m_flow) <= (-tank.m_flow_small)) then (2.0 * m_flow * der(m_flow) * tank.heatTransfer.states[1].d * tank.ports_penetration[2] - m_flow ^ 2.0 * (tank.heatTransfer.states[1].d * der(tank.ports_penetration[2]) + der(tank.heatTransfer.states[1].d) * tank.ports_penetration[2])) * (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) ^ 2.0 else if noEvent((-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] >= (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2])) then (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * (der(tank.ports_penetration[2]) * tank.portInDensities[2] - tank.ports_penetration[2] * der(tank.portInDensities[2])) / tank.portInDensities[2] ^ 2.0 * $DER$$PModelica$PFluid$PUtilities$PregSquare2$PregSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0, -0.0, 0.0, 1.0, 0.0, 0.0) - der(m_flow) * $DER$$PModelica$PFluid$PUtilities$PregSquare2$PregSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0) + $DER$$PModelica$PFluid$PUtilities$PregSquare2$PregSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0, -0.0, 0.0, 0.0, 1.0, 0.0) * (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) * (tank.heatTransfer.states[1].d * der(tank.ports_penetration[2]) + der(tank.heatTransfer.states[1].d) * tank.ports_penetration[2]) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) ^ 2.0 else -$DER$$PModelica$PFluid$PUtilities$PregSquare2$PregSquare2_utility(m_flow, tank.m_flow_small, (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], false, 1.0, der(m_flow), 0.0, (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) * (tank.heatTransfer.states[1].d * der(tank.ports_penetration[2]) + der(tank.heatTransfer.states[1].d) * tank.ports_penetration[2]) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) ^ 2.0, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * (der(tank.ports_penetration[2]) * tank.portInDensities[2] - tank.ports_penetration[2] * der(tank.portInDensities[2])) / tank.portInDensities[2] ^ 2.0, 0.0)), der(tank.vessel_ps_static[2])) else if tank.inFlow[2] then der(tank.ports[2].p) - der(tank.vessel_ps_static[2]) else -der(m_flow)
|
|---|
| 134 |
|
|---|
| 135 | ------------------53------------------
|
|---|
| 136 | Constraint equation to be differentiated:
|
|---|
| 137 | pump.eta = homotopy(Modelica.Fluid.Machines.ControlledPump$pump.efficiencyCharacteristic(pump.V_flow_single * pump.N_nominal / pump.N, 0.8), Modelica.Fluid.Machines.ControlledPump$pump.efficiencyCharacteristic(pump.V_flow_single_init, 0.8))
|
|---|
| 138 | Differentiated equation:
|
|---|
| 139 | der(pump.eta) = 0.0
|
|---|
| 140 |
|
|---|
| 141 | ------------------46------------------
|
|---|
| 142 | Constraint equation to be differentiated:
|
|---|
| 143 | -pump.Hb_flow = pump.W_single * /*Real*/(pump.nParallel)
|
|---|
| 144 | Differentiated equation:
|
|---|
| 145 | -der(pump.Hb_flow) = der(pump.W_single) * /*Real*/(pump.nParallel)
|
|---|
| 146 |
|
|---|
| 147 | ------------------49------------------
|
|---|
| 148 | Constraint equation to be differentiated:
|
|---|
| 149 | pump.dp_pump = pump.p_b_nominal - tank.ports[2].p
|
|---|
| 150 | Differentiated equation:
|
|---|
| 151 | der(pump.dp_pump) = -der(tank.ports[2].p)
|
|---|
| 152 |
|
|---|
| 153 | ------------------54------------------
|
|---|
| 154 | Constraint equation to be differentiated:
|
|---|
| 155 | pump.W_single = homotopy(pump.dp_pump * pump.V_flow_single / pump.eta, pump.dp_pump * pump.V_flow_single_init / pump.eta)
|
|---|
| 156 | Differentiated equation:
|
|---|
| 157 | der(pump.W_single) = homotopy(pump.dp_pump * (der(pump.V_flow_single) * pump.eta - pump.V_flow_single * der(pump.eta)) / pump.eta ^ 2.0 + der(pump.dp_pump) * pump.V_flow_single / pump.eta, pump.dp_pump * (-pump.V_flow_single_init) * der(pump.eta) / pump.eta ^ 2.0 + der(pump.dp_pump) * pump.V_flow_single_init / pump.eta)
|
|---|
| 158 |
|
|---|
| 159 | ------------------80------------------
|
|---|
| 160 | Constraint equation to be differentiated:
|
|---|
| 161 | m_flow = homotopy(Modelica.Fluid.Pipes.DynamicPipe$heater.FlowModel$heater$flowModel.WallFriction.massFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent) * heater.flowModel.nParallel, heater.flowModel.dps_fg[1] * heater.flowModel.m_flow_nominal / heater.flowModel.dp_nominal)
|
|---|
| 162 | Differentiated equation:
|
|---|
| 163 | der(m_flow) = homotopy((der(heater.flowModel.dps_fg[1]) * $DER$$PModelica$PFluid$PPipes$PDynamicPipe$heater$PFlowModel$heater$flowModel$PWallFriction$PmassFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) + der(heater.statesFM[1].d) * $DER$$PModelica$PFluid$PPipes$PDynamicPipe$heater$PFlowModel$heater$flowModel$PWallFriction$PmassFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) + der(heater.statesFM[2].d) * $DER$$PModelica$PFluid$PPipes$PDynamicPipe$heater$PFlowModel$heater$flowModel$PWallFriction$PmassFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) + der(heater.flowModel.mus[1]) * $DER$$PModelica$PFluid$PPipes$PDynamicPipe$heater$PFlowModel$heater$flowModel$PWallFriction$PmassFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) + der(heater.flowModel.mus[2]) * $DER$$PModelica$PFluid$PPipes$PDynamicPipe$heater$PFlowModel$heater$flowModel$PWallFriction$PmassFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)) * heater.flowModel.nParallel, der(heater.flowModel.dps_fg[1]) * heater.flowModel.m_flow_nominal / heater.flowModel.dp_nominal)
|
|---|
| 164 |
|
|---|
| 165 | ------------------51------------------
|
|---|
| 166 | Constraint equation to be differentiated:
|
|---|
| 167 | pump.V_flow_single = pump.V_flow / /*Real*/(pump.nParallel)
|
|---|
| 168 | Differentiated equation:
|
|---|
| 169 | der(pump.V_flow_single) = der(pump.V_flow) / /*Real*/(pump.nParallel)
|
|---|
| 170 |
|
|---|
| 171 | ------------------50------------------
|
|---|
| 172 | Constraint equation to be differentiated:
|
|---|
| 173 | pump.V_flow = homotopy(m_flow / pump.rho, m_flow / pump.rho_nominal)
|
|---|
| 174 | Differentiated equation:
|
|---|
| 175 | der(pump.V_flow) = homotopy((der(m_flow) * pump.rho - m_flow * der(pump.rho)) / pump.rho ^ 2.0, der(m_flow) * pump.rho_nominal / pump.rho_nominal ^ 2.0)
|
|---|
| 176 |
|
|---|
| 177 | ------------------39------------------
|
|---|
| 178 | Constraint equation to be differentiated:
|
|---|
| 179 | pump.rho = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, pump.heatTransfer.states[1].phase, 0))
|
|---|
| 180 | Differentiated equation:
|
|---|
| 181 | der(pump.rho) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(pump.medium.p, pump.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, pump.heatTransfer.states[1].phase, 0), der(pump.medium.p), der(pump.medium.h))
|
|---|
| 182 |
|
|---|
| 183 | ------------------5------------------
|
|---|
| 184 | Constraint equation to be differentiated:
|
|---|
| 185 | tank.medium.u = tank.medium.h - tank.p_ambient / tank.heatTransfer.states[1].d
|
|---|
| 186 | Differentiated equation:
|
|---|
| 187 | der(tank.medium.u) = der(tank.medium.h) + tank.p_ambient * der(tank.heatTransfer.states[1].d) / tank.heatTransfer.states[1].d ^ 2.0
|
|---|
| 188 |
|
|---|
| 189 | ------------------33------------------
|
|---|
| 190 | Constraint equation to be differentiated:
|
|---|
| 191 | tank.U = tank.m * tank.medium.u
|
|---|
| 192 | Differentiated equation:
|
|---|
| 193 | der(tank.U) = tank.m * der(tank.medium.u) + tank.mb_flow * tank.medium.u
|
|---|
| 194 |
|
|---|
| 195 | ------------------3------------------
|
|---|
| 196 | Constraint equation to be differentiated:
|
|---|
| 197 | tank.heatTransfer.states[1].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(tank.p_ambient, tank.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.p_ambient, tank.medium.h, tank.heatTransfer.states[1].phase, 0))
|
|---|
| 198 | Differentiated equation:
|
|---|
| 199 | der(tank.heatTransfer.states[1].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(tank.p_ambient, tank.medium.h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.p_ambient, tank.medium.h, tank.heatTransfer.states[1].phase, 0), 0.0, der(tank.medium.h))
|
|---|
| 200 |
|
|---|
| 201 | ------------------32------------------
|
|---|
| 202 | Constraint equation to be differentiated:
|
|---|
| 203 | tank.m = tank.V * tank.heatTransfer.states[1].d
|
|---|
| 204 | Differentiated equation:
|
|---|
| 205 | tank.mb_flow = tank.V * der(tank.heatTransfer.states[1].d) + der(tank.V) * tank.heatTransfer.states[1].d
|
|---|
| 206 |
|
|---|
| 207 | Update Incidence Matrix: 92 84 82 81 70 69 93 85 83 102 96 94 90 45 31 30 28 24 20 10 48 47 44 52 42 76 105 73 86 74 98 88 78 77 104 99 55 11 25 23 29 53 46 49 54 80 51 50 39 5 33 3 32
|
|---|
| 208 |
|
|---|
| 209 | ##############--MSSS--##############
|
|---|
| 210 | Indices of constraint equations: 111 142 143 114
|
|---|
| 211 |
|
|---|
| 212 | ------------------114------------------
|
|---|
| 213 | Constraint equation to be differentiated:
|
|---|
| 214 | radiator.mediums[1].u = radiator.mediums[1].h - radiator.mediums[1].p / radiator.statesFM[2].d
|
|---|
| 215 | Differentiated equation:
|
|---|
| 216 | der(radiator.mediums[1].u) = der(radiator.mediums[1].h) + (radiator.mediums[1].p * der(radiator.statesFM[2].d) - der(radiator.mediums[1].p) * radiator.statesFM[2].d) / radiator.statesFM[2].d ^ 2.0
|
|---|
| 217 |
|
|---|
| 218 | ------------------143------------------
|
|---|
| 219 | Constraint equation to be differentiated:
|
|---|
| 220 | radiator.Us[1] = radiator.ms[1] * radiator.mediums[1].u
|
|---|
| 221 | Differentiated equation:
|
|---|
| 222 | der(radiator.Us[1]) = radiator.ms[1] * der(radiator.mediums[1].u) + radiator.mb_flows[1] * radiator.mediums[1].u
|
|---|
| 223 |
|
|---|
| 224 | ------------------142------------------
|
|---|
| 225 | Constraint equation to be differentiated:
|
|---|
| 226 | radiator.ms[1] = radiator.fluidVolumes[1] * radiator.statesFM[2].d
|
|---|
| 227 | Differentiated equation:
|
|---|
| 228 | radiator.mb_flows[1] = radiator.fluidVolumes[1] * der(radiator.statesFM[2].d)
|
|---|
| 229 |
|
|---|
| 230 | ------------------111------------------
|
|---|
| 231 | Constraint equation to be differentiated:
|
|---|
| 232 | radiator.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(radiator.mediums[1].p, radiator.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(radiator.mediums[1].p, radiator.mediums[1].h, radiator.statesFM[2].phase, 0))
|
|---|
| 233 | Differentiated equation:
|
|---|
| 234 | der(radiator.statesFM[2].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(radiator.mediums[1].p, radiator.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(radiator.mediums[1].p, radiator.mediums[1].h, radiator.statesFM[2].phase, 0), der(radiator.mediums[1].p), der(radiator.mediums[1].h))
|
|---|
| 235 |
|
|---|
| 236 | Update Incidence Matrix: 130 122 120 119 118 116 114 143 142 111
|
|---|
| 237 |
|
|---|
| 238 | ##############--MSSS--##############
|
|---|
| 239 | Indices of constraint equations: 186 152 187 155
|
|---|
| 240 |
|
|---|
| 241 | ------------------155------------------
|
|---|
| 242 | Constraint equation to be differentiated:
|
|---|
| 243 | pipe.mediums[1].u = pipe.mediums[1].h - pipe.mediums[1].p / pipe.statesFM[1].d
|
|---|
| 244 | Differentiated equation:
|
|---|
| 245 | der(pipe.mediums[1].u) = der(pipe.mediums[1].h) + (pipe.mediums[1].p * der(pipe.statesFM[1].d) - der(pipe.mediums[1].p) * pipe.statesFM[1].d) / pipe.statesFM[1].d ^ 2.0
|
|---|
| 246 |
|
|---|
| 247 | ------------------187------------------
|
|---|
| 248 | Constraint equation to be differentiated:
|
|---|
| 249 | pipe.Us[1] = pipe.ms[1] * pipe.mediums[1].u
|
|---|
| 250 | Differentiated equation:
|
|---|
| 251 | der(pipe.Us[1]) = pipe.ms[1] * der(pipe.mediums[1].u) + pipe.mb_flows[1] * pipe.mediums[1].u
|
|---|
| 252 |
|
|---|
| 253 | ------------------152------------------
|
|---|
| 254 | Constraint equation to be differentiated:
|
|---|
| 255 | pipe.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pipe.mediums[1].p, pipe.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[1].p, pipe.mediums[1].h, pipe.statesFM[1].phase, 0))
|
|---|
| 256 | Differentiated equation:
|
|---|
| 257 | der(pipe.statesFM[1].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(pipe.mediums[1].p, pipe.mediums[1].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[1].p, pipe.mediums[1].h, pipe.statesFM[1].phase, 0), der(pipe.mediums[1].p), der(pipe.mediums[1].h))
|
|---|
| 258 |
|
|---|
| 259 | ------------------186------------------
|
|---|
| 260 | Constraint equation to be differentiated:
|
|---|
| 261 | pipe.ms[1] = pipe.fluidVolumes[1] * pipe.statesFM[1].d
|
|---|
| 262 | Differentiated equation:
|
|---|
| 263 | pipe.mb_flows[1] = pipe.fluidVolumes[1] * der(pipe.statesFM[1].d)
|
|---|
| 264 |
|
|---|
| 265 | Update Incidence Matrix: 171 166 165 163 155 187 152 186
|
|---|
| 266 |
|
|---|
| 267 | ##############--MSSS--##############
|
|---|
| 268 | Indices of constraint equations: 188 159 189 162
|
|---|
| 269 |
|
|---|
| 270 | ------------------162------------------
|
|---|
| 271 | Constraint equation to be differentiated:
|
|---|
| 272 | pipe.mediums[2].u = pipe.mediums[2].h - pipe.mediums[2].p / pipe.statesFM[2].d
|
|---|
| 273 | Differentiated equation:
|
|---|
| 274 | der(pipe.mediums[2].u) = der(pipe.mediums[2].h) + (pipe.mediums[2].p * der(pipe.statesFM[2].d) - der(pipe.mediums[2].p) * pipe.statesFM[2].d) / pipe.statesFM[2].d ^ 2.0
|
|---|
| 275 |
|
|---|
| 276 | ------------------189------------------
|
|---|
| 277 | Constraint equation to be differentiated:
|
|---|
| 278 | pipe.Us[2] = pipe.ms[2] * pipe.mediums[2].u
|
|---|
| 279 | Differentiated equation:
|
|---|
| 280 | der(pipe.Us[2]) = pipe.ms[2] * der(pipe.mediums[2].u) + pipe.mb_flows[2] * pipe.mediums[2].u
|
|---|
| 281 |
|
|---|
| 282 | ------------------159------------------
|
|---|
| 283 | Constraint equation to be differentiated:
|
|---|
| 284 | pipe.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.rho_props_ph(pipe.mediums[2].p, pipe.mediums[2].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[2].p, pipe.mediums[2].h, pipe.statesFM[2].phase, 0))
|
|---|
| 285 | Differentiated equation:
|
|---|
| 286 | der(pipe.statesFM[2].d) = Modelica.Media.Water.IF97_Utilities.rho_ph_der(pipe.mediums[2].p, pipe.mediums[2].h, Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[2].p, pipe.mediums[2].h, pipe.statesFM[2].phase, 0), der(pipe.mediums[2].p), der(pipe.mediums[2].h))
|
|---|
| 287 |
|
|---|
| 288 | ------------------188------------------
|
|---|
| 289 | Constraint equation to be differentiated:
|
|---|
| 290 | pipe.ms[2] = pipe.fluidVolumes[2] * pipe.statesFM[2].d
|
|---|
| 291 | Differentiated equation:
|
|---|
| 292 | pipe.mb_flows[2] = pipe.fluidVolumes[2] * der(pipe.statesFM[2].d)
|
|---|
| 293 |
|
|---|
| 294 | Update Incidence Matrix: 172 166 165 164 162 189 159 188
|
|---|
| 295 |
|
|---|
| 296 | ########################### STATE SELECTION ###########################
|
|---|
| 297 | State Order: (5)
|
|---|
| 298 | =============
|
|---|
| 299 | pipe.ms[2] ---d/dt---> pipe.mb_flows[2]
|
|---|
| 300 | pipe.ms[1] ---d/dt---> pipe.mb_flows[1]
|
|---|
| 301 | radiator.ms[1] ---d/dt---> radiator.mb_flows[1]
|
|---|
| 302 | heater.ms[1] ---d/dt---> heater.mb_flows[1]
|
|---|
| 303 | tank.m ---d/dt---> tank.mb_flow
|
|---|
| 304 |
|
|---|
| 305 | ########## Try static state selection ##########
|
|---|
| 306 | Try to select dummy vars with natural matching (newer)
|
|---|
| 307 | Select 42 dummy states from 52 candidates.
|
|---|
| 308 |
|
|---|
| 309 | Highest order derivatives (state candidates): (52)
|
|---|
| 310 | ========================================
|
|---|
| 311 | 1: tank.V:STATE(1)(unit = "m3" stateSelect=StateSelect.never ) "Actual tank volume" type: Real
|
|---|
| 312 | 2: tank.medium.u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real
|
|---|
| 313 | 3: tank.U:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real
|
|---|
| 314 | 4: tank.ports_penetration[2]:STATE(1)() "penetration of port with fluid, depending on fluid level and port diameter" type: Real [2]
|
|---|
| 315 | 5: pump.dp_pump:STATE(1)(unit = "Pa" ) "Pressure change" type: Real
|
|---|
| 316 | 6: pump.eta:STATE(1)() "Global Efficiency" type: Real
|
|---|
| 317 | 7: heater.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [1]
|
|---|
| 318 | 8: heater.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [1]
|
|---|
| 319 | 9: radiator.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [1]
|
|---|
| 320 | 10: radiator.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [1]
|
|---|
| 321 | 11: pipe.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [2]
|
|---|
| 322 | 12: pipe.Us[2]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [2]
|
|---|
| 323 | 13: pipe.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [2]
|
|---|
| 324 | 14: pipe.mediums[2].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [2]
|
|---|
| 325 | 15: pump.Hb_flow:STATE(1)(unit = "W" ) "Enthalpy flow across boundaries or energy source/sink" type: Real
|
|---|
| 326 | 16: pump.V_flow:STATE(1)(unit = "m3/s" ) "Volume flow rate (total)" type: Real
|
|---|
| 327 | 17: pump.W_single:STATE(1)(unit = "W" ) "Power Consumption (single pump)" type: Real
|
|---|
| 328 | 18: heater.flowModel.Fs_p[1]:STATE(1)(unit = "N" ) "Pressure forces" type: Real [2]
|
|---|
| 329 | 19: tank.ports[2].p:STATE(1)(flow=false min = max(611.657, max(611.657, 611.657)) max = min(100000000.0, min(100000000.0, 100000000.0)) start = pump.p_a_start unit = "Pa" nominal = 1000000.0 ) "Thermodynamic pressure in the connection point" type: Real [2]
|
|---|
| 330 | 20: tank.heatTransfer.states[1].d:STATE(1)(min = max(0.0, max(0.0, 0.0)) max = min(100000.0, min(100000.0, 100000.0)) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [1]
|
|---|
| 331 | 21: tank.portInDensities[2]:STATE(1)(min = 0.0 max = 100000.0 start = 150.0 unit = "kg/m3" nominal = 500.0 ) "densities of the fluid at the device boundary" type: Real [2]
|
|---|
| 332 | 22: tank.vessel_ps_static[2]:STATE(1)(min = 611.657 max = 100000000.0 start = 5000000.0 unit = "Pa" nominal = 1000000.0 ) "static pressures inside the vessel at the height of the corresponding ports, zero flow velocity" type: Real [2]
|
|---|
| 333 | 23: pump.rho:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, 0.0)))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) type: Real
|
|---|
| 334 | 24: pump.V_flow_single:STATE(1)(start = pump.m_flow_start / (/*Real*/(pump.nParallel) * pump.rho_nominal) unit = "m3/s" ) "Volume flow rate (single pump)" type: Real
|
|---|
| 335 | 25: output m_flow:STATE(1)(min = max(max(-100000.0, if false and not false then -9.999999999999999e+59 else 0.0), max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(-(if true then 9.999999999999999e+59 else 0.0), max(-(if false and not false then 9.999999999999999e+59 else 0.0), if true then -9.999999999999999e+59 else 0.0)))))) max = min(min(100000.0, 100000.0), min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))))) start = pump.m_flow_start protected = true ) type: Real
|
|---|
| 336 | 26: heater.statesFM[1].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, 0.0))) max = min(100000.0, min(100000.0, min(100000.0, 100000.0))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 337 | 27: heater.statesFM[1].T:STATE(1)(min = max(273.15, max(273.15, 273.15)) max = min(2273.15, min(2273.15, 2273.15)) start = 500.0 unit = "K" nominal = 500.0 ) "Temperature" type: Real [3]
|
|---|
| 338 | 28: heater.flowModel.mus[1]:STATE(1)(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 339 | 29: heater.flowModel.mus[2]:STATE(1)(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 340 | 30: heater.flowModel.dps_fg[1]:STATE(1)(start = (130000.0 - 130000.0) / /*Real*/(-1 + 3) unit = "Pa" ) "pressure drop between states" type: Real [2]
|
|---|
| 341 | 31: heater.heatTransfer.Ts[1]:STATE(1)(min = max(273.15, max(273.15, max(273.15, max(273.15, max(273.15, max(0.0, max(0.0, max(0.0, 0.0)))))))) max = min(2273.15, min(2273.15, min(2273.15, min(2273.15, 2273.15)))) start = 353.15 unit = "K" nominal = 300.0 ) "Temperatures defined by fluid states" type: Real [1]
|
|---|
| 342 | 32: heater.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 343 | 33: radiator.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 344 | 34: pipe.statesFM[1].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [2]
|
|---|
| 345 | 35: pipe.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [2]
|
|---|
| 346 | 36: tank.m:STATE(1,tank.mb_flow)(min = 0.0 unit = "kg" ) "Mass of fluid" type: Real
|
|---|
| 347 | 37: heater.ms[1]:STATE(1,heater.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [1]
|
|---|
| 348 | 38: radiator.ms[1]:STATE(1,radiator.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [1]
|
|---|
| 349 | 39: pipe.ms[1]:STATE(1,pipe.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [2]
|
|---|
| 350 | 40: pipe.ms[2]:STATE(1,pipe.mb_flows[2])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [2]
|
|---|
| 351 | 41: pump.medium.h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0)))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0)))))))) start = pump.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real
|
|---|
| 352 | 42: tank.medium.h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = tank.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real
|
|---|
| 353 | 43: tank.level:STATE(1)(min = max(0.0, 0.0) start = tank.level_start_eps unit = "m" stateSelect=StateSelect.prefer ) "Level height of tank" type: Real
|
|---|
| 354 | 44: heater.mediums[1].h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = heater.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real [1]
|
|---|
| 355 | 45: radiator.mediums[1].p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))) start = 110000.0 unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real [1]
|
|---|
| 356 | 46: radiator.mediums[1].h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = radiator.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real [1]
|
|---|
| 357 | 47: pipe.mediums[1].p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0)))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0))))))))))) start = 130000.0 unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real [2]
|
|---|
| 358 | 48: pipe.mediums[1].h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = pipe.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real [2]
|
|---|
| 359 | 49: pipe.mediums[2].p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))) start = 130000.0 unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real [2]
|
|---|
| 360 | 50: pipe.mediums[2].h:STATE(1)(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0)))))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0)))))))))) start = pipe.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real [2]
|
|---|
| 361 | 51: pump.medium.p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))))) start = pump.p_start unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real
|
|---|
| 362 | 52: heater.mediums[1].p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))) start = 130000.0 unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real [1]
|
|---|
| 363 |
|
|---|
| 364 |
|
|---|
| 365 | Constraint equations: (42)
|
|---|
| 366 | ========================================
|
|---|
| 367 | 1/1 (1): pipe.Us[2] = pipe.ms[2] * pipe.mediums[2].u [dynamic |0|0|0|0|]
|
|---|
| 368 | 2/2 (1): pipe.ms[2] = pipe.fluidVolumes[2] * pipe.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 369 | 3/3 (1): pipe.Us[1] = pipe.ms[1] * pipe.mediums[1].u [dynamic |0|0|0|0|]
|
|---|
| 370 | 4/4 (1): pipe.ms[1] = pipe.fluidVolumes[1] * pipe.statesFM[1].d [dynamic |0|0|0|0|]
|
|---|
| 371 | 5/5 (1): pipe.mediums[2].u = pipe.mediums[2].h - pipe.mediums[2].p / pipe.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 372 | 6/6 (1): pipe.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[2].p, pipe.mediums[2].h, pipe.statesFM[2].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 373 | 7/7 (1): pipe.mediums[1].u = pipe.mediums[1].h - pipe.mediums[1].p / pipe.statesFM[1].d [dynamic |0|0|0|0|]
|
|---|
| 374 | 8/8 (1): pipe.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pipe.mediums[1].p, pipe.mediums[1].h, pipe.statesFM[1].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 375 | 9/9 (1): radiator.Us[1] = radiator.ms[1] * radiator.mediums[1].u [dynamic |0|0|0|0|]
|
|---|
| 376 | 10/10 (1): radiator.ms[1] = radiator.fluidVolumes[1] * radiator.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 377 | 11/11 (1): radiator.mediums[1].u = radiator.mediums[1].h - radiator.mediums[1].p / radiator.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 378 | 12/12 (1): radiator.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(radiator.mediums[1].p, radiator.mediums[1].h, radiator.statesFM[2].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 379 | 13/13 (1): heater.Us[1] = heater.ms[1] * heater.mediums[1].u [dynamic |0|0|0|0|]
|
|---|
| 380 | 14/14 (1): heater.ms[1] = heater.fluidVolumes[1] * heater.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 381 | 15/15 (1): heater.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 382 | 16/16 (1): heater.statesFM[1].T = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0).T [dynamic |0|0|0|0|]
|
|---|
| 383 | 17/17 (1): heater.flowModel.dps_fg[1] = (-2.0) * heater.flowModel.Fs_p[1] / (heater.flowModel.nParallel * 2.0 * heater.crossAreas[1]) [dynamic |0|0|0|0|]
|
|---|
| 384 | 18/18 (1): heater.flowModel.Fs_p[1] = heater.crossAreas[1] * (heater.mediums[1].p - pump.medium.p) * heater.flowModel.nParallel [dynamic |0|0|0|0|]
|
|---|
| 385 | 19/19 (1): m_flow = homotopy(Modelica.Fluid.Pipes.DynamicPipe$heater.FlowModel$heater$flowModel.WallFriction.massFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent) * heater.flowModel.nParallel, heater.flowModel.dps_fg[1] * heater.flowModel.m_flow_nominal / heater.flowModel.dp_nominal) [dynamic |0|0|0|0|]
|
|---|
| 386 | 20/20 (1): heater.flowModel.mus[2] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[2].d, heater.heatTransfer.Ts[1], heater.mediums[1].p, heater.statesFM[2].phase) [dynamic |0|0|0|0|]
|
|---|
| 387 | 21/21 (1): heater.flowModel.mus[1] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0) [dynamic |0|0|0|0|]
|
|---|
| 388 | 22/22 (1): heater.mediums[1].u = heater.mediums[1].h - heater.mediums[1].p / heater.statesFM[2].d [dynamic |0|0|0|0|]
|
|---|
| 389 | 23/23 (1): heater.heatTransfer.Ts[1] = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0).T [dynamic |0|0|0|0|]
|
|---|
| 390 | 24/24 (1): heater.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 391 | 25/25 (1): pump.Hb_flow = m_flow * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h)) [dynamic |0|0|0|0|]
|
|---|
| 392 | 26/26 (1): pump.W_single = homotopy(pump.dp_pump * pump.V_flow_single / pump.eta, pump.dp_pump * pump.m_flow_start / (/*Real*/(pump.nParallel) * pump.rho_nominal * pump.eta)) [dynamic |0|0|0|0|]
|
|---|
| 393 | 27/27 (1): pump.eta = 0.8 [dynamic |0|0|0|0|]
|
|---|
| 394 | 28/28 (1): pump.V_flow_single = pump.V_flow / /*Real*/(pump.nParallel) [dynamic |0|0|0|0|]
|
|---|
| 395 | 29/29 (1): pump.V_flow = homotopy(m_flow / pump.rho, m_flow / pump.rho_nominal) [dynamic |0|0|0|0|]
|
|---|
| 396 | 30/30 (1): pump.dp_pump = pump.p_b_nominal - tank.ports[2].p [dynamic |0|0|0|0|]
|
|---|
| 397 | 31/31 (1): -pump.Hb_flow = pump.W_single * /*Real*/(pump.nParallel) [binding |0|0|0|0|]
|
|---|
| 398 | 32/32 (1): 0.0 = pump.medium.p - pump.p_b_nominal [unknown |0|0|0|0|]
|
|---|
| 399 | 33/33 (1): pump.rho = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, pump.heatTransfer.states[1].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 400 | 34/34 (1): tank.U = tank.m * tank.medium.u [dynamic |0|0|0|0|]
|
|---|
| 401 | 35/35 (1): tank.m = tank.V * tank.heatTransfer.states[1].d [dynamic |0|0|0|0|]
|
|---|
| 402 | 36/36 (1): 0.0 = if tank.regularFlow[2] then tank.ports[2].p - homotopy(tank.vessel_ps_static[2] + 0.5 * tank.portAreas[2] ^ (-2.0) * smooth(2, if noEvent((-m_flow) >= tank.m_flow_small) then (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] * m_flow ^ 2.0 else if noEvent((-m_flow) <= (-tank.m_flow_small)) then m_flow ^ 2.0 * (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) else if noEvent((-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] >= (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2])) then Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0) else -Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(m_flow, tank.m_flow_small, (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], false, 1.0)), tank.vessel_ps_static[2]) else if tank.inFlow[2] then tank.ports[2].p - tank.vessel_ps_static[2] else -m_flow [unknown |0|0|0|0|]
|
|---|
| 403 | 37/37 (1): tank.ports_penetration[2] = smooth(1, if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height > 0.1 * tank.portsData[2].diameter) then 1.0 else if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height < (-0.1) * tank.portsData[2].diameter) then 0.001 else if noEvent(0.1 * tank.portsData[2].diameter > 0.0) then 0.25 * (tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) * (-3.0 + 100.0 * ((tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) / tank.portsData[2].diameter) ^ 2.0) * (-9.99) / tank.portsData[2].diameter + 0.5004999999999999 else 0.5004999999999999) [dynamic |0|0|0|0|]
|
|---|
| 404 | 38/38 (1): tank.portInDensities[2] = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.vessel_ps_static[2], tank.medium.h, 0, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 405 | 39/39 (1): tank.vessel_ps_static[2] = max(0.0, tank.level - tank.portsData[2].height) * system.g * tank.heatTransfer.states[1].d + tank.p_ambient [dynamic |0|0|0|0|]
|
|---|
| 406 | 40/40 (1): tank.V = tank.crossArea * tank.level [dynamic |0|0|0|0|]
|
|---|
| 407 | 41/41 (1): tank.medium.u = tank.medium.h - tank.p_ambient / tank.heatTransfer.states[1].d [dynamic |0|0|0|0|]
|
|---|
| 408 | 42/42 (1): tank.heatTransfer.states[1].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.p_ambient, tank.medium.h, tank.heatTransfer.states[1].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 409 |
|
|---|
| 410 | Adjacency Matrix Enhanced (row == equation)
|
|---|
| 411 | ====================================
|
|---|
| 412 | number of rows: 42
|
|---|
| 413 | 1:(-12,solved) (-40,variable(true)) (-14,variable(true))
|
|---|
| 414 | 2:(-40,solved) (-35,param(true))
|
|---|
| 415 | 3:(-11,solved) (-39,variable(true)) (-13,variable(true))
|
|---|
| 416 | 4:(-39,solved) (-34,param(true))
|
|---|
| 417 | 5:(-14,solved) (-50,constone) (-49,constone) (-35,nonlinear)
|
|---|
| 418 | 6:(-35,solved) (-49,unsolvable) (-50,unsolvable)
|
|---|
| 419 | 7:(-13,solved) (-48,constone) (-47,constone) (-34,nonlinear)
|
|---|
| 420 | 8:(-34,solved) (-47,unsolvable) (-48,unsolvable)
|
|---|
| 421 | 9:(-9,solved) (-38,variable(true)) (-10,variable(true))
|
|---|
| 422 | 10:(-38,solved) (-33,param(true))
|
|---|
| 423 | 11:(-10,solved) (-46,constone) (-45,constone) (-33,nonlinear)
|
|---|
| 424 | 12:(-33,solved) (-45,unsolvable) (-46,unsolvable)
|
|---|
| 425 | 13:(-7,solved) (-37,variable(true)) (-8,variable(true))
|
|---|
| 426 | 14:(-37,solved) (-32,param(true))
|
|---|
| 427 | 15:(-26,solved) (-51,unsolvable) (-41,unsolvable)
|
|---|
| 428 | 16:(-27,solved) (-51,unsolvable) (-41,unsolvable)
|
|---|
| 429 | 17:(-30,solved) (-18,param(true))
|
|---|
| 430 | 18:(-18,solved) (-52,param(true)) (-51,param(true))
|
|---|
| 431 | 19:(-25,solved) (-30,unsolvable) (-26,unsolvable) (-32,unsolvable) (-28,unsolvable) (-29,unsolvable)
|
|---|
| 432 | 20:(-29,solved) (-32,unsolvable) (-31,unsolvable) (-52,unsolvable)
|
|---|
| 433 | 21:(-28,solved) (-26,unsolvable) (-27,unsolvable) (-51,unsolvable)
|
|---|
| 434 | 22:(-8,solved) (-44,constone) (-52,constone) (-32,nonlinear)
|
|---|
| 435 | 23:(-31,solved) (-52,unsolvable) (-44,unsolvable)
|
|---|
| 436 | 24:(-32,solved) (-52,unsolvable) (-44,unsolvable)
|
|---|
| 437 | 25:(-15,solved) (-25,variable(true)) (-42,variable(true)) (-41,variable(true))
|
|---|
| 438 | 26:(-17,solved) (-5,variable(true)) (-24,variable(true)) (-6,nonlinear)
|
|---|
| 439 | 27:(-6,solved)
|
|---|
| 440 | 28:(-24,solved) (-16,param(true))
|
|---|
| 441 | 29:(-16,solved) (-25,variable(true)) (-23,nonlinear)
|
|---|
| 442 | 30:(-5,solved) (-19,constone)
|
|---|
| 443 | 31:(-15,solved) (-17,param(true))
|
|---|
| 444 | 32:(-51,constone)
|
|---|
| 445 | 33:(-23,solved) (-51,unsolvable) (-41,unsolvable)
|
|---|
| 446 | 34:(-3,solved) (-36,variable(true)) (-2,variable(true))
|
|---|
| 447 | 35:(-36,solved) (-1,variable(true)) (-20,variable(true))
|
|---|
| 448 | 36:(-19,unsolvable) (-22,unsolvable) (-4,unsolvable) (-21,unsolvable) (-25,unsolvable) (-20,unsolvable)
|
|---|
| 449 | 37:(-4,solved) (-43,unsolvable)
|
|---|
| 450 | 38:(-21,solved) (-22,unsolvable) (-42,unsolvable)
|
|---|
| 451 | 39:(-22,solved) (-43,nonlinear) (-20,variable(true))
|
|---|
| 452 | 40:(-1,solved) (-43,param(true))
|
|---|
| 453 | 41:(-2,solved) (-42,constone) (-20,nonlinear)
|
|---|
| 454 | 42:(-20,solved) (-42,unsolvable)
|
|---|
| 455 |
|
|---|
| 456 | Transpose Adjacency Matrix Enhanced (row == var)
|
|---|
| 457 | =====================================
|
|---|
| 458 | number of rows: 52
|
|---|
| 459 | 1:(-40,solved) (-35,variable(true))
|
|---|
| 460 | 2:(-41,solved) (-34,variable(true))
|
|---|
| 461 | 3:(-34,solved)
|
|---|
| 462 | 4:(-37,solved) (-36,unsolvable)
|
|---|
| 463 | 5:(-30,solved) (-26,variable(true))
|
|---|
| 464 | 6:(-27,solved) (-26,nonlinear)
|
|---|
| 465 | 7:(-13,solved)
|
|---|
| 466 | 8:(-22,solved) (-13,variable(true))
|
|---|
| 467 | 9:(-9,solved)
|
|---|
| 468 | 10:(-11,solved) (-9,variable(true))
|
|---|
| 469 | 11:(-3,solved)
|
|---|
| 470 | 12:(-1,solved)
|
|---|
| 471 | 13:(-7,solved) (-3,variable(true))
|
|---|
| 472 | 14:(-5,solved) (-1,variable(true))
|
|---|
| 473 | 15:(-31,solved) (-25,solved)
|
|---|
| 474 | 16:(-29,solved) (-28,param(true))
|
|---|
| 475 | 17:(-31,param(true)) (-26,solved)
|
|---|
| 476 | 18:(-18,solved) (-17,param(true))
|
|---|
| 477 | 19:(-36,unsolvable) (-30,constone)
|
|---|
| 478 | 20:(-42,solved) (-41,nonlinear) (-39,variable(true)) (-36,unsolvable) (-35,variable(true))
|
|---|
| 479 | 21:(-38,solved) (-36,unsolvable)
|
|---|
| 480 | 22:(-39,solved) (-38,unsolvable) (-36,unsolvable)
|
|---|
| 481 | 23:(-33,solved) (-29,nonlinear)
|
|---|
| 482 | 24:(-28,solved) (-26,variable(true))
|
|---|
| 483 | 25:(-36,unsolvable) (-29,variable(true)) (-25,variable(true)) (-19,solved)
|
|---|
| 484 | 26:(-21,unsolvable) (-19,unsolvable) (-15,solved)
|
|---|
| 485 | 27:(-21,unsolvable) (-16,solved)
|
|---|
| 486 | 28:(-21,solved) (-19,unsolvable)
|
|---|
| 487 | 29:(-20,solved) (-19,unsolvable)
|
|---|
| 488 | 30:(-19,unsolvable) (-17,solved)
|
|---|
| 489 | 31:(-23,solved) (-20,unsolvable)
|
|---|
| 490 | 32:(-24,solved) (-22,nonlinear) (-20,unsolvable) (-19,unsolvable) (-14,param(true))
|
|---|
| 491 | 33:(-12,solved) (-11,nonlinear) (-10,param(true))
|
|---|
| 492 | 34:(-8,solved) (-7,nonlinear) (-4,param(true))
|
|---|
| 493 | 35:(-6,solved) (-5,nonlinear) (-2,param(true))
|
|---|
| 494 | 36:(-35,solved) (-34,variable(true))
|
|---|
| 495 | 37:(-14,solved) (-13,variable(true))
|
|---|
| 496 | 38:(-10,solved) (-9,variable(true))
|
|---|
| 497 | 39:(-4,solved) (-3,variable(true))
|
|---|
| 498 | 40:(-2,solved) (-1,variable(true))
|
|---|
| 499 | 41:(-33,unsolvable) (-25,variable(true)) (-16,unsolvable) (-15,unsolvable)
|
|---|
| 500 | 42:(-42,unsolvable) (-41,constone) (-38,unsolvable) (-25,variable(true))
|
|---|
| 501 | 43:(-40,param(true)) (-39,nonlinear) (-37,unsolvable)
|
|---|
| 502 | 44:(-24,unsolvable) (-23,unsolvable) (-22,constone)
|
|---|
| 503 | 45:(-12,unsolvable) (-11,constone)
|
|---|
| 504 | 46:(-12,unsolvable) (-11,constone)
|
|---|
| 505 | 47:(-8,unsolvable) (-7,constone)
|
|---|
| 506 | 48:(-8,unsolvable) (-7,constone)
|
|---|
| 507 | 49:(-6,unsolvable) (-5,constone)
|
|---|
| 508 | 50:(-6,unsolvable) (-5,constone)
|
|---|
| 509 | 51:(-33,unsolvable) (-32,constone) (-21,unsolvable) (-18,param(true)) (-16,unsolvable) (-15,unsolvable)
|
|---|
| 510 | 52:(-24,unsolvable) (-23,unsolvable) (-22,constone) (-20,unsolvable) (-18,param(true))
|
|---|
| 511 |
|
|---|
| 512 | Matching
|
|---|
| 513 | ========================================
|
|---|
| 514 | 52 variables and equations
|
|---|
| 515 | var 1 is solved in eqn 40
|
|---|
| 516 | var 2 is solved in eqn 41
|
|---|
| 517 | var 3 is solved in eqn 34
|
|---|
| 518 | var 4 is solved in eqn 37
|
|---|
| 519 | var 5 is solved in eqn 30
|
|---|
| 520 | var 6 is solved in eqn 27
|
|---|
| 521 | var 7 is solved in eqn 13
|
|---|
| 522 | var 8 is solved in eqn 22
|
|---|
| 523 | var 9 is solved in eqn 9
|
|---|
| 524 | var 10 is solved in eqn 11
|
|---|
| 525 | var 11 is solved in eqn 3
|
|---|
| 526 | var 12 is solved in eqn 1
|
|---|
| 527 | var 13 is solved in eqn 7
|
|---|
| 528 | var 14 is solved in eqn 5
|
|---|
| 529 | var 15 is solved in eqn 31
|
|---|
| 530 | var 16 is solved in eqn 29
|
|---|
| 531 | var 17 is solved in eqn 26
|
|---|
| 532 | var 18 is solved in eqn 18
|
|---|
| 533 | var 19 is solved in eqn -1
|
|---|
| 534 | var 20 is solved in eqn 42
|
|---|
| 535 | var 21 is solved in eqn 38
|
|---|
| 536 | var 22 is solved in eqn 39
|
|---|
| 537 | var 23 is solved in eqn 33
|
|---|
| 538 | var 24 is solved in eqn 28
|
|---|
| 539 | var 25 is solved in eqn 19
|
|---|
| 540 | var 26 is solved in eqn 15
|
|---|
| 541 | var 27 is solved in eqn 16
|
|---|
| 542 | var 28 is solved in eqn 21
|
|---|
| 543 | var 29 is solved in eqn 20
|
|---|
| 544 | var 30 is solved in eqn 17
|
|---|
| 545 | var 31 is solved in eqn 23
|
|---|
| 546 | var 32 is solved in eqn 24
|
|---|
| 547 | var 33 is solved in eqn 12
|
|---|
| 548 | var 34 is solved in eqn 8
|
|---|
| 549 | var 35 is solved in eqn 6
|
|---|
| 550 | var 36 is solved in eqn 35
|
|---|
| 551 | var 37 is solved in eqn 14
|
|---|
| 552 | var 38 is solved in eqn 10
|
|---|
| 553 | var 39 is solved in eqn 4
|
|---|
| 554 | var 40 is solved in eqn 2
|
|---|
| 555 | var 41 is solved in eqn -1
|
|---|
| 556 | var 42 is solved in eqn -1
|
|---|
| 557 | var 43 is solved in eqn -1
|
|---|
| 558 | var 44 is solved in eqn -1
|
|---|
| 559 | var 45 is solved in eqn -1
|
|---|
| 560 | var 46 is solved in eqn -1
|
|---|
| 561 | var 47 is solved in eqn -1
|
|---|
| 562 | var 48 is solved in eqn -1
|
|---|
| 563 | var 49 is solved in eqn -1
|
|---|
| 564 | var 50 is solved in eqn -1
|
|---|
| 565 | var 51 is solved in eqn 32
|
|---|
| 566 | var 52 is solved in eqn -1
|
|---|
| 567 |
|
|---|
| 568 | Matching
|
|---|
| 569 | ========================================
|
|---|
| 570 | 42 variables and equations
|
|---|
| 571 | var 1 is solved in eqn 12
|
|---|
| 572 | var 2 is solved in eqn 40
|
|---|
| 573 | var 3 is solved in eqn 11
|
|---|
| 574 | var 4 is solved in eqn 39
|
|---|
| 575 | var 5 is solved in eqn 14
|
|---|
| 576 | var 6 is solved in eqn 35
|
|---|
| 577 | var 7 is solved in eqn 13
|
|---|
| 578 | var 8 is solved in eqn 34
|
|---|
| 579 | var 9 is solved in eqn 9
|
|---|
| 580 | var 10 is solved in eqn 38
|
|---|
| 581 | var 11 is solved in eqn 10
|
|---|
| 582 | var 12 is solved in eqn 33
|
|---|
| 583 | var 13 is solved in eqn 7
|
|---|
| 584 | var 14 is solved in eqn 37
|
|---|
| 585 | var 15 is solved in eqn 26
|
|---|
| 586 | var 16 is solved in eqn 27
|
|---|
| 587 | var 17 is solved in eqn 30
|
|---|
| 588 | var 18 is solved in eqn 18
|
|---|
| 589 | var 19 is solved in eqn 25
|
|---|
| 590 | var 20 is solved in eqn 29
|
|---|
| 591 | var 21 is solved in eqn 28
|
|---|
| 592 | var 22 is solved in eqn 8
|
|---|
| 593 | var 23 is solved in eqn 31
|
|---|
| 594 | var 24 is solved in eqn 32
|
|---|
| 595 | var 25 is solved in eqn -1
|
|---|
| 596 | var 26 is solved in eqn 17
|
|---|
| 597 | var 27 is solved in eqn 6
|
|---|
| 598 | var 28 is solved in eqn 24
|
|---|
| 599 | var 29 is solved in eqn 16
|
|---|
| 600 | var 30 is solved in eqn 5
|
|---|
| 601 | var 31 is solved in eqn 15
|
|---|
| 602 | var 32 is solved in eqn 51
|
|---|
| 603 | var 33 is solved in eqn 23
|
|---|
| 604 | var 34 is solved in eqn 3
|
|---|
| 605 | var 35 is solved in eqn 36
|
|---|
| 606 | var 36 is solved in eqn -1
|
|---|
| 607 | var 37 is solved in eqn 4
|
|---|
| 608 | var 38 is solved in eqn 21
|
|---|
| 609 | var 39 is solved in eqn 22
|
|---|
| 610 | var 40 is solved in eqn 1
|
|---|
| 611 | var 41 is solved in eqn 2
|
|---|
| 612 | var 42 is solved in eqn 20
|
|---|
| 613 |
|
|---|
| 614 | Selected dummy states: (40)
|
|---|
| 615 | ========================================
|
|---|
| 616 | 1: pump.medium.p:STATE(1)(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))))))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))))))))) start = pump.p_start unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real
|
|---|
| 617 | 2: pipe.ms[2]:STATE(1,pipe.mb_flows[2])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [2]
|
|---|
| 618 | 3: pipe.ms[1]:STATE(1,pipe.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [2]
|
|---|
| 619 | 4: radiator.ms[1]:STATE(1,radiator.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [1]
|
|---|
| 620 | 5: heater.ms[1]:STATE(1,heater.mb_flows[1])(min = 0.0 unit = "kg" ) "Fluid mass" type: Real [1]
|
|---|
| 621 | 6: tank.m:STATE(1,tank.mb_flow)(min = 0.0 unit = "kg" ) "Mass of fluid" type: Real
|
|---|
| 622 | 7: pipe.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [2]
|
|---|
| 623 | 8: pipe.statesFM[1].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [2]
|
|---|
| 624 | 9: radiator.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 625 | 10: heater.statesFM[2].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 626 | 11: heater.heatTransfer.Ts[1]:STATE(1)(min = max(273.15, max(273.15, max(273.15, max(273.15, max(273.15, max(0.0, max(0.0, max(0.0, 0.0)))))))) max = min(2273.15, min(2273.15, min(2273.15, min(2273.15, 2273.15)))) start = 353.15 unit = "K" nominal = 300.0 ) "Temperatures defined by fluid states" type: Real [1]
|
|---|
| 627 | 12: heater.flowModel.dps_fg[1]:STATE(1)(start = (130000.0 - 130000.0) / /*Real*/(-1 + 3) unit = "Pa" ) "pressure drop between states" type: Real [2]
|
|---|
| 628 | 13: heater.flowModel.mus[2]:STATE(1)(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 629 | 14: heater.flowModel.mus[1]:STATE(1)(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 630 | 15: heater.statesFM[1].T:STATE(1)(min = max(273.15, max(273.15, 273.15)) max = min(2273.15, min(2273.15, 2273.15)) start = 500.0 unit = "K" nominal = 500.0 ) "Temperature" type: Real [3]
|
|---|
| 631 | 16: heater.statesFM[1].d:STATE(1)(min = max(0.0, max(0.0, max(0.0, 0.0))) max = min(100000.0, min(100000.0, min(100000.0, 100000.0))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 632 | 17: output m_flow:STATE(1)(min = max(max(-100000.0, if false and not false then -9.999999999999999e+59 else 0.0), max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(-(if true then 9.999999999999999e+59 else 0.0), max(-(if false and not false then 9.999999999999999e+59 else 0.0), if true then -9.999999999999999e+59 else 0.0)))))) max = min(min(100000.0, 100000.0), min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))))) start = pump.m_flow_start protected = true ) type: Real
|
|---|
| 633 | 18: pump.V_flow_single:STATE(1)(start = pump.m_flow_start / (/*Real*/(pump.nParallel) * pump.rho_nominal) unit = "m3/s" ) "Volume flow rate (single pump)" type: Real
|
|---|
| 634 | 19: pump.rho:STATE(1)(min = max(0.0, max(0.0, max(0.0, max(0.0, 0.0)))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) type: Real
|
|---|
| 635 | 20: tank.vessel_ps_static[2]:STATE(1)(min = 611.657 max = 100000000.0 start = 5000000.0 unit = "Pa" nominal = 1000000.0 ) "static pressures inside the vessel at the height of the corresponding ports, zero flow velocity" type: Real [2]
|
|---|
| 636 | 21: tank.portInDensities[2]:STATE(1)(min = 0.0 max = 100000.0 start = 150.0 unit = "kg/m3" nominal = 500.0 ) "densities of the fluid at the device boundary" type: Real [2]
|
|---|
| 637 | 22: tank.heatTransfer.states[1].d:STATE(1)(min = max(0.0, max(0.0, 0.0)) max = min(100000.0, min(100000.0, 100000.0)) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [1]
|
|---|
| 638 | 23: heater.flowModel.Fs_p[1]:STATE(1)(unit = "N" ) "Pressure forces" type: Real [2]
|
|---|
| 639 | 24: pump.W_single:STATE(1)(unit = "W" ) "Power Consumption (single pump)" type: Real
|
|---|
| 640 | 25: pump.V_flow:STATE(1)(unit = "m3/s" ) "Volume flow rate (total)" type: Real
|
|---|
| 641 | 26: pump.Hb_flow:STATE(1)(unit = "W" ) "Enthalpy flow across boundaries or energy source/sink" type: Real
|
|---|
| 642 | 27: pipe.mediums[2].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [2]
|
|---|
| 643 | 28: pipe.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [2]
|
|---|
| 644 | 29: pipe.Us[2]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [2]
|
|---|
| 645 | 30: pipe.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [2]
|
|---|
| 646 | 31: radiator.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [1]
|
|---|
| 647 | 32: radiator.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [1]
|
|---|
| 648 | 33: heater.mediums[1].u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real [1]
|
|---|
| 649 | 34: heater.Us[1]:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real [1]
|
|---|
| 650 | 35: pump.eta:STATE(1)() "Global Efficiency" type: Real
|
|---|
| 651 | 36: pump.dp_pump:STATE(1)(unit = "Pa" ) "Pressure change" type: Real
|
|---|
| 652 | 37: tank.ports_penetration[2]:STATE(1)() "penetration of port with fluid, depending on fluid level and port diameter" type: Real [2]
|
|---|
| 653 | 38: tank.U:STATE(1)(unit = "J" ) "Internal energy of fluid" type: Real
|
|---|
| 654 | 39: tank.medium.u:STATE(1)(min = -100000000.0 max = 100000000.0 unit = "J/kg" nominal = 1000000.0 ) "Specific internal energy of medium" type: Real
|
|---|
| 655 | 40: tank.V:STATE(1)(unit = "m3" stateSelect=StateSelect.never ) "Actual tank volume" type: Real
|
|---|
| 656 |
|
|---|
| 657 | No perfect matching possible, dynamic index reduction needed.
|
|---|
| 658 |
|
|---|
| 659 | Unassigned equations: (2)
|
|---|
| 660 | ========================================
|
|---|
| 661 | 1/1 (1): 0.0 = if tank.regularFlow[2] then tank.ports[2].p - homotopy(tank.vessel_ps_static[2] + 0.5 * tank.portAreas[2] ^ (-2.0) * smooth(2, if noEvent((-m_flow) >= tank.m_flow_small) then (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] * m_flow ^ 2.0 else if noEvent((-m_flow) <= (-tank.m_flow_small)) then m_flow ^ 2.0 * (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) else if noEvent((-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] >= (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2])) then Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0) else -Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(m_flow, tank.m_flow_small, (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], false, 1.0)), tank.vessel_ps_static[2]) else if tank.inFlow[2] then tank.ports[2].p - tank.vessel_ps_static[2] else -m_flow [unknown |0|0|0|0|]
|
|---|
| 662 | 2/2 (1): pump.Hb_flow = m_flow * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h)) [dynamic |0|0|0|0|]
|
|---|
| 663 |
|
|---|
| 664 |
|
|---|
| 665 | Select 4 from 6 States
|
|---|
| 666 | 25 tank.ports[2].p
|
|---|
| 667 | 24 tank.level
|
|---|
| 668 | 23 tank.medium.h
|
|---|
| 669 | 22 pump.medium.h
|
|---|
| 670 | 21 heater.mediums[1].p
|
|---|
| 671 | 20 heater.mediums[1].h
|
|---|
| 672 | Select as dummyStates(2):
|
|---|
| 673 | 19 tank.ports_penetration[2]
|
|---|
| 674 | 18 tank.portInDensities[2]
|
|---|
| 675 | 17 tank.vessel_ps_static[2]
|
|---|
| 676 | 16 tank.heatTransfer.states[1].d
|
|---|
| 677 | 15 pump.Hb_flow
|
|---|
| 678 | 14 pump.W_single
|
|---|
| 679 | 13 pump.dp_pump
|
|---|
| 680 | 12 pump.V_flow_single
|
|---|
| 681 | 11 pump.V_flow
|
|---|
| 682 | 10 pump.rho
|
|---|
| 683 | 9 m_flow
|
|---|
| 684 | 8 heater.flowModel.mus[1]
|
|---|
| 685 | 7 heater.statesFM[1].d
|
|---|
| 686 | 6 heater.statesFM[1].T
|
|---|
| 687 | 5 heater.flowModel.mus[2]
|
|---|
| 688 | 4 heater.heatTransfer.Ts[1]
|
|---|
| 689 | 3 heater.flowModel.dps_fg[1]
|
|---|
| 690 | 2 heater.flowModel.Fs_p[1]
|
|---|
| 691 | 1 heater.statesFM[2].d
|
|---|
| 692 |
|
|---|
| 693 | Generated StateSets:
|
|---|
| 694 | ========================================
|
|---|
| 695 | StateSet "$STATESET1" (rang 4)
|
|---|
| 696 |
|
|---|
| 697 | state candidates (6)
|
|---|
| 698 | ========================================
|
|---|
| 699 | 1: tank.ports[2].p:DUMMY_STATE(flow=false min = max(611.657, max(611.657, 611.657)) max = min(100000000.0, min(100000000.0, 100000000.0)) start = pump.p_a_start unit = "Pa" nominal = 1000000.0 ) "Thermodynamic pressure in the connection point" type: Real [2]
|
|---|
| 700 | 2: tank.level:DUMMY_STATE(min = max(0.0, 0.0) start = tank.level_start_eps unit = "m" stateSelect=StateSelect.prefer ) "Level height of tank" type: Real
|
|---|
| 701 | 3: tank.medium.h:DUMMY_STATE(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = tank.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real
|
|---|
| 702 | 4: pump.medium.h:DUMMY_STATE(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0)))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0)))))))) start = pump.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real
|
|---|
| 703 | 5: heater.mediums[1].p:DUMMY_STATE(min = max(611.657, max(611.657, max(611.657, max(611.657, max(611.657, 0.0))))) max = min(100000000.0, min(100000000.0, min(100000000.0, min(100000000.0, 100000000.0)))) start = 130000.0 unit = "Pa" nominal = 100000.0 stateSelect=StateSelect.prefer ) "Absolute pressure of medium" type: Real [1]
|
|---|
| 704 | 6: heater.mediums[1].h:DUMMY_STATE(min = max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, max(-10000000000.0, -10000000000.0))))))) max = min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, min(10000000000.0, 10000000000.0))))))) start = heater.h_start unit = "J/kg" nominal = 500000.0 stateSelect=StateSelect.prefer ) "Specific enthalpy of medium" type: Real [1]
|
|---|
| 705 |
|
|---|
| 706 |
|
|---|
| 707 | eqns (2)
|
|---|
| 708 | ========================================
|
|---|
| 709 | 1/1 (1): pump.Hb_flow = m_flow * (smooth(0, tank.medium.h) - smooth(0, pump.medium.h)) [dynamic |0|0|0|0|]
|
|---|
| 710 | 2/2 (1): 0.0 = if tank.regularFlow[2] then tank.ports[2].p - homotopy(tank.vessel_ps_static[2] + 0.5 * tank.portAreas[2] ^ (-2.0) * smooth(2, if noEvent((-m_flow) >= tank.m_flow_small) then (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] * m_flow ^ 2.0 else if noEvent((-m_flow) <= (-tank.m_flow_small)) then m_flow ^ 2.0 * (-1.0 + (tank.portAreas[2] / tank.vesselArea) ^ 2.0 - tank.portsData[2].zeta_out) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]) else if noEvent((-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2] >= (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2])) then Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(-m_flow, tank.m_flow_small, (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), false, 1.0) else -Modelica.Fluid.Utilities.regSquare2.regSquare2_utility(m_flow, tank.m_flow_small, (1.0 + tank.portsData[2].zeta_out - (tank.portAreas[2] / tank.vesselArea) ^ 2.0) / (tank.heatTransfer.states[1].d * tank.ports_penetration[2]), (-1.0 + tank.portsData[2].zeta_in + (tank.portAreas[2] / tank.vesselArea) ^ 2.0) * tank.ports_penetration[2] / tank.portInDensities[2], false, 1.0)), tank.vessel_ps_static[2]) else if tank.inFlow[2] then tank.ports[2].p - tank.vessel_ps_static[2] else -m_flow [unknown |0|0|0|0|]
|
|---|
| 711 |
|
|---|
| 712 |
|
|---|
| 713 | ovars (19)
|
|---|
| 714 | ========================================
|
|---|
| 715 | 1: tank.ports_penetration[2]:DUMMY_STATE() "penetration of port with fluid, depending on fluid level and port diameter" type: Real [2]
|
|---|
| 716 | 2: tank.portInDensities[2]:DUMMY_STATE(min = 0.0 max = 100000.0 start = 150.0 unit = "kg/m3" nominal = 500.0 ) "densities of the fluid at the device boundary" type: Real [2]
|
|---|
| 717 | 3: tank.vessel_ps_static[2]:DUMMY_STATE(min = 611.657 max = 100000000.0 start = 5000000.0 unit = "Pa" nominal = 1000000.0 ) "static pressures inside the vessel at the height of the corresponding ports, zero flow velocity" type: Real [2]
|
|---|
| 718 | 4: tank.heatTransfer.states[1].d:DUMMY_STATE(min = max(0.0, max(0.0, 0.0)) max = min(100000.0, min(100000.0, 100000.0)) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [1]
|
|---|
| 719 | 5: pump.Hb_flow:DUMMY_STATE(unit = "W" ) "Enthalpy flow across boundaries or energy source/sink" type: Real
|
|---|
| 720 | 6: pump.W_single:DUMMY_STATE(unit = "W" ) "Power Consumption (single pump)" type: Real
|
|---|
| 721 | 7: pump.dp_pump:DUMMY_STATE(unit = "Pa" ) "Pressure change" type: Real
|
|---|
| 722 | 8: pump.V_flow_single:DUMMY_STATE(start = pump.m_flow_start / (/*Real*/(pump.nParallel) * pump.rho_nominal) unit = "m3/s" ) "Volume flow rate (single pump)" type: Real
|
|---|
| 723 | 9: pump.V_flow:DUMMY_STATE(unit = "m3/s" ) "Volume flow rate (total)" type: Real
|
|---|
| 724 | 10: pump.rho:DUMMY_STATE(min = max(0.0, max(0.0, max(0.0, max(0.0, 0.0)))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) type: Real
|
|---|
| 725 | 11: output m_flow:DUMMY_STATE(min = max(max(-100000.0, if false and not false then -9.999999999999999e+59 else 0.0), max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(if true then -9.999999999999999e+59 else 0.0, max(-(if true then 9.999999999999999e+59 else 0.0), max(-(if false and not false then 9.999999999999999e+59 else 0.0), if true then -9.999999999999999e+59 else 0.0)))))) max = min(min(100000.0, 100000.0), min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0)))))) start = pump.m_flow_start protected = true ) type: Real
|
|---|
| 726 | 12: heater.flowModel.mus[1]:DUMMY_STATE(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 727 | 13: heater.statesFM[1].d:DUMMY_STATE(min = max(0.0, max(0.0, max(0.0, 0.0))) max = min(100000.0, min(100000.0, min(100000.0, 100000.0))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 728 | 14: heater.statesFM[1].T:DUMMY_STATE(min = max(273.15, max(273.15, 273.15)) max = min(2273.15, min(2273.15, 2273.15)) start = 500.0 unit = "K" nominal = 500.0 ) "Temperature" type: Real [3]
|
|---|
| 729 | 15: heater.flowModel.mus[2]:DUMMY_STATE(min = 0.0 max = 100000000.0 start = 0.001 unit = "Pa.s" nominal = 0.001 ) type: Real [3]
|
|---|
| 730 | 16: heater.heatTransfer.Ts[1]:DUMMY_STATE(min = max(273.15, max(273.15, max(273.15, max(273.15, max(273.15, max(0.0, max(0.0, max(0.0, 0.0)))))))) max = min(2273.15, min(2273.15, min(2273.15, min(2273.15, 2273.15)))) start = 353.15 unit = "K" nominal = 300.0 ) "Temperatures defined by fluid states" type: Real [1]
|
|---|
| 731 | 17: heater.flowModel.dps_fg[1]:DUMMY_STATE(start = (130000.0 - 130000.0) / /*Real*/(-1 + 3) unit = "Pa" ) "pressure drop between states" type: Real [2]
|
|---|
| 732 | 18: heater.flowModel.Fs_p[1]:DUMMY_STATE(unit = "N" ) "Pressure forces" type: Real [2]
|
|---|
| 733 | 19: heater.statesFM[2].d:DUMMY_STATE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))) max = min(100000.0, min(100000.0, min(100000.0, min(100000.0, min(100000.0, 100000.0))))) start = 150.0 unit = "kg/m3" nominal = 500.0 ) "Density" type: Real [3]
|
|---|
| 734 |
|
|---|
| 735 |
|
|---|
| 736 | oeqns (19)
|
|---|
| 737 | ========================================
|
|---|
| 738 | 1/1 (1): tank.ports_penetration[2] = smooth(1, if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height > 0.1 * tank.portsData[2].diameter) then 1.0 else if noEvent(tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height < (-0.1) * tank.portsData[2].diameter) then 0.001 else if noEvent(0.1 * tank.portsData[2].diameter > 0.0) then 0.25 * (tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) * (-3.0 + 100.0 * ((tank.level + (-0.1) * tank.portsData[2].diameter - tank.portsData[2].height) / tank.portsData[2].diameter) ^ 2.0) * (-9.99) / tank.portsData[2].diameter + 0.5004999999999999 else 0.5004999999999999) [dynamic |0|0|0|0|]
|
|---|
| 739 | 2/2 (1): tank.portInDensities[2] = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.vessel_ps_static[2], tank.medium.h, 0, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 740 | 3/3 (1): tank.vessel_ps_static[2] = max(0.0, tank.level - tank.portsData[2].height) * system.g * tank.heatTransfer.states[1].d + tank.p_ambient [dynamic |0|0|0|0|]
|
|---|
| 741 | 4/4 (1): tank.heatTransfer.states[1].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(tank.p_ambient, tank.medium.h, tank.heatTransfer.states[1].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 742 | 5/5 (1): -pump.Hb_flow = pump.W_single * /*Real*/(pump.nParallel) [binding |0|0|0|0|]
|
|---|
| 743 | 6/6 (1): pump.W_single = homotopy(pump.dp_pump * pump.V_flow_single / pump.eta, pump.dp_pump * pump.m_flow_start / (/*Real*/(pump.nParallel) * pump.rho_nominal * pump.eta)) [dynamic |0|0|0|0|]
|
|---|
| 744 | 7/7 (1): pump.dp_pump = pump.p_b_nominal - tank.ports[2].p [dynamic |0|0|0|0|]
|
|---|
| 745 | 8/8 (1): pump.V_flow_single = pump.V_flow / /*Real*/(pump.nParallel) [dynamic |0|0|0|0|]
|
|---|
| 746 | 9/9 (1): pump.V_flow = homotopy(m_flow / pump.rho, m_flow / pump.rho_nominal) [dynamic |0|0|0|0|]
|
|---|
| 747 | 10/10 (1): pump.rho = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, pump.heatTransfer.states[1].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 748 | 11/11 (1): m_flow = homotopy(Modelica.Fluid.Pipes.DynamicPipe$heater.FlowModel$heater$flowModel.WallFriction.massFlowRate_dp_staticHead(heater.flowModel.dps_fg[1], heater.statesFM[1].d, heater.statesFM[2].d, heater.flowModel.mus[1], heater.flowModel.mus[2], heater.pathLengths[1], heater.dimensions[1], 0.0, heater.crossAreas[1], heater.roughnesses[1], 0.5 * heater.flowModel.dp_small, heater.flowModel.Re_turbulent) * heater.flowModel.nParallel, heater.flowModel.dps_fg[1] * heater.flowModel.m_flow_nominal / heater.flowModel.dp_nominal) [dynamic |0|0|0|0|]
|
|---|
| 749 | 12/12 (1): heater.flowModel.mus[1] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[1].d, heater.statesFM[1].T, pump.medium.p, 0) [dynamic |0|0|0|0|]
|
|---|
| 750 | 13/13 (1): heater.statesFM[1].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 751 | 14/14 (1): heater.statesFM[1].T = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(pump.medium.p, pump.medium.h, 0, 0).T [dynamic |0|0|0|0|]
|
|---|
| 752 | 15/15 (1): heater.flowModel.mus[2] = Modelica.Media.Water.IF97_Utilities.dynamicViscosity(heater.statesFM[2].d, heater.heatTransfer.Ts[1], heater.mediums[1].p, heater.statesFM[2].phase) [dynamic |0|0|0|0|]
|
|---|
| 753 | 16/16 (1): heater.heatTransfer.Ts[1] = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0).T [dynamic |0|0|0|0|]
|
|---|
| 754 | 17/17 (1): heater.flowModel.dps_fg[1] = (-2.0) * heater.flowModel.Fs_p[1] / (heater.flowModel.nParallel * 2.0 * heater.crossAreas[1]) [dynamic |0|0|0|0|]
|
|---|
| 755 | 18/18 (1): heater.flowModel.Fs_p[1] = heater.crossAreas[1] * (heater.mediums[1].p - pump.medium.p) * heater.flowModel.nParallel [dynamic |0|0|0|0|]
|
|---|
| 756 | 19/19 (1): heater.statesFM[2].d = Modelica.Media.Water.IF97_Utilities.waterBaseProp_ph(heater.mediums[1].p, heater.mediums[1].h, heater.statesFM[2].phase, 0).rho [dynamic |0|0|0|0|]
|
|---|
| 757 |
|
|---|
| 758 |
|
|---|
| 759 | varA (24)
|
|---|
| 760 | ========================================
|
|---|
| 761 | 1: $STATESET1.A[1,1]:VARIABLE(start = 1 fixed = true ) type: Integer [4,6]
|
|---|
| 762 | 2: $STATESET1.A[1,2]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 763 | 3: $STATESET1.A[1,3]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 764 | 4: $STATESET1.A[1,4]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 765 | 5: $STATESET1.A[1,5]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 766 | 6: $STATESET1.A[1,6]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 767 | 7: $STATESET1.A[2,1]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 768 | 8: $STATESET1.A[2,2]:VARIABLE(start = 1 fixed = true ) type: Integer [4,6]
|
|---|
| 769 | 9: $STATESET1.A[2,3]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 770 | 10: $STATESET1.A[2,4]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 771 | 11: $STATESET1.A[2,5]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 772 | 12: $STATESET1.A[2,6]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 773 | 13: $STATESET1.A[3,1]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 774 | 14: $STATESET1.A[3,2]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 775 | 15: $STATESET1.A[3,3]:VARIABLE(start = 1 fixed = true ) type: Integer [4,6]
|
|---|
| 776 | 16: $STATESET1.A[3,4]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 777 | 17: $STATESET1.A[3,5]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 778 | 18: $STATESET1.A[3,6]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 779 | 19: $STATESET1.A[4,1]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 780 | 20: $STATESET1.A[4,2]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 781 | 21: $STATESET1.A[4,3]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 782 | 22: $STATESET1.A[4,4]:VARIABLE(start = 1 fixed = true ) type: Integer [4,6]
|
|---|
| 783 | 23: $STATESET1.A[4,5]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 784 | 24: $STATESET1.A[4,6]:VARIABLE(start = 0 fixed = true ) type: Integer [4,6]
|
|---|
| 785 |
|
|---|
| 786 |
|
|---|
| 787 | varJ (2)
|
|---|
| 788 | ========================================
|
|---|
| 789 | 1: $STATESET1.J[1]:VARIABLE(fixed = false ) type: Real [2]
|
|---|
| 790 | 2: $STATESET1.J[2]:VARIABLE(fixed = false ) type: Real [2]
|
|---|
| 791 |
|
|---|
| 792 |
|
|---|
| 793 | record SimulationResult
|
|---|
| 794 | resultFile = "",
|
|---|
| 795 | simulationOptions = "startTime = 0.0, stopTime = 6000.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Fluid.Examples.HeatingSystem', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
|
|---|
| 796 | messages = "Failed to build model: Modelica.Fluid.Examples.HeatingSystem",
|
|---|
| 797 | timeFrontend = 9.302624866,
|
|---|
| 798 | timeBackend = 0.0,
|
|---|
| 799 | timeSimCode = 0.0,
|
|---|
| 800 | timeTemplates = 0.0,
|
|---|
| 801 | timeCompile = 0.0,
|
|---|
| 802 | timeSimulation = 0.0,
|
|---|
| 803 | timeTotal = 9.302663139
|
|---|
| 804 | end SimulationResult;
|
|---|
| 805 | "Warning: The model contains alias variables with conflicting start and/or 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.
|
|---|
| 806 | Error: Internal error Transformation Module PFPlusExt index Reduction Method Pantelides failed!
|
|---|
| 807 | Error: No system for the symbolic initialization was generated
|
|---|
| 808 | "
|
|---|