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 优化求解电力系统机组组合问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729171950h1326777.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论