目录

  • 前言
  • case14文件
    • system MVA base
    • busdata(总线参数)
    • generator data(发电机参数)
    • branch data(支路参数)
    • generator cost data(发电机耗损参数)
    • bus name(总线名称)
    • 总结
  • runopf文件
    • 输入值(可选)
    • 返回值(可选)
    • 调用方式
    • 代码内容
  • 总结
    • 文件功能
    • 如何用来做安全估计的仿真
  • 问题

前言

我们以最优潮流的计算来研究MATPOWER工具本质原理,为了后续做电网攻击检测仿真做技术铺垫。
我们知道运行IEEE标准14电网模型的最优潮流计算的方法为:

runopf('case14')

这条语句在Matlab中涉及两个文件:

  • runopf.m
  • case14.m

我们来分别来考察文件内容。

case14文件

该文件为IEEE 14总线潮流数据测试用例。猜想是给出了IEEE标准14总线电网的所有参数,文件内的参数矩阵如下。

system MVA base

据说电力中的MVA是变压器容量单位或者是功率的单位或者发电机发电功率单位等。baseMVA是一个标量,用来设置基准容量。这个数值保持默认100即可。

busdata(总线参数)

包含参数以及其含义:

  • bus_i用来设置母线编号,范围为1~29997。
  • type用来设置母线类型,1为PQ节点,2为PV节点,3为平衡节点;
  • Pd用来设置母线注入负荷的有功功率
  • Qd用来设置母线注入负荷的无功功率
  • Gs用来设置与母线并联的电导
  • Bs用来设置与母线并联的电纳
  • area 用来设置电网断面号,可设置范围为1~100,一般设置为1
  • Vm用来设置母线电压的幅值初值
  • Va用来设置母线电压的相角初值
  • baseKV用来设置该母线的基准电压
  • zone用来设置省耗分区号,可设置范围为1~999,一般设置为1
  • Vmax用来设置工作时母线电压最高幅值
  • Vmin用来设置工作时母线电压最低幅值

所以这些都是标准IEEE电网的总线参数,是一定的。 在动态估计的应用里应该是动态的(随时间变化)

generator data(发电机参数)

  • bus用来设置接入发电机的母线编号
  • Pg用来设置接入发电机的有功功率,注意功率输入的是有名值
  • Qg用来设置接入发电机的无功功率
  • Qmax用来设置接入发电机的无功功率的最大允许值
  • Qmin用来设置接入发电机的无功功率的最小允许值
  • Vg用来设置接入发电机的工作电压,注意输入的是标幺值
  • mBase用来设置接入发电机的功率基准
  • status用来设置发电机的工作状态,1表示投入运行,2表示投出运行
  • Pmax用来设置接入发电机的无功功率的最大允许值
  • Pmin用来设置接入发电机的无功功率的最小允许值
  • 其余的Pc1,Pc2,Qc1min,Qc1max,Qc2min,Qc2max,ramp_agc,ramp_10,ramp_30,ramp_q,apf均表示发电机其他特征量,在实际计算中可以设置为0

所以这些都是标准IEEE电网的发电机参数,是一定的。 (待商榷)

branch data(支路参数)

  • fbus用来设置支路起始节点编号
  • tbus用来设置支路终止节点编号
  • r用来设置该支路电阻,注意阻抗导纳等参数输入的都是标幺值
  • x用来设置该支路电抗
  • b用来设置该支路电纳
  • rateA用来设置该支路长期允许功率
  • rateB用来设置该支路短期允许功率
  • rateC用来设置该支路紧急允许功率
  • ratio用来设置该支路变比,若该支路仅仅为导线则设置为0,若含有变压器,则该变比为fbus侧母线基准电压与tbus侧基准变压之比
  • angle用来设置支路的相位角度,如果支路元件为变压器,则就是变压器的转角,如果支路元件不是变压器,则相位角度为0度
  • status用来设置支路工作状态,1表示投入运行,0表示退出运行

所以这些都是标准IEEE电网的支路参数,是一定的。 在动态估计的应用里应该是动态的(随时间变化)

generator cost data(发电机耗损参数)

注意:如果generator cost有n个generator行,那么cost矩阵的前n个generator行包含相应发电机产生的有功功率的成本。
如果generator cost有2n个generator行,那么行ng+1到2ng包含相同格式的无功成本
以下按照顺序:

  • model 1-分段线性 2-多项式;
  • startup 以美元计算的启动成本;
  • shutdown 以美元计算的关闭成本;
  • N(=n+1)定义n段分段线性代价函数所遵循的数据点的个数,或定义n阶多项式代价函数的代价系数的个数;
  • 后面的参数是损耗函数的细节。

以上的内容保持默认不必更改。

bus name(总线名称)

顾名思义

总结

所以各种case文件只是包含了IEEE标准的电网的参数,可以说是一种模型例。MATPOWER的核心还是在于runopf文件。
备注:如果需要查看数据格式意义请在matlab命令行输入

help caseformat

runopf文件

调用形式为:

[RESULTS, SUCCESS] = RUNOPF(CASEDATA, MPOPT, FNAME, SOLVEDCASE)

输入值(可选)

参数 输入
CASEDATA case结构或包含文件名称和case数据的字符串(默认为’case9’)
MPOPT 用于指定解决方案算法、输出选项终止容限等
FNAME 将输出写入文件,文件名
SOLVEDCASE 将以MATPOWER大小写格式保存的文件名

返回值(可选)

参数 返回
RESULTS 结构包含以下字段:Order - 内外数据转换; et-时间,单位为秒;success标志,1 =成功,0 =失败
SUCCESS 成功标志,可以在第二个参数单独返回

调用方式

results = runopf;
results = runopf(casedata);
results = runopf(casedata, mpopt);
results = runopf(casedata, mpopt, fname);
results = runopf(casedata, mpopt, fname, solvedcase);
[results, success] = runopf(...);

同时,为了与以前的MATPOWER版本兼容,一些结果可以作为单独的输出参数返回:

 [baseMVA, bus, gen, gencost, branch, f, success, et] = runopf(...);

举例如

results = runopf('case30');

代码内容

主要是做一些“外围工作”,比如默认参数预设、输出、输出写入文件等。
核心是调用了另一个文件opf.m,而文件opf.m又调用了opf_args.m文件。事实上整个软件的程序包基本上是嵌套关系(指的是进行运算的函数文件),顶层文件通过调用函数文件来完成各个模块的运算工作,然后将结果整合输出。

总结

文件功能

就目前我的理解来说,软件程序做的是利用已知的系统参数,来求解当前各个节点的电压等参数。而系统参数就来自诸如case14等参数文件。

如何用来做安全估计的仿真

因此对于安全估计的仿真应用来说,需要的节点参数数据是随时间动态变化的(才能做估计),因此需要设置系统参数是随时间动态变化。

具体而言,应该是通过编写case文件中的参数矩阵,使得矩阵中的某些参数随着时间动态变化(目前还没确定是哪些矩阵中的哪些参数会动态变化,经过初步的思考和搜索,考虑到动态变化主要是由于用户端的用电波动产生,因此动态变化的参数应该在bus总线端和branch分支端的矩阵中)。

依据网友所述,为了用matpower做24小时的最优潮流调度,使用脚本动态修改case9.m中的bus矩阵数据,脚本代码可以实现如下:

load=xlsread('D:\opf\data.xlsx','sheet1','a1:i24');
mpc=loadcase('case9');
for i=1:24
mpc.bus(:,3)=load(i,:);
result=runopf(mpc)
end

关于负荷数据的获取:

24小时负荷数据可以下载网上共享的新英格兰电力数据,里面有好多年的数据集。

一句话总结:后续应当是要在case上做文章体现动态,利用matpower计算得到节点动态参数。利用估计方法对节点进行量测和估计。

问题

现在相当于是产生了动态变化的各节点数据(属于量测数据),但是系统模型是怎样的?

MATPOWER工具本质原理解析相关推荐

  1. UnityEditor蒙皮动画SkinnedMeshRenderer 使用骨骼RootBones的Gizmos可视化工具和原理解析

    Unity的蒙皮动画 在UnityEditor,使用SkinnedMeshRenderer承载蒙皮动画 帧动画和骨骼动画,蒙皮动画等等理论,还是得抽空学习一下的, 但要是在不懂原理的情况下(不懂比似懂 ...

  2. [原创工具] 文件MD5批量修改工具及原理解析(附C#源码)

    1.首先告诉大家怎么查看文件的MD5码,命令窗口中输入如下命令: certutil -hashfile 文件名.后缀 MD5 2.原理剖析: 当某个文件的某段数据改变了,哪怕是变了一个字节,那么这个文 ...

  3. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  4. Android 插件化原理解析——Hook机制之AMSPMS

    在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...

  5. 【Hadoop】HDFS操作、数据上传与下载原理解析、高级特性及底层原理

    HDFS操作.数据上传与下载原理解析.高级特性及底层原理 1 HDFS操作 1.1 Web Console网页工具 1.2 命令行 1.2.1 普通的操作命令 1.2.2 管理员命令 1.3 Java ...

  6. 大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书) - 电子书下载 -(百度网盘 高清版PDF格式)...

    大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书)-杨传辉 在线阅读                   百度网盘下载(89hy) 书名:大规模分布式存储系统:原理解析与架构实战 (大数据技 ...

  7. MSN,QQ,IP Messenger,飞鸽传书,的工作原理解析

    MSN,QQ,飞鸽传书,的工作原理解析 http://apps.hi.baidu.com/share/detail/14190263 关键字:MSN,QQ,飞鸽传书,IP Messenger,传文件, ...

  8. 私有密钥与公钥的用途与原理解析

    私有密钥与公钥的用途与原理解析 数字签名是什么? 作者: 阮一峰        http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_sig ...

  9. 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧

    前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...

  10. 分布式一致性协议 Gossip 和 Redis 集群原理解析

    分布式一致性协议 Gossip 和 Redis 集群原理解析 Redis 是一个开源的.高性能的 Key-Value 数据库.基于 Redis 的分布式缓存已经有很多成功的商业应用,其中就包括阿里 A ...

最新文章

  1. 简单总结一下 XSS
  2. uva1511(找规律。。。)
  3. QML基础类型之data
  4. 福州3 2五年制计算机专业的学校,福州有哪些五年制大专
  5. 交叉编译出现skipping incompatible_交叉编译bluez-5.50
  6. Linux-获得命令帮助man
  7. Microsoft SQL Server 2000整合规划
  8. eclipse如何开发python
  9. android webview 字体被放大,Android WebView文字大小调整及页面缩放调整
  10. tar 打包压缩命令
  11. 微信小程序图片上传java后台
  12. NFS 服务器启动失败
  13. 脉冲时间宽度c语言,什么是脉冲宽度_脉冲宽度是什么意思
  14. LCA 最近公共祖先 (倍增算法)
  15. 基于JAVA HAPI包以树形结构实现可配置式 HL7消息接收与解析
  16. EMW3080 STC15轻松实现设备上云3(阿里云物联网平台、智能生活开放平台)
  17. BZOJ 3168: [Heoi2013]钙铁锌硒维生素 [线性基 Hungary 矩阵求逆]
  18. 如何用Windows命令提示符(cmd.exe)进入指定目录
  19. Python之王者荣耀文字游戏,以及小知识回顾
  20. 别样肉客与星巴克继续合作 在内地推出别样牛肉™烧烤风味三明治

热门文章

  1. MySQL语句判断新老客_数栖云应用场景实践——老客召回(文字版教程)
  2. 交通流理论3——交通流三大参数
  3. 爬虫----记录某新闻详情页app逆向过程(app逆向初学第一次实战)
  4. 最大流(Max Flow)
  5. 虚拟机中centos7找不到vim命令的解决方法
  6. ie8升级到ie11
  7. 表单构建html的页面代码,网页设计表单制作代码 制作一个很简单网页表单代码...
  8. 图书馆管理系统可行性分析报告----软件工程
  9. 软件需求说明书/ 概要设计说明书/项目开发计划/详细设计说明书(说明要点及要点解释)
  10. springboot整合aceadmin