广州网站建设支付,表白网站生成器,WordPress网站动漫你在,怎么申请建立一个公司网站目录 1 主要内容
2 部分代码
3 程序结果
4 下载链接 1 主要内容
该程序对应文章《Contract Design for Energy Demand Response》#xff0c;电力系统需求响应#xff08;DR#xff09;用来调节用户对电能的需求#xff0c;即在预测的需求高于电能供应时#xff0c;希…目录 1 主要内容
2 部分代码
3 程序结果
4 下载链接 1 主要内容
该程序对应文章《Contract Design for Energy Demand Response》电力系统需求响应DR用来调节用户对电能的需求即在预测的需求高于电能供应时希望通过需求响应减少用户用电从而满足系统平衡。程序实现新的需求响应模型DR-VCG该模型提供了灵活的用户参与DR过程合同并且通过投标活动保证收益分配和价格计算的合理性。通过实例证实该方法的有效性可靠性显著提升总费用明显降低。该程序采用python编写。 2 部分代码
import grid
import agent
import contract
import matplotlib.pyplot as plt
import time
import statistics
import pandas as pd
from datetime import datetime
def main():for i in range(1):M 1000number_of_agents 200number_of_simulation_per_lanbda 100generator_price_multiply 1gamma [1.0,1.166,1.333,1.5,1.666,1.833,2]df_columns [actuel expanse,gamma,M,actuel kWh reduced,Met the demand]row_data_df pd.DataFrame(columnsdf_columns)
Fixed_cont_avg_cost []Fixed_cont_avg_reliability []Fixed_single_cont_avg_cost []Fixed_single_cont_avg_reliability []T_F_List_Fixed_cont_Met_the_demand []Fixed_cont_Total_expense []gamma_used []for lb in gamma:Fixed_cont_reduce_list []for i in range(number_of_simulation_per_lanbda):start time.time()print(iteration:,i)Grid grid.grid(M,lb)Grid.introduce_self()Agents []
for num in range(number_of_agents):ag agent.agent(num)Agents.append(ag)
Contracts []for i in range(10, M1, 10):Contracts.append(contract.contract(i,0.3,0.5))
single_contract []single_contract.append(contract.contract(50,0.3,0.5))
Grid.set_single_contract(single_contract)Grid.set_contract(Contracts)Grid.set_agents(Agents)Grid.send_contrects_to_agents()Grid.send_single_contrects_to_agents()
for ag in Agents:ag.Fixed_cont_bid_on_contract()
for ag in Agents:ag.Fixed_single_cont_bid_on_contract()
Grid.Fixed_cont_get_bids_from_agent()Grid.Fixed_cont_generator_bids(price_multiplygenerator_price_multiply)Grid.Fixed_cont_get_q_from_agent()Fixed_cont_sum_of_bids Grid.knapsack(bids_typeFixed_cont)Grid.Fixed_cont_pay_to_agents(Fixed_cont_sum_of_bids)Grid.Fixed_cont_reliability()Grid.Fixed_single_cont_get_bids_from_agent()Grid.Fixed_single_cont_get_q_from_agent()
Fixed_cont_Total_expense.append(Grid.Fixed_cont_Total_expense_sum)Fixed_cont_reduce_list.append(Grid.Fixed_cont_reliability_sum_q)if Grid.Fixed_cont_reliability_sum_q Grid.M:met_the_demand 1else:met_the_demand 0T_F_List_Fixed_cont_Met_the_demand.append(met_the_demand)print(Fixed_cont- Met_the_demand: , T_F_List_Fixed_cont_Met_the_demand)print(Fixed_cont- Total_expense: , Fixed_cont_Total_expense)gamma_used.append(lb)
row_data_df row_data_df.append(pd.DataFrame({actuel expanse:[Grid.Fixed_cont_Total_expense_sum],gamma:[lb],M: [M],actuel kWh reduced: [Grid.Fixed_cont_reliability_sum_q],Met the demand: [met_the_demand]}))end time.time()print(iteration took:, (end - start), sec)print(-*200)Fixed_cont_avg_cost.append(statistics.mean(Fixed_cont_Total_expense))if len(T_F_List_Fixed_cont_Met_the_demand) 0:Fixed_cont_avg_reliability.append(T_F_List_Fixed_cont_Met_the_demand.count(True) / len(T_F_List_Fixed_cont_Met_the_demand))else:Fixed_cont_avg_reliability.append(0.0)
filename datetime.now().strftime(data/energy_demamd_row_data-%Y-%m-%d-%H-%M-%S.csv)row_data_df.to_csv(filename,indexFalse)graph_it(Fixed_cont_avg_reliability,Fixed_single_cont_avg_reliability, Fixed_cont_avg_cost,Fixed_single_cont_avg_cost)
def graph_it(Fixed_cont_avg_reliability [],Fixed_single_cont_avg_reliability[],Fixed_cont_avg_cost[],Fixed_single_cont_avg_cost[]):plt.rcParams[figure.figsize] (8, 8)fig, ax plt.subplots()
ax.plot(Fixed_cont_avg_reliability, Fixed_cont_avg_cost, colorblue,markero,labelfixed multiple cont)ax.plot(Fixed_single_cont_avg_reliability, Fixed_single_cont_avg_cost, colorblack,markero, labelfixed single cont)ax.set(xlabelTotal_Reliability, ylabelexpenses ($), title(a)n 400)fig.savefig(test.png)
if __name__ __main__:main()plt.show()3 程序结果 原文结果图 4 下载链接