收藏 分享(赏)

数学建模优秀论文全国一等奖.pdf

上传人:精品资料 文档编号:9965772 上传时间:2019-09-23 格式:PDF 页数:53 大小:1.51MB
下载 相关 举报
数学建模优秀论文全国一等奖.pdf_第1页
第1页 / 共53页
数学建模优秀论文全国一等奖.pdf_第2页
第2页 / 共53页
数学建模优秀论文全国一等奖.pdf_第3页
第3页 / 共53页
数学建模优秀论文全国一等奖.pdf_第4页
第4页 / 共53页
数学建模优秀论文全国一等奖.pdf_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、 1 基于遗传算法的机组组合问题的建模与求解 摘要 本文针对当前科技水平不足以有效存储电力的情况下产生的发电机机组组合的问题,考虑负荷平衡、输电线传输容量限制等实际情况产生的约束条件,建立机组组合优化模型,追求发电成本最小。同时采用 矩阵实数编码遗传算法( MRCGA) 和穷举搜索算法,利用 MATLAB 7.0.1 和 C+编程,分别对模型进行求解,并对所得结果进行分析比较,以此来帮助电力部门制定机组启停计划。 首先,建立发电成本最小目标函数和各项约束条件的数学表达式。其中机组空载成本和增量成本之和随该机组发 电出力增长呈折线关系,在分析计算时为了简便,本文采用一条平滑的二次曲线来近似代替。

2、 对于问题 1,选取相应的约束条件对目标函数进行约束,从而给出优化模型。由于问题 1 的求解规模很小,所以采用穷举搜索算法,利用 C+编程求解,得到了 3 母线系统 4 小时的最优机组组合计划(见表一)。 对于问题 2,在优化模型的基础上,增加最小稳定运行出力约束、机组启动和停运时的出力约束以及机组最小运行时间和最小停运时间约束这三个约束条件,建立了优化模型 II。同时采用遗传算法和穷举搜索算法,利用 MATLAB 和 C+编程,分别对模型进行 求解,部分结果如下: 发电总成本(单位:元) 矩阵实数编码遗传算法 6780 穷举搜索算法 6820 在 对所得结果进行了分析比较,重新制定了 3 母

3、线系统 4 小时最优机组组合计划(见表三)。 对于问题 3,用 IEEE118 系统对优化模型 II 进行测试。由于求解规模巨大,同样采用遗传算法和穷举搜索算法,利用 MATLAB 和 C+编程,分别对模型进行求解,部分结果如下: 发电总成本(单位:百万) 矩阵实数编码遗传算法 2.034 穷举搜索算法 2.135 在对所得结果进行比较时发现对于大规模问题,遗传算法优 势明显,将其求解结果作为 24 小时的最优机组组合计划(见附录)。 最后,我们就模型存在的不足之处提出了改进方案,并对优缺点进行了分析。 关键字 机组组合优化模型 矩阵实数编码遗传算法 穷举搜索算法 2 一、 问题的提出 当前的

4、科学技术还不能有效地存储电力,所以电力生产和消费在任何时刻都要相等,否则就会威胁电力系统安全运行。为了能够实时平衡变化剧烈的电力负荷,电力部门往往需要根据预测的未来电力负荷安排发电机组起停计划,在满足电力系统安全运行条件下,追求发电成本最小。 在没有电力负荷损耗以及一个小时之内的电力负 荷和发电机出力均不变的前提下,假定所有发电机组的发电成本都是由 3 部分组成 :1.启动成本( Startup Cost), 2.空载成本( No load cost) , 3.增量成本( Incremental Cost)。需要考虑的约束有 : 1负荷平衡约束2系统备用约束 3输电线路传输容量约束 4发电机组

5、出力范围约束 5机组增出力约束 6机组降出力约束 。 问题 1: 3 母线系统 有一个 3 母线系统,其中有 2 台机组、 1 个负荷和 3 条输电线路,已知 4 个小时的负荷和系统备用要求。请求出这 4 个小时的最优机组组合计划。最终结果应该包括 总成本、各小时各机组的状态、各小时各机组的发电出力和各小时各机组提供的备用。 G1 L Bus 2 Bus 1 Bus 0 G2 Line 0 - 1 Line 0 - 2 Line 1 - 2 问题 2: 3 母线系统 在问题 1 的基础上,考虑发电机组的下列物理特性约束 :1.发电机组的稳定出力范围约束 2.机组启动时的出力约束 3.机组停运时

6、的出力约束 4.机组最小运行时间约束 5.机组最小停运时间约束。 重新制定最优机组组合计划。 问题 3: IEEE 118 系统 用 IEEE 118 节点的电力系统对问题 2 的求解模型进行测试,试求出 24 个小时的最优机组组合计划。最终结果应该包括总成本、各小时各机组的状态、各小时各机组的发电出力和各小时各机 组提供的备用。 二、 问题的分析 机组优化 组合和 优化启停就是 要在满足约束条件的情况下, 优化地选定各时段参加运行的机组,求出机组的最佳运行方案,实现发电成本最小。 然而,机组组合问题是一个多变量、 多约束的混合整数非线性规划问题。 针对此类问题的求解, 数学类优化方法如 线性

7、规划、非线性规划、动态规划等,都存在 明显 不足之处。 而 采用智能优化算法对 此问 题的研究较多,主要包括遗传算法、模拟退火算法、禁忌搜索、人工神经网络、模糊优化等算法。其中模拟退火算法收敛速度慢、禁忌搜索3 算法对初始解依赖性较强、人工神经网络算法存在网络 合适的隐含层数目和节点数目难以确定、模糊优化方法的隶属函数和模糊 推理规则的确定较困难 。鉴于遗传算法作为一种新的全局 优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点, 本文 采用 基于矩阵实数编码 遗传算法来解决 机组组合问题。 可以将整个问题分为以下两个任务来完成: 一、 建立机组组合问题的数学模型 二、

8、采用 穷举搜索法 和 遗传算法,利用 C+或者 MATLAB 编程,求解模型,得到最优机组组合计划 由于题目中的三个问题所考虑的约束条件 复杂程度不同 , 发电 机组数与负荷情况也不相同, 本文将三个问题逐一建立模型并 求解: 问题 1 根据负荷平衡、系统备用、输电线路传输容量、发电机组出力范围、机组增出力、机组降出力等约束 建立优化模型 I,采用穷举 搜索算法, 利用 C+编程进行求解。 问题 2 和问题 3 在问题 1 的基础上,增加 机组启动和停运时的出力、机组最小运行时间和最小停运时间约束条件,建立了优化模 型 II,采用 穷举搜索法和 遗传 算法, 分别 利用 C+和MATLAB 编

9、程进行求解。 三、 模型假设和符号系统 3.1 模型假设 1. 假设系统不存在电力负荷损耗 2. 假设一个小时之内的电力负荷和发电机出力均不变 3. 假设 参加交叉运算的染 色体个数占全体染色体总数的比例 为 0.40.99 4. 假设 发生变异的基因位数所占全体染色体的基因总位数的比例 为 0.00010.1 3.2 符号系统 itu 为机组 i 在 t 时段的运行状态, 10itu , 表 示 运 行, 表 示 停 机 iS 为机组 i 的 启动成本 itf 为机组 i 在 t 时段的发电成本 itp 为机组 i 在 t 时段的出力; jtL 为负荷 j 在 t 时段的负荷量; maxip

10、 为发电机组 i 的最大出力; 4 tR 为 t 时段系统备用要求; linekp 为线路 linek 上流过的电能; klx 为第 k 根输电线路第 l 条母线的线性传输因子; ,injbuslp 为母线 l 上的注入功率; maxkp 为第根输电线路的最大传输容量; minip 发电机组最小稳定运行出力; dir 为机组 i 最大减出力; rir 为机组 i 最大增出力; 1iT 为机组 i 最小运行时间; 2iT 为机组 i 最小停运时间; 四、 模型的建立 与求解 4.1 模型建立分析 4.1.1 先考虑目标函数 1) 空载成 本和增量成本 观察空载成本和增量成本构成的部分成本随 该机

11、组发电出力变化特性图,如图一中折线所示。 图一 空载成本和增量成本之和随该机组发电出力 增长走势 图 5 在分析计算时为了简便,通常用一条平滑曲线来近似代替有起伏的 部分成本 特性,如图 一中平画曲线所示 。当 n 段直线近似表示时, 部分成本特性 可表示为 2it it i it i it if p a p b p c ( 1) 2) 启动成本 11it iitu u S ( 2) 其中: itu 为机组 i 在 t 时段的运行状态, 10itu , 表 示 运 行, 表 示 停 机iS 为机组 i 的启动成本 3) 目标函数 机组 组合 的目的是针对在指定的周期内,满 足系统负荷、备用容量

12、、机组最小时间和最小停机时间等限制,优化确定各机组的启停机计划和优化分配其发电负荷,使发电总费用最小。因此, 要 以机组的费用最小为依据建立 相应的目标函数 。 设所研究的计划周期为 T ,机组台数为 n ,则该问题的目标函数可以表示为 : 111m i n 1Tn it it it it iittiF u f p u u S ( 3) 其中: itf 为机组 i 在 t 时段的发电成本 4.1.2 再 考虑约束条件 1) 负荷平衡约束 任何 时段 ,电力负荷之和必须等于发电机发电出力之和。 11nmit it jtiju p L( 4) 其中: itu 为机组 i 在 t 时段的运行状态,

13、10itu , 表 示 运 行, 表 示 停 机; itp 为机组 i 在 t 时段的出力; jtL 为负荷 j 在 t 时段的负荷量; 2) 系 统备用约束 任何时段,发电机的备用容量之和必须大于系统备用要求。 m a x1n it i it ti u p p R ( 5) 其中: maxip 为发电机组 i 的最大出力; tR 为 t 时段系统备用要求; 6 3) 输电线路传输容量约束 线路传输的 电能必须在它的传输容量范围内。 , m a x0Nlin e k k l in j b u sl klp x p p ( 6) 其中: linekp 为线路 linek 上流过的电能; klx

14、为 第 k 根 输电 线路第 l 条母线的线性传输因子; ,injbuslp 为母线 l 上的注入功率; maxkp 为第根输电线路的最大传输容量; 4) 发电机组出力范围约束 与稳定出力范围约束 处于运行状态的发电机组的发电出力必须小于其最大发电 出 力,同时必须大于其最小稳定运行出力。 min maxi it ip p p ( 7) 其中: minip 发电机组最小稳定运行出力; 5) 机组增 降 出力约束 发电机组在增加发电出力时,增加出力的速度要小于其最大增出力;发电机组在减少发电出力时,减少出力的速度要小于其最大减出力。 111d i it riitr p p r ( 8) 其中:

15、dir 为 机组 i 最大减出力; rir 为机组 i 最大增出力; 6) 机组启动 和停运 时的出力约束 当机组从停运状态变为运行状态时,机组在该小时的发电出力必须为其最小稳定运行出力,且当机组从运行状态变为停运状态时,机组在该小时的发电出力必须为其最小稳定运行出力。 m i n 11it i it iti t i tp p u u u u 如 果 =0 且 =1 ; 或 =1 且 =0 ( 9) 7) 机组最小运行时间 和最小停运时间 约束 机组每次启动后,连续运行时间至少为该台机组的最小 运行时间。机组每次停运后,连续停运时间至少为该台机组的最小停运时间。 11111itit ij ii

16、 t i t j t Tu u u u T ( 10) 2121 1itit it ij iit j t Tu u u u T ( 11) 7 其中: 1iT 为机组 i 最小运行时间; 2iT 为机组 i 最小停运时间; 4.2模型及其求解 问题 1 1) 优化模型 问题 1 中的 3 母线系统仅考虑 负荷平衡约束 系统备用约束 、 输电线路传输容量约束 、 发电机组出力范围约束与稳定出力范围约束 和 机组增降出力约束 ,所建优化方程模型如下。 111m i n 1Tn it it it it iittiF u f p u u S ( 12) .st 11m a x1, m a x0m a

17、x11101nmit it jtijnit i itiNli ne k k l inj busl klit idi it riititu p Lu p p Rst p x p pppr p p ru 为 或 者( 13) 其中: itf 为机组 i 在 t 时段的发电成本; 2it it i it i it if p a p b p c iS 为机组 i 的启动成本; 2)优化模型的求解 算法 机组组合问题在数学规划上属于 NP 完全问题,任何 NP 完全问题只有通过列举所有可能的组合,才能得到最优解,即采用穷举搜索法。由于问题 1 的求解规模不大,所以该问题将采用穷举搜索法对模型进行求解。我

18、们设置一计数器 T ( 1234T、 、 、 )用以记录 机组已运行的时间。 Step1. 读取各机 组和负荷的原始数据。另 1T 。 Step2. 设置机组 1 的第 T 小时的出力大小(从小到大依次搜索,跨度为 1),使其出力大小的变化满足增出力约束和降出力约束。 Step3. 判断机组 1 是否满足其出力范围约束。若满足则继续下一步,否则,重复8 步骤 2。 Step4. 根据系统负荷平衡约束, 求出机组 2 的出力大小。 Step5. 判断机组 2 出力大小的变化和出力范围是否满足增出力约束、降出力约束和出力范围约束。若满足则继续下一步,否则重复步骤 2、 3、 4。 Step6. 判

19、断机组 1 和机组 2 是否满足系统备用约束,若满足则继续下一步,否则重复步骤 2、 3、 4、 5。 Step7. 判断机组 1 和机组 2 是否满足输电线路传输容量约束,若满足继续下一步,否则重复步骤 2、 3、 4、 5、 6。 Step8. 判断计数器 T 是否为 4,若是则输出该种情况下两台机组各时段出力大 小,否则重复步骤 2、 3、 4、 5、 6、 7,另 1TT。 直到所有的情况搜索完毕为止。 执行完该算法,可以得到 一 最优机组组合计划。 3)模型求解 与分析 我们根据上面的算法步骤,我们编 C+程序( 附录 1),并代入 各机组和负荷的 初始数据。可以得到一 总成本 为

20、6580¥ 的 最优机组 组合计划 , 如表一所示 : 表一 3 母线系统 的最优机组组合计划 机组 G1 机组 G2 小时 1 状态 运行 关机 出力 (MW) 100 0 备用 (MW) 100 0 2 状态 运行 关机 出力 (MW) 130 0 备用 (MW) 70 0 3 状态 运行 运行 出力 (MW) 130 40 备用 (MW) 70 60 4 状态 运行 关机 出力 (MW) 140 0 备用 (MW) 60 0 总成本 (¥ ) 6580 使用 穷举搜索法 对该问题虽然能得出结果,但其运行效率太 低,不能用于求解大规模问题,且编程实现较复杂,不是一种优良的算法。 问题 2

21、和问题 3 1) 优化模型 9 问题 2 和问题 3 的优化模型为 111m i n 1Tn it it it it iittiF u f p u u S ( 14) .st 111m a x1, m a x0m a x1m in 111111111011inmit it jtijnit i itiNli ne k k l inj busl klit idi it riititit i it iti t i ttit ij ii t i tj t Tit it iitu p Lu p p Rp x p pppstr p p rup p u u u uu u u u Tu u u u 为 或 者

22、如 果 =0 且 =1 ; 或 =1 且 =0212itjij t TT( 15) 2)求解 算法 对于问题 2 和 3,我们同时采用 穷举搜索法和 遗传算法 两种算法进行求解,并将求得结果进行比较,以比较两种算法的优劣。 穷举搜索法 的算法思想与问题 1 的求解算法思想一致。遗传算法的流程图如图二所示。 10 图二 遗传算法流程图 矩阵实数编码遗传算法 的 描述 : Step1. 针对机组组合问题的矩阵实数编码 算法 开始 编码 确定适应值函数 产生初始种群 计算适应值函数 适应值定标 满足终止条件? 解码 确定最优解 输出最优解 算法结束 选择 交叉 变异 是 否 11 本文以要安排发电机

23、组起停计划作为遗传算法中的个体,采用实数矩阵形式进行编码。其具体形式为 11 12 1 121 22 2 21 2 1 21212, , ., , ., , , ., , .,tTtTTk t T i ni i it iTn n nt nTp p p pp p p pG V V V V R R R Rp p p pp p p p ( 16) 其中 : kG 为遗传种群中的第 k 个个体 itp 为编码矩阵中的第 i 行第 t 列元素,含义为发电机组 i 在 t 时段的发电出力 tV 为编码矩阵中的第 t 个列向量,含义为 t 时段内发电机组间的负荷分配情况 iR 为编码矩阵中的第 i 个行向量

24、,含义为发电机组 i 在发电计划制定周期 内的出力过程 发电机组的运行状态取决于矩阵中元素的具体取值,即根据机组在某时段中的出力大小来确定启停状态,具体表达式为 0, 01, itit pu 其 他 ( 17) Step2. 遗传种群初始化 遗传种群初始化时,按编码矩阵中列向量的顺序进行。以 kG 中 tV 为例,初始过程如下: ( 1)生成服从均匀分布的随机数数组 12R = r , ,., ,.,inr r r 1,2,.,in ( 18) 其中 : ir 为 在 发电机组 i 最 大最小出力之间随机生成的正数 ( 2)计算百分比系数数组 Per 12, , . . . , , . . .

25、 ,inp e r p e r p e r p e r p e r ( 19) 其中 :1ii niirperr 1,2,.,in ( 3)初始化各台发电机组的出力,即初始化 tV 12 12, , ., , ., Tt t t it n tV p p p p ( 20) 其中 : it i jtp perL 1,2,.,in jtL 为负荷 j 在 t 时段的负荷量 Step3. 个体调整方法 在进行个体调整时按列向量的先后顺序进行。以个体 kG 中 tV 为例,具体调整措施如下: ( 1)根据机组组合问题对精度的要求,对 tV 列中的各个元素保留 ( 2)调整 tV 列中的元素取值,使其满

26、足 相应 发电机组出力范围约束。其方法如下: m a x m a xm in m a x1m in m in m a x,0,i it iit i it iiti i it ip p pp p p ppp p p p 其 他( 21) 其中: itp 为调整前发电机组 i 在 t 时段的发电出力 1itp 为调整后发电机组 i 在 t 时段的发电出力 为介于 0、 1之间的常数,本文取 0.6 minip 发电机组 i 最小稳定运行出力; maxip 发电机组 i 最大出力; ( 3)调整 tV 列中的元素取值,使 其满足 相应 发电机组的增出力和降出力约束约束。具体如下: 111211111

27、,it r i it it r iit it d i it it d iit it d i it it r ip r p p rp p r p p rp p r p p r ( 22) 其中: 1itp 为 前一步 调整完成的发电机组 i 在 t 时段的发电出力 2itp 为此步调整后 的发电机组 i 在 t 时段的发电出力 dir 为机组 i 最大减出力 rir 为机组 i 最大增出力 13 ( 4)调整发电机组启 停状态使其 满足系统备用约束。具体调整方法如下: 当 m a x1ni t i i t ti u p p R 时,增开发电机组,令新投入运行的发电机组发电出力为其最小出力,直 至

28、满足 系统备用约束为止。其中, tR 为 t 时段 系统备用要求 ( 5) 经过上述三步调整后, tV 列中所 有元素的总和可能不等于 t 时段中的系统总负荷。因此要进行负荷分配的调整。具体的调整办法为:当11nmit it jtiju p L时,通过增加运行发电机组出力来满足负荷平衡约束;反之,若11nmit it jtiju p L,则降低运行发电机组的出力。此步调整中,只能在发电机组的最大出力允许范围内进行调整,不能改变机组的运行状态。 ( 6)算法趋于收 敛时,若发电机组的出力过程不满足最小运行、停运时间约束条件,则通过调整违反约束发电机组的运行状态满足此项约束条件,即: 11111i

29、tit ij ii t i t j t Tu u u u T 时,延长发电机组 i 的运行时间; 2121 1itit it ij iit j t Tu u u u T 时,采用将发电机组 i 违反约束的全部停运状态转变为运行状态的方式来满足约束条件,并令相应的出力为机组 i 的最小出力。 其中 : 1iT 为机组 i 最小运行时间; 2iT 为机组 i 最小停运时间; Step4. 适度函数的选取 采用个体调整方法后,在求解的过程中只有发电机组的最小运行、停运时间约束条件可能得不到满足。为了加快算法收敛,本文的适度函数采用如下形式: ()()it n ess k n iiAfGF m S (

30、 23) 其中: iS 为发电机组 i 违反最小运行或停运时间约束条件时的惩罚量,本文取 iS 为机组 i 的启动成本; 为惩罚因子,本文取 2 ; m 为违反此项约束的次数; A 为正常数,本文取 61.0 10A。其含义为:发电机组 i 违反 1次最小运行时间或停运时间约束,便以机组 i 的 2 倍的启动成本 iS 进行惩罚。 14 Step5. 选择 复制 ( 1) 群体中 各个体的选择概率 选择概率的计算公式为 : 1()()()itness ii nitness jjfxPxfx ( 24) 其中 : ()iPx 为第 i 个体的选择概率 ix 为第 i 个个体,即本文中机组 i 各

31、个时段的发电出力 ( 2) 赌轮选择法 赌轮选择法用下面的子过程来模拟 : 在 0,1 区间内产生一个均匀分布的随机数 r ; 若 1rq ,则染色体 1x 被选中 ; 若 1 ( 2 )kkq r q k n , 则染色体 kx 被选中。 其中 iq 称为染色体 ( 1,2,., )ix i n 的 积累概率 , 其计算公式为 1 ()iijjq P x( 25) Step6. 交叉 通过 Step5. 在父代中选择交配个体后,将准备进行交叉操作的父代个体表示为 1 1 1 1 11 1 22 2 2 2 212, , . . . , , . . . ,2 , , . . . , , . .

32、 . ,C C C C CtTC C C C CtTC G V V V VC G V V V V ( 26) 交叉操作产生的个体记为 1C 、 2C ,保留到子代中的个体记为 1O 、 2O 。本 文的交叉操作是在 2个父代个体奇数列与偶数列之间进行的。具体操作过程为: ( 1) 生成随机数 , (0,1) ;生成随机交叉位 ,1j j T 。 ( 2)交叉操作生成个体 1D 、 2D ,其表达式为 1 1 1 1 2 1 11 1 2 1 12 2 2 1 2 2 22 1 2 1 1, , . . . , , ( 1 ) , , . . . , , . . . , , ( 1 ) , ,

33、. . . ,C C C C C C Cj j j j TC C C C C C Cj j j j TD V V V V V V VD V V V V V V V ( 27) ( 3)对交叉生成的个体依照 Step3. 个体调整方法进行个体调整,然后计算出 1D 、 2D15 的适度值。 ( 4)采用局部锦标赛选择法在父代个体和交叉产生的个体间进行子代选择,具体方法如下: 1 1 12 2 2m a x ( ) , ( )m a x ( ) , ( )itn e s s itn e s sitn e s s itn e s sO f C f DO f C f D( 28) Step7. 变异

34、通过 Step6. 个体交叉后,将准备进行变异的父代个体表示为 1 1 1 11 1 22 2 2 22 1 2, , . . . , , . . . , , . . . , , . . . ,O O O OtTO O O OtTE V V V VE V V V V ( 29) 变异后产生的个体记为 1F 、 2F ,保留到子代中的个体记为 1I 、 2I 。 本文只对某列 进行变异处理。 具体操作过程为: ( 1) 生成随机变异因子 , (0 .0 4 5 0 .0 5 5 ); 生成随机变异时段 , (1 )T 且 为 整 数; 生成随机 变异个体选择因子 1, ( )0 个 体 发 生

35、变 异, 个 体 未 发 生 变 异( 2)变异后生成个体 1E 、 2E ,其表达式为 1 1 1 1 1 11 1 2 12 2 2 2 2 22 1 2 1, , . . . , ( 1 ) , , . . . , , . . . , ( 1 ) , , . . . ,O O O O O OTO O O O O OTH V V V V V VH V V V V V V ( 30) ( 3)对变异后生成的个体依照 Step3. 个体调整方法进行个体调整,然后计算出 1H 、2H 的适度值。 ( 4)采用局部锦标赛选择法在父代个体和变异产生的个体间进行子代选择,具体方法如下: 1 1 12

36、2 2m a x ( ) , ( )m a x ( ) , ( )itn e s s itn e s sitn e s s itn e s sI f E f HI f E f H( 31) Step8. 终止条件 遗传算法的终止条件有两类常见条件: 第一类:采用设定最大遗传代数的方法,一般可设为 50 代,此时就可能得出最优解。 第二类:根据个体的差异来判断,通过计算种群中基因多样性测度,即所有基因位16 相似程度来进行控制。 本文采用 第一类方法,将 1I 、 2I 个体 依照 Step3. 个体调整方法进行个体调整,然后计算出对应的适度值,直到第 G 代,循环迭代结束,输出最优解 Tc0。

37、 3)模型求解 利用 穷举搜索法和 遗传算法 可以分别求解 问题 1 和 2。 问题 2 利用 C+程序对 穷举搜索法 进行实现,然后求解,所得 结果 如表 二所示。 表 二 问题二 穷举搜索法 求解结果 机组 G1 机组 G2 小时 1 状态 运行 关机 出力 (MW) 100 0 备用 (MW) 100 0 2 状态 运行 运行 出力 (MW) 110 20 备用 (MW) 90 80 3 状态 运行 运行 出力 (MW) 110 60 备用 (MW) 90 40 4 状态 运行 运行 出力 (MW) 100 40 备用 (MW) 100 60 总成本 (¥ ) 6820 利用 MATLA

38、B 程序对 遗传进行实现,然后求解。 由于遗传算法具有随机性,所程序每次运行所得的结果有略微差别,我们 从多次运行的解 中 选取 总成本最小的 一组 机组组合计划 , 结果 如表 三所示。 表 三 问题二遗传算 法 求解结果 机组 G1 机组 G2 小时 1 状态 运行 关机 出力 (MW) 100 0 备用 (MW) 100 0 2 状态 运行 关机 出力 (MW) 130 0 备用 (MW) 70 0 3 状态 运行 运行 出力 (MW) 150 20 备用 (MW) 50 80 4 状态 运行 运行 出力 (MW) 120 20 备用 (MW) 80 80 总成本 (¥ ) 6780 1

39、7 从问题 2 两种算法 的求解结果中我们可以发现,遗传算法的求解结果优于 穷举搜索法 ,但遗传算法有一定的随机性, 有时 需多运行几次才能得到最优解。 且遗传算法比 穷举搜索法 更容易实现。 问题 3 利用 穷举搜索法和 矩阵实数编码 遗传算 法分 别求 解 问题 3。 穷举搜索法 求解结果 见附 录三 。 由于 矩阵实数编码 遗传算法 得到的成本最小值 具有 一定的 随机性, 且随算法中迭代次数的变化而变化, 所程序每次运行所得的结果有略微差别 。为求得更为精确的结果,我们变换迭代次数 ,以判断迭代多少次为最优 (这里取 30、 50、 100 次的结果), 见图三、四、五,详细结果 见

40、附录 四 、 五 图三 迭代 30 次的运行结果 图四 迭代 50 次的运行结果 18 图五 迭代 100 次的运行结果 我们从多次运行的结果中选取 最优机组组合计划, 使用矩阵实数编码 遗传算法求得的最优解为迭代次数为 50 次(总成本、各小时各机组的状态、各小时各机组的发电出力和各小时提供的备用)见附录五 从问题 3 的求解结果中,通过 不同迭代次数之间的比较以及穷举搜索法与 矩阵实数编码 遗传算法 的对比分析, 看出 矩阵实数编码 遗传算法 在进行大规模机组组合问题求解时,具有很强的适应性和全局搜索能力,而且系统规模越大算法的优化结果越理想。 因此,矩阵实数编码 遗传算法的求解结果优于

41、穷举搜索法,但矩阵实数编码 遗传算法 有一定的随机性,需多运行几次才能得到最优解。 六、 模型的改进及评价 6.1 模型的改进 模型改进一: 机组组 合优化模型 I 与 II 的改进 在机组组合优化模型 I、 II 中,通过二次函数对 空载成本和增量成本曲线参数进行拟合过程中,采用二次函数拟合误差比较大(增量成本变化幅度比较小),特别是机组规模比较小的时候更是如此。 鉴于此种情况,当机组规模比较大时,可以采取平滑曲线进行拟合。如问题三,可以利用二次函数进行拟合,根据运行结果可以看出误差更小,机组启停更合理,发电成本更小。 此外,当机组规模相对较小时,可以不进行曲线拟合,直接采取分段函数,编程求

42、解。如问题一和二,利用 C+编程,采取穷举搜索法求解,精度会更高。 模型改进二 : 基于矩阵实数编码遗传算法的改进 在矩阵实数编码遗传算法步骤中,根据实际情况(如机组规模,时段等问题)可以对各步骤进行优化或改进。如 Step7 变异,本文实在时段内列向量进行的,相当于发电机组 i i 在不同时段发电出力的重新调整。因此 ,还可以采用多窗口变异操作 【 1】 。此操作是在个体内行向量间进行的,相当于在不同发电机组间进行发电出力的重新调整。此法19 具有经济负荷分配的功 能,并且,由于是同时进行多个时段的负荷分配调整,故执行效率较高。当然,二者相结合,效果更佳。 6.2 模型的评价 优点: 第一,

43、提供了一种求解多变量、多约束的混合整数非线性规划的机组组合优化问题的思路,此方法新颖可靠易行,极具参考价值。 第二,采用 MRCGA 算法求解机组组合问题的新方法。利用二维实数矩阵对发电计划安排进行编码,将机组组合问题转化为单层优化问题进行求解,因而降低了算法的时间复杂度。运用个体调整方法处理各项约束条件,确保了优化结果的可行性,使该算法更易于应用实际。 第三, 矩阵实数编码遗传算法( MRCGA)适合求解大规模机组组合问题。通过MATLAB 仿真计算、不同迭代次数比较分析以及同其他方法(如穷举法)的对比分析,验证了该方法在进行大规模机组组合问题求解时,具有很强的适应性和全局搜索能力,而且系统

44、规模越大算法的优化结果越理想。 缺点: 第一,采用 二次函数对 空载成本和增量成本曲线参数进行拟合过程中,拟合误差比较大。特别是机组规模比较小时更是如此。 第二, MRCGA 算法对小规模机组组合问题求解结果精度不高,误差大。 参考文献 : 1 刘琼荪,龚劬,何中市,傅鹂,任善强,数学实验,北京:高等教育 出版社, 2004 2 姜启源,谢金星,叶俊,数学模型,北京:高等教育出版社, 2006 3 孙力勇,张焰,蒋传文 , 基于矩阵实数编码遗传算法求解大规模机组组合问题 , 中国机电工程学报 , 第 26 卷( 2 期), 2006 4 赵东方,数学模型与计算,北京:科学出版社, 2007 附

45、 录 附录 1 问题 1 的 C+求解程序 #include #include using namespace std; double cost1(double x); double cost2(double x); int get_total_price(); void fun(int i); ofstream fout(“11.doc“); 20 const int hour = 5; / 最大出力 int pmax2 = 200, 100; / 最大增出力 int pcmax2 = 30, 40; / 最大减出力 int pdmax2 = 50, 60; / 状态 int state2h

46、our = 1, 0; / 负荷 int demand5 = 0, 100, 130, 170, 140; / 启动费用 int start2 = 350, 100; / 机组各时段状态 int power25 = 100, 0; / 系统备用要求 int b_powerhour = 0, 20, 30, 50, 40; / 最小费用 int minprice = 9999999; int main() fun(1); return 0; / 机组 1 成本 double cost1(double x) if (x price ? price: minprice); /cout 200) continue; 22 / 机组 1 增出力和减出力约束 if ( (power0i-power0i-1) pcmax0) / 机组 2 / 负荷平衡约束 power1i = demandi - power0i; / 机组 2 出力范围约束 if (power1i 100) continue; / 机组 2 增出力和减出力约束 if ( (power1i-power1i-1) pcmax1) /

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报