Closed dpinney closed 8 years ago
Existing Gridlab-D solar object documentation here: http://gridlabd.me.uvic.ca/wiki/index.php/Solar
I've done some digging into this problem and here's what I've found: I think that fitting common data sheet parameters for solar cells can pretty easily be fit into our existing model. The trick is knowing which values to put where.
As with many Gridlab-D models, not every parameter needs to be defined to get the simulation to run. There are cases where different parameters are used based on the choice of other parameters. For example, when using our solar panel models the users choice in specifying "SOLAR_POWER_MODEL" will determine if "a_coeff" needs to be defined or not. In most (hopefully all) cases, if an important parameter has not been given a value by the user and Gridlab-D can make a reasonable assumption, it will. These default values may or may not match the case the user intends to model but by using default values, the simulation can march on. For those that feel so inclined, these values can be found in the code, usually in the "create" or "init" functions for the module in question.
All this being said, here are the values that I think a typical user would need to define to best capture the performance of a given solar panel using our existing model. This is not all the necessary parameters you would include in the .glm to simulate a PV installation, just those that have to do with the panels themselves.
Prated = Rated_Insolation * efficiency * area
The data sheets I looked at had many more parameters than we support in our existing model and thus, it would be reasonable to expect the output of Gridlabd-D to show some variance from actual panel performance. If there are specific data sheet or model parameters that are important to be included in the simulation calculations, let us know and we'll see what we can do.
Thanks Trevor. The solar engineer at NRECA has some additional questions. He's out for a month, so I need to set up a meeting with him for December 9ish to figure out what I need to do next.
@drdanley spec memo on what values a user should know about their system is here:
Note that there are 8 total variables a user should enter to specify a grid-tied system for the OMF (5 for the array, 3 for the inverter).
December 9th call notes and new todo:
TODO
NOTES
NICE TO HAVES AFTER TODOS ARE DONE
STRETCH GOALS FOR MAYBE SOME DAY
ULTRA-STRETCH GOAL
To streamline the specification of the solar panels for OMF users and not have to monkey with the GLD code, here are the "behind-the-scenes" values that OMF should define for a given solar installation.
The OMF user can then explicitly define the power temperature coefficient (Pmax_temp_coeff) and the desired rated power in kW. I've done the algebra with the existing GLD model and we can then translate this given power into an array size using a factor of 66.6667 ft^2/kW. I'm very confident this will work just fine but will still run the simulations to double-check.
Regarding the physical set-up of the array here's what we have that is actually implemented in GLD for the orientation_type.
And that's it. For residential installations this is fine as we have the typical fixed installation covered. For commercial-scale installations, having only two-axis tracking is definitely a problem but this is what we have to work with right now.
I'm next going to build up a simple GLD model with an single solar panel installation (likely fixed-axis) and an inverter to verify the power-to-area conversion factor plays out. Is there anything special I need to know about running comparison test cases to PVWatts? I'll probably just pick a few days out of the TMY2 data to test and record a bunch of stuff. If there are any any special considerations that will make the comparison to PVWatts easier, let me know.
Most of this sounds good to me. Two points:
I've got a very simple test solar panel installation and inverter up and running that we should be able to use for comparing the output to PVWatts. I've been informed by another developer here at PNNL that our solar model is based an the default algorithm in NREL's SAM software which may or may not be related to PVWatts. Regardless, I don't expect it will be difficult to get them lined up. As soon as we can nail down test conditions I can get to work. Even better, if the test conditions came with the output from PVWatts I should be able to match it quickly.
Skipping ahead to the "Nice To Haves"
Thanks Trevor, this is a lot of good news.
Are you waiting for test cases? I think the following is a good minimum test set.
Minimal test cases:
For all these, panel temperature coefficients should be -0.439%/°C, inverter should be 1.1*panel DC max rating, 0.99 leading PF, 96% efficient.
Regarding PVWatts, just use the latest version in SAM. The best we can do is just choose a version and test against that. I saw the PVWatts website recently updated and results are now 10% higher, so PVWatts is clearly a moving target.
SAM does have a python SDK, if you want to use that. In pvWatts.py we use it, for example.
Let me know what else you need.
I think those conditions and test cases should be enough to get me going; thanks!
I've been working with the Gridlab-D model this afternoon and haven't quite been able to get it to line up with SAM's PVWatts output. Here are the results from the first case (5kW residential rooftop).
The error is less typically less than 10% and is most pronounced around the afternoon peaks in the summer. SAM doesn't make as many modeling parameters available for adjustment so it is not easy to figure out where the differences are showing up.
Here's what case 2 (2-axis tracking) looks like:
The differences in the two models are clearer here and the percentage differences are slightly higher. There is also some variation at times in the shape of the outputs; nothing catastrophic but noticeable at times. Given that this isn't actually intended to be a two-axis model but ends up kind of acting like one, the differences don't seem out of line as compared to the fixed-axis results above.
Given that PVWatts is not canonical and the differences are relatively small, I think we could call this good enough for now and move on. Thoughts from the OMF side? Is this good enough or do we need higher correlation?
I agree that this looks like a small difference in assumptions somewhere. I would be curious to see a zoom in on a single day -- perhaps one of the fixed axis days with double peaks. For now, this looks pretty good to me.
I'm not the solar expert, but within 10% of the SAM results sounds great to me.
Trevor, when you're ready, could you upload your test files in to /omf/omf/scratch/solarSamComparison/?
This is coming together nicely.
Files have been uploaded.
Its worth noting I did slightly adjust the "behind-the-scenes" to improve the correlation:
I also determined that the NOCT is not used in this version of the model so it can be removed.
All of this is shown in the .glm files in the solarSamComparison folder along with all the other specific parameter values.
Just as a data point, a REC Solar 72 cell, 305 Wp module has an area of 21 Sq Feet. This works out to 68.7 sq feet per kWp and an efficiency of 15.6%.
I think we're good. I'm going to close this and assume no one wants to log the "stretch goals" as GLD enhancements or try to come up with a plan around the "ultra-stretch goal".
Reopening to look into the possibility of adding a data abstraction layer so OMF users can input kW for panels and Gridlab can get sqft.
Just waiting on GLD 3.2, so closing.
Currently the variables that define a PV generator in Gridlab are things like area and efficiency. But a panel spec sheet specifies max powerpoint current, open circuit voltage, etc.
TODO:
Doug Danley @drdanley to provide list of inputs to a solar model.Done.