分析了光伏组件空气玻璃界面上的减反射膜。
pvarc的Python项目详细描述
pvarc公司
太阳能组件空气-玻璃界面减反射膜测试分析
简介
许多太阳能组件在空气玻璃界面上有一层防反射涂层(ARC)。该界面通常由一层约125nm的多孔二氧化硅层组成。这个软件包允许用户模拟这些弧的反射性能。它还为计算太阳加权光子反射率提供了方便的函数,这是衡量涂层性能的一个很好的指标。在
安装
要设置虚拟环境,请创建虚拟环境:
conda create --name pvarc python=3 numpy pandas scipy matplotlib
pip install tmm
要使用pip安装,请运行:
^{pr2}$示例
第一个例子使用弧反射模型来生成合成反射曲线。然后利用同一模型的拟合提取涂层参数。这个例子可以用来证明提取真实参数的准确性。在
"""Example for generating a synthetic reflection spectrum, fitting to thesingle-layer-coating model and finding the solar weighted photon reflectanceand power enhancement due to the coating.Todd Karin"""importnumpyasnpimportpandasaspdimportmatplotlibmatplotlib.use('TkAgg')importmatplotlib.pyplotaspltfrompvarcimportsingle_interface_reflectancefrompvarc.metricsimportsolar_weighted_photon_reflectionfrompvarc.fitimportfit_arc_reflection_spectrum,arc_reflection_modelfrompvarc.materialsimportrefractive_index_glassfrompvarc.oceaninsightimportread_oceanview_file# Create a synthetic reflection curve based on the theoretical model. To run on# a different dataset, simply import the data as `wavelength` and `reflection`.wavelength=np.linspace(200,1100,500)param_true={'thickness':125,'fraction_abraded':0.05,'fraction_dust':0.0,'porosity':0.3}reflection=arc_reflection_model(wavelength,**param_true)reflection=reflection+np.random.normal(0,2e-4,wavelength.shape)# Plot dataplt.figure(0)plt.clf()plt.plot(wavelength,100*reflection,label='Data',color=[0,0,0.8])# Fit modelx,ret=fit_arc_reflection_spectrum(wavelength,reflection,model='TPA',aoi=8,wavelength_min=450,wavelength_max=1000,method='basinhopping',verbose=True)wavelength_extend=np.linspace(300,1250,1000)reflection_fit=arc_reflection_model(wavelength_extend,**x)# Calculate solar weighted photon reflection (SWPR) using fitswpr=solar_weighted_photon_reflection(wavelength_extend,reflection_fit)# Calculate SWPR for glass referenceindex_glass=refractive_index_glass(wavelength_extend)reflection_BK7=single_interface_reflectance(n0=1.0003,n1=index_glass,aoi=8)swpr_bk7=solar_weighted_photon_reflection(wavelength_extend,reflection_BK7)# Calculate power enhancement due to coating.power_enchancement=swpr_bk7-swpr# Compare fit vs simulated value.print('--\nComparison of true values vs. best fit')forpin['thickness','porosity','fraction_abraded']:print('{}.\t True: {:.2f}, Fit: {:.2f}, '.format(p,param_true[p],x[p]))# Plot theory.plt.plot(wavelength_extend,100*reflection_fit,label='Fit',linewidth=3,color=[1,0.5,0,0.5],)plt.text(450,3,'*Best fit parameters*\n'+ \ 'Thickness: {:.0f} nm\n'.format(x['thickness'])+ \ 'Porosity: {:.0%}\n'.format(x['porosity'])+ \ 'Fraction Abraded: {:.1%}\n'.format(x['fraction_abraded'])+ \ 'SWPR (400-1100 nm): {:.1%}\n'.format(swpr)+ \ 'PE (400-1100 nm): {:.1%}\n'.format(power_enchancement),fontsize=8,)plt.xlabel('Wavelength (nm)')plt.ylabel('Reflection (%)')plt.ylim([0,8])plt.xlim([300,1250])plt.legend()plt.show()# plt.savefig('example_out.png',dpi=200)
- 项目
标签: