根据博主无水先生的代码
运行之后结果是整数,有人能解答一下为什么😢精度是1e-6
a = np.array([[20, 2, 3], [1, 8, 1], [2, -3, 15]])
b = np.array([24, 12, 30])
x = np.array([0, 0, 0]) *
mark
完整代码如下。
import numpy
a = numpy.array([[20, 2, 3], [1, 8, 1], [2, -3, 15]])
b = numpy.array([24, 12, 30])
x = numpy.array([0, 0, 0])
print(a,b,x)
以两个水库为例。由于水力发电基本不需要成本(相比火力发电而言),所以水力发电的目标函数是:尽可能的利用水,当然一个水电站利用水发电是有上限的,并不是来啦好多水就能全部利用,所以存在弃水现象。
本文的目的在于讲解梯级水电站,所以举的算例较为简单,如果想写论文,可以在此基础上多加几个水电站,火电厂。单一的火电厂负荷分配较为简单。全部组合起来也不算太难,你们自己写吧。
所用优化算法:粒子群
粒子群算法讲解链接:粒子群算法求解无约束优化问题 源码实现
粒子群算法求解带约束优化问题 源码实现
水电站1数据
Vmax1=925010^4; %水库容量上限(m3)
Vmin1=700010^4; %水库容量下限(m3)
H1=640; %水库容量初始值水位(m)
V1=(25*(H1-550)+7000)*10^4 ; %水库库容与水位的关系(简化:假设水库是一个标准长方体)
h1=90; %初始水库水头(m)
qr(:,1:7)=[20.4 25.2 22.1 19.3 16.4 23.3 28.6 ]; %水库来水流量(m3/s),7个时段
qmax1=44; %水库引用流量上限(m3/s)
qmin1=0; %水库引用流量下限(m3/s)
A1=9.810^3; %水库出力系数
k1=0.65; %发电效率
t=8.6410^4; %水库发电引用流量时间段(s)#24小时
水电站2数据
%-----------水电站2--------------------------------------
Vmax2=350010^4; %水库容量上限(m3)
Vmin2=153010^4; %水库容量下限(m3)
H2=540; %水库容量初始值水位(m)
V2=(20*(H2-483)+1530)*10^4; %水库库容与水位的关系(简化:假设水库是一个标准长方体)
h2=57; %初始水库水头(m)
qr(:,8:14)=[22.4 18.3 26.4 25.2 17.6 24.6 27.2]; %水库来水流量(m3/s)
qmax2=32; %水库引用流量上限(m3/s)
qmin2=0; %水库引用流量下限(m3/s)
A2=9.8*10^3; %水库出力系数
k2=0.6; %发电效率
(水库库容与水位的关系,我这里设置的是线性关系,数据是我自己设置的,现实生活中,可能是二元函数形式,自己稍微修改下代即可)