Knowledgebase : HVAC > Set Point Managers
Could you elaborate further on the relation between SetPoint managers and Controllers?

SetpointManager objects place a setpoint on a node, for example, one might place a setpoint of 12C on the node named "Main Cooling Coil Air Outlet Node".

In the case of Controler:WaterCoil which controls a hot water or chilled water coil, the controller reads the setpoint and tries to adjust the water flow so that the air temperature at the controlled node matches the current setpoint. Continuing the example above:

Main Cooling Coil Controller, !- Name
Temperature, !- Control variable
Reverse, !- Action
Flow, !- Actuator variable
Main Cooling Coil Air Outlet Node, !- Control_Node
Main Cooling Coil Water Inlet Node, !- Actuator_Node
0.002, !- Controller Convergence Tolerance: delta temp from setpoint temp {deltaC}
autosize, !- Max Actuated Flow {m3/s}
0.0; !- Min Actuated Flow {m3/s}

It is possible to place the control node downstream of the actual object being controlled, for example after other coils and the supply fan, but I recommend using the coil leaving air node as the control node for tighter control.

Troubleshooting Thermostat Setpoint Not Met Hours (not exhaustive, but should get you started):

Run annual simulation
Request bin report for hours not met, or plot hourly values
Is this a morning warmup/cooldown problem or not?

Run design days (autosized equipment should meet setpoint on the design days that were used to size it)
Output setpoint not met variables
Output supply temperatures and setpoints
Is the supply air at the setpoint?
Does the setpoint agree with the design supply temperature specified in the sizing input?
If the supply temperature is at setpoint, then the flow rate is too small

If the supply temperature is not at setpoint, is the coil fully loaded?
If the coil is fully loaded, then the coil may be too small or the plant is not supplying enough
If the coil is not fully loaded, then there may be a control problem (setpoint manager, availability manager, components schedule)

If there is a central plant, are the plant loops at setpoint?
If the plant loop is not at setpoint, then is the boiler/chiller fully loaded?
If the boiler/chiller is fully loaded, then it may be too small.
If the boiler/chiller is not fully loaded, then there is a control problem (setpoint manager or equipment operation)

A coil will check it's inlet air temperature compared to the set point temperature. For cooling, if the inlet air temperature is above the set point temp, the coil turns on. It's opposite that for heating. In the 5ZoneAutoDXVAV example file, a schedule temperature set point is placed at the system outlet node. This is the temperture the designer wants at the outlet. The mixed air SP manager is used to account for fan heat and places the required SP at the outlet of the cooling coil so the coil slightly overcools the air to overcome fan heat and meet the system outlet node set point.

You don't blindly place the SP's at the coil outlet node, but this is a likely starting point in most cases. If there is a fan after the coil's, the "actual" SP will need to be placed on a different node (other than the coils). Then a mixed air manager will be used to reference that SP and the fan's inlet/outlet node to calculate the correct SP to place wherever you want (at the coil outlet, the mixed air node, etc.). Place it at the mixed air node if you want the outside air system to try and meet that setpoint through mixing. Place it at the cooling coil outlet if you want the coil control to account for fan heat. Place it at both locations if you want the outside air system to try and meet the load with the coil picking up the remainder of the load.

See if the coils are fully on when the SP is not met. If they are the coils are too small. If they are at part-load, the control SP is calculated incorrectly.