- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东南大学数据结构实验报告电气工程学院王磊实验三
导纳矩阵的处理
侯创 2012/11/23
需求分析
程序功能
读取任意规模大小的节点与线路矩阵,读取各个数据,对数据这个数据组进行分析求解,进而求出导纳矩阵,并提供对于支路的查找功能。
输入输出要求
为测试方便,本测试程序已在main函数中将所有需要测试的数据写入,直接运行即可。节点导纳矩阵采用的储存方式为稀疏矩阵常用的3元组储存方式,并提供全矩阵显示。
测试数据
见工程文件夹内部4个txt文件
概要设计
数据结构
数据读取部分采用struct结构体形式读取数据,并将读取数据显示。
Struct bus 结构体 元素包含所有bus内元素
Struct branch 结构体内部 除branch数据外包含作者设计为了计算导纳矩阵的三个数据,分别为支路前测接地导纳,支路导纳,和后侧接地导纳。
整体存储使用邻接表,每个节点都作为一个头结点,向下分别链表指向所关联的节点,同时在下一个节点存储节点和支路数据。
各个模块
读取数据模块,包括函数read_bus和read_branch.
寻找模块。包括search_branch和search_bus
处理模块函数胃药分为处理支路导纳,和统计节点自导纳,统计节点互导纳。
并形成稀疏矩阵的三元组。
模块关系
读取模块
寻找模块
图处理模块
稀疏矩阵处理模块
导纳计算
详细设计
读取数据
对于节点矩阵与支路矩阵,因数据格式已经知道,所以设置结构体,对于多节点数据以结构体接受数据,已结构体数组存储。比较简单不再详述。
寻找模块
因数据已经读取进入,所以要求用户输入节点或者支路名称,进行寻找,找到返回节点或者支路数据,如未找到,返回该元素不存在。
图的生成
所有节点数据与支路数据均 存储在结构体数组中,所以构成图,我采用邻接表生成方法,所有头结点仅存储节点,每个头结点形成链表,每个链表的每个子节点里面包含节点数据和支路数据。便于数据分析。与导纳矩阵形成
计算导纳矩阵
首先计算各个支路的前接地导纳,后接地导纳,连接导纳,
在计算各个连接支路导纳
将形成的导纳存储至三元组数组。
矩阵输出与字符寻找
因三元组生成时未使用顺序方法放入,如采用pos num方法,写寻找函数。那么就需要将三元组二维排序,较为冗杂,所以本程序采用普通的顺序查找的方法,因本身为稀疏矩阵所以,复杂度很低。
调试分析
遇到问题
主要为一些语法错误,按照编译器提示修改即可
算法复杂度
图的生成时间复杂度O(n2)空间复杂度O(n2)
图的搜寻时间复杂度O(n)
计算函数时间复杂度O(n2)
使用说明及测试结果
本程序为避免操作错误,已经将所有检测项目内嵌于主程序内,观察即可得结果
可按照提示,按任意键,进行程序运行即可。
5节点矩阵,对于程序的每一部分均有详细介绍,对于14节点矩阵,仅是将3元组输出。
源程序
类的头文件
#includestring
#include iostream
using namespace std;
struct elem//虚数结构体
{
float real;
float image;
};
struct branch//支路结构体
{
int Former;
int Next;
string Name;
int Type;
float R;
float X;
float B;
float K;
elem front0;//前对地导纳
elem linked;//连接导纳
elem lated0;//后对地导纳
};
struct bus//节点
{
int Id;
string Name;
int Type;
float V;
float cita;
float LP;
float LQ;
};
struct node
{
struct bus* data;
struct branch* link;
struct node* next;
};
struct gpnode
{
struct bus* data;
struct node* next;
};
struct three_elem
{
int X_i;
int Y_j;
elem Y;
};
class Current_Calu
{
public:
Current_Calu();
void read_bus (int,char*);
void read_branch(int,char*);
void creat_Current_Graph ();
void search_bus (string);
void search_branch (string);
您可能关注的文档
最近下载
- (2025秋)人教版二年级数学上册全册教案(新教材).pdf
- 第二单元大单元教学设计 高一语文必修上册.docx VIP
- 2025年燃气安全生产管理人员模拟考试题库及答案.docx VIP
- 高中音乐 人音版 必修《音乐鉴赏》《舞动心弦——舞蹈音乐》 第四课时.pptx VIP
- 住院医师临床思维培养ppt模板.pptx VIP
- 反渗透纳滤组合工艺高盐废水深度处理及零排放预浓缩.pdf VIP
- 超声成像系统数字扫描变换器(参考).pptx VIP
- JTG3441-2024 公路工程无机结合料稳定材料试验规程.pdf VIP
- 腹腔镜下卵巢囊肿剥除术配合.pptx VIP
- 2026届高三语文一轮复习教学计划.docx
文档评论(0)