Opened 4 years ago
Last modified 4 years ago
#6190 closed defect
Issue with homotopy during initialization in Buildings — at Initial Version
Reported by: | Francesco Casella | Owned by: | Karim Adbdelhak |
---|---|---|---|
Priority: | critical | Milestone: | 1.18.0 |
Component: | Backend | Version: | |
Keywords: | Cc: | Andreas Heuermann |
Description
Please check Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop. The backend fails with
[3] 20:24:23 Translation Notification The given system is mixed-determined. [index = 1] [4] 20:24:23 Translation Error Internal error IndexReduction.pantelidesIndexReduction failed! System is structurally singular and cannot be handled because the number of unassigned equations is larger than the number of states. Use -d=bltdump to get more information. [5] 20:24:23 Symbolic Error Model is structurally singular, error found sorting equations 390: ahu.cooCoi.ele[2].preDro2.dp = if {false, false, false, true} then 0.0 else 0.0 129: ahu.cooCoi.ele[2].preDro2.dp = ahu.cooCoi.ele[3].vol2.p - ahu.cooCoi.ele[2].vol2.p 571: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[2].vol2.dynBal.mXi[1] 404: ahu.cooCoi.ele[2].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[2].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[2].vol2.p 403: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[2].vol2.dynBal.m * ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1] 15: ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1] = 0.01 570: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[3].vol2.dynBal.mXi[1] 22: ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1] = 0.01 354: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[3].vol2.dynBal.m * ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1] 341: ahu.cooCoi.ele[3].preDro2.dp = if {false, false, false, true} then 0.0 else 0.0 355: ahu.cooCoi.ele[3].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[3].vol2.p 120: ahu.cooCoi.ele[3].preDro2.dp = ahu.cooCoi.ele[4].vol2.p - ahu.cooCoi.ele[3].vol2.p 307: ahu.cooCoi.ele[4].vol2.dynBal.m = 1.184307920059215e-05 * ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * ahu.cooCoi.ele[4].vol2.p 29: ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1] = 0.01 306: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1] = ahu.cooCoi.ele[4].vol2.dynBal.m * ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1] 7: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1] = $START.ahu.cooCoi.ele[4].vol2.dynBal.mXi[1] for variables 362: ahu.cooCoi.ele[2].preDro2.dp:VARIABLE(start = 0.0 unit = "Pa" nominal = if 0.0 > 1e-15 then 0.0 else 1.0 protected = true ) "Pressure difference between port_a and port_b"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.FixedResistances.PressureDrop type: Real [4] 386: ahu.cooCoi.ele[2].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 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 = 101325.0 unit = "Pa" nominal = 100000.0 protected = true final = true ) "Pressure of the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4] 372: ahu.cooCoi.ele[2].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[2].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = "kg" protected = true final = true ) "Masses of independent components in the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1] 374: ahu.cooCoi.ele[2].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[2].vol2.V * 1.2 unit = "kg" stateSelect=StateSelect.prefer protected = true final = true ) "Mass of fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4] 385: ahu.cooCoi.ele[2].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0))))))))))))))) start = 0.01 unit = "1" nominal = 0.1 protected = true ) "Structurally independent mass fractions"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1] 304: ahu.cooCoi.ele[3].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = "kg" protected = true final = true ) "Masses of independent components in the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1] 317: ahu.cooCoi.ele[3].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0))))))))))))))) start = 0.01 unit = "1" nominal = 0.1 protected = true ) "Structurally independent mass fractions"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1] 306: ahu.cooCoi.ele[3].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.V * 1.2 unit = "kg" stateSelect=StateSelect.prefer protected = true final = true ) "Mass of fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4] 294: ahu.cooCoi.ele[3].preDro2.dp:VARIABLE(start = 0.0 unit = "Pa" nominal = if 0.0 > 1e-15 then 0.0 else 1.0 protected = true ) "Pressure difference between port_a and port_b"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.FixedResistances.PressureDrop type: Real [4] 318: ahu.cooCoi.ele[3].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 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 = 101325.0 unit = "Pa" nominal = 100000.0 protected = true final = true ) "Pressure of the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4] 256: ahu.cooCoi.ele[4].vol2.p:VARIABLE(min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 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 = 101325.0 unit = "Pa" nominal = 100000.0 protected = true final = true ) "Pressure of the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort type: Real [4] 244: ahu.cooCoi.ele[4].vol2.dynBal.m:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.V * 1.2 unit = "kg" stateSelect=StateSelect.prefer protected = true final = true ) "Mass of fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4] 255: ahu.cooCoi.ele[4].vol2.dynBal.medium.Xi[1]:VARIABLE(flow=false min = max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, max(0.0, 0.0)))))))))))))))))) max = min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, min(1.0, 1.0)))))))))))))))))) start = 0.01 unit = "1" nominal = 0.1 protected = true ) "Structurally independent mass fractions"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation, ahu.cooCoi.ele.vol2.dynBal.Medium.BaseProperties type: Real [4,1] 242: ahu.cooCoi.ele[4].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = "kg" protected = true final = true ) "Masses of independent components in the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1] 241: $DER.ahu.cooCoi.ele[4].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[4].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = "kg" protected = true final = true ) "Masses of independent components in the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1] 303: $DER.ahu.cooCoi.ele[3].vol2.dynBal.mXi[1]:VARIABLE(min = max(0.0, 0.0) start = ahu.cooCoi.ele[3].vol2.dynBal.fluidVolume * 1.2 * 0.01 unit = "kg" protected = true final = true ) "Masses of independent components in the fluid"Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.CoolingCoilHumidifyingHeating_ClosedLoop, Buildings.Applications.DataCenters.ChillerCooled.Equipment.CoolingCoilHumidifyingHeating, Buildings.Fluid.HeatExchangers.WetCoilCounterFlow, ahu.cooCoi.HexElement, Buildings.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatMoisturePort, Buildings.Fluid.Interfaces.ConservationEquation type: Real [4,1] [6] 20:24:23 Translation Error post-optimization module replaceHomotopyWithSimplified (initialization) failed. [7] 20:24:23 Translation Error No system for the symbolic initialization was generated
I turned on -b=bltdump
to get more info.
I'm not sure I can fully make sense of the reason why Pantelides' algorithm fails and what is the role of homotopy. I compiled the model in Dymola forcing homotopy to be considered, and the simulation was successful, so it looks like the simplified system should be well-posed.
@Karim, @AnHeuermann, any idea what could be going wrong here?
Note:
See TracTickets
for help on using tickets.