1 主要内容
该程序完全复现《A Two-layer Energy Management System for Microgrids with Hybrid Energy Storage considering Degradation Costs》,主要做的是一个微网双层优化调度模型,微网聚合单元包括风电、光伏、储能以及超级电容器,在微网的运行成本层面考虑了电池的退化成本,对其全寿命周期进行建模,并转换为实时相关的短期成本,采用双层调度模型,上层为EMS系统最小化总运行成本,下层为EMS消除预测误差引起的波动最小,更加创新,而且求解的效果更好。
- 优化流程
程序问题
该程序的目录列表如上所示,各种m文件注释很少,很多m文件都是很简洁但是增加理解难度的代码,这种代码应该是从github下载的,在网上各种疯狂售卖,点一下某鱼,大家注意上当,这种看懂的难度很大,免费分享给大家研究,后期我出一版详细的与文献的对照说明和注释,希望能帮助到各位!
2 部分程序
function [u_new, V, exitflag, output] = solveOptimalControlProblem (fst, varargin) %优化问题求解子函数 % fst.horizon, fst.xmeasure, fst.u0, fst.opt_option, fst.price, fst.net_load, battery %SOLVEOPTIMALCONTROLPROBLEM Summary of this function goes here % solves the optimal control problem of the %x = computeOpenloopSolution(fst); %For linear constraints % 设置约束和上下限 A = []; b = []; Aeq = []; beq = []; lb = []; ub = []; for k=1:fst.horizon %Aggregation [Anew, bnew, Aeqnew, beqnew, lbnew, ubnew] = fst.l_constraints( fst, k );%调用l_constraints子函数 A = blkdiag(A,Anew);%不等式约束 b = [b, bnew]; Aeq = blkdiag(Aeq,Aeqnew);%等式约束(分块对角矩阵) beq = [beq, beqnew]; lb = [lb, lbnew];%下限 ub = [ub, ubnew];%上限 end % Solve optimization problem [u_new, V, exitflag, output] = fmincon( @(u) fst.costfunction( fst, u ), fst.u0 , ... % Objective A, b, Aeq, beq, lb, ub, ... % Linear Constarints @(u) fst.nonlinearconstraints(fst, u ), fst.option); % Nonlinear Constraintsend
3 程序结果