ImportantI have not worked on this project for years and years. I'm leaving the page up here in the odd chance that you might want to look at this code. However, this program is buggy, tricky to get to run on recent versions of Perl, and most importantly, obsolete. NREL's PVWATTS can do the same thing, using the same equations and underlying data set. It's online, and its free.
Regards,
Dave J
Photovoltaic Simulator Software (PV-Sim)What is PV-Sim? PVSim is a project I began because I found that most papers I read on phootovoltaic systems used TRNSYS to simulate the performance of the systems under varying conditions. There's nothing wrong with TRNSYS -- infact, I'm sure it's very accurate and it's certainly more flexible, easy to use and fast. But seeing as I don't have a copy of my own, I thought it would be a fun project to see how well I could do such a job myself. I also saw that the weather data used as inputs to most TRNSYS PV simulations was the National Renewable Energy Laboratory's (NREL) TMY2 (Typical Meteorological Year), available for download for free there. I also found that people tended to use the Sandia National Labs PV performance model, and a database of characerized models, also available for download. Finally, I saw that NREL has a library routine calculating the position of the sun at any arbitrary time. Code for determining the position of the sun at any point on the earth and at any time came from the NREL Solpos routines, translated into Perl. You can download the C code and some documentation at: http://rredc.nrel.gov/solar/codesandalgorithms/solpos. Data for determining the insolation and other weather phenomena from various cities in the US comes from NREL's TMY2 data sets. You can get these, with documentation at http://rredc.nrel.gov/solar/old_data/nsrdb/tmy2/. A detailed combined physics+empirical model of PV module performance was developed a Sandia National Labs. It is described in this paper in sufficient detailed to code from. Also, Sandia nicely provides a database of already characterized systems and modules at http://photovoltaics.sandia.gov/docs/Database.htm. (This database is in Microsoft Access .mdb format -- a proprietary format intended to work directly and only with Maui Solar Software's IV Tracer program. Boo! Hiss! But I was able to convert it to a neutral text format using the open source MDBTools.) I merely combined these elements together and coded the result in Perl, and voila, my own PV simulator. What does PV-Sim look like?
Does it really work? I can't really make a detailed validation of the output, because I have no data against where to compare. The output is "ballpark" of what I expect to see. I suspect, however, that there are bugs, though the fundamental algorithms are soild. Can it make Graphs? It can make very basic ones, with any combination of variables plotted on the y-axis and time as the x-axis. It can also output a spreadsheet of data which you can use to make a nicer graph in your favorite spreadsheet. Do you have any Documentation? At this point, very little. However, there is a very short user's guide under the Help menu of the program itself. Will it run on a Mac/PC/Linux?
There is no reason, theoretically, that it won't work on any platform that hosts Perl. Very few special modules are required. Where can I download it? Here:
Note that this is a 58MB download. It is so big because it includes the Sandia PV module database as well as all the TMY2 data for all 238 covered cities. I could make you download this stuff yourself, and the file would be smaller, but in addition to the downloading, some of these files required format conversions. Installation Instructions (Windows XP PC) Before PV-Sim can run on your computer, you must have the Perl language installed. This is available for download from Activestate for free. For your convenient, I have included a simple setup program that should install and set up perl for you. So, the steps to install PV-Sim are:
(This setup only needs to be done once.) Now you are ready to run PV-Sim. To run PV-Sim, just click on the "run_gui" icon. That should get things started. If not, email me, and we'll figure it out together. I found a bug / it crashed / I would like to see X feature... |