User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
lab:ucsspm [2014/11/15 16:35]
chrono [Photovoltaic Systems]
lab:ucsspm [2016/10/31 22:25]
chrono [Photovoltaic Systems]
Line 17: Line 17:
 | Photovoltaic | Direct, solid-state Photon to Electron conversion | Energy (Electricity) | | Photovoltaic | Direct, solid-state Photon to Electron conversion | Energy (Electricity) |
  
-Therefore knowledge about global solar radiation (Rs) is of fundamental importance for human life on earth. We're depending very much on knowing how much solar energy can be harvested on given point on our planet's surface. Yet we still commonly refer and are taught to use 1000 W/m2 on any point on Earth, as a clear-sky reference value.+Therefore knowledge about global solar radiation (Rs) is of fundamental importance for human life on earth in general and for this project to predict how much Solar (PV) energy we can harvest at any given deployment site in particular, so we depend very much on knowing how much solar energy can be harvested as clear-sky day maximum, for a specific location on our planet's surface.  
 + 
 +Yet we still commonly refer and are taught to use 1000 W/m2 on any point on Earth, as a clear-sky reference value. Even the Watt-Peak value, PV-Panel manufacturers put into their datasheets, is virtually always based only on 1000 W/m2. But how do we actually calculate the output we may generate with a given surface/technology, if we don't know what our clear-sky (Rs)max for a specific location and time will be?
  
 <html><img src="/_media/lab:ucsspm-header.jpg" alt="UCSSPM - Unified Clear-Sky Solar-Output Prediction Model - Open Algorithms for an open future" title="UCSSPM - Unified Clear-Sky Solar-Output Prediction Model - Open Algorithms for an open future" /></html> <html><img src="/_media/lab:ucsspm-header.jpg" alt="UCSSPM - Unified Clear-Sky Solar-Output Prediction Model - Open Algorithms for an open future" title="UCSSPM - Unified Clear-Sky Solar-Output Prediction Model - Open Algorithms for an open future" /></html>
Line 31: Line 33:
   * Estimate the maximum clear-sky PV output for any given site/time/system   * Estimate the maximum clear-sky PV output for any given site/time/system
   * Keep PV panels at optimum elevation without a separate optical solar tracker   * Keep PV panels at optimum elevation without a separate optical solar tracker
 +
 +The first full clear sky day since the beginning of data collection has been on 2015-01-13 and the prediction results definitely look very promising as we can see on the following dashboard screenshot:
 +
 +{{:lab:ucsspm-clear-sky-solar-prediction-on-a-clear-sky-day.jpg|First clear-sky day prediction result compared to reference pyranometer measurements on VFCC Dashboard}}
 +
 +Another random screenshot from 2016-10-31:
 +
 +{{:lab:ucsspm-clear-sky-day-solar-prediction-longterm.jpg||Another clear-sky day prediction result compared to reference pyranometer measurements on VFCC Dashboard}}
  
 Long term PV (live & UCSSPM) metrics are collected and accessible on these [[https://apollo.open-resource.org/flight-control/vfcc/|VFCC]] dashboards: Long term PV (live & UCSSPM) metrics are collected and accessible on these [[https://apollo.open-resource.org/flight-control/vfcc/|VFCC]] dashboards:
  
 <WRAP round tip> <WRAP round tip>
-  * [[https://apollo.open-resource.org/flight-control/vfcc/#/dashboard/db/odyssey-solar-power|Odyssey - Solar Power Dashboard]] +  * [[https://apollo.open-resource.org/flight-control/vfcc/dashboard/db/odyssey-solar-power|Odyssey - Solar Power Dashboard]] 
-  * [[https://apollo.open-resource.org/flight-control/vfcc/#/dashboard/db/aquarius-solar-power|Aquarius - Solar Power Dashboard]]+  * [[https://apollo.open-resource.org/flight-control/vfcc/dashboard/db/aquarius-solar-power|Aquarius - Solar Power Dashboard]]
 </WRAP> </WRAP>
  
-{{:lab:ucsspm-test-dashboard.jpg|}}+
 ==== Solar-Ovens ==== ==== Solar-Ovens ====
  
-The system can be easily extended to estimate the optimum parabolic oven-reflector size, to satisfy the energy needs for a given community and their specific position on the planet.+The system can be easily extended to estimate the optimum parabolic oven-reflector size, to satisfy the energy needs for a given project and the specific position on the planet.
  
 ==== Sensor Calibration Reference Model ==== ==== Sensor Calibration Reference Model ====
Line 57: Line 67:
 ===== Code ===== ===== Code =====
  
-What started out as a basis to calculate and verify the solar power requirements and project feasibility of Apollo-NG, has already become a very advanced clear-sky prediction model, incorporating the following factors:+What started out of the necessity to calculate and verify the solar power requirements and project feasibility of [[mission:tech|Apollo-NG]] itself, has become an advanced clear-sky prediction model, implemented in python without any further dependency, incorporating the following factors:
  
 +  * Revised Solar Constant
   * Position on Earth   * Position on Earth
   * Day of Year   * Day of Year
 +  * Time of Day
   * Distance Sun-Earth   * Distance Sun-Earth
-  * Angle through atmosphere +  * Angle through Atmosphere 
-  * Water in atmosphere +  * Precipitable water in Atmosphere 
-  * Atmospheric turbidity (smogdust etc.)+  * Atmospheric turbidity (SmogDust, Air-traffic etc.)
   * Direct/diffuse beam radiation   * Direct/diffuse beam radiation
-  * PV-Module surface/type/temperature/age +  * PV-Panel Surface/Type/Temperature/Age
  
 <sxh python; toolbar:false> <sxh python; toolbar:false>
Line 96: Line 107:
 # #
 #  You should have received a copy of the GNU General Public License #  You should have received a copy of the GNU General Public License
-#  along with this program.  If not, see <http://www.gnu.org/licenses/>.+#  along with this program. If not, see <http://www.gnu.org/licenses/>.
 # #
 ################################################################################ ################################################################################
Line 232: Line 243:
     else:     else:
  
-        print "--------------------------------------------------------------------" +        print "--------+--------------------------------------------------------" 
-        print "%d.%d.%d | %d | %f | " % (opt.day, opt.month, opt.year, res['DoY'], res['ToD'+        print " UCSSPM Clear-Sky Prediction for %s @ %s" % (opt.date, opt.time 
-        print "--------------------------------------------------------------------" +        print "--------+--------------------------------------------------------" 
-        print "Solar Constant                               : %s" % opt.sc +        print " Solar Constant                               : %s kW/m² @ 1AU" % opt.sc 
-        print "Atmospheric turbidity coefficient            : %s" % opt.at_tc +        print " Atmospheric turbidity coefficient            : %s" % opt.at_tc 
-        print "--------------------------------------------------------------------" +        print "-----------------------------------------------------------------" 
-        print "Equation of time                             : %s min" % res['eqt'+        print " Equation of time                             : %s min" % res['eqt'
-        print "Inverse relative distance factor             : %s" % res['sol_r'+        print " Inverse relative distance factor             : %s" % res['sol_r'
-        print "Sun declination                              : %s°"  % res['sol_d'+        print " Sun declination                              : %s°"  % res['sol_d'
-        print "Solar Noon                                   : %s "  % res['sol_n'+        print " Solar Noon                                   : %s "  % res['sol_n'
-        print "Barometric Pressure at site                  : %s kPa" % opt.at_p +        print " Barometric Pressure at site                  : %s kPa" % opt.at_p 
-        print "Estimated Vapor Pressure at site             : %s kPa" % res['at_vp'+        print " Estimated Vapor Pressure at site             : %s kPa" % res['at_vp'
-        print "Estimated extraterrestrial Radiation         : %s kW/m²" % res['ETR'+        print " Estimated Extraterrestrial Radiation         : %s W/m²" % res['ETR'
-        print "Estimated precipitable water in Atmosphere   : %s mm" % res['at_pw'+        print " Estimated precipitable water in Atmosphere   : %s mm" % res['at_pw'
-        print "Clearness index for direct beam radiation    : %s" % res['CIDBR'+        print " Clearness index for direct beam radiation    : %s" % res['CIDBR'
-        print "Transmissivity index for diffuse radiation   : %s" % res['TIDR'+        print " Transmissivity index for diffuse radiation   : %s" % res['TIDR'
-        print "--------------------------------------------------------------" +        print "-----------------------------------------------------------------" 
-        print "Model estimated Global solar radiation (Rs)  : \033[1;33m%3.1f W/m²\033[0m" % res['RSO'+        print " Estimated Max. global solar radiation (Rs)   : \033[1;33m%3.1f W/m²\033[0m" % res['RSO'] 
-        print "Optimum Elevation of PV-Panel                : \033[1;37m%02.1f°\033[0m" % res['sol_z'+        print "-----------------------------------------------------------------" 
-        print "Model estimated Max. PV-Power Output         : \033[1;32m%3.1f W\033[0m \033[1;37m@ %d%% Mod Eff\033[0m" % (res['pv_max'], opt.pv_e) +        print " Optimum Elevation of PV-Panel                : \033[1;37m%02.1f°\033[0m" % res['sol_z'
-        print "Model estimated PV-Module temp convloss    : -\033[1;31m%2.1f W / %2.1f%%\033[0m" % (res['pv_lp'] , res['pv_l'] ) +        print " Estimated Max. Clear-Sky PV-Power Output     : \033[1;32m%3.1f W\033[0m \033[1;37m@ %d%% Peff\033[0m" % (res['pv_max'], opt.pv_e) 
-        print "Model estimated PV-Module aging loss         : -\033[1;31m%03.1f W\033[0m" % res['pv_la'+        if res['pv_lp'] >= 0: 
-        print "--------------------------------------------------------------" +            print " PV-Panel temperature (%2.1f °C) compensation  - \033[1;31m%2.1f W / %2.1f%%\033[0m" % (opt.pv_t, res['pv_lp'] , res['pv_l'] ) 
-        print "Model estimated Real PV-Power Output         : \033[1;32m%3.1f W\033[0m" % res['pv_out']+        else: 
 +            print " PV-Panel temperature (%2.1f °C) compensation  + \033[1;32m%2.1f W / %2.1f%%\033[0m" % (opt.pv_t, res['pv_lp']*-1 , res['pv_l']*-1 ) 
 +        print " PV-Panel aging loss                          - \033[1;31m%03.1f W\033[0m" % res['pv_la'
 +        print "-----------------------------------------------------------------" 
 +        print " Compensated Max. Clear-Sky PV-Power Output   : \033[1;32m%3.1f W\033[0m" % res['pv_out']
         return 0         return 0
  
Line 269: Line 284:
     opt             = arg.parse_args()     opt             = arg.parse_args()
  
-    opt.date        = opt.date.split("-"+    parse_d         = opt.date.split("-"
-    opt.year        = int(opt.date[0]) +    opt.year        = int(parse_d[0]) 
-    opt.month       = int(opt.date[1]) +    opt.month       = int(parse_d[1]) 
-    opt.day         = int(opt.date[2])+    opt.day         = int(parse_d[2])
  
-    opt.time        = opt.time.split(":"+    parse_t         = opt.time.split(":"
-    opt.hour        = int(opt.time[0]) +    opt.hour        = int(parse_t[0]) 
-    opt.min         = int(opt.time[1]) +    opt.min         = int(parse_t[1]) 
-    opt.sec         = int(opt.time[2])+    opt.sec         = int(parse_t[2])
  
     dst_off         = 0     dst_off         = 0
Line 428: Line 443:
     sys.exit        (rc)     sys.exit        (rc)
 </sxh> </sxh>
 +
 +===== Installation =====
 +
 +This should work on any operating system with Python 2.7 installed. Other python versions haven't been tested yet.
 +
 +
 +You can either clone the whole repo with documentation with
  
 <code> <code>
-$ ./ucsspm.py -v -pv_t 16 +$ git clone https://github.com/apollo-ng/UCSSPM.git 
--------------------------------------------------------------------- +$ cd UCSSPM 
-15.11.2014 319 | 12.875000 |  +</code> 
--------------------------------------------------------------------- + 
-Solar Constant                               : 1361.0 +or just download the script itself 
-Atmospheric turbidity coefficient            : 0.95 + 
--------------------------------------------------------------------- +<code> 
-Equation of time                             : 15.6165056158 min +$ wget https://raw.githubusercontent.com/apollo-ng/UCSSPM/master/ucsspm.py 
-Inverse relative distance factor             : 1.00277104587 +</code> 
-Sun declination                              : -18.2528587° + 
-Solar Noon                                   : 11.7397249064  +===== Usage Example ===== 
-Barometric Pressure at site                  : 101.325 kPa + 
-Estimated Vapor Pressure at site             : 1.58351726536 kPa +<code> 
-Estimated extraterrestrial Radiation         : 511.570656859 kW/m² +$ ./ucsspm.py -v -pv_t 16 -at_t 9.3 -at_p 945.5 -at_h 81 
-Estimated precipitable water in Atmosphere   : 24.5629841677 mm +--------+-------------------------------------------------------- 
-Clearness index for direct beam radiation    : 0.433768605367 + UCSSPM Clear-Sky Prediction for 2014-11-15 @ 13:31:36 
-Transmissivity index for diffuse radiation   : 0.193843302068 +--------+-------------------------------------------------------- 
--------------------------------------------------------------- + Solar Constant                               : 1361.0 kW/m² @ 1AU 
-Model estimated Global solar radiation (Rs)  321.W/m² + Atmospheric turbidity coefficient            : 0.95 
-Optimum Elevation of PV-Panel                : 68. +----------------------------------------------------------------- 
-Model estimated Max. PV-Power Output         107.W @ 20% Mod Eff + Equation of time                             : 15.6165056158 min 
-Model estimated PV-Module temp convgain    : +3.W / 3.1% + Inverse relative distance factor             : 1.00277104587 
-Model estimated PV-Module aging loss         : -2.+ Sun declination                              : -18.2528587° 
--------------------------------------------------------------- + Solar Noon                                   : 11.7397249064  
-Model estimated Real PV-Power Output         108.5 W+ Barometric Pressure at site                  : 94.55 kPa 
 + Estimated Vapor Pressure at site             : 0.948698993906 kPa 
 + Estimated Extraterrestrial Radiation         : 456.410564923 W/m² 
 + Estimated precipitable water in Atmosphere   : 14.6579285823 mm 
 + Clearness index for direct beam radiation    : 0.451609480011 
 + Transmissivity index for diffuse radiation   : 0.187420587196 
 +----------------------------------------------------------------- 
 + Estimated Max. global solar radiation (Rs)   291.W/m² 
 +----------------------------------------------------------------- 
 + Optimum Elevation of PV-Panel                : 70. 
 + Estimated Max. Clear-Sky PV-Power Output     97.W @ 20% Peff 
 + PV-Panel temperature (16.0 °C) compensation  + 3.W / 3.1% 
 + PV-Panel aging loss                          1.
 +----------------------------------------------------------------- 
 + Compensated Max. Clear-Sky PV-Power Output   98.5 W
 </code> </code>
  
 ===== Development / Sources / Issue-Tracking ===== ===== Development / Sources / Issue-Tracking =====
  
-Anyone interested is of course also invited to download the software and play/use/verify/optimize as well. Feedback, PR's and everything else that can increase precision/usability are always welcome:+Anyone interested is of course also invited to download the software and play/use/verify/optimize as well. Feedback, PR's and everything else that might increase precision/usability are always welcome:
  
 https://github.com/apollo-ng/UCSSPM https://github.com/apollo-ng/UCSSPM
 +
 +
 +===== Roadmap =====
 +
 +  * Integrate long-term simulation/reference data into VFCC [DONE]
 +  * **Refactor into a python lib to be used either standalone or linked into python code [NEXT]**
 +  * Create a pip package for that lib
 +
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
-{{tag>research solar radiation energy prediction software power algorithm python}}+{{tag>research solar radiation energy prediction software power algorithm python simulation}} 
 + 
 +{{keywords>Apollo-NG hackerspace hacker space development makerspace fablab lab community open-resource open resource mobile hackbus hackbase research solar radiation energy prediction software power algorithm python simulation}}