Short story: in your case the PV is producing all the time, but no power is sold back to the grid. See TL;DR below for proof.
To look at your outputs, you can always:
- Look at the Tariff section of the
eplusout.html
file, there's lot of good info in there, including the detail of how the utility cost is calculated. - Request
Output:Variable
for eg at the hourly timestep. The ElectricLoadCenter has plenty of interesting variables, see doc, such as Facility Total Surplus Electric Power
TL:DR; because proof is always a good thing:
I'm assuming you used the Sketchup Plugin User-Script called "Add Photovoltaics", and that you haven't tuned the different objects used, especially the ElectricLoadCenter:Distribution object (let's call this "elcd" going forward). This measure creates a default elcd, see here
This sets the Generator Operation Scheme Type to "Baseload":
The Baseload scheme operates the generators at their rated (requested) electric power output when the generator is scheduled ON (ref. ElectricLoadCenter:Generators). The Baseload scheme requests all generators scheduled ON (available) to operate, even if the amount of electric power generated exceeds the total facility electric power demand
If you want to make sure, use the ruby bindings:
model = OpenStudio::Model::Model.new
elcd = OpenStudio::Model::ElectricLoadCenterDistribution.new
elcd.generatorOperationSchemeType
=> "Baseload"
So, we know the PV will produce no matter what. Next question to ask ourselves, is whether the surplus is sold to the grid or not?
This is defined in the UtilityCost:Tariff
BuyOrSell field. This one is set during the use of the BCL measure Tariff Selection Time and Date Dependent with Maximum Demand Charge.
See line 415 and follow of measure.rb:
new_object_string = "
UtilityCost:Tariff,
ElectricityTariff, !- Name
ElectricityPurchased:Facility, !- Output Meter Name
kWh, !- Conversion Factor Choice
, !- Energy Conversion Factor
, !- Demand Conversion Factor
#{time_of_day_schedule.getString(0)}, !- Time of Use Period Schedule Name
#{two_season_schedule.getString(0)}, !- Season Schedule Name
, !- Month Schedule Name
#{args['demand_window_length']}, !- Demand Window Length
0.0; !- Monthly Charge or Variable Name
"
electric_tariff = workspace.addObject(OpenStudio::IdfObject::load(new_object_string).get).get
Bottom line, no power is sold to the grid, because the output meter is set to ElectricityPurchased:Facility
and not Electricity:Facility
(or maybe more likely ElectricityNet:Facility
according to EconomicTariff.cc#L619) with a Buy Or Sell field set to NetMetering
.
In the case of the measure, since Buy Or Sell
isn't set, it's later defaulted to BuyFromUtility
, that happens in EnergyPlus EconomicTariff.cc#L608
If you want to maximize your chances of getting pertinent answers, and make the life of the person answering easier, please always include relevant links to measures you're using. I personally am not a fan of having to infer and/or search on BCL. Thanks!