Beispiel #1
0
def databases():
    # pump database
    pump_sunpump = pp.Pump(
        os.path.join(test_dir, "../data/pump_files/SCB_10_150_120_BL.txt"))
    pump_shurflo = pp.Pump(os.path.join(test_dir,
                                        "../data/pump_files/Shurflo_9325.txt"),
                           price=700)
    pump_database = [pump_shurflo, pump_sunpump]

    # pv database
    pv_database = [
        'Canadian_Solar_Inc__CS1U_430MS', 'Canadian_Solar_Inc__CS5C_80M'
    ]

    # MPPT
    mppt1 = mppt.MPPT(efficiency=0.96, price=1000)

    return {'pumps': pump_database, 'pv_modules': pv_database, 'mppt': mppt1}

    return None
Beispiel #2
0
# motor-pump and PV module to reduce the life cycle cost of a system.
# It first computes the number of PV modules required for the combination
# to pump enough water in order to respect the maximum water shortage
# probability (named llp) accepted. Then it selects the combination with
# the lowest net present value.
# --------- ELEMENTS TO SIZE----------------------------------------------

# ------------- Pumps -----------
# Three pumps are available here. The user wants to find the one which fits
# best for the application. First the 3 pumps must be imported.

# Note that the motor-pumps coming from 'sunpump' follow a naming convention:
# The 3 numbers are respectively the flow rate in GPM, the Head in feet, and
# the voltage in V at the rated operating point. Note that the rated voltage
# is also the maximum input voltage for the pump.
pump_1 = pp.Pump(
    path="../../pvpumpingsystem/data/pump_files/SCB_10_150_120_BL.txt")

pump_2 = pp.Pump(
    path="../../pvpumpingsystem/data/pump_files/SCB_10_150_180_BL.txt")

# For the pump remember that the details given in the text file can be
# overwritten in its definition: for example the price is overwritten here.
pump_3 = pp.Pump(
    path="../../pvpumpingsystem/data/pump_files/SCS_12_127_60_BL.txt",
    price=1300)

# The database must be provided under the form of a list for the sizing:
pump_database = [pump_1, pump_2, pump_3]

# ------------- PV Modules -----------
# Two different modules are investigated here
mppt1 = mppt.MPPT(efficiency=0.96,
                  price=410,
                  idname='PCA-120-BLS-M2'
                  )

# ------------ PUMPS -----------------

# For entering new pump data:
# 1) open the template at: "../data/pump_files/0_template_for_pump_specs.txt"
# 2) write your specs (watch the units!),
# 3) save it under a new name (like "name_of_pump.txt"),
# 4) and close the file.
#
# To use it here then, download it with the path as follows:
pump_sunpump = pp.Pump(path="../../pvpumpingsystem/data/"
                       "pump_files/SCB_10_150_120_BL.txt")

# ------------ PIPES ------------------------

pipes1 = pn.PipeNetwork(h_stat=20,  # static head [m]
                        l_tot=100,  # length of pipes [m]
                        diam=0.05,  # diameter [m]
                        material='plastic')


# ------------ PVPS DEFINITION -----------
# Here you gather all components of your PV pumping system previously defined:
pvps1 = pvps.PVPumpSystem(pvgen1,
                          pump_sunpump,
                          coupling='direct',  # to adapt: 'mppt' or 'direct',
                          pipes=pipes1)
Beispiel #4
0
def pvps_set_up():

    pvgen1 = pvgen.PVGeneration(
            # Weather data
            weather_data_and_metadata=(
                    os.path.join(test_dir,
                                 '../data/weather_files/CAN_PQ_Montreal'
                                 '.Intl.AP.716270_CWEC_truncated.epw')),

            # PV array parameters
            pv_module_name='kyocera solar KU270 6MCA',
            price_per_watt=1,  # in US dollars
            surface_tilt=45,  # 0 = horizontal, 90 = vertical
            surface_azimuth=180,  # 180 = South, 90 = East
            albedo=0,  # between 0 and 1
            modules_per_string=2,
            strings_in_parallel=2,
            # PV module glazing parameters (not always given in specs)
            glass_params={'K': 4,  # extinction coefficient [1/m]
                          'L': 0.002,  # thickness [m]
                          'n': 1.526},  # refractive index
            racking_model='open_rack',  # or'close_mount' or 'insulated_back'

            # Models used (check pvlib.modelchain for all available models)
            orientation_strategy=None,  # or 'flat' or 'south_at_latitude_tilt'
            clearsky_model='ineichen',
            transposition_model='haydavies',
            solar_position_method='nrel_numpy',
            airmass_model='kastenyoung1989',
            dc_model='desoto',  # 'desoto' or 'cec' only
            ac_model='pvwatts',
            aoi_model='physical',
            spectral_model='no_loss',
            temperature_model='sapm',
            losses_model='pvwatts'
            )
    pvgen1.run_model()

    mppt1 = mppt.MPPT(efficiency=1,
                      price=200)

    pump_testfile = os.path.join(test_dir,
                                 '../data/pump_files/SCB_10_150_120_BL.txt')
    pump1 = pp.Pump(path=pump_testfile,
                    modeling_method='arab')

    pipes1 = pn.PipeNetwork(h_stat=10, l_tot=100, diam=0.08,
                            material='plastic', optimism=True)

    reserv1 = rv.Reservoir()

    consum1 = cs.Consumption(constant_flow=1)

    pvps1 = pvps.PVPumpSystem(pvgen1,
                              pump1,
                              coupling='mppt',
                              mppt=mppt1,
                              pipes=pipes1,
                              consumption=consum1,
                              reservoir=reserv1)
    return pvps1
# ------------ MPPT/DC-DC CONVERTER -------

mppt1 = mppt.MPPT(efficiency=0.96, price=410, idname='PCA-120-BLS-M2')

# ------------ PUMPS -----------------

# For entering new pump data:
# 1) go in: "../data/pump_files/0_template_for_pump_specs.txt"
# 2) write your specs (watch the units!),
# 3) save it under a new name (like "name_of_pump.txt"),
# 4) and close the file.
#
# To use it here then, download it with the path as follows:
pump_sunpump = pp.Pump(path="../../pvpumpingsystem/data/"
                       "pump_files/SCB_10_150_120_BL.txt",
                       modeling_method='kou')

pump_shurflo = pp.Pump(
    path="../../pvpumpingsystem/data/"
    "../data/pump_files/Shurflo_9325.txt",
    price=640,  # USD
    motor_electrical_architecture='permanent_magnet',
    modeling_method='arab')

# ------------ PIPES ------------------------

pipes1 = pn.PipeNetwork(
    h_stat=20,  # static head [m]
    l_tot=100,  # length of pipes [m]
    diam=0.05,  # diameter [m]