{ From user Davidn, Model Mefl_solar_plant_pro at Tue, 30 Mar 2010 3:53 PM} Softwareversion 4.2.2 { System Variables with non-default values: } Typechecking := 1 Checking := 1 Saveoptions := 2 Savevalues := 0 {!40000|Att_contlinestyle Graph_primary_valdim: 1} {!40000|Att_catlinestyle Graph_primary_valdim: 9} Model Mefl_solar_plant_pro Title: MEFL Solar Plant Project v1_0 Description: The solar plant being investigated by the Moreland Energy Foundation Author: Matthew Date: Mon, 26 Oct 2009 3:41 PM Saveauthor: Davidn Savedate: Tue, 30 Mar 2010 3:53 PM Defaultsize: 48,24 Diagstate: 1,567,5,581,557,17 Windstate: 2,102,90,476,224 Fontstyle: Arial, 15 Fileinfo: 0,Model Mefl_solar_plant_pro,2,2,0,0,C:\Users\Davidn.MOXYSTUDIOS\Flash\MoxyANAViewer\bin\MEFL_Solar_Plant_Project_v2_0.ANA Module Constraints Title: Constraints Author: Matthew Date: Tue, 27 Oct 2009 10:49 AM Defaultsize: 48,24 Nodelocation: 448,176,1 Nodesize: 60,28 Diagstate: 1,561,87,404,307,17 Chance Wiki_discount_rate Title: Wiki Discount Rate Units: percent Definition: Reset;~ GetValueFromWiki(Wiki_Source, MEFL_Solar_Model, 'DiscountRate(Percent)', true); Nodelocation: 120,72,1 Nodesize: 48,31 Decision Discount_rate Title: Discount Rate Units: Percent Definition: Wiki_discount_rate Nodelocation: 288,72,1 Nodesize: 48,24 Chance Wiki_project_life Title: Wiki Project Life Units: years Definition: Reset;~ GetValueFromWiki(Wiki_Source, MEFL_Solar_Model, 'ProjectLife(Years)', true); Nodelocation: 120,144,1 Nodesize: 48,24 Decision Project_life Title: Project Life Units: Years Definition: Wiki_project_life Nodelocation: 288,144,1 Nodesize: 48,24 Displayoutputs: Objective Energy_generated_ye1 Chance Wiki_panel_size Title: Wiki Panel Size Units: kW Definition: Reset;~ GetValueFromWiki(Wiki_Source, MEFL_Solar_Model, 'NameplateCapacity', true); Nodelocation: 120,216,1 Nodesize: 48,24 Decision Panel_size Title: Panel Size Units: kW Definition: Wiki_panel_size Nodelocation: 288,216,1 Nodesize: 48,24 Aliases: Alias Panel_size1 Close Constraints Module Physical_system Title: Physical System Author: Matthew Date: Tue, 27 Oct 2009 10:49 AM Defaultsize: 48,24 Nodelocation: 272,176,1 Nodesize: 60,28 Diagstate: 1,604,96,436,236,17 Module Capture Title: Capture Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 120,72,1 Nodesize: 48,24 Diagstate: 1,233,283,513,289,17 Chance Panel_efficiency_deg Title: Panel Efficiency Degradation Units: %pa Description: The rate at which the panel degrades in its energy output over time Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_solar_cell, 'DegradationRate(PercentPerYear)', true); Nodelocation: 88,192,1 Nodesize: 48,31 Variable Panel_insolation Title: Panel Insolation Units: MWh/kW/year Description: The amount of energy that can be generated from the panel in a year Definition: Var i := columnindex( Zone_energy_output);~ Var j := rowindex(Zone_energy_output);~ sum(Zone_energy_output[@j = Project_zone],i) Nodelocation: 248,256,1 Nodesize: 48,24 Chance Project_zone Title: Project Zone Definition: Reset;~ GetValueFromWiki(Wiki_Source, Melbourne, 'SolarZone', true); Nodelocation: 88,256,1 Nodesize: 48,24 Chance Cell_cost_per_watt Title: Cell Cost Per Watt Units: $/kW Description: The capital cost of the solar installation Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_solar_cell, 'CapitalCost(AudPerWatt)', true); Nodelocation: 88,48,1 Nodesize: 48,24 Objective Cell_capital_cost Title: Cell Capital Cost Definition: If year = 0 then Panel_size*Cell_cost_per_kw else 0 Nodelocation: 408,48,1 Nodesize: 48,24 Valuestate: 2,280,290,416,303,0,MIDM Alias Panel_size1 Title: Panel Size Definition: 1 Nodelocation: 88,112,1 Nodesize: 48,24 Original: Panel_size Objective Energy_generated_yea Title: Energy Generated Yearly Definition: Panel_size*Panel_insolation*Panel_yearly_efficie Nodelocation: 408,192,1 Nodesize: 48,31 Variable Panel_yearly_efficie Title: Panel Yearly Efficiency Definition: (1-Panel_efficiency_deg)^year Nodelocation: 248,192,1 Nodesize: 48,31 Chance Zone_insolation1 Title: Zone Insolation Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_Solar_Cell, 'ZoneEnergyOutput(MegaWattHourPerKiloWattPerYear)', false); Nodelocation: 88,336,1 Nodesize: 48,24 Windstate: 2,102,90,485,225 Objective Cell_yearly_wattage Title: Cell Yearly Wattage Description: The amount of wattage that is installed per year Definition: if year = 0 then panel_size*1000 else 0 Nodelocation: 408,112,1 Nodesize: 48,24 Variable Cell_cost_per_kw Title: Cell Cost Per kW Definition: Cell_cost_per_watt*1000 Nodelocation: 232,48,1 Nodesize: 48,24 Variable Zone_energy_output Title: Zone Energy Output Definition: Wiki2dmatrixconstruc( Zone_insolation1, true) Nodelocation: 248,336,1 Nodesize: 48,31 Valuestate: 2,104,114,416,303,0,MIDM Reformval: [Sys_localindex('INDCOLUMNINDEX'),Sys_localindex('INDROWINDEX')] Close Capture Module Transform Title: Transform Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 120,160,1 Nodesize: 48,24 Diagstate: 1,1,5,550,300,17 Chance Inverter_replacement Title: Inverter Replacement Cost Units: $/kW Description: The cost of the replacement of the inverter Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_Inverter, 'ReplacementCost(Percent)', true); Nodelocation: 120,104,1 Nodesize: 52,36 Chance Inverter_cost_per_kw Title: Inverter Cost per kW Units: $/kW Description: Cost of the Inverter per kW of installed solar panel Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_Inverter, 'CapitalCost(AudPerWatt)', true); Nodelocation: 120,176,1 Nodesize: 48,31 Windstate: 2,235,180,476,224 Chance Inverter_efficiency Title: Inverter Efficiency Units: % Description: Efficiency of the inverter in transforming the energy from the solar panel Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_Inverter, 'ConversionEfficiency(Percent)', true); Nodelocation: 120,240,1 Nodesize: 48,24 Objective Energy_after_transfo Title: Energy after Transform Definition: Energy_generated_yea*Inverter_efficiency Nodelocation: 392,240,1 Nodesize: 48,24 Windstate: 2,463,36,476,224 Objective Inverter_capital_cos Title: Inverter Capital Cost Units: $ Description: The Total capital cost of the inverter Definition: sum(Panel_size*Inverter_replacemen3, Inverter_replacemen3)*1000 Nodelocation: 392,176,1 Nodesize: 48,31 Valuestate: 2,56,66,416,303,0,MIDM Reformval: [Year,Inverter_replacemen3] Chance Inverter_replacemen1 Title: Inverter Replacement Period Definition: Reset;~ GetValueFromWiki(Wiki_Source, Wiki_Inverter, 'ReplacementPeriod(Years)', true); Nodelocation: 120,32,1 Nodesize: 60,32 Displayoutputs: Objective Energy_generated_ye1 Variable Inverter_replacemen3 Title: Inverter Replacement Intervals Definition: for i:= 0..floor(project_life/Inverter_replacemen1) do~ if year = i*Inverter_replacemen1 then (inverter_replacement*Inverter_cost_per_kw) else 0 Nodelocation: 264,104,1 Nodesize: 56,36 Windstate: 2,508,113,476,224 Valuestate: 2,152,162,416,303,0,MIDM Reformval: [Self,Year] Close Transform Objective Capital_cost Title: Capital Cost Definition: Cell_capital_cost+Inverter_capital_cos Nodelocation: 312,72,1 Nodesize: 48,24 Valuestate: 2,104,114,416,303,0,MIDM Reformval: [Year,Inverter_replacemen3] Objective Energy_generated_ye1 Title: Energy Generated Yearly Units: MWh/year Description: The yearly amount of energy generated from the installed solar capacity Definition: Energy_after_transfo Nodelocation: 312,160,1 Nodesize: 48,31 Aliases: Alias Energy_generated_ye2 Close Physical_system Module Parameter_indexes Title: Parameter Indexes Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 96,176,1 Nodesize: 56,28 Diagstate: 1,1,5,266,271,17 Index Year Title: Year Definition: Sequence( 0, Project_life, 1 ) Nodelocation: 136,72,1 Nodesize: 48,24 Index Solar_zones Title: Solar Zones Definition: Sequence(1,4,1) Nodelocation: 136,160,1 Nodesize: 48,24 Close Parameter_indexes Module Market Title: Market Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 272,328,1 Nodesize: 60,28 Diagstate: 1,20,30,470,397,17 Objective Total_rebates Title: Total Rebates Definition: Rebate_eligible_pane*Rebate_rate + Rec_revenue Nodelocation: 352,304,1 Nodesize: 48,24 Alias Energy_generated_ye2 Title: Energy Generated Yearly Definition: 1 Nodelocation: 56,128,1 Nodesize: 48,31 Original: Energy_generated_ye1 Objective Total_revenue Title: Total Revenue Definition: Electricity_revenue+Total_fit_revenue Nodelocation: 352,128,1 Nodesize: 48,24 Valuestate: 2,200,210,416,303,0,MIDM Module Electricity_revenue1 Title: Electricity Revenue Author: Matthew Date: Thu, 29 Oct 2009 11:03 AM Defaultsize: 48,24 Nodelocation: 208,40,1 Nodesize: 48,24 Chance Initial_res_electric Title: Initial Res Electricity Rate Units: $/kWh Description: The current residential electricity rate Definition: Reset;~ GetValueFromWiki(Wiki_Source, Australian_Electricity_Market, 'Price(AudPerKiloWattHour)',true); Nodelocation: 96,112,1 Nodesize: 48,31 Chance Inflation_rate_retai Title: Inflation Rate Retail Units: %pa Description: The rate at which the retail rate of electricity is increasing per year Definition: Reset;~ GetValueFromWiki(Wiki_Source, Australian_Electricity_Market, 'PriceIncreaseRate(PercentPerYear)', true); Nodelocation: 96,48,1 Nodesize: 48,24 Variable Residential_electric Title: Residential Electricity Rate Units: $/MWh Definition: Initial_res_electric*1000*(1+Inflation_rate_retai)^(year-1) Nodelocation: 232,81,1 Nodesize: 48,31 Objective Electricity_revenue Title: Electricity Revenue Definition: Energy_generated_ye1*Residential_electric Nodelocation: 368,80,1 Nodesize: 48,24 Valuestate: 2,264,274,416,303,0,MIDM Close Electricity_revenue1 Module Fit_revenue Title: FiT Revenue Author: Matthew Date: Thu, 29 Oct 2009 11:03 AM Defaultsize: 48,24 Nodelocation: 208,216,1 Nodesize: 48,24 Diagstate: 1,-4,283,550,300,17 Chance Initial_fit_year Title: Initial FiT Year Description: The year (relative to the beginning of the project) that the feed in tariff will begin to apply. If this value is 1, then the feed in tariff will be accruded from the first year of the project. Definition: Reset;~ GetValueFromWiki(Wiki_Source, Victorian_FiT, 'FirstYearOfAdoption', true); Nodelocation: 96,104,1 Nodesize: 48,24 Chance Initial_fit_rate Title: Initial FiT Rate Units: $/kWh Description: The price of the Feed in Tariff in $/kWh Definition: Reset;~ GetValueFromWiki(Wiki_Source, Victorian_FiT, 'Price(AudPerMegaWattHour)', true)/1000; Nodelocation: 96,48,1 Nodesize: 48,24 Chance Inflation_rate_fit Title: Inflation Rate FiT Units: %pa Description: The rate at which the value of the Feed in Tariff is increasing per year Definition: Reset;~ GetValueFromWiki(Wiki_Source, Victorian_FiT, 'PriceIncreaseRate(PercentPerYear)', true); Nodelocation: 96,168,1 Nodesize: 48,24 Objective Total_fit_revenue Title: Total FiT Revenue Definition: Energy_generated_ye1*Premium_rate*Metering_type1 Nodelocation: 464,104,1 Nodesize: 48,24 Windstate: 2,240,12,476,224 Valuestate: 2,344,354,416,303,0,MIDM Variable Fit_rate Title: FiT Rate Definition: (if year >= Initial_fit_year then Initial_fit_rate*(1+Inflation_rate_fit)^(year-1) else 0)*1000 Nodelocation: 240,104,1 Nodesize: 48,24 Variable Premium_rate Title: Premium Rate Definition: Fit_rate-Residential_electric Nodelocation: 352,104,1 Nodesize: 48,24 Windstate: 2,482,41,476,224 Chance Metering_type1 Title: Metering Type Definition: Reset;~ GetValueFromWiki(Wiki_Source, Mefl_solar_model, 'MeteringType(Percent)', true); Nodelocation: 352,40,1 Nodesize: 48,24 Close Fit_revenue Module Rebates Title: Rebates Author: Matthew Date: Thu, 29 Oct 2009 11:03 AM Defaultsize: 48,24 Nodelocation: 208,304,1 Nodesize: 48,24 Chance Rebate_rate Title: Rebate Rate Units: $/kW Description: The amount of rebate given for solar panel installations Definition: 0 Nodelocation: 96,159,1 Nodesize: 48,24 Chance Rebate_cap Title: Rebate Cap Units: kW Description: The Maximum size of a solar array that can receive the rebate Definition: Reset;~ GetValueFromWiki(Wiki_Source, Australian_Solar_Rebate, 'Cap(KiloWatt)', true); Nodelocation: 96,55,1 Nodesize: 48,24 Variable Rebate_eligible_pane Title: Rebate Eligible Panel Size Definition: if Cell_yearly_wattage>Rebate_cap then Rebate_cap else Cell_yearly_wattage Nodelocation: 240,55,1 Nodesize: 48,31 Close Rebates Module Rec_revenue1 Title: REC Revenue Author: Matthew Date: Thu, 29 Oct 2009 11:03 AM Defaultsize: 48,24 Nodelocation: 208,384,1 Nodesize: 48,24 Diagstate: 1,-5,219,550,300,17 Chance Rec_price Title: REC Price Units: $/MWh Description: The price for a REC at current market prices Definition: Reset;~ GetValueFromWiki(Wiki_Source, Australian_RECs, 'Price(AudPerKiloWattHour)', true); Nodelocation: 232,56,1 Nodesize: 48,24 Variable Recs_generated Title: RECs Generated Definition: Panel_insolation*Panel_size*15 Nodelocation: 240,120,1 Nodesize: 48,24 Objective Rec_revenue Title: REC Revenue Units: $/year Definition: if year = 0 then Rec_price*Recs_generated else 0 Nodelocation: 376,120,1 Nodesize: 48,24 Close Rec_revenue1 Close Market Module Finance Title: Finance Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 448,328,1 Nodesize: 60,28 Diagstate: 1,20,137,510,315,17 Variable Nominal_cash_flow Title: Nominal Cash Flow Definition: Total_revenue+Total_rebates-Capital_cost Nodelocation: 144,72,1 Nodesize: 48,24 Valuestate: 2,166,141,416,303,0,MIDM Reformval: [Inverter_replacemen3,Year] Variable Real_cash_flow Title: Real Cash Flow Definition: Nominal_cash_flow/(1+(Discount_Rate))^(year) Nodelocation: 144,168,1 Nodesize: 48,24 Valuestate: 2,646,153,416,303,1,MIDM Reformval: [Inverter_replacemen3,Year] Objective Irr1 Title: IRR Definition: IRR(Nominal_cash_flow, Year) Nodelocation: 344,72,1 Nodesize: 48,24 Objective Npv1 Title: NPV Definition: sum(real_cash_flow, year) Nodelocation: 344,168,1 Nodesize: 48,24 Objective Payback Title: Payback Definition: Cumulate(real_cash_flow, year) Nodelocation: 344,240,1 Nodesize: 48,24 Reformval: [Year,Inverter_replacemen3] Close Finance Module Decision_variables Title: Decision Variables Author: Matthew Date: Wed, 28 Oct 2009 1:54 PM Defaultsize: 48,24 Nodelocation: 272,64,1 Nodesize: 56,28 Diagstate: 1,289,154,550,300,17 Index Metering_type Title: Metering Type Definition: [1,0.5,0.3,0.25,0.2] Nodelocation: 240,104,1 Nodesize: 48,24 Close Decision_variables Module Output1 Title: Output Author: Matthew Date: Thu, 29 Oct 2009 11:03 AM Defaultsize: 48,24 Nodelocation: 272,448,1 Nodesize: 60,28 Diagstate: 1,1,5,550,300,17 Objective Final_output Title: Final Output Definition: Npv1 Nodelocation: 256,128,1 Nodesize: 48,24 Objective Npv_chart Title: NPV Chart Definition: cumulate(real_cash_flow, year) Nodelocation: 256,200,1 Nodesize: 48,24 Valuestate: 2,328,338,416,303,1,MIDM Close Output1 Module Wiki_extraction Title: Wiki Extraction Author: Matthew Date: Fri, 30 Oct 2009 8:34 AM Defaultsize: 48,24 Nodelocation: 96,72,1 Nodesize: 48,24 Diagstate: 1,1,5,545,427,17 Function Getvaluefromwiki(WikiLocation, InstanceName, PropertyName, isNumber) Title: GetValueFromWiki(WikiLocation, InstanceName, PropertyName, isNumber) Definition: var URLsuffix := '/index.php?action=ajax&rs=smwf_ws_callEQIXML&rsargs[]=';~ var URLfull := WikiLocation & URLsuffix & '[[' & InstanceName & ']]|?' & PropertyName;~ ~ var XmlValue :=ReadFromURL(URLfull, method:'GET');~ ~ var StrValue := FindInText('\(?.+?)\', XmlValue, re:true, return:'S', subPattern:'value');~ ~ IF isNumber = false THEN StrValue ELSE IF evaluate(StrValue) = Null THEN 'Value is not a valid number.' ELSE evaluate(StrValue); Nodelocation: 184,76,1 Nodesize: 48,76 Windstate: 2,102,90,499,338 Paramnames: WikiLocation,InstanceName,PropertyName,isNumber Function Wiki2dmatrixconstruc(rawWikiScript, IsNumber) Title: Wiki2DMatrixConstructor(rawWikiScript, IsNumber) Description: This function is used to convert data matrix script stored in wiki to a 2D table (with rows and columns only). The index of the table is named 'indRowIndex' and 'indColumnIndex' respectively. The assignment of cell values is to fill each column of one row, then to another row. Definition: VAR arrAllElems := SplitText(rawWikiScript, ')(');~ VAR arrAllElemsClean := TextTrim(arrAllElems, trimChars:'()');~ ~ VAR arrRowDimension := Splittext(Slice(arrAllElemsClean, 1), ',');~ INDEX indRowIndex := arrRowDimension;~ VAR arrColumnDimension := Splittext(Slice(arrAllElemsClean, 2), ',');~ INDEX indColumnIndex := arrColumnDimension;~ VAR arrValues := Splittext(Slice(arrAllElemsClean, 3), ',');~ ~ VAR dataMatrix := Array(indColumnIndex, indRowIndex, [[]]);~ VAR counter := 0;~ for i := indRowIndex do~ for j := indColumnIndex do~ BEGIN~ counter := counter + 1;~ IF IsNumber = False THEN dataMatrix[indRowIndex=i, indColumnIndex=j] := Slice(arrValues, counter) ELSE dataMatrix[indRowIndex=i, indColumnIndex=j] := evaluate(Slice(arrValues, counter))~ END;~ dataMatrix; Nodelocation: 328,73,1 Nodesize: 48,49 Paramnames: rawWikiScript,IsNumber Function Rowindex(GeneratedTable) Title: rowIndex(GeneratedTable) Definition: Slice(IndexesOf(GeneratedTable),1) Nodelocation: 184,193,1 Nodesize: 48,31 Paramnames: GeneratedTable Function Columnindex(GeneratedTable) Title: columnIndex(GeneratedTable) Definition: Slice(IndexesOf(GeneratedTable),2) Nodelocation: 312,193,1 Nodesize: 48,31 Paramnames: GeneratedTable Chance Wiki_source Title: Wiki Source Definition: 'http://www.moxy.com.au/Wiki' Nodelocation: 472,96,1 Nodesize: 48,24 Variable Reset Title: Reset Definition: 1 Nodelocation: 472,200,1 Nodesize: 48,24 Module Physical_system1 Title: Physical System Author: Matthew Date: Fri, 30 Oct 2009 8:34 AM Defaultsize: 48,24 Nodelocation: 160,280,1 Nodesize: 48,24 Chance Wiki_solar_cell Title: Wiki Solar Cell Definition: 'Monocrystalline_Solar_Cell' Nodelocation: 152,64,1 Nodesize: 48,24 Chance Wiki_inverter Title: Wiki Inverter Definition: 'High_Efficiency_Inverter' Nodelocation: 152,144,1 Nodesize: 48,24 Close Physical_system1 Module Region Title: Region Author: Matthew Date: Fri, 30 Oct 2009 8:34 AM Defaultsize: 48,24 Nodelocation: 160,352,1 Nodesize: 48,24 Chance Melbourne Title: Melbourne Definition: 'Melbourne' Nodelocation: 128,88,1 Nodesize: 48,24 Close Region Module Market1 Title: Market Author: Matthew Date: Fri, 30 Oct 2009 8:34 AM Defaultsize: 48,24 Nodelocation: 304,280,1 Nodesize: 48,24 Chance Australian_electrici Title: Australian Electricity Market Definition: 'Australian_Electricity_Market' Nodelocation: 232,81,1 Nodesize: 48,31 Chance Australian_recs Title: Australian RECs Definition: 'Australian_Renewable_Energy_Certificates' Nodelocation: 368,88,1 Nodesize: 48,24 Chance Australian_solar_reb Title: Australian Solar Rebate Definition: 'Australian_Solar_Rebate' Nodelocation: 232,169,1 Nodesize: 48,31 Chance Victorian_fit Title: Victorian FiT Definition: 'Victorian_Feed_In_Tariff' Nodelocation: 368,176,1 Nodesize: 48,24 Close Market1 Chance Mefl_solar_model Title: MEFL Solar Model Definition: 'MEFL_Solar_Model_2008' Nodelocation: 296,360,1 Nodesize: 48,24 Close Wiki_extraction Button Enable_data_reload_f Title: Enable Data Reload from Wiki Description: Hit this button then re-evaluate the model, then you will have the latest data loaded and displayed. Nodelocation: 468,24,1 Nodesize: 84,23 Script: IF Reset = 0 THEN Reset := 1 ELSE Reset := 0 Close Mefl_solar_plant_pro