高比例清潔能源接入下計及需求響應的配電網重構(matlab代碼)

目錄

1?主要內容

目標函數

重要約束條件

2?部分代碼

3?程序結果

4 下載鏈接


1?主要內容

該程序復現《高比例清潔能源接入下計及需求響應的配電網重構》,以考慮網損成本、棄風棄光成本和開關操作懲罰成本的綜合成本最小為目標,針對配電網重構模型的非凸性,引入中間變量并對其進行二階錐松弛,構建混合整數凸規劃模型,采用改進的 IEEE33 節點配電網進行算例仿真,分析了需求響應措施和清潔能源滲透率對配電網重構結果的影響。該程序復現效果和出圖較好(詳見程序結果部分),注釋清楚,方便學習!

注意:該程序運行環境為matlab+mosek,需要各位同學下載并安裝mosek求解器,通過官網可以申請學術許可,可免費使用365天。

  • 目標函數

目標函數為配電網綜合運行成本最小,其中考慮了網損成本、棄風棄光成本以及分段開關操作懲罰成本。

  • 重要約束條件

常規的功率平衡、節點電壓電流等約束不再贅述,重點分析一下網絡結構約束和需求響應約束。

網絡結構約束:
配電網在重構過程中需滿足連通性約束與輻射狀約束,具體模型為:

該網絡結構約束是采用虛擬潮流方式,之前有幾個重構代碼也是采用虛擬潮流形式,參考的是《A New Model for Resilient Distribution Systems?by Microgrids Formation》,具體模型如下:

仔細觀察不難發現,上面的模型是下面的簡潔版,在不考慮分布式電源節點對網絡切割情況下,兩者是等價的。
經驗證(見結果圖最后一張),該種約束方式下能夠保證網絡的連通性和輻射性。
需求響應約束:
在配電網中采用需求響應策略,可以在降低負荷峰谷差的同時,減少配電網運行的綜合成本,提高配電網運行的經濟性和可靠性。

在該模型中,電價彈性系數為已知量,需求響應前后總負荷保持一致。

2?部分代碼

%% 系統參數
mpc = IEEE33;
% 風光負荷曲線
P_wind0=[0.21 0.07 0.11 0.21 0.38 0.42 0.12 0.19 0.22 0.47 0.55 0.71 0.80 0.99 0.89 0.99 0.99 0.98 0.99 0.99 0.98 0.77 0.61 0.19];
P_pv0=[0 0 0 0 0.17 0.24 0.40 0.54 0.60 0.51 0.35 0.29 0.27 0.25 0.18 0.10 0.06 0 0 0 0 0 0 0];
P_L0=[0.37 0.33 0.31 0.28 0.27 0.28 0.28 0.27 0.26 0.24 0.30 0.76 0.82 0.86 0.76 0.54 0.43 0.65 0.81 0.95 0.99 0.91 0.65 0.19];
nb=33;                                      % 節點數
ns=1;                                       % 電源節點數
nl=37;                                      % 支路數
n_pv=2;                                     % 光伏數
n_wind=3;                                   % 風機數
n_ess=2;                                    % 儲能數
T=24;                                       % 調度時段總數
F=0.6;                                      % 滲透率
P_DG=sum(mpc.bus(:,3))*F/mpc.baseMVA/5;     % DG額定容量
P_wind_max=P_DG*P_wind0;                    % 風機最大有功
P_pv_max=P_DG*P_pv0;                        % 光伏最大有功
P_load=mpc.bus(:,3)/mpc.baseMVA*P_L0;     % 有功負荷
Q_load=mpc.bus(:,4)/mpc.baseMVA*P_L0;       % 無功負荷
Sij_max=15/mpc.baseMVA;                     % 支路功率最大值
r_ij=mpc.branch(:,3)*ones(1,T);             % 線路電阻
x_ij=mpc.branch(:,4)*ones(1,T);             % 線路電抗
wind=[9 25 32];                             % 風機接入位置
pv=[17 22];                                 % 光伏接入位置
ess=[7 25];                                 % 儲能接入位置
Umax=[1;1.06*1.06*ones(32,1)];              % 電壓上限的平方
Umin=[1;0.94*0.94*ones(32,1)];              % 電壓下限的平方
I_max=10;                                   % 電流上限值
P_ch_max=0.2/mpc.baseMVA;                   % 充電功率上限0.2MW
P_dis_max=0.2/mpc.baseMVA;                  % 放電功率上限0.2MW
E_min=0.15/mpc.baseMVA;                     % 儲能容量下限0.15MWh
E_max=0.8/mpc.baseMVA;                      % 儲能容量上限0.8MWh
n_ch=0.9;                                   % 充電效率為0.9
n_dis=0.85;                                 % 放電效率為0.85
E0=0.3/mpc.baseMVA;                         % 初始荷電狀態為0.3MWh
Q_CB_st=0.15/mpc.baseMVA;                   % 單個電容器無功補償容量0.15Mvar
N_CB_max=5;                                 % 最大可投切電容器數目
ksai=0.5;                                   % 彈性系數
c1=3;                                       % 網絡損耗成本系數3元/kWh
c2=1.2;                                     % 棄風棄光懲罰系數1.2元/kWh
c3=15;                                      % 分段開關操作懲罰成本系數15元/次
rho=zeros(1,24);                            % 分時電價
rho([12:15,19:23])=1.026;                   % 峰時電價
rho([7:11,16:18])=0.691;                    % 平時電價
rho([1:6,24])=0.2561;                       % 谷時電價
rho0=0.35;                                  % 初始節點電價為0.35元/kWh
M=1.1*1.1 - 0.9*0.9;                        % 中間變量                   
P_g_max=10/mpc.baseMVA;                     % 電源有功功率最大值
Q_g_max=10/mpc.baseMVA;                     % 電源無功功率最大值
branch_to_node=zeros(nb,nl);                % 流入節點的支路
branch_from_node=zeros(nb,nl);              % 流出節點的支路
for k=1:nlbranch_to_node(mpc.branch(k,2),k)=1;     %舉例說明,k=1,流入節點2是支路1;同時流出節點1的是支路1;同理,k=2,流入節點3且流出節點2的是支路2;這一步建立支路和節點的連接關系branch_from_node(mpc.branch(k,1),k)=1;
end
?
%% 優化變量
alpha_ij=binvar(nl,1);                      % 支路開斷情況
U_i=sdpvar(nb,T);                           % 電壓的平方
I_ij=sdpvar(nl,T);                          % 電流的平方
P_ij=sdpvar(nl,T);                          % 線路有功功率
Q_ij=sdpvar(nl,T);                          % 線路無功功率
P_wind=sdpvar(n_wind,T);                    % 風機輸出功率
P_pv=sdpvar(n_pv,T);                        % 光伏輸出功率
Q_wind=sdpvar(n_wind,T);                    % 風機輸出功率
Q_pv=sdpvar(n_pv,T);                        % 光伏輸出功率
P_ch=sdpvar(n_ess,T);                       % 儲能充電功率
P_dis=sdpvar(n_ess,T);                      % 儲能充電功率
y_ch=binvar(n_ess,T);                       % 儲能充電狀態
y_dis=binvar(n_ess,T);                      % 儲能放電狀態
E_ESS=sdpvar(n_ess,T);                      % 儲能荷電狀態
N_CB=intvar(1);                             % 投切的電容器數量
P_cur=sdpvar(nb,T);                         % 需求響應后的負荷量
P_g=sdpvar(nb,T);                           % 節點注入有功
Q_g=sdpvar(nb,T);                           % 節點注入無功
P_g_dot=sdpvar(nb,1);                       % 虛擬電源
P_L_dot=ones(nb,1);                         % 虛擬負荷
P_ij_dot=sdpvar(nl,1);                      % 虛擬功率
?
%% 約束條件
Constraints = [];
%% 1.潮流約束
m_ij=(1-alpha_ij)*M*ones(1,T); 
Constraints = [Constraints, P_g-P_cur+branch_to_node*P_ij-branch_to_node*(I_ij.*r_ij)-branch_from_node*P_ij == 0];
Constraints = [Constraints, Q_g-Q_load+branch_to_node*Q_ij-branch_to_node*(I_ij.*x_ij)-branch_from_node*Q_ij == 0];
Constraints = [Constraints,U_i(mpc.branch(:,1),:)-U_i(mpc.branch(:,2),:)<= m_ij + 2*r_ij.*P_ij + 2*x_ij.*Q_ij - ((r_ij.^2 + x_ij.^2)).*I_ij];
Constraints = [Constraints,U_i(mpc.branch(:,1),:)-U_i(mpc.branch(:,2),:)>= -m_ij + 2*r_ij.*P_ij + 2*x_ij.*Q_ij - ((r_ij.^2 + x_ij.^2)).*I_ij];
for k=1:nlfor t=1:TConstraints = [Constraints, cone([2*P_ij(k,t) 2*Q_ij(k,t) I_ij(k,t)-U_i(mpc.branch(k,1),t)],I_ij(k,t)+U_i(mpc.branch(k,1),t))];end
end
Constraints = [Constraints, Sij_max^2*alpha_ij*ones(1,T) >= P_ij.^2+Q_ij.^2];
Constraints = [Constraints, I_max.^2.*alpha_ij*ones(1,T) >= I_ij , I_ij >= 0];
Constraints = [Constraints, Umin*ones(1,T) <= U_i,U_i <= Umax*ones(1,T)];
?
%% 2.拓撲約束
Constraints = [Constraints , sum(alpha_ij) == nb-ns];
Constraints = [Constraints , P_g_dot(2:33) == 0 , P_g_dot(1) <= nb];
Constraints = [Constraints , P_g_dot-P_L_dot+branch_to_node*P_ij_dot-branch_from_node*P_ij_dot == 0];
?
%% 3.DG功率約束
Constraints = [Constraints , P_pv >= 0 , P_wind >= 0];
Constraints = [Constraints , P_pv <= ones(n_pv,1)*P_pv_max , P_wind <= ones(n_wind,1)*P_wind_max];
?
%% 4.儲能約束
Constraints = [Constraints , P_ch >= 0 , P_dis >= 0 , y_ch+y_dis <= 1];
Constraints = [Constraints , P_ch <= y_ch*P_ch_max , P_dis <= y_dis*P_dis_max];
Constraints = [Constraints , E_ESS(:,1) ==n_ch*P_ch(:,1)-1/n_dis*P_dis(:,1)+E0];
Constraints = [Constraints , E_ESS >= E_min , E_ESS <= E_max];
for t=2:TConstraints = [Constraints , E_ESS(:,t) ==n_ch*P_ch(:,t)-1/n_dis*P_dis(:,t)+E_ESS(:,t-1)];
end
?

3?程序結果

4 下載鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712423.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3694-51-7,3,5-Dinitro-1,2-phenylenediamine,合成其他化合物的重要中間體

您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;3694-51-7&#xff0c;3,5-Dinitro-1,2-phenylenediamine&#xff0c;3,5-二硝基-1,2-苯二胺;3,5-二硝基苯-1,2-二胺 一、基本信息 【產品簡介】&#xff1a;3,5-Dinitro-1,2-phenylenediamine, with the molecular…

提取抖店賣家電話的爬蟲軟件

介紹&#xff1a; 如今&#xff0c;電商平臺上的抖店賣家數量龐大&#xff0c;對于想要聯系賣家的買家來說&#xff0c;獲取賣家的聯系電話是一項相當繁瑣的任務。為了簡化這個過程&#xff0c;我們可以借助Python編寫一個抖店賣家電話提取爬蟲軟件&#xff0c;快速獲取所需的聯…

SpringBoot啟動擴展應用:干預優化+加快啟動時間(干貨典藏版)

一、SpringBoot啟動過程干預 Spring Boot啟動過程中我們可以實現以下干預工作&#xff1a; 修改Spring Boot默認的配置屬性。使用ConfigurationProperties和EnableConfigurationProperties注解&#xff0c;可以獲取和修改Spring Boot的配置屬性。 加載配置文件。Spring Boot會…

面試數據庫篇(mysql)- 06覆蓋索引

原理 覆蓋索引是指查詢使用了索引,并且需要返回的列,在該索引中已經全部能夠找到 。 id name gender createdate 2 Arm

c++_leetcode_尋找峰值

目錄 一、尋找峰值的示例 二、官方實現代碼及解釋 1、官方測試結果&#xff1a; 2、代碼解釋&#xff1a; 3、解題思路&#xff1a; 三、我的暴力解決 1、測試一&#xff1a; 2、測試二&#xff1a; 3、最終“暴力求解”代碼&#xff1a; 4、官網提交測試通過&#xf…

【JavaScript】面試手撕節流

引入 上篇我們講了防抖&#xff0c;這篇我們就談談防抖的好兄弟 – 節流。這里在老生常談般的提一下他們兩者之間的區別,順帶給讀者鞏固下。 PS: 開源節流中節流與這個技術上的節流&#xff0c;個人認為本質上是一樣的。 開源節流的節流指的是節省公司的金錢開支。前端技術上的…

databinding雙向綁定原理,Android程序員最新職業規劃

1. Android架構設計模式 MVC架構設計模式&#xff1a;MVC全名是Model View Controller&#xff0c;是模型(model)-視圖(view)-控制器(controller)的縮寫。MVP架構設計模式&#xff1a;MVC全名是Model View Persenter&#xff0c;MVP由MVC演變而來&#xff0c;是現在主流的開發…

小工具——抖音短視頻評論自動同步

很多時候喜歡看抖音的評論&#xff0c;有時候評論也是一個查疑解惑的好地方&#xff0c;很多人也喜歡把抖音的評論集中起來做分析。 因為一個朋友問過我這回事&#xff0c;閑著的時候也研究了下抖音&#xff0c;所以自己做了個小工具&#xff0c;自動同步你觀看的抖音短視頻的…

Gophish+EwoMail 自建釣魚服務器

GophishEwoMail 自建釣魚服務器 文章目錄 GophishEwoMail 自建釣魚服務器1.前提準備2.搭建EwoMail郵件服務器1&#xff09;Centos7 防火墻操作2&#xff09;設置主機名3&#xff09;host配置4&#xff09;安裝EwoMail5&#xff09;獲取DKIM6&#xff09;端口服務介紹7&#xff…

黑馬JavaWeb課程中安裝vue腳手架出現的問題

1 安裝node.js 要想前端工程化&#xff0c;必須安裝node.js&#xff0c;前端工程化的環境。 在成功安裝node.js后&#xff0c; 修改全局包安裝路徑為Node.js安裝目錄&#xff0c; 修改npm鏡像源為淘寶鏡像源&#xff0c;這里出現第一個問題&#xff0c;視頻中給的淘寶鏡像為&…

OnlyOffice Document Server部署的步驟和詳細解說

OnlyOffice Document Server是一個免費的開源辦公套件&#xff0c;支持在線查看和編輯Office文檔。要部署OnlyOffice Document Server&#xff0c;可以通過多種方式進行&#xff0c;包括使用Docker、手動安裝在Linux服務器上&#xff0c;或者直接安裝在Windows服務器上。 以下…

Maven-私服(黑馬學習筆記)

前面我們在講解多模塊開發的時候&#xff0c;我們講到我們所拆分的模塊是可以在同一個公司各個項目組之間進行資源共享的。這個模塊的資源共享&#xff0c;就需要通過我們接下來所講解的Maven的私服來實現。 首先我們先介紹一下什么是私服&#xff0c;以及它的作用是什么。再來…

力扣180 連續出現的數字

如何有效地識別在數據庫中至少連續出現三次的數字&#xff1f; 目錄 題目描述 解題思路 完整代碼 進一步探索 題目描述 表&#xff1a;Logs ---------------------- | Column Name | Type | ---------------------- | id | int | | num | varch…

2024最新EasyRecovery磁盤數據恢復軟件功能全面介紹

一、軟件概述 EasyRecovery磁盤數據恢復軟件是一款專業的數據恢復工具&#xff0c;旨在幫助用戶從各種存儲設備中恢復因各種原因丟失的數據。該軟件憑借其強大的恢復能力、操作簡便和高效穩定的性能&#xff0c;得到了廣大用戶的認可。 EasyRecovery-mac最新版本下載:https://…

數據庫的簡單了解及介紹

數據庫&#xff08;Database&#xff09; 1.其本質是一個文件系統。保存了一系列有組織的數據 2.根據數據的結構處理&#xff0c;存儲&#xff0c;管理數據的倉庫 3.隨著時代的發展&#xff0c;數據管理不再僅僅是存儲和管理數據&#xff0c; 漸漸成為用戶所需要的各種數據管理…

go 設置滾動日志

方案 通過 log/slog 實現結構化日志生成&#xff0c;這是go1.21中推出的新特性&#xff1b;通過 lumberjack 實現日志文件分割。 示例 package mainimport ("gopkg.in/natefinch/lumberjack.v2""log/slog""os""path/filepath" )fun…

工業人工智能需要注意的10件事

我們無法逃避人工智能這個風口&#xff0c;宣傳人工智能軟件的廣告鋪天蓋地&#xff0c;似乎每個供應商都在推出最新的工具包&#xff0c;每天都有關于 ChatGPT、Bard 等新用例的文章。似乎全世界都在說&#xff1a;你現在需要人工智能&#xff01; 人工智能確實正在成為自動化…

Fabric V2.5 通用溯源系統——應用后端GIN框架部分設計

本節對Fabric V2.5 通用溯源系統的應用后端部分做一個簡單的介紹,包括目錄結構、文件作用、用戶注冊登錄與農產品信息上鏈過程介紹。此節內容免費發布在TrueTechLabs Fabric學習交流QQ群。 購買專欄前請認真閱讀:《Fabric項目學習筆記》專欄介紹 TrueTechLabs Fabric學習交流…

transformer--編碼器1(掩碼張量、注意力機制、多頭注意力機制)

編碼器部分: 由N個編碼器層堆疊而成每個編碼器層由兩個子層連接結構組成第一個子層連接結構包括一個多頭自注意力子層和規范化層以及一個殘差連接。第二個子層連接結構包括一個前饋全連接子層和規范化層以及一個殘差連接 掩碼張量 什么是掩碼張量 掩代表遮掩&#xff0c;碼…

Ansible的playbook的編寫和解析

目錄 什么是playbook Ansible 的腳本 --- playbook 劇本 實例部署&#xff08;使用playbook安裝啟動httpd服務&#xff09; 1.編寫一個.yaml文件 在主機下載安裝http&#xff0c;將配置文件復制到opt目錄下 運行playbook 在192.168.17.77主機上查看httpd服務是否成功開啟…