【代码】基于Kantorovich距离的风光场景生成与削减算法matlab
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍一、引言在综合能源系统和微网的运行中风电和光伏出力的不确定性对系统的优化配置和调度优化产生显著影响。为了有效处理这种不确定性需要生成大量能够反映风电光伏出力概率分布特性的场景并从中削减得到具有代表性的典型场景。拉丁超立方场景分析法用于生成服从概率分布约束的大量场景而基于 Kantorovich 距离的同步回代削减法能够在保留原始场景关键特征的前提下削减场景数量得到不同权重的典型场景。以这些典型场景下的调度期望值作为最终决策有助于提高调度的鲁棒性增强系统应对不确定性的能力。二、拉丁超立方场景分析法生成风光出力场景一基本原理拉丁超立方抽样Latin Hypercube Sampling, LHS是一种分层抽样方法它将每个随机变量的概率分布区间划分为 N 个等概率的子区间然后从每个子区间中随机抽取一个样本值。这样可以保证抽样结果在整个概率分布范围内均匀分布且能够更好地捕捉变量的分布特征相比简单随机抽样具有更高的效率和准确性。二生成风电光伏出力场景步骤确定概率分布首先需要明确风电和光伏出力的概率分布模型。通常风电出力受风速影响可采用威布尔分布等进行描述光伏出力与光照强度相关常用 Beta 分布等表示。通过历史数据拟合或理论分析确定分布的参数。四、典型场景在综合能源系统和微网中的应用一综合能源系统优化配置在综合能源系统中不同的风电光伏出力场景会影响能源的生产、转换和分配。将削减后的典型场景作为输入考虑系统中各种能源设备如燃气轮机、储能装置等的运行特性和约束条件以系统成本最小化、能源利用率最大化等为目标进行优化配置。例如在每个典型场景下计算系统的运行成本然后以各场景下运行成本的期望值作为决策依据确定能源设备的容量、布局等配置方案。这样可以使配置方案在面对风电光伏出力的不确定性时更加稳健提高系统的整体性能和经济性。二微网的调度优化对于微网而言风电和光伏的不确定性会导致功率平衡和电能质量问题。利用削减后的典型场景以微网的功率平衡、电压稳定、运行成本等为约束条件以调度成本最小或收益最大为目标进行调度优化。在每个典型场景下制定微网的发电计划、储能充放电策略等。最终以各场景下调度方案的期望值作为实际运行的调度决策能够有效应对风光出力的不确定性提高微网调度的鲁棒性保障微网的稳定可靠运行。⛳️ 运行结果 部分代码function [F,feasible] filter_norm_inf(all_f,all_c_w,all_c_x,all_Q_xw,x,Zmodel,allw,X,Q_xx,VariableType)if any(Zmodel.lb Zmodel.ub)error(The uncertainty model is weird. Some of the lower bounds on the uncertainty are larger than the upper bounds. In other words, the feasible set for the uncertainty is empty.);endfeasible 1;lower Zmodel.lb;upper Zmodel.ub;F ([]);% To speed up the construction, compute the ci vectors for all constraints% in one call ci_basis [c1 c2 ...]ci_basis all_c_w;collectA [];collectb [];collectE [];collectd [];collectC [];x flush(x);allbi [];alldi [];allnormT[];for i 1:length(all_f)Bi 2*all_Q_xw(:,length(x)*(i-1)1:length(x)*i);bi all_c_x(length(x)*(i-1)1:length(x)*i);if (nnz(ci_basis(:,i))0) nnz(Bi)0% This constraint row is constantF F (X(i)0);elseci ci_basis(:,i);di all_f(i);% Scale to -1,1 uncertaintyT diag(sparse((upper-lower)))/2;e (upperlower)/2;if nnz(Bi) 0if nnz(bi)0 nnz(Q_xx{i})0% Basically constant w 0if (die*ci) - norm(T*ci,1) 0error(Problem is trivially infeasible);feasible 0;returnendelseif nnz(Q_xx{i})0allbi [allbi;bi];alldi [alldi;(die*ci)-norm(T*ci,1) ];% F F (bi*x (die*ci) - norm(T*ci,1) 0);elseF F (x*Q_xx{i}*xbi*x (die*ci) - norm(T*ci,1) 0);endelse% (bi (Bi*w))*x (ci*w di)% (bi (Bi*(eTw)))*x (ci*(eTw) di). |w|1% (bie*Bi)*x (die*ci) (ciTx*Bi*T)*wnon_zeroBirow find(sum(abs(Bi),2));zeroBirow find(sum(abs(Bi),2) 0);if length(non_zeroBirow)1 nnz(Q_xx{i})0% This is what we are doing...%t sdpvar(length(non_zeroBirow),1);%F F ((bie*Bi)*x (die*ci) - norm(T(zeroBirow,:)*ci,1)-sum(t) 0) (-t T(non_zeroBirow,:)*(ciBi*x) t);% However, to save over-head, we save information and% post-pone the generation of a constraint% A*xbC*t0,-tdE*xtcollectA [collectA;sparse((bie*Bi))];collectb [collectb;(die*ci) - norm(T(zeroBirow,:)*ci,1)];collectC blkdiag(collectC,-sparse(ones(1,length(non_zeroBirow))));collectE [collectE; T(non_zeroBirow,:)*Bi];collectd [collectd; T(non_zeroBirow,:)*ci];%F F ((bie*Bi)*x (die*ci) - norm(T(zeroBirow,:)*ci,1)-sum(t) 0) (-t T(non_zeroBirow,:)*(ciBi*x) t);else% There is only one expression involving product between x% and w. We explicitly construct the absolut value% constraint projectionextremecase x*Q_xx{i}*x(bie*Bi)*x (die*ci) - norm(T(zeroBirow,:)*ci,1)-T(non_zeroBirow,:)*(ciBi*x);if isnumeric(extremecase)if extremecase 0error(A worst-case computation reveals a trivially infeasible constraint);endelseF F (extremecase 0) ;endextremecase x*Q_xx{i}*x(bie*Bi)*x (die*ci) - norm(T(zeroBirow,:)*ci,1)T(non_zeroBirow,:)*(ciBi*x);if isnumeric(extremecase)if extremecase 0error(A worst-case computation reveals a trivially infeasible constraint.);endelseF F (extremecase 0) ;endendendendendif ~isempty(allbi)F F[allbi*xalldi0];endif ~isempty(collectA)z collectE*x collectd;[U,L] derivebounds(z);if all(L0)% All variables are non-negative, hence no reason to introduce an% epigraph variable to model abs(Exd)F F (collectA*x collectbcollectC*z 0);elseif all(U0)F F (collectA*x collectbcollectC*(-z) 0);elset sdpvar(size(collectC,2),1);% F F (collectA*x collectbcollectC*t 0);% F F (-t collectE*x collectd t);F F ([-collectA -collectC;collectE -speye(length(t));-collectE -speye(length(t))]*[x;t] [-collectb;collectd;-collectd] 0);endend 参考文献《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》《基于综合需求响应和奖惩阶梯型碳交易的综合能源系统优化调度》更多创新智能优化算法模型和应用场景可扫描关注机器学习/深度学习类BP、SVM、RVM、DBN、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、SAE、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、XGBoost、LightGBM、TCN、BiTCN、ESN、Transformer、模糊小波神经网络、宽度学习等等均可~方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断组合预测类CNN/TCN/BiTCN/DBN/Transformer/Adaboost结合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention机制类等均可可任意搭配非常新颖~分解类EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD、FMD、JMD等分解模型均可~路径规划类旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划EVRP、 双层车辆路径规划2E-VRP、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻、公交车时间调度、水库调度优化、多式联运优化等等~小众优化类生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划2E-VRP、充电车辆路径规划EVRP、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位、冷链、时间窗、多车场等、选址优化、港口岸桥调度优化、交通阻抗、重分配、停机位分配、机场航班调度、通信上传下载分配优化、微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化等等均可~ 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划通信方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理传输分析去噪、数字信号调制、误码率、信号估计、DTMF、信号检测电力系统方面 微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统BMSSOC/SOH估算粒子滤波/卡尔曼滤波、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进扰动观察法/电导增量法、电动汽车充放电优化、微电网日前日内优化、储能优化、家庭用电优化、供应链优化\智能电网分布式能源经济优化调度虚拟电厂能源消纳风光出力控制策略多目标优化博弈能源调度鲁棒优化原创改进优化算法适合需要创新的同学原创改进2025年的波动光学优化算法WOO以及三国优化算法TKOA、白鲸优化算法BWO等任意优化算法均可保证测试函数效果一般可直接核心告诫读者和自己第一科学态度。历史学是一门科学要学会做历史研究就得有科学态度。科学态度不是与生俱来的必须认真培养关键是培养我们在研究中认真负责一丝不苟的精神。第二献身精神。从事历史研究就像从事其他任何科学研究一样要有一种为科学研究而献身的精神要热爱我们的研究事业要有潜心从事这项工作的意志。没有献身精神当然做不好科研工作。只想拿一个学位那是很难学好做研究的。要拿学位这一点可以理解但我们读书是为了自己获得真才实学。有了真才实学将来不论做什么工作都是有用的。当然学位也是要的但关键的是学问而不是学位。第三查阅收集学术信息、资料的能力。青年学生要从事学术研究就要培养能熟练地掌握查阅搜集学术信息、资料的能力。例如学习与研究英帝国史就得了解国内外有关这个专业的基本情况了解有关资料情况。像你们在北京地区学习至少要大致了解北京地区有关英帝国史的中英文资料熟悉与专业密切相关的主要图书馆了解馆藏情况。这就需要经常去图书馆。我们这个专业不需要到田间考察到工厂调研但要去图书馆去图书馆就是我们的调查研究。熟悉有关图书馆的情况是我们学习的一部分。今天网络飞速发展掌握网上查阅信息的技巧是非常必要的。第四处理资料的能力。搜集的资料会越来越多怎样安排它们也是一门学问。各学科各个研究人员的方式可能会有所不同但总的原则是要有条理便于记忆便于查阅。第五对资料的鉴别意识与鉴别能力。我们在使用研究资料时不能拿着就用要有意识鉴别一下材料是否可靠什么样的材料更有价值。读书时也不是拿着什么书就通读到底。有的书翻一翻即可有的书则需认真读。区别哪些书翻一翻即可哪些书得认真读也不是一件容易的事青年学生不是一下子就能做到这一点的需逐渐培养这种能力。还有一点就是要学会使用计算机能比较熟练地进行文字处理。