How to make CoilCoolingDXTwoStageWithHumidityControlMode work?
I am working on a relatively simple model for a natatorium, based on an AirLoopHVAC and a PlantLoop. The air temperature setpoint is around 82 F with nighttime setback +/- 3 F for cooling/heating, and the pool temperature setpoint is around 80 F. The air humidity setpoint is around 50%, with nighttime setback +/- 10% for cooling/heating. I don't know if I will need the setbacks in the end, but for now, they conveniently mark the days in DVIEW. I have dehumidifying and humidifying setpoints, but am only doing dehumdification in the AirLoopHVAC. The PlantLoop seems to work just fine, but the AirLoopHVAC is giving me trouble once I enable dehumidification.
The AirLoopHVAC includes an AirLoopHVACOutdoorAirSystem (with HeatExchangerAirToAirSensibleAndLatent and FanConstantVolume), a CoilCoolingDXTwoStageWithHumidityControlMode, a CoilHeatingDesuperheater (inserted by simple Python script), a CoilHeatingElectric, a FanConstantVolume and a SetpointManagerSingleZoneReheat. The latter references the ThermalZone with the SwimmingPoolIndoor, which in turn is part of the PlantLoop. This works well as such, and while the ThermalZone humidity is not controlled (actively), the cooling coil brings humidity down to about 65% or so whenever it runs.
Now, when I add a SetpointManagerSingleZoneHumidityMaximum right behind the cooling coil, referencing that same ThermalZone, and I also add the EnergyPlus measure that adds "CoolReheat,Yes,Yes" to the CoilSystemCoolingDX which the translator generates, the trouble starts.
I have included below images of the AirLoopHVAC and the PlantLoop for clarification, and then images of the temperatures and cooling and heating rates (blue = cooling, brown = desuperheater, orange = electric) for a week in January and a week in July. As you can see, the ThermalZone temperature exceeds setpoint at almost all times where one expect it to follow setpoint. Somewhere I read that the cooling coil stops as soon as the humidity setpoint is set, but not even that seems to be true here because the humidity rarely touches 60%, let alone 50% at daytime.




So, I am just looking for any advice on humidity control with this type of cooling coil, without loosing temperature control. There is a good YouTube out there, but it is for a CoilCoolingWater, which by comparison is easy and really works as advertised. Is there a magic trick, another measure to run, another setting to be checked? It seems to me this is such a common requirement, it ought to be easy.
By the way, the fact that I could get the CoilHeatingDesuperheater to kick in at all is pure accident. I had done that successfully once before in an experimental model, but it never worked again thereafter in my actual model, until I deleted all HVAC components and reinserted them, including setpoint managers. It was an all-day affair to debug that.
.>>> Update <<<.
I spent many hours looking into this further. The following are some additional thoughts I developed.
1) I moved CoilCoolingDXTwoStageWithHumidityControlMode into an AirLoopHVACUnitarySystem and it seems to work well without adding any SetpointManagers, leaving control on Load, rather than Setpoint. So, AirLoopHVACOutdoorAirSystem and AirLoopHVACUnitarySystem are the only components in AirLoopHVAC ...



... see the update to my original post ...
The multimode DX coil can be used only as a component of AirLoopHVAC:UnitarySystem, CoilSystem:Cooling:DX or AirLoopHVAC:UnitaryHeatCool:VAVChangeoverBypass (parent object). These parent objects pass a load and dehumidification mode to this coil. If the coil has 2 capacity stages, the multimode coil model determines the stage sequencing.
Thank you for confirming this. It still does not address the issue of wanting to use DX reheat upon subcool for dehumidification. I tried to do that by adding a Coil:Heating:Desuperheater right behind the Coil:Cooling:DX:TwoStageWthHumidityControlMode, but that is an uncontrolled coil and leads nowhere. Instead, it seems Coil:Cooling:DX with one Coil:Cooling:DX:CurveFit:Performance and three Coil:Cooling:DX:CurveFit:OperatingMode, each with one Coil:Cooling:DX:CurveFit:Speed, might be more promising. I can't believe it is this hard to get DX dehumidification with DX (hot gas) reheat going.
Unfortunately Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit appears to be the only object that can simulate hot gas reheat.
If you look in the idd you will see the coil/refrig types that can serve the desuperheater: