admin 管理员组

文章数量: 887021

    由于工程项目需要,在求解新能源消纳问题时,需要进行电力系统优化调度,不可避免的需要优化求解电力系统机组组合问题。其本质是一个优化问题。查阅相关资料,目前做电力系统优化最主流的方法就是:Matlab + Yalmip + Cplex 

    Yalmip

    Yalmip是一个Matlab工具包,在Yalmip官网下载,解压至Matlab Toolbox 工具箱中,然后设置好Path路径,就可以使用了。具体安装过程请参考这位博主的博客:matlab中调用cplex 以及使用 Yalmip 工具箱_心态与习惯的博客-CSDN博客_matlab调用cplex

    Yalmip是一个建模工具,针对所有的规划问题,提供了一种统一的、简单的建模语言,实现了建模与算法的分离。至于用何种算法,只需要配置参数指定就可以了。

    Cplex

    Cplex是IBM公司一款高性能的数学规划问题求解器,可以快速、稳定的求解线性规划、混合整数规划、二次规划等一系列问题。具体安装过程请参考这位博主的博客:matlab中调用cplex 以及使用 Yalmip 工具箱_心态与习惯的博客-CSDN博客_matlab调用cplex

    在做优化时,用Yalmip进行建模,模型建好后调用Cplex求解器求解。

    Yalmip建模语言

    Yalmip建模很“人性化”,简单易懂

    1、定义变量

     Yalmip可设置三种格式变量

     实数变量:sdpvar

     0-1变量:binvar

     整数变量:intvar

     例如:x = sdpvar(2,1,'full');设置了一个2*1非对称的实数变量x 

     注:Yalmip设置变量默认为对称的,如果要求非对称要在后面加上‘full'

     2、目标函数

     要求解模型的目标 f 

     注:Yalmip默认求解的是最小值,如果要求最大值需在目标函数前加一个负号 -f

     3、约束条件

     st = [];  为自己定义一个存储约束条件的矩阵

     st = [st,];  新增约束

     例如:st = [st,0<=x(1)<=2]; 就此定义了一个变量x(1)的约束条件

     4、设定求解要求及参数

     通过sdpsettings设置,(sdpsettings设置参数列表链接)

     例如:ops = sdpsettings('solver','cplex');  设置求解器为Cplex

     5、求解

     r = optimize(st,f);

     6、value();  查看变量

     示例:

         求解程序:

          

          结果为:

     对比常规编程:

     结果:

     可见,用常规线性规划法编程,虽然程序简单但不易读懂。Yalmip编程更显“人性化”特点,通俗易懂。

     机组组合优化

     机组组合是电力系统优化调度问题,优化各常规发电机组启停以及出力,满足系统负荷要求,以达到系统所求目标,如成本最优等。就拿我在网上下载的一个简单例子做说明(仅供参考)。

     示例:

     有 N = 3 个不同类型的发电厂, 每一个发电厂都具有输出功率限制,且每时刻都满足系统功率平衡(3个发电厂,两个约束)

     目标:优化调度24小时,使系统运行成本最优(目标函数成本最小)

     一天的负荷由周期函数模拟给出,系统运行成本函数为:

     其中,P为发电机输出功率。

     程序示例:

     结果最优成本:

     各时刻机组启停结果: 

     三个发电机组各时刻优化出力:

模型及代码工程获取:

 

 

本文标签: 组合 机组 电力系统 Yalmip CPLEX