
基于MATLAB的yalmip/cplex/gurobi编程实现综合能源系统规划与优化调度的初学
指南
最近在折腾综合能源系统建模,发现用YALMIP搭模型真是方便到飞起。今天咱们就手把手整几个典
型设备模型,从风电光伏到电锅炉,最后拼成个简单优化调度模型。别慌,就算刚入门也能跟着玩起来。
先装个全家桶:MATLAB+YALMIP+Gurobi/CPLEX。装不上求解器的可以在代码里把gurobi改成cplex
或者直接用默认求解器。下面这段代码是基础框架:
```matlab
clc;clear;
addpath(genpath('yalmip')); % 加载YALMIP工具箱
ops = sdpsettings('solver','gurobi','verbose',1); % 指定求解器
```
先撸个风电模型。风电出力主要看预测风速,咱们用分段线性化处理:
```matlab
% 风电模型参数
v = [3, 5, 10, 15, 25]; % 风速节点(m/s)
Pw = [0, 80, 200, 200, 0]; % 对应出力(kW)
% 定义风电变量
P_wind = sdpvar(1); % 风电出力
lambda = sdpvar(length(v)-1,1); % 分段系数
% 约束条件
Constraints = [sum(lambda) == 1, lambda >= 0];
Constraints = [Constraints, P_wind == lambda(1)*0 + lambda(2)*80 + lambda(3)*200];
Constraints = [Constraints, v(1)*lambda(1)+v(2)*lambda(2)+v(3)*lambda(3)+v(4)*lambda
(4) == V_wind]; % V_wind是预测风速
```
这里用lambda做权重系数把非线性曲线掰直了,对求解器更友好。注意最后那个等式里的V_wind需
要提前赋值。
光伏模型更简单,直接按辐照度比例计算:
```matlab
P_pv = sdpvar(1);