Modelica solver efficiency compared to predictor/corrector
I am not very familiar with Modelica, but there is a lot of hype around it. I know that there are Modelica compilers which use innovative solvers to asses which components' states need to be updated.
On the other hand, there is something very basic and efficient about the traditional predictor/corrector solution method:
- Calculate the loads
- Compare the loads to the available capacity
- If the loads are less than the capacity, the setpoint is met and we can calculate energy use
- If the loads are greater than the capacity, the setpoint is not met and we need to iteratively calculate the resulting temperature.
This seems to save a lot of time since no iterations are necessary when the load is met. Does a generic system solver like those used with in Modelica have the awareness to not iterate when it is not necessary? How will this difference impact the simulation time of models created using Modelica?
If the HVAC is properly sized, wouldn't Condition 4 occur only 0.4% of the time (ASHRAE Design Criteria) ? I'd also like to mention a complication to 3, which is that the (conductive) loads will vary with the zone temperature. In DOE-2, this is solved by adjusting the loads by the U-A of the space times the temperature difference from the Loads temperature. In EnergyPlus, the time step is shortened down to 1 minute whenever the change in temperature exceeds a certain amount. I'd like to see the difference between the two methods in terms of accuracy and runtime.
Another thought is that 4 doesn't necessarily have to solved by iteration. Couldn't you just take the loads, add in the contribution from the HVAC, which would be the capacity in this case, and then derive the resulting zone temperature? This is what's done in DOE-2, but keeping in mind the adjustment for the loads.