【电网规划】基于经济与可靠性双目标的混合配电系统规划及可靠性评估【Python】

 

目录

 

主要内容   

  程序要点   

2.1 交直流混合配电系统规划架构

2.2 交直流线路连接关系

  部分代码   

 运行结果  

下载链接 


主要内容   

本程序基于文献《Optimal double Q AC-DC hybrid distribution system planning with explicit topology-variable-based reliability assessment》提出的理论框架,实现了 AC-DC混合配电系统的双目标优化规划模型经济性目标包括投资成本、维护成本和电力生产成本,可靠性目标包括EENS、SAIFI和SAIDI,主要约束包括KVL约束、KCL约束、VSC换流器模型、辐射拓扑约束、节点电压幅值限制和线路电流容量限制等,程序以6节点配电网系统为例,采用python代码编写,注释清楚,出图效果好!

(中文版文献可以参考《基于可靠性显式表达的交直流混合配电网规划方法》)

  程序要点   

2.1 交直流混合配电系统规划架构

上图展示了交直流混合配电系统(ADHDS)规划的架构,体现了系统中各类元件的组成与连接关系,通过交直流混合的母线和线路,整合住宅、工业、商业等多种负荷,以及风电、光伏、柴油发电机等分布式电源,同时纳入储能和电动汽车,形成一个灵活高效的配电系统架构。

2.2 交直流线路连接关系

A型:交流节点通过交流线路直接相连。

B型:交流节点与直流节点通过直流线路及电压源换流器连接。

C型:直流节点通过直流线路直接相连。

需要说明的是,两个交流节点也可通过直流线路及线路两端安装的两个电压源换流器实现连接,但这种连接方式的能量转换效率较低。

  部分代码   

# Solution
    result_x = {}
    result_y = {}
    result_x['x_node'] = x_node
    result_x['V_node'] = V
    result_y['y_line'] = y_b
    result_y['ρ_A_b'] = ρ_A_b
    result_y['ρ_B_b'] = ρ_B_b
    result_y['ρ_C_b'] = ρ_C_b
    result_y['I_line'] = I
    result_x = DataFrame(result_x)
    result_y = DataFrame(result_y)

    # 画图
    # 系统关键指标可视化
    fig, ax = plt.subplots(2, 1, figsize=(10, 12))

    # 可靠性指标柱状图
    metrics = ['SAIFI', 'SAIDI', 'EENS']
    values = [result_R.loc['Reliability', m] for m in metrics]
    ax[0].bar(metrics, values, color=['#2E86C1', '#85C1E9', '#48C9B0'])
    ax[0].set_title('系统可靠性指标')
    #ax[0].set_ylabel('值')
    ax[0].grid(axis='y', linestyle='--')

    # 成本构成饼图
    cost_labels = ['投资成本', '维护成本', '生产成本', '可靠性成本'] 
    cost_values = [result_C.loc['Cost','Cost_Inv'], result_C.loc['Cost','Cost_Mag'],
                   result_C.loc['Cost','Cost_Ele'], result_C.loc['Cost','Cost_Rel']]
    ax[1].pie(cost_values, labels=cost_labels, autopct='%1.1f%%',
            colors=['#F1C40F', '#E67E22', '#27AE60', '#8E44AD'])
    ax[1].set_title('成本构成')

    plt.tight_layout()
    plt.show()

    # 电压分布可视化
    plt.figure(figsize=(12, 6))

    # 按节点类型着色
    colors = ['red' if x==0 else 'blue' for x in Sol['x_node']]
    node_num = range(1, Para.N_Node+1)

    plt.scatter(node_num, Sol['V'], c=colors, s=100, edgecolor='k')
    plt.axhline(y=Para.Vmin_AC, color='r', linestyle='--', label='交流电压限值')
    plt.axhline(y=Para.Vmax_AC, color='r', linestyle='--')
    plt.axhline(y=Para.Vmin_DC, color='b', linestyle=':', label='直流电压限值') 
    plt.axhline(y=Para.Vmax_DC, color='b', linestyle=':')

    plt.xticks(node_num)
    plt.xlabel('节点数')
    plt.ylabel('电压 (kV)')
    plt.title('节点电压分布')
    plt.legend()
    plt.grid(True)
    plt.show()

    # 线路电流分布可视化
    plt.figure(figsize=(12, 6))

    # 按线路类型分组
    line_types = []
    for i in range(Para.N_Branch):
        if Sol['ρ_A_b'][i]: line_types.append('AC')
        elif Sol['ρ_B_b'][i]: line_types.append('VSC-B')
        elif Sol['ρ_C_b'][i]: line_types.append('DC')
        else: line_types.append('Not Built')

    df_lines = pd.DataFrame({
        'Line': [f'L{i+1}' for i in range(Para.N_Branch)],
        'Current': Sol['I'],
        'Type': line_types
    })

    # 箱线图展示电流分布
    sns.boxplot(x='Type', y='Current', data=df_lines[df_lines['Type'] != 'Not Built'],
                palette={'AC':'red', 'DC':'blue', 'VSC-B':'purple'})
    plt.title('线路电流分布')
    plt.xlabel('类型')
    plt.ylabel('电流 (A)')
    plt.grid(axis='y')
    plt.show()

 运行结果  

下载链接 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值