import FINE as fn import pandas as pd from matplotlib import pyplot as plt # Energiesystem: sink_1 = "sink_1_commodity" source_1 = "source_1_commodity" source_2 = "source_2_commodity" conversion_1 =["source_1_commodity","sink_1_commodity"] conversion_2 =["source_2_commodity","sink_1_commodity"] ## Aufbau EMS locations = {'location01'} commodityUnitDict = {'sink_1_commodity': 'kW_el', 'source_1_commodity': 'kW_el', 'source_2_commodity': 'kW_el', } commodities = {'sink_1_commodity', 'source_1_commodity', 'source_2_commodity' } esM = fn.EnergySystemModel(locations={"location01"}, commodities=commodities, numberOfTimeSteps=8760, commodityUnitsDict=commodityUnitDict, hoursPerTimeStep=1, costUnit='1e Euro', lengthUnit='km', verboseLogLevel=0) ## Sinks #sink_1 esM.add(fn.Sink(esM=esM, name='sink_1', commodity=sink_1, hasCapacityVariable=False, operationRateFix=pd.read_excel("DataForExample/sink_1(2).xlsx"), ), ) ## sources #source_1 esM.add(fn.Source(esM=esM, name='source_1', commodity=source_1, hasCapacityVariable=False, commodityCost=0.1914421286 ) ) #source_2 investPerCapacity=1000 esM.add(fn.Source(esM=esM, name='source_2', commodity=source_2, hasCapacityVariable=True, capacityMax= 1000, operationRateMax=pd.read_excel("DataForExample/PV_1.xlsx"), investPerCapacity=investPerCapacity, opexPerCapacity= investPerCapacity * 0.015, interestRate=0.04, economicLifetime=25)) ## Conversions #conversion_source_1 esM.add(fn.Conversion(esM=esM, name='conversion_1', physicalUnit='kW_el', commodityConversionFactors={source_1:-1, sink_1:1}, hasCapacityVariable=False)) #conversion_source_2 esM.add(fn.Conversion(esM=esM, name='conversion_2', physicalUnit='kW_el', commodityConversionFactors={source_2:-1, sink_1:1}, hasCapacityVariable=False)) # 6. Results ##results esM.cluster(numberOfTypicalPeriods=7) esM.optimize(timeSeriesAggregation=True, solver='gurobi') srcSnkSummary = esM.getOptimizationSummary("SourceSinkModel", outputLevel=1) print(srcSnkSummary) convSummary = esM.getOptimizationSummary("ConversionModel", outputLevel=1) print(convSummary) # Read the data from the Excel files sink_data = pd.read_excel("DataForExample/sink_1(2).xlsx") # Read the data from the Excel files pv_data = pd.read_excel("DataForExample/PV_1.xlsx") #Get the first column name as the data column sink_data_col = sink_data.columns[0] pv_data_col = pv_data.columns[0] # Create the plots plt.figure(figsize=(16, 12)) # Plot sink data separately plt.subplot(3, 1, 1) plt.plot(sink_data.index, sink_data[sink_data_col], label='Sink Operation Rate', color='red') plt.xlabel('Time Index') plt.ylabel('Operation Rate (kW_el)') plt.title('Sink Operation Rate Over Time') plt.legend() # Plot PV data separately plt.subplot(3, 1, 2) plt.plot(pv_data.index, pv_data[pv_data_col], label='PV Operation Rate', color='green') plt.xlabel('Time Index') plt.ylabel('Operation Rate (kW_el)') plt.title('PV Operation Rate Over Time') plt.legend() # Plot the two graphs overlapping plt.subplot(3, 1, 3) plt.plot(sink_data.index, sink_data[sink_data_col], label='Sink Operation Rate', color='blue') plt.plot(pv_data.index, pv_data[pv_data_col], label='PV Operation Rate', color='green') plt.xlabel('Time Index') plt.show()