- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
POA算法
POA算法
using System;
using HydroOptimUtility;
using HydroOptimPlace;
namespace TJOptim.OptimClass
{
/// summary
/// Cascade适合梯级水电站短期优化调度。
/// 2004.9.1
/// liuzl_ah@163.com
/// /summary
public class CascadePOA
{
int NPS;//时段数目
int NHP;//电站数目
double INCOME=0.0;
private double[][] vtop,vbottom;
public CascadePOA(int NPS,int NHP)
{
this.NPS=NPS;
this.NHP=NHP;
vtop=new double[NHP][];
vbottom=new double[NHP][];
for(int i=0;iNHP;i++)
{
vtop[i]=new double[NPS];
vbottom[i]=new double[NPS];
}
}
public void HYOptimize(ref TPSInCascade psic,ref THydroSystem hysys)
{
int i3e;
const int MEASURE=1000;
const double MINIMUM=-1.0E300,BREAKAGE=1.0E100;
double SUMERROR=0.0005;
double TIME=24*60*60/NPS;
int Ttime=0;//水流滞时
int pos=-1; //水库水位
double dv;
double zb,ze;
double Hloss,
discharge,pdischarge,adischarge,odischarge,tmpdischarge,
head,output,income=0.0,ve,qe,vb,qb,qq,vv,zz,zd;//maxv,
double zzj;
double DET=NPS/8.64;//库容单位为万立方米
double NOWincome=0.0,MAXincome=0.0;
double[][][]NDCdischarge; //计算时的临时变量
double[]liuliang;
liuliang=new double[2]; //计算时的临时流量
double[][]H;
int [][]position;
double[][]ptr_1;
Treservoir[]rsv=psic.rsv;
Tplant[] plnt=psic.plnt;
//---------------------
ptr_1=new double[NHP][];
//-----------确定初始轨迹
position=new int[NHP][];
H=new double[NHP][];
double []deta=new double[NHP];
NDCdischarge=new double[NHP][][];
for(int i=0;iNHP;i++)
{
//ccc均匀离散初始水位
dv=(rsv[i].elevel-rsv[i].blevel)/NPS;//按时段离散第i个水库水位
rsv[i].Zlevel[0]=rsv[i].blevel;// 第i个水电站第0时水位为初始水位
rsv[i].Zlevel[NPS] = rsv[i].elevel;// 第i个水电站第NPS时水位为末水位
H[i] = new double[NPS];// 定义数组装第i个水电站每个时间点的水位
NDCdischarge[i] = new double[NPS][]; // 第i个水电站第NPS时间点对应的流量
for(int j=0;jNPS;j++)
{
rsv[i].Zlevel[j] = rsv[i].blevel + dv * j; // 第i个水电站J时间点的水位
文档评论(0)