Patent ID: 8849687

Claim:
A computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied in the medium for implementing a method for dispatching energy from a plurality of distributed storage resources in a discharge event so that the energy stored in each of the plurality of distributed resources is levelized, the computer program product comprising: program code for causing a computer to receive a dispatch request comprising an amount of power required during a dispatch event and a duration of the discharge event; program code for causing the computer to determine accomplishability of the dispatch request, comprising: program code for determining an aggregate rate of discharge for the plurality of distributed energy resources based on the rates of discharge at which each of the individual resources of the plurality of distributed resources are capable of producing; program code for determining if the determined aggregate rate of discharge is sufficient to meet the amount of power required to satisfy the dispatch request; program code for determining if the determined aggregate rate of discharge can be maintained at all times during the dispatch event, and if so, identifying the dispatch request as accomplishable; program code for causing, if the dispatch request is determined to be accomplishable, the computer to determine the amount of energy to be discharged from each of the plurality of distributed resources during the dispatch event so as to reduce the variance among the stored energy levels of the plurality of distributed energy resources; program code for scheduling the dispatch of each of the plurality of distributed resources to participate in the dispatch event, the program code for scheduling the dispatch comprising: code for implementing a bin packing algorithm to select the start and stop times of the discharge of each of the plurality of distributed resources during the dispatch event, and code for tilting the dispatch schedule by adding a fractional time offset to intervals in each bin used by the bin packing algorithm; program code for sending dispatch instructions to each of the plurality of distributed resources to participate in the scheduled dispatch event.