1. 两级电力市场交易模型概述
在新型电力系统建设背景下,省间电力交易商面临着可再生能源消纳与市场风险管控的双重挑战。这个基于Matlab/CPLEX构建的优化模型,核心要解决的是如何在日前市场(DA)和实时市场(RT)中制定最优购电策略,同时考虑风电、光伏出力的不确定性带来的财务风险。
模型采用双层Stackelberg博弈架构:
- 上层为交易商决策层:确定跨省购电量(P_DA)和省内平衡量(P_RT)
- 下层为市场出清层:模拟省级电力市场的竞价出清过程
关键技术难点在于处理双层模型中的博弈关系。当上层决策影响下层市场出清价格时,传统的单层优化方法失效,必须采用数学规划与均衡约束(MPEC)方法,再通过KKT条件和强对偶定理将其转化为可求解的混合整数线性规划(MILP)问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 模型构建与数学转化
2.1 上层风险决策模型
交易商的目标函数包含三个关键部分:
matlab复制Obj = C_DA*P_DA + E_CVaR + lambda*risk_term;
C_DA*P_DA:日前市场购电成本E_CVaR:条件风险价值(Conditional Value at Risk)lambda*risk_term:风险惩罚项,λ为风险偏好系数
CVaR的计算采用Rockafellar-Uryasev方法,通过场景法处理可再生能源预测误差。虽然原文使用10个场景,但在代码实现中简化为单场景调试:
matlab复制% 风险项计算简化处理
E_CVaR = scenario_prob * (max(0, cost_scenario - VaR) / (1 - alpha));
2.2 下层市场出清模型
省级市场出清需要满足三个核心约束:
- 功率平衡约束:
matlab复制sum(P_gen) == Load(t) - P_DA - P_RT
- 机组出力限制:
matlab复制P_min <= P_gen <= P_max
- 互补松弛条件(通过KKT转化):
matlab复制dual_var(t)*(P_gen - P_max) == 0
特别需要注意的是,原文在强对偶转换时存在符号错误,实际实现中修正了对偶变量与原始
