电气博文传送门
学好电气全靠它,个人电气博文目录(持续更新中…)

理论


书上例子预备知识

解释:

import numpy as np
#A节点与发电机组关联矩阵
"""发电机组1,发电机组2,发电机组3
节点1
节点2
节点3
"""
A=np.array([[1,1,0],[0,0,1],[0,0,0]])
#B节点与负荷关联矩阵
"""节点2负荷,节点3负荷
节点1
节点2
节点3
"""B=np.array([[0,0],[1,0],[0,1]])
#S为节点与支路关联矩阵。其支路始节点对应元素为1,终节点对应-1
""" 支路12 ,支路13,支路23
节点1
节点2
节点3   """
S=np.array([[1,1,0],[-1,0,1],[0,-1,-1]])
#X为支路电抗矩阵,它是一个对角阵,对角元素为各支路电抗值,其余元素为0
X=np.array([[0.25,0,0],[0,0.25,0],[0,0,0.25]])

正文-书上算例

不考虑网络约束

考虑网络约束

正文-书上算例求解

目标函数如图

不看这个图,我用脑子想一下
网络安全约束,顾名思义 就是在普通调度上,同时是潮流满足约束,KCL,KVL等

于是我们可以理解为优化目标为传统的经济调度优化目标
约束分别为

  • 等式约束 输入功率=负荷。
  • 不等式约束 ,发电机组的上下限。
  • 等式约束 潮流满足KCL,KVL 。(当是我们通过转移因子算法求出潮流时,其潮流本身就满足KCL,KVL),这是该等式约束我们转换为 潮流的上下限约束。

转移因子算法求潮流

#节点功率净输入向量
Pinj=[PG1,PG2,PG3-PD3]

#SF矩阵格式如下,为某个节点注入功率时, 功率要从参考节点流出
取参考节点为1

- 节点1注入1功率时, 节点2注入1功率时 节点3注入1功率时
支路1-2 0(从节点1流入,从参考节点1流出,即不走支路1-2) -2/3 此时电流方向为2指向1,与1-2相反,所以为- ,根据图可以求得数值2/3 -1/3
2倍支路1-3 0 -1/3,此时电流方向是3指向1 -2/3
支路2-3 0 1/3 -1/3

得到潮流方程

展开得到图3-5的潮流如下

 PD3 = 800PL12 = -(2 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3PL13 = (-(1 / 3) * PG2 - (2 / 3) * PG3 + (2 / 3) * PD3) * 0.05PL23 = (1 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3

编程语言:python

import numpy as np
from scipy import  optimize as opt
import numpy as np
from scipy.optimize import minimize
# 目标函数
def objective(x): #=原文中的mincost p11=x[0]p12=x[1]p13=x[2]p21=x[3]p22=x[4]p23=x[5]p31=x[6]p32=x[7]p33=x[8]return (40*p11+50*p12+57.5*p13+43.75*p21+46.25*p22+48.75*p23+55.8*p31+57*p32+58.2*p33)# 约束条件
def constraint1(x):  #等式约束pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33return pI11+pI12+pI13+pI21+pI22+pI23+pI31+pI32+pI33-550#return PG1+PG2+PG3-800#上下限
pI11=(0,200)
pI12 = (0,200)
pI13 = (0,100)
pI21 = (0,100)
pI22 = (0,100)
pI23 = (0,100)
pI31 =(0,50)
pI32 = (0,50)
pI33 = (0,50)bnds=(pI11,pI12,pI13,pI21,pI22,pI23,pI31,pI32,pI33)# 约束条件
def constraint2(x):  #不等式约束 线路PL12 《=300pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL12 = -(2 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3return 300-np.abs(PL12)# 约束条件
def constraint3(x):  #不等式约束 不等式约束 线路PL13 《=300pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL13 = (-(1 / 3) * PG2 - (2 / 3) * PG3 + (2 / 3) * PD3) * 0.05return 300-np.abs(PL13)# 约束条件
def constraint4(x):  #不等式约束 不等式约束 线路PL23 《=330pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL23 = (1 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3return 330-np.abs(PL23)con1 = {'type': 'eq', 'fun': constraint1}
con2 = {'type': 'ineq', 'fun': constraint2}
con3 = {'type': 'ineq', 'fun': constraint3}
con4 = {'type': 'ineq', 'fun': constraint4}
cons = ([con1,con2,con3,con4])  # 4个约束条件if __name__ =='__main__':# 初始值x0 = np.random.uniform(10, 400, 9)# 计算solution = minimize(objective, x0, method='SLSQP',bounds=bnds, constraints=cons)x = solution.xpI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]#PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL13 = 0.5 * ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG2) / (0.01 + 0.01 + 0.01)PL12 = ((0.01 + 0.01) * PG2 + 0.01 * (PG3 - 800)) / (0.01 + 0.01 + 0.01)PL23 = ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG1) / (0.01 + 0.01 + 0.01)print('PG1',PG1)print('PG2', PG2)print('PG3', PG3)print('PL13',np.abs(PL13))print('PL12',np.abs(PL12))print("PL23",np.abs(PL23))

结果如图,本代码比书上给的方法简单得多。

更多优化算法见

python求解带约束目标优化问题(非线性规划,粒子群,遗传,差分进化)

进阶版论文程序链接:电气期刊论文实现:考虑爬坡约束和输电损耗的经济调度【有代码】

难点:理解转移因子法求潮流


作者:电气-余登武。写作不容易,如果你觉得本文不错,请点个赞支持下。

给书配代码-电力经济调度(3):计及网络安全约束的经济调度模型相关推荐

  1. 给书配代码-电力经济调度(2):计及动态约束及节能环保要求的经济调度

    电气博文传送门 学好电气全靠它,个人电气博文目录(持续更新中-) 本博文系列为我解读电力调度书籍,然后根据自己的理解配上程序. 知识点 1.动态模型 电力经济调度(ED)通常只针对一个时段进行优化,如 ...

  2. 给书配代码-电力经济调度(1):基于拉格朗日及运筹规划方法的经济调度算法

    电气博文传送门 学好电气全靠它,个人电气博文目录(持续更新中-) 知识点 电力经济调度(Economic Dispatch, ED)的目标是追求某个研究时段内所有开机机组(Committed Unit ...

  3. 给书配代码-电力经济调度(4):有功与辅助服务联合经济调度

    电气博文传送门 学好电气全靠它,个人电气博文目录(持续更新中-) 知识点 电力市场环境中,辅助服务包括备用.无功和黑启动等,其中,无功和黑启动一般都通过与发电公司签订中长期合同提供,备用服务则可通过竞 ...

  4. 【2022年华为杯数学建模E题赛后总结加思路详细介绍配代码----10月11号写的总结】

    提示:下文将介绍2022年华为杯数学建模E题赛后总结加思路详细介绍配代码 傻逼队友,傻逼队友,傻逼队友一定要看好人在进行组队,这是劝告. 这里有几点总结进行描述: 第一,图一定要尽量多,对图的解释要多 ...

  5. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)

    本文引自图灵教育<算法图解> 你一定能看懂的算法基础书:代码示例基于Python:400多个示意图,生动介绍算法执行过程:展示不同算法在性能方面的优缺点:教会你用常见算法解决每天面临的实际 ...

  6. 损人不利己的飞鸽传书 部分代码公开

    现在很多U8K8优化人员喜欢做损人不利己的飞鸽传书 部分代码公开,比如喜欢在别人的OpenEIM上挂黑链,通过植入木马让别人给你抬轿,这种方法虽然一时能够让你OpenEIM排名快速提升,但是一旦被百度 ...

  7. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part3

    本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part3,辑录该书第135至第184页之代码,供有需要读者下载研究使用.代码执行结果请参见原书配图. --------- ...

  8. python实验原理_【python】《统计学原理实验教程(Python)》书中代码实现

    代码已经上传至GitHub <统计学原理实验教程(Python)>书中代码实现 简介 <统计学原理实验教程(Python)>是厦门大学出版社在2019年出版的图书,主要通过py ...

  9. html jquery 翻页效果代码,jquery实现的点击翻书效果代码

    本文实例讲述了jquery实现的点击翻书效果代码.分享给大家供大家参考,具体如下: 这是自写一个翻书的Js效果,基于jquery-1.4.2.min.js插件实现,还正在完善中,希望大家能喜欢,我觉得 ...

最新文章

  1. Castle ActiveRecord学习(四)延迟加载、分页查询、where条件
  2. java 获得天气预报信息
  3. 人脸特征点定位之Explicit Shape Regression
  4. 程序员要学会读源代码
  5. winxp不加载oracle服务器,WinXP系统开机提示“windwos不能加载用户的配置文件”怎么办...
  6. nginx配置文件nginx.conf
  7. apso matlab,APSO算法指导
  8. 锁屏界面_强迫症必爱!iPhone怎样隐藏锁屏界面的手电筒、相机图标?
  9. Python basemap模拟导弹发射
  10. 资深程序员和你重学五线谱 - 第一篇
  11. 弹出usb大容量储存设备时出问题
  12. word怎么删除参考文献的横线_2016版Word 中参考文献上面的横线是怎么去掉的啊,求助求助?...
  13. 【解题报告】Kattis - adjoin 树形dp
  14. sxt_1_struts2入门_hello
  15. 怎样做出完美的高达模型
  16. 关于Windows聚焦一直保持一个图不变或者不显示
  17. OPPO手机怎么找到快应用入口
  18. 在vue新版脚手架中下载和使用jquery
  19. Java银行管理系统
  20. 联想台式计算机g50500i,联想台式电脑的价格及配置

热门文章

  1. bilibili怎么设置弹幕数量_python爬虫:bilibili弹幕爬取+词云生成
  2. ElasticSearch下载安装教程详解【7.10版本】
  3. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01
  4. Vue-CLI——自定义title解决方案
  5. JAVA——Scanner类绑定System.in后调用close()方法所引发的错误及其解决方案
  6. IDM——服务器响应显示您没有权限下载此文件(百度网盘下载问题)
  7. Complex Congratulation β
  8. 学习笔记(Spring事务管理)
  9. C++阶段02笔记【通讯录管理系统 完整代码(系统需求、创建项目、添加/显示/删除/查找/修改/清空)】
  10. Bug整理——Spring boot 执行Junit Test时不加载Application中的参数的问题