These expressions should(?) result in zero difference when the setpoint is met:
max(0, @RSYS["<%= system_name %>"].znLoad[0])*@Top.subhrDur - @RSYSRES["<%= system_name %>"].S.qhNet
min(0, @RSYS["<%= system_name %>"].znLoad[0])*@Top.subhrDur - @RSYSRES["<%= system_name %>"].S.qcSenNet
I wonder if this is an iteration issue where znLoad needs to be updated one last time after the supply has been set?
Also should improve documentation of what znLoad[*] means. It is more of a system load (since it includes distribution losses).