GMLC-1-4-2 / battery_interface

Implemenation of Device Models and their Battery Equivalent Interface
MIT License
5 stars 0 forks source link

Artificial Inertia - Passing start_time to Get_frequency #53

Open Hayden-Reeve opened 5 years ago

Hayden-Reeve commented 5 years ago

@jmaguire1 , @yliu250 , @raselmahmud02 , @afernandezcanosa @rkadavil @DavidRosewater

There is a need to provide start_time to Process_Request > Frequency_watt > Get_Frequency. I have gotten this working with PV the following way (Will link once working code is pull requested). Here is the sequence: a. Pass start_time from the integration ‘test.py’ into the service’s request_loop and then add start_time to the fleet_request structure created in Fleet_Request.

https://github.com/GMLC-1-4-2/battery_interface/blob/c93e8ce7b8c71d5eaee95c9e8da710be54761e82/src/services/artificial_inertia_service/artificial_inertia_service.py#L30-L38

b. Then PV_Inverter_Fleet.py (for example) can pull start_time from the fleet_request structure and send it into frequency_watt:

https://github.com/GMLC-1-4-2/battery_interface/blob/681d79259abb2b65ed85200c54fd056bba8a5f27/src/fleets/PV/PV_Inverter_Fleet.py#L154-L160

and then get_frequency:

https://github.com/GMLC-1-4-2/battery_interface/blob/681d79259abb2b65ed85200c54fd056bba8a5f27/src/fleets/PV/PV_Inverter_Fleet.py#L1023-L1031

c. Get_Frequency in grid_info_artificial_inertia.py was already set up to receive a start time – it just was not receiving one. d. This seems to work with the average P_service varying with time and having a diurnal variation.