One of the primary benefits of ultracapacitors is their ability to charge and discharge very quickly over many cycles. The "best" way to charge and discharge the capacitor will depend on the power source and load. However, there are common methods for controlling the charge on the capacitor that can serve as a starting point for many designs.
A standard power design is composed of an input regular, output regulator, and balancing network. The input regular converts the source power to DC power for charging the capacitors. The balancing network ensures that voltage on each capacitor is roughly the same. The output regulator converts the capacitor voltage to whatever form is useful to regulate the load.
For charging the ultracapacitor bank, we recommend a converter with output current regulation. The reason for output current regulation is that, when discharged, the capacitor voltage will be near 0V but the series resistance can still be very low. Therefore, for an unregulated supply, such as a battery, or for a voltage controlled regulator, there is a danger of drawing too much current from the supply.
There are custom ultracapacitor charging IC's on the market, for example the Linear Technology LTC3255, that typically incorporate both charging and balancing for a small number of series capacitors. Alternatively, any current regulated converter IC will be suitable and can be adapted for much higher voltage and power operation. A large segment of these IC's can be found as LED drivers. One example that we have used extensively is the Linear Technology LT3791, shown below in its standard configuration as an LED driver.
When considering discharging of the ultracapacitors, it's important to remember once again that the energy in the capacitors goes as the voltage squared. Therefore, operating within a high voltage window will yield more energy than operating within a lower voltage window of the same size.
It also means that at a constant power discharge, the capacitors will slowly lose voltage at first but quickly drop in voltage as the discharging continues to lower voltage levels. Shown below are the common profiles for discharging the ultracapacitors.
To safely discharge an ultracapacitor bank, we recommend a high power resistor such that the peak power of the resistor is not exceeded. If a programmable load is available, configuring the load as a constant current sink is also appropriate.