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?

Change History (0)

Note: See TracTickets for help on using tickets.