design

Parametric Design tools

solpy.design.celery_worker_status()

get celery worker status

solpy.design.combinations(_a, _b)

generate combinations

solpy.design.design(reqs, ranking=None)

Design a PV system based upon various ranking algorithms.

Args:

reqs (dict): JSON object of design constriants. Shading is an optional constraint.

ranking (list): algorithms that define valuation of parts. The default rankings are knapsack and efficient.

Returns:
list of systems

For example:

>>> reqs = {"system_name":"HAPPY CUSTOMER",
    "address":"15013 Denver W Pkwy, Golden, CO",
    "zipcode":"80401",
    "phase":1,
    "voltage":240,
    "service":200,
    "tilt":25,
    "azimuth":180,
    "notes":"reqs",
    "inverter options":["SMA America: SB5000TL-US-22 (240V) 240V",
        "SMA America: SB7000TL-US-12 (240V) 240V",
        "SMA America: SB8000TL-US-12 (240V) 240V",
        "SMA America: SB9000TL-US-12 (240V) 240V",
        "SMA America: SB6000US-11 240V"],
    "panel options":["Axitec : AC-250P-156-60S *"],
    "space":[[10,5]],
    "desired size":25000}
>>> design(reqs, ranking=[efficient])
[{'DCnominal': 23100,
'address': '15013 Denver W Pkwy, Golden, CO',
'algorithm': 'efficient',
'array': [{'inverter': u'SMA America: SB5000TL-US-22 (240V) 240V',
    'panel': 'Axitec : AC-250P-156-60S *',
    'quantity': 1,
    'shape': [{'parallel': 1, 'series': 12},
        {'parallel': 1, 'series': 11}]},
{'inverter': u'SMA America: SB5000TL-US-22 (240V) 240V',
    'panel': 'Axitec : AC-250P-156-60S *',
    'quantity': 1,
    'shape': [{'parallel': 1, 'series': 12},
        {'parallel': 1, 'series': 11}]},
{'inverter': u'SMA America: SB5000TL-US-22 (240V) 240V',
    'panel': 'Axitec : AC-250P-156-60S *',
    'quantity': 1,
    'shape': [{'parallel': 1, 'series': 12},
        {'parallel': 1, 'series': 11}]},
{'inverter': u'SMA America: SB5000TL-US-22 (240V) 240V',
    'panel': 'Axitec : AC-250P-156-60S *',
    'quantity': 1,
    'shape': [{'parallel': 1, 'series': 12},
        {'parallel': 1, 'series': 11}]}],
'azimuth': 180,
'notes': 'symetric design of most efficient combination',
'phase': 1,
'system_name': 'HAPPY CUSTOMER',
'tilt': 25,
'voltage': 240,
'yearone': 35746.2,
'zipcode': '80401'}]
solpy.design.efficient(items, maxweight)

symetric design of the most efficeint inverter panel combo

solpy.design.fill(inverter, zipcode, ac_dc_ratio=1.2, mount='Roof', station_class=1, v_max=600, bipolar=True)

deprecated use generate_options

solpy.design.generate_options(inverter_name, module_name, zipcode, ac_dc_ratio=1.2, mount='Roof', station_class=1, v_max=600, bipolar=True)

String sizing: find all valid configurations for a location

solpy.design.knapsack(item_set, maxweight)

knapsack problem weight is system DC size and value is annual output this could be expanded with different constraints for different rankings

solpy.design.performance_model_plant(json_def)

model performance of a system

solpy.design.performance_model_set(clist)

wrapper for distributed performance modelling

solpy.design.str_format(inverter)

format as str: ‘9769.5W : 13S x 3P : ratio 1.22 : 314.0 - 552.0 V’

solpy.design.tools_fill(inverter, zipcode, ac_dc_ratio=1.2, mount='Roof', station_class=1, v_max=600, bipolar=True)

deprecated legacy function