动态规划进行单库优化调度计算C++程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//类的定义
#ifndef SRDP_H
#define SRDP_H
class SRDP
{
private:
//1.阶段变量stage variable
long m_StageNum; //阶段数存储量
double m_Delta_t; //时间间隔T=2626560s
double m_DeltaHour; //一个月的小时数:h
//2.决策变量decision variable
//double **m_OptDeciVar_q;
//3.状态变量state variable
long *m_StateNum; //库容离散点数
//double **m_StateV; //库容离散
//4.指标函数target function
double **m_TarFun; //阶段指标函数
//5.目标函数object function
double m_ObjFun; //目标函数
//最优轨迹记录数组
long **m_OptArray;
//原始资料记录数组
double *m_RunoffArray; //长系列径流
double *m_EvapArray; //蒸发量
//时间(年月)记录数组
long *m_YearArray;
long *m_MonthArray;
//计算结果
double *m_OptVolumnArray; //最优轨迹对应库容数据数组序列double *m_OptNArray; //最优轨迹对应出力数据数组序列
double *m_OptAbandonQ; //最优轨迹对应的弃水量序列
double *m_OptUpWaterLevelArray; //最优轨迹对应的水库上游水位序列double *m_OptDownWaterLevelArray;//最优轨迹对应的水库下游水位序列double *m_OptVarialbe_q; //最优轨迹对应的发电流量序列
double *m_OptMeanWaterHeadArray; //最优轨迹对应的平均发电水头
double *m_OptNmaxArray; //最优轨迹对应的预想出力
double *m_OptDamageDepth; //最优轨迹中低于保证出力时的破坏深度double m_OptReliability; //最优轨迹对应的保证率
double m_OptGenerationProduction; //发电量
double m_OptAnnualMaxPower;
//Parameters of Hydropower Station
//
double m_DeadWaterLevel; //死水位m
double m_DeadVolumn; //死库容.03亿m3
double m_NormalWaterLevel; //正常蓄水位835m
double m_FloodLimitLevel; //汛期防洪限制水位m
double m_FloodVmax; //汛期最大库容.03亿m3
double m_NFloodVmax; //非汛期最大库容.37亿m3
int m_UnitsNum; //机组台数
double m_InstallCapacity; //装机容量*2MW
double m_FirmCapacity_N; //保证出力.2MW
//预想出力
double m_PotentialWaterLevel1;
double m_PotentialCapacity_N1;
double m_PotentialWaterLevel2;
double m_PotentialCapacity_N2;
double m_DesignAnnualGeneration; //设计年发电量.99×kW•e V); //上游水位计算double DownWaterLevelCalculation(double q); //下游水位计算
void ReverseSearchCalculation(); //反向寻优计算
void TerminalOptionalResultCalculation(); //最终结果计算
};
#endif
//类的实现
// SRDP.cpp: implementation of the SRDP class.
//
//////////////////////////////////////////////////////////////////////
#include"stdafx.h"
#include"SRDP.h"
#include
#include"assert.h"
#include"fstream"
#include"iomanip"
#include"iostream"
#include
using namespace std;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
SRDP::SRDP()
{
//原始资料
this->m_RunoffArray = NULL; //长系列径流数据
this->m_EvapArray = NULL; //蒸发数据
////动态规划模型数据
//this->m_StageNum=100; //阶段数
//this->m_Delta_t=2626560; //时间间隔
//this->m_DeltaHour=730; //一个月的小时数
this->m_StateNum = NULL; //状态数
this->m_TarFun = NULL; //阶段指标