Esempio n. 1
0
        public static CompiledOutputData run(GISData gis, GUIData gui)
        {
            PVSAMV1Settings           pvss       = GISAdapter.getSettings(gis);
            float                     arraypower = pvss.modules_per_string * pvss.strings_in_parallel * pvss.module_model.getRatedPower();
            DatasheetInverterSettings inverter   = new DatasheetInverterSettings("default", arraypower * 1.15f);

            pvss.inverter_model = inverter;

            PVSAMV1Output pvo = (PVSAMV1Output)ModuleRunner.runModule(pvss);

            UtilityRateSettings urs = GUIAdapter.getUtilityRateSettings(gui);

            urs.setValuesFromPriorOutput(pvo);
            UtilityRateOutput uro = (UtilityRateOutput)ModuleRunner.runModule(urs);


            SizeAndCostSettings sc = GUIAdapter.getSizeAndCostSettings(gui);

            sc.setValuesFromPriorOutput(pvo);

            CashLoanSettings cls = GUIAdapter.getCashLoanSettings(gui);

            cls.setValuesFromPriorOutput(sc, uro);
            CashLoanOutput clo = (CashLoanOutput)ModuleRunner.runModule(cls);

            return(new CompiledOutputData(pvo, uro, clo, sc));
        }
Esempio n. 2
0
 public PVSystemModel(GISData gis, ArrayParameterListBuilder apl, UtilityRateParameterBuilder upl, CashLoanParameterBuilder clp, SizeAndCostParameterBuilder scb)
 {
     gisData        = gis;
     arrayBuilder   = apl;
     utilityBuilder = upl;
     cashBuilder    = clp;
     sizeBuilder    = scb;
 }
Esempio n. 3
0
        public static MultiplePVSystemModel multiRunModel(GISData gis, GUIData gui, int[] years)
        {
            MultiplePVSystemModel pv = new MultiplePVSystemModel();

            for (int i = 0; i < years.Length; i++)
            {
                String fn = "ExampleFiles\\Prospector\\radwx_075153995_" + years[i] + "~.tm2";
                pv.Add(runModel(gis, gui, fn));
            }

            return(pv);
        }
Esempio n. 4
0
        public static PVSystemModel runModel(GISData gis, GUIData gui, string filename)
        {
            ArrayParameterListBuilder   ab = new ArrayParameterListBuilder();
            UtilityRateParameterBuilder ub = new UtilityRateParameterBuilder();
            CashLoanParameterBuilder    cb = new CashLoanParameterBuilder();
            SizeAndCostParameterBuilder sc = new SizeAndCostParameterBuilder();

            if (filename != null)
            {
                ab.weather_file(filename);
            }

            sc.overall_cost_per_watt_dc(gui.cost_per_watt_dc);

            ub.analysis_years(gui.analysis_years);
            ub.rate_escalation(gui.inflation_rate + gui.utility_ann_escal_rate);
            ub.ur_monthly_fixed_charge(gui.utility_monthly_fixed_cost);
            ub.ur_flat_buy_rate(gui.utility_price_to_compare);
            ub.ur_flat_sell_rate(gui.utility_price_to_compare);
            ub.ur_sell_eq_buy(true);

            cb.loan_rate(gui.loan_rate);
            cb.loan_term(gui.loan_term);
            cb.loan_debt(gui.loan_debt);
            cb.inflation_rate(gui.inflation_rate);
            cb.discount_rate(gui.discount_rate);

            if (gui.enable_incentives)
            {//Enable
                cb.pbi_sta_amount(gui.srec_price / 1000f);
                cb.itc_fed_percent(30);
            }
            else
            {//Disable
                cb.pbi_sta_amount(0);
                cb.itc_fed_percent(0);
            }

            PVSystemModel pv = new PVSystemModel(gis, ab, ub, cb, sc);

            pv.run();

            return(pv);
        }
Esempio n. 5
0
        public static PVSAMV1Settings getSettings(GISData gis)
        {
            PVSAMV1Settings pvss       = PVSAMV1Settings.getDefault();
            int             numModules = calcNumPanelsOnRoof(gis.width, gis.height, pvss.module_model.getWidth(), pvss.module_model.getHeight());

            if (pvss.inverter_model == null)
            {
                //InverterModelParams imp = new DatasheetInverterModel("default", numModules * pvss.module_model_params.getRatedPower() * 1.15f);
                //pvss.inverter_model = imp;
            }

            int[] shape = calcArrayWiring(numModules, pvss.inverter_model.getMaxRatedVoltage(), pvss.module_model.getVmax());


            pvss.modules_per_string  = shape[0];
            pvss.strings_in_parallel = shape[1];

            pvss.subarray1_tilt    = gis.tilt;
            pvss.subarray1_azimuth = gis.azimuth;
            pvss.inverter_count    = 1;

            return(pvss);
        }
Esempio n. 6
0
 public static PVSystemModel runModel(GISData gis, GUIData gui)
 {
     return(runModel(gis, gui, null));
 }