What follows is a summary of how the unit operates. For details review the firmware: it is thoroughly documented.
The unit is based on a Microchip PIC16F1769 8-bit, mid-range CPU with peripheral support optimized for SMPS applications. It has two functional blocks: 1) a hardware-based synchronous buck, and 2) a firmware-based Maximum Power Point Tracking (MPPT) control loop. The firmware also monitors system parameters, manages operating modes, and provides a simple GPIB-style console interface. Many of the unit's operating parameters are store in Non-Volatile Memory (NVM - program high-endurance flash) and can be modified via the console.
The unit is powered by the 12V battery it is connected to. This was done to avoid the added power conditioning & regulation circuitry that would be required if the PV was used.
The PIC's 10-bit Analog to Digital Converter (ADC) is used to collect the necessary data points:
- PV voltage & current
- Battery voltage
- Output voltage
PV power is directly calculated from the individual PV values. There are a few drawbacks to this. First, the ADC can only do one conversion at a time so PV volts & amps are obtained sequentially. Second, while it is DC, there could be significant amounts of ripple depending on load, available sunshine, etc,. This design doesn't have the capability to perform an RMS calculation. To compensate, a fair amount of bulk capacitance exists in front of the buck and the PV values are averaged over several samples. Observationally, these deficiencies do not appear to have a material impact.
Refer to the peripheral config schematic for details.
The synchronous buck employs the peak-mode current control method to achieve regulation. In practice, this consists of two layers: the inner current, and outer voltage control loop. Slope compensation is used to eliminate sub-harmonic oscillation. Low-side control is managed in a hardware control loop. On-time is set with a voltage reference that is controlled by firmware.
The Perturb and Observe (P&O) method is used to achieve MPPT and is executed in firmware. The algorithm monitors PV power and works to match the unit's impedance to the PV's by limiting the maximum duty cycle (DC) of the buck. Basically it looks for peak PV power.
Firmware also manages the operating mode of the unit. During low light levels it shuts the buck down and enters a low power state to minimize battery drain. Charging automatically resumes when the PV voltage is sufficient. Detected faults will halt operation if an unrecoverable error is detected
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.