I think the evaluation metric does not represent the real-world problem accurately. Here’s my observation:
When I produce more solar power than I use, I have a negative
net_energy_consumption , so I automatically sell it to the grid at current prices. (definition of electricity cost)
This profit offsets part of my total cost of electricity.
However, when I sell this electricity, I do not get a similar benefit in my carbon emissions, as carbon emissions are clipped to be non-negative. (definition of carbon emissions)
I think this is a mistake in the evaluation metric. Selling my clean energy to the grid should cause the grid to produce less of its dirty electricity, at least in expectation. This counterfactual reduction of carbon emissions should be offsetting my total emissions, as I should be rewarded for it. I think the definition should be changed to allow for negative emissions.
You’re right, we’re currently not considering such an emission bonus. This is a simplification of course as you correctly point out because selling PV to the grid should theoretically reduce the carbon content of the grid.
We’re currently thinking about how to model this accurately in CityLearn as I think it would require a) more detailed generation dispatch modeling, and b) also some sort of scaling or reduction mechanism to see how an individual home would impact the grid. Or else perhaps in a more closed microgrid setting where a set of buildings shares DER generation and some FF generators as backup/baseload.
Not sure if this answers your questions adequately
I guess you’re right, I don’t expect CityLearn to model the behavior of the entire grid to do this. I don’t think a single house would have any noticeable effect, but a large number of houses predictably feeding back to the grid definitely have an effect. I think it’s fine to just keep this in mind as a limitation of the environment model.
Just to correct myself here: The agent does not actually get a rebait for selling electricity back to the grid. The cost is clipped to >0 at multiple other places in the code, both in the reward function and in the cost function.
I think for a more realistic model, you should get both carbon and money credits for selling electricity to the grid. In this version of CityLearn, excess electricity is simply burned instead of sold to the grid.