基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具

基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具

文章目录

  • 基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具
    • 一、软件介绍
    • 二、软件功能
      • 1、数据输入
    • 2、潮流作业设置
    • 3、 潮流结果报表及可视化
    • 三、 软件设计思路
      • 1 、牛顿拉夫逊法潮流计算
      • 2、 PQ 分解法潮流计算
      • 3、 数据预处理
      • 4、 结果可视化
      • 5、连续潮流计算分析
      • 6、UI 交互设计
    • 四、 算例及测试结果
    • 五、源程序及测试数据下载

一、软件介绍

本工具是一款面向初学者的电力系统潮流仿真工具,数据输入格式和操作方法与 PSASP 电力系统分析软件类似,但功能更加精简,专注于电力系统潮流计算。目前软件可支持常规潮流计算(PQ 分解法、牛顿拉夫逊法)功能、潮流计算结果输出报表功能和连续潮流计算分析功能。目前软件已在 WSCC9 节点系统进行测试,潮流计算结果与 PSASP 相比,误差在 1e-4~1e-5 数量级左右,此计算精度证明了软件后端代码的正确性。
软件后端基于 MATLAB 开发,自定义函数包括 PQ 分解法、牛顿拉夫逊法潮流计算函数、节点导纳矩阵生成函数、数据预处理函数等。软件前端采用 MATLAB App Designer 工具设计,利用系统控件回调函数实现 UI 互。
在这里插入图片描述

二、软件功能

1、数据输入

在软件主界面左侧栏可以输入系统数据信息,包括母线信息(母线名称、基准电压、节点类型)、交流线信息(交流线名称、I、J 两侧连接母线名称、交流线阻抗参数和对地导纳参数)、变压器信息(变压器名称、I、J 两侧连接母线名称、变压器变比、阻抗参数)、发电机信息(发电机名称、所连接母线名称、有功出力和机端电压)、负荷信息(负荷名称、所连接母线名称、有功和无功消耗)。此外,与 PSASP 软件不同的是,PowerFlower 在系统数据信息输入方面还包括转移节点信息,转移节点是一类没有注入功率的节点,一般是发电机升压变压器的高压侧母线,在 PowerFlower 的计算中视为 P=0,Q=0 的 PQ 节点。节点(母线)信息输入:在左下角输入母线名称、基准电压、节点类型,点击确定按钮,输入信息将在系统数据信息中的母线表格中呈现,可以检查输入是否正确。
在这里插入图片描述

2、潮流作业设置

在软件主界面中间侧单线图下方可定义潮流作业,设置信息有计算电压上限、计算电压下限、计算方法、最大允许误差、最大迭代上限。当计算过程中电压超过上下限时,将停止迭代。计算方法可选择 PQ_DeCoupled(PQ 分解法)或 Newton(牛顿法),PQ 分解法的计算速度较快,但所用迭代次数相比于 Newton 法更多。其中最大允许误差可控制潮流计算结果的精度,最大允许误差越小,精度越高,但计算代价更大。当程序达最大迭代次数上限时,如果计算结果仍不满足精度要求,则跳出迭代,认为此次潮流作业不收敛,数据存在较大的错误。
在这里插入图片描述

3、 潮流结果报表及可视化

完成潮流作业设置后,选择确定按钮,即可开始潮流计算。若潮流计算结果正确收敛,则跳出弹框显示潮流计算用时,如图 所示,如果潮流计算未能正常收敛,迭代次数已达到最大迭代上限,则跳出警告弹窗。
在这里插入图片描述
当潮流计算作业完成后,可选择主界面右侧结果输出报表按钮,潮流计算结果将在右侧表格中显示,目前仅设置了母线和交流线潮流报表。同时,节点(母线)电压幅值和相角计算结果将在主界面中间的系统单线图中呈现。
在这里插入图片描述

三、 软件设计思路

1 、牛顿拉夫逊法潮流计算

牛顿拉夫逊法的潮流计算主要由函数 powerFlowNewtonCalcu.m 实现,其中函数的输入包括总节点数量、PQ 节点数量、PV 节点数量、Slack 节点数量、节点电压初值、节点相角初值、节点导纳矩阵的实部虚部、初始给定有功和无功功率以及容许的最大误差,输出为节点电压赋值和相角的终值以及每次迭代过程中的节点电压赋值及相角的值,反映迭代过程。

2、 PQ 分解法潮流计算

PQ 分解法的潮流计算主要由函数 powerFlowPQCalcu.m 实现,其中函数的输入包括总节点数量、PQ 节点数量、PV 节点数量、Slack 节点数量、节点电压初值、节点相角初值、节点导纳矩阵的实部虚部、初始给定有功和无功功率以及容许的最大误差,输出为节点电压赋值和相角的终值以及每次迭代过程中的节点电压赋值及相角的值,反映迭代过程。
程序设计总体思路与牛顿拉夫逊法类似,不同的是,牛顿拉夫逊法需要求解的线性方程组的系数矩阵(雅可比矩阵)是随着迭代过程而变化的,PQ 分解法需要分别求解两组系数矩阵(B’ B”)固定不变的线性方程组。由于需要反复求解系数矩阵固定的线性方程组,考虑算法速度的情况下,可以采用 LU 分解的方法提高算法度。

3、 数据预处理

数据预处理的作用是通过软件输入信息获得总节点数量、PQ 节点数量、PV 节点数量、Slack 节点数量、节点电压初值、节点相角初值信息,同时由于用户输入不能确保按照 PQ 节点、PV 节点、平衡节点的顺序输入,而在之后的潮流计算中又按照 PQ节点、PV 节点、平衡节点的顺序形成修正方程式(8)和(16),因此还需要对用户输入的节点(母线)信息进行排序。

4、 结果可视化

潮流计算结果包括节点电压幅值和相角信息、交流线上的有功潮流和无功潮流信息。可以采用报表输出和显示在单线图中两种方式进行展示。系统单线图绘制采用 graph 函数,可以通过输入节点对构造图,也就是交流线的I 侧连接母线和 J 侧连接母线的信息。在 graph 构造的图中可以对节点进行标注,从而可以用来显示节点电压幅值和相角信息。同时,可以通过 MATLAB 内置的 writematrix 函数将节点电压幅值和相角信息写入 txt 文本文件。

5、连续潮流计算分析

连续潮流计算分析包括观察调整发电机有功出力、调整负荷有功或无功消耗等措施对潮流的影响。由于单次潮流计算由函数 powerFlowPQCalcu 或 powerFlowNewtonCalcu 控制,因此只需要借助 for 循环,每次循环开始时按设置的步长更新系统参数,即可得到连续潮流结果。连续潮流结果的绘制借助 matlab 的绘图工具包完成。

6、UI 交互设计

MATLAB AppDesigner 工具可以实现由源码到 App 的设计,从而使得程序具有可交互性。AppDesigner 是一种面向对象的开发方式,其中 UI 交互界面的设计可以通过AppDesigner 软件左侧的组件以拖拽的方式形成软件主界面。当拖拽组件到主界面时,MATLAB 自动为该组件类创建了一个对象,一般会包含位置、字体和颜色、交互性等属性,可以通过编写回调函数(BackCall Function)实现交互功能。

四、 算例及测试结果

本程序中采用 WSCC9 节点系统作为测试算例,从计算精度、计算速度方面与PSASP 软件计算结果对比,并 进行 WSCC9 节点系统潮流分析。

五、源程序及测试数据下载

源程序及测试数据下载地址:基于 MATLAB 和 App Designer 的 UI 交互框架开发的一款电力系统潮流计算工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言操作符详解(三)

一、表达式求值 1.1整型提升 C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。 如何进行整型提升呢? 1. 有符号整数提升是按…

高并发高性能接口中,异步打印并采集业务日志的实现方案

一、背景 高并发接口中,为了提高接口的高性能,在需要保存审计及操作记录的时候,往往有以下常见方案: 保存到redis数据库异步保存到mysql/mongodb/es等数据库logger打印业务日志,采集与展示则交由elk模块 对于第一种…

基于Springboot的箱包存储系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的箱包存储系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

【web开发01】前端开发HTML、CSS-新浪新闻的实现

前端开发HTML、CSS-新浪新闻的实现 1 实现标题排版1.1图片连接的三种方式1.2 具体代码1.3 总结1.< h1>到< h6>是标题从大到小 2 实现标题样式2.1 css的三种引入方式2.2 颜色的三种表示2.3 css选择器2.4 超链接 3 实现正文排版3.1 视频标签 video3.2 音频标签 audio…

Spring高手之路17——动态代理的艺术与实践

文章目录 1. 背景2. JDK动态代理2.1 定义和演示2.2 不同方法分别代理2.3 熔断限流和日志监控 3. CGLIB动态代理3.1 定义和演示3.2 不同方法分别代理&#xff08;对比JDK动态代理写法&#xff09;3.3 熔断限流和日志监控&#xff08;对比JDK动态代理写法&#xff09; 4. 动态代理…

功能强大:JMeter 常用插件全解析

JMeter 作为一个开源的接口性能测试工具&#xff0c;其本身的小巧和灵活性给了测试人员很大的帮助&#xff0c;但其本身作为一个开源工具&#xff0c;相比于一些商业工具&#xff08;比如 LoadRunner&#xff09;&#xff0c;在功能的全面性上就稍显不足。这篇博客&#xff0c;…

Java学习42-Java 流(Stream)、文件(File)和IO - FileReader\FileWriter的使用

IO流 IO流的概述&#xff0c;分类等 Java程序中&#xff0c;对于数据的输入输出以stream方式进行&#xff0c;可以看作是一种数据的流动。 IO流中的IO是Input和Output的缩写&#xff0c;是非常实用的技术&#xff0c;用于处理设备之间的数据传输。读写文件&#xff0c;网络通…

JUC并发编程2(高并发,AQS)

JUC AQS核心 当有线程想获取锁时&#xff0c;其中一个线程使用CAS的将state变为1&#xff0c;将加锁线程设为自己。当其他线程来竞争锁时会&#xff0c;判断state是不是0&#xff0c;不是自己就把自己放入阻塞队列种&#xff08;这个阻塞队列是用双向链表实现&#xff09;&am…

聚丙烯PP材料粘接方法?泰达克TADHE专用于PP材料塑料粘接的UV胶水提供了解决方案

PP&#xff08;聚丙烯&#xff09;&#xff0c;简称PP。 PP是一种疏水性的塑料&#xff0c;需要特殊的处理后再和胶水粘接&#xff0c;以确保良好的粘接效果。常用的PP材料粘接方法&#xff1a; ​1.表面处理 因PP表面的疏水性&#xff0c;可以先进行表面处理。使用酒精或丙酮…

完整的项目源码!在线考试完整系统源码(可接私活)

最近有一些读者问我有没有完整的基于SpringbootVue的项目源码&#xff0c;今天给大家整理了一下&#xff0c;并且录制了搭建的教程&#xff0c;无偿分享给大家。 一、系统运行图 1、登陆页面 2、后台管理 3、全套环境资源 ​源码文件部分截图&#xff0c;带视频教程 ​ 在实际…

【图论】Dijkstra单源最短路径-朴素方法-简单模板(迪杰斯特拉算法)

Dijkstra单源最短路径 问题描述 输入n 表示n个结点&#xff0c;m表示m条边&#xff0c;求编号1的结点到每个点的最短路径 输出从第一个点到第n个点的最短路径 思路 将图g[][]中所有的权值初始化为0x3f表示正无穷 将dist[]中所有的值初始化为0x3f表示从第一个点到所有点的距离…

linux的io的知识大全

C语言的io操作 写文件 #include<stdio.h> #include<string.h>#define FILE_NAME "log.txt" int main() {FILE * fp fopen(FILE_NAME, "w");if(fpNULL){printf("fopen error!\n");}const char* msg "hello zk\n";int c…

如何准确测量电源噪声

目录 电源噪声的特点 影响噪声测试的因素 总结 电源噪声的特点 以往电源噪声的幅度规范一般在几十mV&#xff0c;但是随着芯片电源电压的降低&#xff0c;很多芯片的电源噪声的规范已经低至mV的量级&#xff0c;某些对电源噪声敏感的芯片要求甚至到了百uV的量级。 电源上的…

基于Android studio 实现外卖(点)订餐系统-编程乐学最新原创

&#x1f345;文章末尾有获取完整项目源码方式&#x1f345; 目录 一、实现介绍 视频演示 1.1 启动页 1.2登录页 1.3注册页 1.4商家主页 1.5商家发布商品页面 1.6商家我的页面 1.7商家个人信息修改页 1.8商家商品信息修改页 1.9用户首页 1.10用户我的订单页面 1.1…

C++学习进阶:二进制与位运算

目录 1.进制与原反补码 2.位运算 2.1.按位与 2.2.按位或 2.3.异或 2.4.取反 2.5.移位 3.部分面试题 3.1.不创建新的变量&#xff0c;实现两个变量的交换 3.2.求一个整数存储在内存中二进制中1的个数 这一部分本来是C语言的内容&#xff0c;当学习位图时&#xff0c…

期货分账户软件|程序化软件|风控软件|资产管理软件开发用到哪些技术?

期货/股票资管分仓软件分账户系统APP的开发涉及多个技术领域&#xff0c;以确保软件的功能性、安全性和易用性。以下是一些在开发过程中可能需要用到的关键技术&#xff1a; 前端开发技术&#xff1a;前端部分主要负责用户界面的设计和实现。通常使用HTML、CSS和JavaScript等技…

YARN-Client 与 YARN-Cluster 区别

YARN-Client 与 YARN-Cluster 区别 理解YARN-Client和YARN-Cluster深层次的区别之前先清楚一个概念&#xff1a;Application Master。在YARN中&#xff0c;每个Application实例都有一个ApplicationMaster进程&#xff0c;它是Application启动的第一个容器。它负责和ResourceMa…

【HTML】制作一个简单的实时字体时钟

目录 前言 HTML部分 CSS部分 JS部分 效果图 总结 前言 无需多言&#xff0c;本文将详细介绍一段HTML代码&#xff0c;具体内容如下&#xff1a; 开始 首先新建文件夹&#xff0c;创建一个文本文档&#xff0c;两个文件夹&#xff0c;其中HTML的文件名改为[index.html]&am…

Jmeter杂记:测试计划参数详解

测试计划各参数详解 1&#xff0c;用户自定义变量&#xff0c;是全局变量&#xff0c;供所有线程组使用&#xff0c;可用配置元件&#xff1a;用户自定义变量替代 2&#xff0c;连续的运行线程组&#xff0c;默认不勾选&#xff0c;则随机的运行多个线程组中的取样器&#xff…

在隐私计算应用中和数链具备哪些技术特点?

在加速“可信数字化”进程的背景下&#xff0c;我国区块链产业将在打造新型平台经济&#xff0c;开启共享经济新时代的同时&#xff0c;带动数字经济“脱虚向实”服务实体经济。 和数软件在加速数字化进程的同时&#xff0c;进一步服务实体经济&#xff0c;提高实体经济的活力…