예제 #1
0
def test_infinite_Weibull():
    r1 = PV_ICE.Simulation()
    r1.createScenario('standard', file=MODULEBASELINE)
    r1.scenario['standard'].addMaterial('glass', file=MATERIALBASELINE)
    r1.scenario['standard'].data['mod_lifetime'] = 50.0
    failyear = r1.scenario['standard'].data['mod_lifetime'][0] 
    r1.calculateMassFlow()
    data = r1.scenario['standard'].data
    EOLrow = data.loc[0, data.columns.str.startswith("EOL_on_Year")]
    assert round(r1.scenario['standard'].data['Area'][0],0) ==round(EOLrow.sum(),0)
    EOLrow = data.loc[10, data.columns.str.startswith("EOL_on_Year")]
    assert round(r1.scenario['standard'].data['Area'][10],0) ==round(EOLrow.sum(),0)

    # If no recycling as input material, then virgin material is constant for this scenario
    r1.scenario['standard'].material['glass'].materialdata['mat_EOL_RecycledHQ_Reused4MFG'] = 0.0
    r1.calculateMassFlow()
    assert r1.scenario['standard'].material['glass'].materialdata['mat_Virgin_Stock'][0] == r1.scenario['standard'].data['Area'][10]*mat_massperm2
    
    # If nothing is collected, everything goes to landfill.
    r1.scenario['standard'].data['mod_EOL_collection_eff'] = 0.0
    r1.calculateMassFlow()
    # Comparing to a year in the future where steady state has been achieved.
    assert (round(r1.scenario['standard'].data['Area'][0]*mat_massperm2,0) == 
    round(r1.scenario['standard'].material['glass'].materialdata['mat_Total_Landfilled'][30],0))
    assert (round(r1.scenario['standard'].material['glass'].materialdata['mat_Total_Landfilled'][0],0) ==
    round(r1.scenario['standard'].material['glass'].materialdata['mat_Total_EOL_Landfilled'][0],0))
예제 #2
0
def test_project_lifetime():
    r1 = PV_ICE.Simulation()
    r1.createScenario('standard', file=MODULEBASELINE)
    r1.scenario['standard'].addMaterial('glass', file=MATERIALBASELINE)
    failyear = r1.scenario['standard'].data['mod_lifetime'][0] 
    r1.calculateMassFlow()
    # Assert all modules go to trash at end of lifetime
    assert r1.scenario['standard'].data['EOL_on_Year_'+str(int(failyear)+1)].iloc[0] == 0
    # Assert that since the manufacturing process is perfect, and there is no
    # trash and recycled input on this year, euqlas 0
    mat_massperm2 = r1.scenario['standard'].material['glass'].materialdata['mat_massperm2'].iloc[0]
    assert (r1.scenario['standard'].data['Area'][0]*mat_massperm2-
            r1.scenario['standard'].material['glass'].materialdata['mat_Virgin_Stock'][0]) == 0.0
예제 #3
0
# In[2]:

import PV_ICE

# In[3]:

import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams.update({'font.size': 22})
plt.rcParams['figure.figsize'] = (12, 5)

# In[4]:

r1 = PV_ICE.Simulation(name='Simulation1', path=testfolder)
r1.createScenario(name='50_Year_Module',
                  file=r'..\baselines\baseline_modules_US.csv')
r1.scenario['50_Year_Module'].addMaterial(
    'glass', file=r'..\baselines\baseline_material_glass.csv')
r1.scenario['50_Year_Module'].addMaterial(
    'silicon', file=r'..\baselines\baseline_material_silicon.csv')

r1.createScenario(name='15_Year_Module',
                  file=r'..\baselines\baseline_modules_US.csv')
r1.scenario['15_Year_Module'].addMaterial(
    'glass', file=r'..\baselines\baseline_material_glass.csv')
r1.scenario['15_Year_Module'].addMaterial(
    'silicon', file=r'..\baselines\baseline_material_silicon.csv')

r1.createScenario(name='30_Year_Module',
예제 #4
0
import PV_ICE

# In[3]:

import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams.update({'font.size': 22})
plt.rcParams['figure.figsize'] = (12, 5)

# ## PV ICE

# In[4]:

r1 = PV_ICE.Simulation(name='Simulation1', path=testfolder)
r1.createScenario(name='PV_ICE_base',
                  file=r'..\baselines\baseline_modules_World.csv')
r1.scenario['PV_ICE_base'].addMaterial(
    'glass', file=r'..\baselines\baseline_material_glass.csv')

r1.createScenario(name='PV_ICE_idealMFG',
                  file=r'..\baselines\baseline_modules_World.csv')
r1.scenario['PV_ICE_idealMFG'].addMaterial(
    'glass', file=r'..\baselines\baseline_material_glass.csv')
r1.scenario['PV_ICE_idealMFG'].data['mod_MFG_eff'] = 100.0
r1.scenario['PV_ICE_idealMFG'].material['glass'].materialdata[
    'mat_MFG_eff'] = 100.0

r1.createScenario(
    name='Irena_2019',
예제 #5
0
#
# PV ICE handles failures through a probabilistic distribution, so far in specific the Weibull. The Weibull equation is defined by an Alfa and a Beta parameters. These parameters can be found on literature, or they can be calculated if the reliability is known. Altough other values can be set by changing the probabilities, we use by default:
#     - T50: number of years when 50 % of the year will be off and
#     - T90 are used:
#
# Below we show a couple ways of passing the parameters, plot a comparison between different literature values, and highlight the significance of T50 and T90.
#

# In[1]:

import PV_ICE
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

r1 = PV_ICE.Simulation(name='Simulation1')

baselinefile = r'C:\Users\sayala\Documents\GitHub\CircularEconomy-MassFlowCalculator\PV_ICE\baselines\baseline_modules_US.csv'
materialfile = r'C:\Users\sayala\Documents\GitHub\CircularEconomy-MassFlowCalculator\PV_ICE\baselines\baseline_material_glass.csv'
r1.createScenario(name='standard', file=baselinefile)
r1.scenario['standard'].addMaterial('glass', file=materialfile)

# ## A. Passing Alpha and Beta values

# In[2]:

weibullInputParams = {'alpha': 3.4, 'beta': 4.5}
r1.calculateMassFlow(weibullInputParams=weibullInputParams)
print(r1.scenario['standard'].data.WeibullParams.head())

# ## B. Internally calculated Weibull with t50 and t90
import PV_ICE
import matplotlib.pyplot as plt
import pandas as pd


# In[72]:


plt.rcParams.update({'font.size': 22})
plt.rcParams['figure.figsize'] = (12, 5)


# In[73]:


r1 = PV_ICE.Simulation(name='Simulation1', path=testfolder)
r1.createScenario(name='baseline', file=MODULEBASELINE)
r1.scenario['baseline'].addMaterial(MATERIAL, file=MATERIALBASELINE)


# # Goal; Compare Virgin Material Extraction , and Waste. 

# ## MATERIAL BASELINES

# ### mat_virgin_eff | Virgin Material Efficiency

# In[74]:


# Material baseline mod.
stage = 'mat_virgin_eff'