发电商机组调度问题摘要本文主要讨论如何对机组各时段出力进行优化,制定最佳的发电报价计划,平衡收益与成本,实现利润最大化。针对问题一,通过找出发电商机组的最优调度来求得每天企业利润的最大值,以企业利润作为目标函数。根据实际情况分析,目标函数是一个随时间而动态变化的函数,因此我们采用动态规划法求解。在模型一中,我们根据题目的条件及相关数据,通过分析各时段的利润得出。对各时段利润求和得到目标函数,得到一天的利润为2410241021111ijjiijiijijijiPpricePPµγβα====∗−++∑∑∑∑。根据题目所给的已知条件进行合理的假设下,分析确定模型的约束条件。通过MATLAB软件编程求解,确定不同型号发电机在不同时段的出力分配,找出最优解,得到电力生产过程中每天的最大利润为93万美元。针对问题二,我们从发电企业参与的电力市场行为出发,探究发电成本与碳排放交易之间的关系,将碳排放成本计入问题一中的利润函数中,建立考虑碳排放权交易的机组调度模型。在该组合交易模式下,利用MATLAB对机组的出力进行优化配置,此时的最大利润为78.8万美元。针对问题三,市场的不确定性将会使得电价呈现出随机变化的特性,通过离散化得出边际电价概率分布和利用期望值与方差的进行检验。这些分析结果可为评价电力市场中的风险提供直接的依据。关键词:动态规划模型、考虑碳排放交易的机组调度模型、边际电价一、问题的重述我国电力系统市场化改革正在稳步推进,电力市场采取交易与调度一体化模式运转。电网公司在组织交易、调度和配送时需建立电价预测模型,尽可能使购电费用最小,以实现利润最大化。此外,电网公司主要通过出售发电机组出力来获得利润,减少发电成本,增加电价竞争力度。1)在调度电价周期内,如果不能产生更多的利润,可以不满足系统预测负荷和旋转备用。2)开机时机组的出力和备用出力之和位于最小出力和最大出力之间,此外,可以将停机时机组的出力为零。3)机组存在的旋转备用应小于最大出力和最小出力之差。4)发电机在发电过程中,以启动时的机组出力为基点,需要以一个适当的速度增加出力到不超过额定范围的稳定出力状态;同样地,发电机减少发电出力也是一个循序渐进的过程。同时,两者均需设定一个改变出力的速度上限。5)在机组在运行和停运两个角色间变换时均需数小时。基于以上五个约束条件,我们需要解决以下三个问题:1.建立一个发电商机组优化调度模型,选择适当的方法合理安排10个机组在24小时的发电计划。2.在机组优化调度过程中,机组优化模型中应将环境问题考虑在内。并在问题一的基础上进一步考虑排放税和排放权交易对发电商机组调度的影响。3.由于电价在实际市场环境中的不确定性,还需要在此条件下进一步讨论发电机组调度问题。二、问题分析通过研究发电机最优组合问题,寻求机组优化调度能获得较大的经济效益。题目中有十种不同型号的发电机,每种发电机都有各自的二次函数成本系数,并且给出了二十四个供电时段的电价。问题一中,在假定所有发电机组的发电成本和出力为二次函数关系的前提下,我们以发电商机组的获利利润为目标函数,建立发电商机组优化调度模型。由于发电机数量比较少,。动态规划方法反映了过程逐段演变的前后联系和动态特征,在计算中可以较好的解决此类问题,提高结果的准确性。问题二中,我们在问题一的基础上,考虑排放权交易对最终利润的影响。问题三中,电价高低很大程度上决定了发电容量项目的投资利润。在市场环境下,市场是电价的决定因素,电价不再具有规制环境下所具有的稳定性,市场的不确定性将会使得电价呈现出随机变化的特性,在此背景下,发电商的投资决策任务就是最优投资时机选择问题,即明确电价等于多少时进行投资,发电商能够获得最大的投资利润。考虑到电价的随机变化特性,还将进一步通过概率分析来评估发电商最终实施投资的可能性。三、模型假设1.假设发电机工作正常,不会出现中途因故障而停止运行;2.发电机工作时的输出功率不变;3.同一时段同一种型号的发电机输出功率相同且不发生变化;4.不考虑发电机电力传输过程中消耗的功率;5.生产单位产品产生的污染物排放量固定不变。四、符号说明ijG第i机组在第j时间段的排放量ijc机组i,j时刻的旋转备用jprj时刻的电价jWijPj时段的总负荷机组i,j时刻的出力五、模型的建立与求解5.1问题一模型的建立与求解5.1.1模型的建立根据题中约束条件,我们建立利润目标函数。模型目标函数可表示为:2410241021111maxijjiijiijijijiPpricePPµγβα====∗−++∑∑∑∑(1)式中:iγ、iβ和iα分别为所有发电机组的发电成本与出力的二次成本函数系数;iju为机组i在j时刻的运行状态;ijP为机组i在j时刻的实际有功出力;jprice为j时刻的电价。µ为换热系数,即每产生1MBtu热量需要成本为µ,计算方式如下:由国际单位的转换可查到每吨标准煤可产生24.6MBtu热量,通过查阅金投原油网(),取标准煤600$/ton,则可算得转换系数0.67µ=。模型约束条件由以下部分组成:出力约束:minmaxiijiPPP≤≤(2)式中:miniP机组i有功出力下界;maxiP机组i有功出力上界。旋转备用约束:()maxminiiiCPP≤−(3)minmaxiijijiPPCP≤+≤(4)式中:iC为机组i的旋转备用,iju为机组i在时刻j的运行状态。功率速度约束:()1+ijiijiijPRDPPRU+−≤≤(5)式中:iRU为机组i的功率上升速度限制;iRD为为机组i的功率下降速度限制。负荷约束:()101jijijiWPC=≤+∑(6)式中:jW为时刻j的总负荷。启停时间约束:24124;onononiiiijTttu=≤≤=∑(7)式中:oniT为机组i的最小运行时间;onit为机组i的实际运行时间。24124;24offoffoffiiiijTttu=≤≤=−∑(8)式中:offiT为机组i的最小停机时间;offit为机组i的实际停机时间。5.1.2动态规划算法求解动态规划是解决多阶段决策过程最优化问题的一种方法,可用于解决最优路径、资源分配、生产计划与库存、投资、装载、排序等问题,还可用于生产过程的最优控制等。由于它有独特的解题思路,因而在处理某些优化问题时,比线性规划或非线性规划方法更有效。而Matlab是一个功能强大的用于基于矩阵运算的强大数值计算软件,将Matlab语言应用到动态规划中去,对实际问题进行程序设计和计算,可以达到计算简便的目的。机组优化调度的算法有启发式方法、遗传算法、整数规划和混合整数规划法、专家系统法、模拟退火算法、人工神经网络法、蒙特卡罗算法等,考虑到动态规划法对目标函数没有特殊的要求,能求得全局最优解,同时,对于独立发电商的发电机组数量较少的特点,本文采用动态规划算法。由此,生成符合约束条件的各状态的值。使用动态规划方法解决多阶段决策问题,首先要将实际问题写成动态规划模型,此时要用到以下概念:1)阶段将所给问题的过程,按时间或空间特征分解成若干互相联系的阶段,以便按次序去求解每阶段的解,每个阶段就是一个子问题,常用字母k表示阶段变量。2)状态各阶段开始时的客观条件叫做状态.描述各阶段状态的变量称为状态变量,常用kS表示第k阶段的状态变量。状态变量kS的取值集合称为状态集合,用kS表示。3)决策当各段的状态取定以后,就可以作出不同的决策(或选择),从而确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量,常用()kkuS表示第k阶段当状态为kS时的决策变量。在实际问题中,决策变量的取值往往限制在一定范围内,称此范围为允许决策集合,常用()kkDS表示第k阶段从状态kS出发的允许决策集合,显然有()kkkuDS∈。4)策略一个由每个阶段的决策按顺序组成的集合称为策略,用p表示,即()()()(){}11122,,,nnpSuSuSuS=。一个n阶段决策过程,从1到n叫作问题的原过程。对于任意给定的k()1kn≤≤,从第k阶段状态kS到第n阶段状态nS的过程称为原过程的一个后部子过程。后部子过程的策略记为()()()(){}11,,,kkkkkknnpSuSuSuS++=,在实际问题中,可供选择的策略有一定的范围,此范围成为允许策略集合。允许策略集合中达到最优效果的策略成为最优策略。5)状态转移动态规划中本阶段往往是上一阶段状态和上一阶段的决策进行综合的结果。如果给定了第k段的状态kS,且该阶段决策为()kkuS,则第1k+段的状态1kS+也就完全确定。它们的关系可表示为:()1,kkkkSTSu+=由于上式表示了由k阶段到1k+阶段的状态转移规律,所以称该式为状态转移方程。6)指标函数用于衡量所选定策略优劣的数量指标称为指标函数。一个n阶段决策过程,从1到n叫作问题的原过程。对于任意一个给定的k()1kn≤≤,从第k阶段到第n阶段的过程称为原过程的一个后部子过程。()1,11,,nnVSp表示初始状态为1S采用策略1,np时原过程的指标函数值。而(),,,knkknVSp表示在第k阶段,状态为kS采用策略,knp时后部子过程的指标函数值。最优指标函数记为()kkfS,它表示从第k阶段状态kS采用最优策略,knp到过程终止时的最佳效益值。()kkfS与(),,,knkknVSp间的关系为:()()(),,,,,,kkknkknknkknfSVSpoptimizeVSp==当k=1时,()11fS就是从初始状态1S到全过程结束的整体最优函数。5.1.3算法的数据处理为了便于对电力数据进行分析,我们首先需要对相关数据建立Poutput结构体进行储存与调用。(1)Poutput.Range矩阵Range[i,j]为10×24的矩阵,表示机组各时间段的电力信息。其中i表示机组的编号,j表示一天中各时间段,以小时为时间单位。例如,range[1,1]表示第一个机组第一小时内的电力信息。(2)Poutput.Change矩阵Change[i,j]=10×2的矩阵,其中i表示机组编号,j表示机组的功率速度变化上下限。当j=1时,表示机组功率下降的最大速度,当j=2时,表示机组功率上升的最大速率。例如change[1,1],表示第一个机组以最大速率下降功率。(3)Poutput.Time矩阵Time[i,j]为10×24的矩阵,类似地,i表示机组的编号,j表示一天中各时间段,以小时为时间单位。(4)Poutput.State的选取根据time矩阵,若state[i,j]=0,我们认为该机组在此时间段为停运状态;若state[I,j]=1,表示其中,i表示机组在此时间段为运行状态。例如,state[1,1]=0表示第一台机组在第一小时内为停运状态。通过MATALB编程,求解出的结果为:表1问题一各时刻各机组的出力分配时刻机组12345678910111210.00.00.00.00.00.00.00.0365.0381.9390.4398.52224.8234.9258.4278.2288.0306.0316.8330.3329.7346.9355.5364.4366.573.082.093.6101.2111.0116.8123.5108.7119.1125.4131.5469.777.8100.5117.0125.4139.0145.5155.8154.1166.6173.5180.1582.591.3114.1131.3140.8158.4166.8179.7178.4191.9199.3206.8663.368.075.785.188.498.0102.2103.859.968.872.275.4771.076.084.094.1101.5111.3116.0118.697.0107.3112.8118.0840.041.442.643.444.149.151.451.50.00.00.00.0940.341.943.449.350.959.162.563.412.