PV Smoothing is part of the MSEE Thesis by Kevin Morrissey (kmorri09@gmail.com):

"Mitigating Short-Term Variations of Photovoltaic Generation Using Energy Storage with VOLTTRON"



---



The PV Smoothing System is part of the greater UW VOLTTRON environment. It features two agents:


real_time_filter

adaptive_filter_tuning



The objective of real_time_filter is to dispatch a BESS in real time (1-second resolution) to mitigate

the short-term vagaries of PV generation. This agent listens for clock commands and PV readings from the

Energy Cost Optimization system, performs the filtering actions, and returns the real-time

BESS dispatch to smooth the short-term vagaries.



the adaptive_filter_tuning agent is a supporting agent for the PV Smoothing System, this agent will update

the filter time constant to the best value based on historical data, and send this update to the Real Time Filter agent.

The update period is variable, and this agent will only trigger operation when the update period has elapsed.



---



The PV Smoothing System does not run alone, as it depends on commands from the Energy Cost Optimization (ECO)

System in order to coordinate BESS operation. 

This activity can be simulated using published topics on the
message bus, as follows.



The PV Smoothing System requires the following topics published to the message bus:



ECO/Clock: System clock. Counter from 1 to infinity, which increments every second

devices/ECO/Meters/all: Solar PV generation readings (kiloWatts), delivered every clock cycle

ECO/BESS_command_schedule/profile: the ECO system's optimized BESS dispatch schedule

ECO/BESS_information: Feedback from the BESS model on the state of the battery (informational)



The PV Smoothing System delivers the following command back to the ECO on the message bus:


PVsmooth/BESS_command_RT: real-time BESS adjustment for smoothing of PV generation



---



The output of the system is given as .csv files logging system activity, located in:

PVsmoothing/real_time_filter/output_files



Two .csv files are created each day of operation: one with the current filter time constant and any

real-time updates that occurred during the day, and another with a second-by-second breakdown of 
the system state
(PV generation, smoothed value, BESS state, etc.).
