资源简介
本程序潮流计算部分采用牛顿拉夫逊极坐标法进行计算,求解一次多元方程采用高斯列主元分解法进行求解。根据工程实际,在存储文件实时记录产生文件时间。此外本程序特意增加了文件查看功能,方便文件的查看。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
void dataprepare(void);
void initial(void);
void Yc(void);
void showy(void);
double detpqc(void);
void showdetav(void);
void Jrc(void);
void showdetpq(void);
void Gauss(void);
void showj(void);
void showsolution(void);
char save2file(void);
char option(void);
int chose(void);
int list(char filename[]int ichar dstn[]);
struct PQV
{
char name[5];
double vb;
double p;
double q;
double v;
double ag;
}*pqv;
struct Y{
double G;
double B;
}**y;
struct LZ
{
char name1[5];
double vb1;
char name2[5];
double vb2;
double r;
double x;
double b;
}*lz;
struct TZ
{
char name1[5];
double vb1;
char name2[5];
double vb2;
double x;
double k1;
double k2;
}*tz;
char fsource[20];
int pqnum=0pvnum=0lznum=0tznum=0;
int temp1=0temp2=0temp3=0temp4=0;
int diedai=0;
int numw=1numofw=0;
double *detpq*detav*Pi*Qierrorwucha**J; /* detpq节点功率的误差量,detav修正量,Pi节点的有功功率 */
char cchdstname[20]filename[20];
int main()
{
opt:c=option();
if(c==‘1‘)goto opt1;
else if(c==‘2‘)
{
list(“1.bin“1filename);
system(“mode con:cols=100 lines=30 & color 07“);
while(c!=‘0‘)
{
system(“cls“);
printf(“ ################################计算结果文件查看################################\n“);
printf(“ [8]上一个 [2]下一个 [5]查看 [-]删除文件 【0】退出\n\n“);
list(“1.bin“0filename);
chose();
}
goto opt;
}
else if(c==‘0‘)exit(0);
else goto opt;
opt1:dataprepare();
init:initial();
Yc();
printf(“输入允许误差量:“);
scanf(“%lf“&wucha);
printf(“选择模式:a.详情;b.简单:“);
redo:fflush(stdin);
c=getchar();
if(c!=‘a‘&&c!=‘b‘&&c!=‘A‘&&c!=‘B‘)
{printf(“输入错误!重新输入:“);goto redo;}
if(c!=‘B‘&&c!=‘b‘)showy();
error=detpqc();
showdetpq();
while(error>wucha&&error<100)
{
if(c!=‘B‘&&c!=‘b‘)
{
printf(“\t\t是否继续迭代 <空格:是 R/r:重赋初值 E/e:退出潮流计算>?\n“);
ifdie: fflush(stdin);
ch=getch();
switch(ch)
{
case ‘ ‘:break;
case ‘R‘:;
case ‘r‘:goto init;break;
case ‘E‘:;
case ‘e‘:goto opt;break;
default: goto ifdie;
}
}
diedai++;
Jrc();
if(c!=‘B‘&&c!=‘b‘)
{
printf(“\n>>>>>>>>>>>>>>>>>>>第 %d 次迭代<<<<<<<<<<<<<<<<<<<<<\n“diedai);
showj();
}
Gauss();
if(c!=‘B‘&&c!=‘b‘)showdetav();
for(temp1=0;temp1 pqv[temp1].ag=pqv[temp1].ag-detav[temp1];
for(temp1=0;temp1 pqv[temp1].v=pqv[temp1].v-detav[temp1+pqnum+pvnum];
error=detpqc();
if(c!=‘B‘&&c!=‘b‘)
showdetpq();
}
if(error>=300||error<0)
{
printf(“\t\t迭代不收敛 ?\n“);
what: fflush(stdin);
ch=getch();
switch(ch)
{
case ‘R‘:;
case ‘r‘:goto init;break;
case ‘E‘:;
case ‘e‘:goto opt;break;
default: goto what;
}
}
showsolution();
ch=save2file();
if(ch==‘1‘)goto opt;
els
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 476 2014-03-27 21:34 a1.data
文件 511 2014-03-27 21:28 pf1.dat
文件 545 2013-11-13 20:29 pf2.dat
文件 511 2013-10-27 15:33 pf3.dat
文件 18206 2013-11-19 05:29 powerflow.c
文件 21504 2013-11-19 02:26 powerflow.exe
文件 573 2013-11-19 02:54 solution1.data
文件 573 2013-11-19 03:47 solution2.data
文件 573 2013-11-19 04:30 solution3.data
文件 573 2013-11-19 04:27 solution4.data
- 上一篇:C语言贪吃蛇小游戏
- 下一篇:fast角点检测c++
相关资源
- C语言贪吃蛇小游戏
- KLT(C语言)
- c语言流程图生成器
- 数据结构严蔚敏C语言第二版习题答案
- 操作系统进程调度算法——短作业优
- 飞机订票系统课程设计报告及源代码
- C语言面试题附带答案解析
- 数据结构的二叉树用C语言实现的代码
- C语言扫雷课程设计报告
- 文章编辑数据结构课程设计c语言编写
- 基于51单片机Max7219驱动8×8点阵PROTEU
- C语言 个人通讯录管理系统
- 飞秋基于c语言实现
- C语言实现矩阵的行阶梯,行最简变换
- C语言编写走迷宫游戏
- C语言版三子棋
- C语言程序设计练习1000题
- c语言多进程多线程编程
- C语言 车辆出租管理系统
- 模糊PID控制C语言程序.doc
- 数据结构C语言 一元多项式的加减法
- 数据结构 走迷宫大作业 c语言完整代
- yuv播放器cif格式c语言
- dijkstra最短路算法c语言源代码
- 基于51单片机控制的篮球比赛计时、计
- C语言车辆管理系统
- DOS菜单系统用C编写
- 马踏棋盘的源程序,C语言编写,数据
- 用c语言实现一元多项式的加减乘运算
- 多级反馈队列调度算法C语言源代码
评论
共有 条评论