基于 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 交互框架开发的一款电力系统潮流计算工具

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux的进程篇章 - 进程终止和进程等待的理解】

Linux学习笔记---008 Linux之fork函数、进程终止和等待的理解1、fork函数1.1、什么是fork?1.2、fork的功能介绍1.3、fork函数返回值的理解1.4、fork函数的总结 2、进程的终止2.1、终止是在做什么?2.2、进程终止的3种情况 3、进程的终止3.1、进程终止的三种情况3.2、…

如何用Java后端处理JS.XHR请求

Touching searching engine destroies dream to utilize php in tomcat vector.The brave isn’t knocked down,turn its path to java back-end. Java Servlet Bible schematic of interaction between JS front-end and Java back-end Question 如何利用Java…

夯实智慧新能源数据底座,TiDB Serverless 在 Sandisolar+ 的应用实践

本文介绍了 SandiSolar通过 TiDB Serverless 构建智慧新能源数据底座的思路与实践。作为一家致力于为全球提供清洁电力解决方案的新能源企业,SandiSolar面临着处理大量实时数据的挑战。为了应对这一问题,SandiSolar选择了 TiDB Serverless 作为他们的数据…

linux重定向符号

将ls命令执行结果重定向到a文件中 将错误ls命令执行结果重定向到a文件中(这里用到前面的标准错误输出重定向)

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

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

Shoplazza闪耀Shoptalk 2024,新零售创新解决方案引领行业新篇章!

在近期举办的全球零售业瞩目盛事——Shoptalk 2024大会上,全球*的零售技术平台-店匠科技(Shoplazza)以其*的创新实力与前瞻的技术理念,成功吸引了与会者的广泛关注。此次盛会于3月17日至20日在拉斯维加斯曼德勒湾隆重举行,汇聚了逾万名行业精英。在这场零售业的盛大聚会上,Shop…

zookeeper解析

目录 zookeeper定义 zookeeper定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zookeeper工作机制 zookeeper从设计模式角度来理解: 是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心…

JavaScript - 你知道Ajax的原理吗?如何封装一个Ajax

难度级别:中高级及以上 提问概率:75% 想要实现Ajax,就需要创建它的核心通信对象XMLHttpRequest,通过核心对象的open方法与服务端建立连接,核心对象的send方法可以将请求所需数据发送给服务端,服务端接收到请求并做出响应,我们通过核心对象…

JavaScript_语法--变量

1.4 变量 变量:一小块存储数据的内存空间 Java语言是强类型语言,而JavaScript是弱类型的语言 强类型: 在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据 弱类型: 在开辟变量存储空间…

【MATLAB源码-第180期】基于matlab的PTS,SLM,CPFilter三种降低OFDM系统的PAPR仿真。

操作环境: MATLAB 2022a 1、算法描述 1. 限幅和滤波(Clipping and Filtering) 原理简介 限幅和滤波是一种基础且直观的方法,用于降低OFDM信号的PAPR。在限幅阶段,信号的幅度在达到设定阈值时会被削减,…

代码学习记录40---动态规划

随想录日记part40 t i m e : time: time: 2024.04.10 主要内容:今天开始要学习动态规划的相关知识了,今天的内容主要涉及: 买卖股票的最佳时机加强版。 123.买卖股票的最佳时机III 188.买卖股票的最佳时机…

【深入理解计算机系统第3版】有符号数和无符号数转换以及移位运算练习题2.23

题目 考虑下面的C函数&#xff1a; int fun1(unsigned word) {return (int) ((word << 24) >> 24); }int fun2(unsigned word) {return ((int) word << 24) >> 24; } 假设一个采用补码运算的机器上以32位程序来执行这些函数。还假设有符号数值的右移…

git操作码云(gitee)创建仓库到上传到远程仓库

想必有的小伙伴在为上传到码云远程仓库而感到烦恼吧&#xff01;本篇为大家详细讲解实现过程&#xff0c;跟着我的步伐一步一步来。 我就当大家已经注册好了码云 一、在码云上需要的操作 接下来我们需要使用到 git 了 二、git 上的操作 到了咋们的git了&#xff0c;开整 首…

基于PyAutoGUI图片定位的自动化截图工具--jmeter部分

1、计划 压测完成后需要编写性能测试报告&#xff0c;报告中所需数据截图较多&#xff0c;使用自动化操作方便快捷&#xff0c;就编写一个界面工具以便后续复用。之前编写过loadrunner报告的自动化截图脚本&#xff0c;现在用jmeter也比较多&#xff0c;就编写jmeter部分&#…

树形查找试题(二叉树、红黑树)

一、单项选择题 01.对于二叉排序树&#xff0c;下面的说法中&#xff0c;()是正确的。 A.二叉排序树是动态树表&#xff0c;查找失败时插入新结点&#xff0c;会引起树的重新分裂和组合 B.对二叉排序树进行层序遍历可得到有序序列 C.用逐点插入法构造二叉排序树&#xff0c;若先…

上海人工智能实验室的书生·浦语大模型学习笔记(第二期第三课——上篇)

书生浦语是上海人工智能实验室和商汤科技联合研发的一款大模型&#xff0c;这次有机会参与试用&#xff0c;特记录每次学习情况。 一、课程笔记 本次学习的是RAG&#xff08;Retrieval Augmented Generation&#xff09;技术&#xff0c;它是通过检索与用户输入相关的信息片段…

【简单讲解下WebView的使用与后退键处理】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

MySQL操作DML

目录 1.概述 2.插入 3.更新 4.删除 5.查询 6.小结 1.概述 数据库DML是数据库操作语言&#xff08;Data Manipulation Language&#xff09;的简称&#xff0c;主要用于对数据库中的数据进行增加、修改、删除等操作。它是SQL语言的一部分&#xff0c;用于实现对数据库中数…

力扣--图论/Prim1584.连接所有点的最小费用

思路分析&#xff1a; 初始化&#xff1a;获取点的数量&#xff0c;并创建两个辅助数组 adjvex 和 lowcost&#xff0c;分别用于记录最小生成树的边信息和每个顶点到最小生成树的距离。Prim算法循环&#xff1a;在每一次循环中&#xff0c;选择一个未加入最小生成树的顶点 k&a…

软考122-上午题-【软件工程】-需求分析

一、软件需求 在进行需求获取之前&#xff0c;首先要明确需要获取什么&#xff0c;也就是需求包含哪些内容。 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常&#xff0c;这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需…