电力系统分析大作业报告(C++)

电力系统分析大作业报告(C++)
电力系统分析大作业报告(C++)

原创

电力系统分析潮流分析与三相短路计算

年级09级

学院电气与自动化工程学院

专业电气工程及其自动化

程序说明:

本程序实现了从键盘输入各节点参数,各支路参数,进行潮流计算、三相金属性短路计算,并将结果输出到文件中。节点参数的输入顺序与节点序号无关,支路参数参数的输入同样与其头尾结点的序号无关。节点编号从零开始,中间不能出现间断。由于时间紧迫,没能实现有文件输入数据,以及通过键盘输入命令调整节点参数,很是遗憾。

本程序将节点编号(ID)作为作为联系程序各部分的纽带,减小了个部分之间的联系是程序的结构简单化。使用LU解潮流方程,而不是用高斯法,以减少计算量。但关于内存分配还没有优化(毕竟时间紧)。程序中关于函数重载,指针的使用也小有心得。

本程序写了整整两个星期,花了很多精力,后很多收获,对潮流计算又有了更深的理解,同时也耽误了好多时间。有得也有失吧

程序流程图:

程序中参数的意义

1.全局变量

nodes_num(int)节点数目(由外部输入)

branchs_num (int) 支路书目(由外部输入)

pv_num (int) PV节点数目

pq_num (int) PQ节点数目

B_angle_num (int) 与相角有关的电导矩阵阶数

B_u_num (int) 与电压有关的电导矩阵的阶数

array_end (int*) 以某节点为头结点的支路的条数

B (double**) 节点电导矩阵

G (double**) 节点电抗矩阵

b_angle_no (int*) 相角相关矩阵各节点ID数列

b_u_no (int) 电压相关矩阵各节点ID数列

-

NB_angle (double**) 相角相关矩阵'B

-

NB_u (double**) 电压相关矩阵"B

d_angle_angle (double**) 相角变化量数列(其元素为nodes中d_angle_x_u的地址)d_u_u (double**) 电变化量数列(其元素为nodes中d_u的地址)

-的LU分解矩阵

lu_u (double**) "B

-的LU分解矩阵

lu_angle (double**) 'B

d_P (double)

d_Q (double)

fxP (double**) 相角相关矩阵的fx数列(其元素为node中fx_P的地址)

fxQ (double**) 电压相关矩阵的fx数列(其元素为node中fx_Q的地址)

Zf (double**) 短路点所在的节点阻抗矩阵的列(Zf[i][0]=R,Zf[i][1]=X)

Uf (double**) 各节点短路电压矩阵(Uf[i][0]为实部,Zf[i][1]为虚部)

outfile (ofstream) 文件输出流

nodes_array (Node*) 节点数组(以节点ID为序排列)

branchs (Branch**) 支路矩阵(以头结点ID排列)

2.Node

id (int) 节点序号(输入时最小序号为1,内部从0开始)

type (int) 节点类型(平衡节点0,PV节点1,PQ节点2)

u (double) 节点电压

angle (double) 节点电压相角

angle_x_u (double) 相角与电压的乘积

xd (double) 发电机直轴电抗

pi (double) 发电机输出有功与节点流出有功之差

qi (double) 节点流出有功的值

d_u (double) 电压变化量

d_angle_x_u (double) 电压与相角乘积的变化量

P (double) 计算得节点的净流入有功

Q (double) 计算得节点的净流入无功

fx_P (double) (Pi-P)/U

fx_Q (double) (Qi-Q)/U

c_nodes (int[5]) 与本节点相关的节点ID数列(本节点ID为该数列第一个元素)

c_nodes_num (int) 本节点相关节点的数目

3.Branchs

head_id (int) 头结点ID(输入参数)

end_id (int) 尾节点ID(输入参数)

r (double) 线路阻抗(输入参数)

x (double) 线路电抗(输入参数)

b_2 (double) 线路并联电纳(输入参数)

gii (double) 本支路对相关节点自电导的贡献

gij (double) 本支路对相关节点互电导的贡献

bii (double) 本支路对相关节点自电纳的贡献

bij (double) 本支路对相关节点互电导的贡献

程序中函数

void creat_B_angle_u(void) 建立'B

void lu(double **a ,double **lu ,int num) 将线性方程组的系数矩阵进行LU分解

void soving_equations(double **lu,double **x,double **b,int num) 利用LU矩阵进行回代解方程组

void compute_PQ(void) 结算各节点的P、Q

void creat_mat(double***a,int i,int j); 为矩阵分配内存空间

void creat_mat(double***a,int i); 为矩阵分配内存空间

void ini_test(void) 用于测试的参数初始化函数

void ini(void) 从键盘输入的参数初始化函数

void out_mat(double**a,int n1,int n2) 输出矩阵

void out_mat(double**a,int n) 输出矩阵

void out_mat(double *a,int n); 输出数列

void out_paraments(int i) 输出电网潮流结果

void out_const_parament(void) 输出B G矩阵等潮流计算恒定参数

void compute_new_B(void) 计算考虑发电机和负载后的节点导纳矩阵(含B、G)

void compute_Zf(int id) 计算短路点所在的节点阻抗矩阵的列向量(id为短路点序号)void compute_new_BG(void) 计算考虑发电机和负载后的节点导纳矩阵(含B、G)

void a_to_xy(double *a) 将虚数由极坐标表示变为直角坐标表示

void xy_to_a(double *a) 将虚数由表示直角坐标变为极坐标表示

void add_i(double *a,double *b) 虚数加法运算(参数为直角坐标表示,下同)

void add_i(double *c,double *a,double *b) 虚数加法运算

void sub_i(double *a,double *b) 虚数减法运算

void sub_i(double *c,double *a,double *b) 虚数减法运算

void mul_i(double *a,double *b) 虚数乘法运算

void mul_i(double *c,double *a,double *b) 虚数乘法运算

void div_i(double *a,double *b) 虚数除法运算

void div_i(double *c,double *a,double *b) 虚数除法运算void compute_UI(int id) 计算短路后个点的电压

void compute_Ii() 计算短路后各支路点电流

潮流计算程序

#include

#include

#include

using namespace std;

//PQ,PV,平衡节点的fxP,fx_Q的求取

int nodes_num,branchs_num;//节点总数,支路总数

int pv_num,pq_num;//=pv节点数

int B_angle_num;//=pv节点数+PQ节点数

int B_u_num;//=PQ节点数

int *array_end;//以某节点为头结点的树枝的条数

double **B,**G;

int *b_angle_no,*b_u_no;

double **NB_angle,**NB_u;

double **d_angle_angle,**d_u_u;

double **lu_u,**lu_angle;//lu分解结果

double d_P,d_Q,**fxP_angle,**fxQ_u;

double **Zf,**Uf;

ofstream outfile("E:\\data.txt");

const double e=0.0001;//精确度

struct Node

{

int id,type;//平衡节点0,pv节点1,PQ节点2

double u,angle,angle_x_u,xd;

double pi,qi;

double d_u,d_angle_x_u;

double P,Q,fxP,fxQ;

int c_nodes[5],c_nodes_num;

}*nodes_array;

struct Branch

{

int head_id,end_id;

double r,x,b_2;//输入参数

double gii,gij;//gb构成y

double bii,bij;

}**branchs;

void main()

{

void creat_B_angle_u(void);

void lu(double **a ,double **lu ,int num);

void soving_equations(double **lu,double **x,double **b,int num); void compute_PQ(void);

void creat_mat(double***a,int i,int j);

void creat_mat(double***a,int i);

void ini_test(void);

void ini(void);

void out_mat(double**a,int n1,int n2);

void out_mat(double**a,int n);

void out_mat(double *a,int n);

void out_paraments(int i);

void out_const_parament(void);

void compute_new_B(void);

void compute_Zf(int id);

void compute_new_BG(void);

void a_to_xy(double *a);

void xy_to_a(double *a);

void add_i(double *a,double *b);

void add_i(double *c,double *a,double *b);

void sub_i(double *a,double *b);

void sub_i(double *c,double *a,double *b);

void mul_i(double *a,double *b);

void mul_i(double *c,double *a,double *b);

void div_i(double *a,double *b);

void div_i(double *c,double *a,double *b);

void compute_UI(int id);

void compute_Ii();

ini();

/*ini_test();*/

B_angle_num=pv_num+pq_num;//计算雅可比矩阵

B_u_num=pq_num;

b_angle_no=new int[B_angle_num];

b_u_no=new int[B_u_num];

creat_mat(&B,nodes_num,nodes_num);

creat_mat(&G,nodes_num,nodes_num);

creat_mat(&NB_angle,B_angle_num,B_angle_num);

creat_mat(&lu_angle,B_angle_num,B_angle_num);

creat_mat(&NB_u,B_u_num,B_u_num);

creat_mat(&lu_u,B_u_num,B_u_num);

creat_mat(&d_angle_angle,B_angle_num,1);

creat_mat(&d_u_u,B_u_num,1);

creat_mat(&fxP_angle,B_angle_num,1);

creat_mat(&fxQ_u,B_u_num,1);

creat_mat(&Zf,nodes_num,2);

creat_mat(&Uf,nodes_num,2);

for(int i=0;i

B[i]=new double[nodes_num];

for(int i=0;i

for(int j=0;j

{

B[i][j]=0;

G[i][j]=0;

}

for(int i=0;i

{

for(int j=0;j

{

B[i][branchs[i][j].end_id]=-branchs[i][j].bij;

B[branchs[i][j].end_id][i]=-branchs[i][j].bij;

B[i][i]+=branchs[i][j].bii;

B[branchs[i][j].end_id][branchs[i][j].end_id]+=branchs[i][j].bii;

G[i][branchs[i][j].end_id]=-branchs[i][j].gij;

G[branchs[i][j].end_id][i]=-branchs[i][j].gij;

G[i][i]+=branchs[i][j].gii;

G[branchs[i][j].end_id][branchs[i][j].end_id]+=branchs[i][j].gii;

}

}

creat_B_angle_u();

lu(NB_angle,lu_angle,B_angle_num);

lu(NB_u,lu_u,B_u_num);

out_const_parament();

int count=0;

for(int i=0;i<20;i++)

{

int lte=0;

count++;

compute_PQ();

for(int i=0;i

{

int this_id=b_angle_no[i];

nodes_array[this_id].fxP=(nodes_array[this_id].pi-nodes_array[this_id].P)/nodes_array[this_id] .u;//改动------

if(abs(nodes_array[i].fxP)

lte++;

}

for(int i=0;i

{

int this_id=b_u_no[i];

nodes_array[this_id].fxQ=(nodes_array[this_id].qi-nodes_array[this_id].Q)/nodes_array[this_id ].u;

if(abs(nodes_array[this_id].fxQ)

lte++;

}

if(lte>=(B_angle_num+B_u_num))

break;

else

{

soving_equations(lu_angle,d_angle_angle,fxP_angle,B_angle_num);

soving_equations(lu_u,d_u_u,fxQ_u,B_u_num);

for(int i=0;i

{

nodes_array[i].angle_x_u+=nodes_array[i].d_angle_x_u;

nodes_array[i].angle=nodes_array[i].angle_x_u/nodes_array[i].u;

nodes_array[i].u+=nodes_array[i].d_u;

}

}

}

out_paraments(count);

compute_new_BG();

outfile<<"修正后的节点电纳矩阵---------------"<

out_mat(B,nodes_num);

outfile<<"修正后的节点电导矩阵---------------"<

out_mat(G,nodes_num);

compute_Zf(3);

compute_UI(3);

for(int i=0;i

{

outfile<<"第"<<(i+1)<<"节点电压:"<

}

outfile<

compute_Ii();

}

void creat_B_angle_u(void)

{

for(int i=0,j=0,k=0;i

{

if(nodes_array[i].type!=0)

{

b_angle_no[j]=i;

j++;

}

if(nodes_array[i].type==2)

{

b_u_no[k]=i;

k++;

}

}

for(int i=0;i

{

for(int j=0;j

{

NB_angle[i][j]=-B[b_angle_no[i]][b_angle_no[j]];

}

d_angle_angle[i]=&(nodes_array[b_angle_no[i]].d_angle_x_u);

fxP_angle[i]=&(nodes_array[b_angle_no[i]].fxP);

}

for(int i=0;i

{

for(int j=0;j

{

NB_u[i][j]=-B[b_u_no[i]][b_u_no[j]];

}

d_u_u[i]=&(nodes_array[b_u_no[i]].d_u);

fxQ_u[i]=&(nodes_array[b_u_no[i]].fxQ);

}

}

void lu(double **a ,double **lu ,int num)

{

for(int i=0;i

{

for(int j=0;j

{

lu[i][j]=a[i][j];

if(i

{

for(int k=0;k

lu[i][j]-=lu[i][k]*lu[k][j];

lu[i][j]/=lu[i][i];

}

else

{

for(int k=0;k

lu[i][j]-=lu[i][k]*lu[k][j];

}

}

}

}

void soving_equations(double **lu,double **x,double **b,int num)

{

double *y=new double[num];

for(int i=0;i

{

y[i]=b[i][0];

for(int j=0;j

y[i]-=lu[i][j]*y[j];

y[i]/=lu[i][i];

}

for(int i=num-1;i>=0;i--)

{

x[i][0]=y[i];

for(int j=i+1;j

x[i][0]-=lu[i][j]*x[j][0];

}

delete y;

}

void compute_PQ(void)

{

for(int i=0;i

{

double tempP=0,tempQ=0;

for(int j=0;j

{

int c_id=nodes_array[i].c_nodes[j];

double angleij=nodes_array[i].angle-nodes_array[c_id].angle;

tempP+=nodes_array[c_id].u*(G[i][c_id]*cos(angleij)+B[i][c_id]*sin(angleij));

tempQ+=nodes_array[c_id].u*(G[i][c_id]*sin(angleij)-B[i][c_id]*cos(angleij));

}

nodes_array[i].P=tempP*nodes_array[i].u;

nodes_array[i].Q=tempQ*nodes_array[i].u;

}

}

void creat_mat(double***a,int i,int j)

{

*a=new double*[i];

for(int k=0;k

(*a)[k]=new double[j];

}

void creat_mat(double***a,int i)

{

*a=new double*[i];

for(int k=0;k

(*a)[k]=new double[i];

}

void ini_test(void)

{

nodes_num=9;

pv_num=2;

pq_num=6;

nodes_array=new Node[nodes_num];

branchs=new Branch*[nodes_num];

for(int i=0;i

{

branchs[i]=new Branch[5];

}

array_end=new int[nodes_num];

{

int i=0;

nodes_array[i].id=0;

nodes_array[i].type=0;

nodes_array[i].u=1.04;

nodes_array[i].xd=0.3;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=0;

nodes_array[i].c_nodes[1]=3;

nodes_array[i].c_nodes_num=2;

}

{

int i=1;

nodes_array[i].id=1;

nodes_array[i].type=1;

nodes_array[i].xd=0.3;

nodes_array[i].u=1.025;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=1.63;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=1;

nodes_array[i].c_nodes[1]=6;

nodes_array[i].c_nodes_num=2; }

{

int i=2;

nodes_array[i].id=2;

nodes_array[i].type=1;

nodes_array[i].u=1.025;

nodes_array[i].xd=0.3;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=0.85;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=2;

nodes_array[i].c_nodes[1]=8;

nodes_array[i].c_nodes_num=2; }

{

int i=3;

nodes_array[i].id=3;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=0;

nodes_array[i].qi=0;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=3;

nodes_array[i].c_nodes[1]=4;

nodes_array[i].c_nodes[2]=5;

nodes_array[i].c_nodes[3]=0;

nodes_array[i].c_nodes_num=4; }

{

int i=4;

nodes_array[i].id=4;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=-1.25;

nodes_array[i].qi=-0.5;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=4;

nodes_array[i].c_nodes[2]=3;

nodes_array[i].c_nodes[1]=6;

nodes_array[i].c_nodes_num=3; }

{

int i=5;

nodes_array[i].id=5;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=-0.9;

nodes_array[i].qi=-0.3;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=5;

nodes_array[i].c_nodes[1]=8;

nodes_array[i].c_nodes[2]=3;

nodes_array[i].c_nodes_num=3; }

{

int i=6;

nodes_array[i].id=6;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=0;

nodes_array[i].qi=0;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=6;

nodes_array[i].c_nodes[1]=7;

nodes_array[i].c_nodes[2]=1;

nodes_array[i].c_nodes[3]=4;

nodes_array[i].c_nodes_num=4; }

{

int i=7;

nodes_array[i].id=7;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=-1;

nodes_array[i].qi=-0.35;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=7;

nodes_array[i].c_nodes[1]=8;

nodes_array[i].c_nodes[2]=6;

nodes_array[i].c_nodes_num=3;

}

{

int i=8;

nodes_array[i].id=8;

nodes_array[i].type=2;

nodes_array[i].u=1;

nodes_array[i].angle=0;

nodes_array[i].angle_x_u=0;

nodes_array[i].pi=0;

nodes_array[i].qi=0;

nodes_array[i].d_u=0;

nodes_array[i].d_angle_x_u=0;

nodes_array[i].P=0;

nodes_array[i].Q=0;

nodes_array[i].fxP=0;

nodes_array[i].fxQ=0;

nodes_array[i].c_nodes[0]=8;

nodes_array[i].c_nodes[1]=2;

nodes_array[i].c_nodes[2]=5;

nodes_array[i].c_nodes[3]=7;

nodes_array[i].c_nodes_num=4; }

{

int i=0,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=3;

branchs[i][j].r=0;

branchs[i][j].x=0.0576;

branchs[i][j].b_2=1;

branchs[i][j].gii=0;

branchs[i][j].gij=branchs[i][j].gii;

/*branchs[i][j].bii=-16.36111111;*/

branchs[i][j].bij=-17.36111111;

branchs[i][j].bii=branchs[i][j].bij;

}

{

int i=1,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=6;

branchs[i][j].r=0;

branchs[i][j].x=0.0625;

branchs[i][j].b_2=1;

branchs[i][j].gii=0;

branchs[i][j].gij=branchs[i][j].gii;

/*branchs[i][j].bii=-15;*/

branchs[i][j].bij=-16;

branchs[i][j].bii=branchs[i][j].bij;

}

{

int i=2,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=8;

branchs[i][j].r=0;

branchs[i][j].x=0.0586;

branchs[i][j].b_2=1;

branchs[i][j].gii=0;

branchs[i][j].gij=branchs[i][j].gii;

/*branchs[i][j].bii=-16.06484642;*/

branchs[i][j].bij=-17.06484642;

branchs[i][j].bii=branchs[i][j].bij;

}

{

int i=3,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=4;

branchs[i][j].r=0.01;

branchs[i][j].x=0.085;

branchs[i][j].b_2=0.088;

branchs[i][j].gii=1.365187713;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-11.51609556;

branchs[i][j].bij=-11.60409556;

/*branchs[i][j].bii=branchs[i][j].bij;*/ }

{

int i=3,j=1;

branchs[i][j].head_id=i;

branchs[i][j].end_id=5;

branchs[i][j].r=0.017;

branchs[i][j].x=0.092;

branchs[i][j].b_2=0.079;

branchs[i][j].gii=1.942191249;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-10.43168205;

branchs[i][j].bij=-10.51068205;

/*branchs[i][j].bii=branchs[i][j].bij;*/ }

{

int i=4,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=6;

branchs[i][j].r=0.032;

branchs[i][j].x=0.161;

branchs[i][j].b_2=0.153;

branchs[i][j].gii=1.187604379;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-5.822134533;

branchs[i][j].bij=-5.975134533;

/*branchs[i][j].bii=branchs[i][j].bij;*/ }

{

int i=5,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=8;

branchs[i][j].r=0.039;

branchs[i][j].x=0.17;

branchs[i][j].b_2=0.179;

branchs[i][j].gii=1.282009138;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-5.409244962;

branchs[i][j].bij=-5.588244962;

/*branchs[i][j].bii=branchs[i][j].bij;*/ }

{

int i=6,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=7;

branchs[i][j].r=0.0085;

branchs[i][j].x=0.072;

branchs[i][j].b_2=0.0745;

branchs[i][j].gii=1.617122473;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-13.6234786;

branchs[i][j].bij=-13.6979786;

/*branchs[i][j].bii=branchs[i][j].bij;*/ }

{

int i=7,j=0;

branchs[i][j].head_id=i;

branchs[i][j].end_id=8;

branchs[i][j].r=0.0119;

branchs[i][j].x=0.1008;

branchs[i][j].b_2=0.1045;

branchs[i][j].gii=1.155087481;

branchs[i][j].gij=branchs[i][j].gii;

branchs[i][j].bii=-9.679770426;

branchs[i][j].bij=-9.784270426;

/*branchs[i][j].bii=branchs[i][j].bij;*/

}

array_end[0]=1;

array_end[1]=1;

array_end[2]=1;

array_end[3]=2;

array_end[4]=1;

array_end[5]=1;

array_end[6]=1;

array_end[7]=1;

array_end[8]=0;

}

void ini(void)

{

cout<<"输入节点参数---------------------";

cout<

cin>>nodes_num;

pv_num=0;

nodes_array=new Node[nodes_num];

for(int i=0;i

{

int _id;

cout<

cin>>_id;

_id-=1;

nodes_array[_id].id=_id;

nodes_array[_id].c_nodes_num=1;

(nodes_array[_id].c_nodes)[0]=_id;

cout<<"Type(平衡节点0,pv节点1,PQ节点2): ";

cin>>nodes_array[_id].type;

if(nodes_array[_id].type==0)

{

cout<<"U: ";

cin>>nodes_array[_id].u;

cout<<"xd: ";

cin>>nodes_array[_id].xd;

}

if(nodes_array[_id].type==1)

{

pv_num++;

cout<<"PG:";

cin>>nodes_array[_id].pi;

cout<<"U: ";

cin>>nodes_array[_id].u;

cout<<"xd: ";

cin>>nodes_array[_id].xd;

}

if(nodes_array[_id].type==2)

{

double tempp;

double tempq;

nodes_array[_id].u=1;

cout<<"Pi:";

cin>>tempp;

nodes_array[_id].pi=-tempp;

cout<<"Qi:";

cin>>tempq;

nodes_array[_id].qi=-tempq;

}

nodes_array[_id].P=0;//功率相关参数初始化

nodes_array[_id].Q=0;

nodes_array[_id].fxP=0;

nodes_array[_id].fxQ=0;

//平直启动法参数初始化

nodes_array[_id].angle=0;

nodes_array[_id].angle_x_u=0;

nodes_array[_id].d_u=0;

nodes_array[_id].d_angle_x_u=0;

}

pq_num=nodes_num-pv_num-1;

branchs=new Branch*[nodes_num];

for(int i=0;i

{

branchs[i]=new Branch[5];

}

cout<

cin>>branchs_num;

array_end=new int[nodes_num];

for(int i=0;i<=nodes_num;i++)

array_end[i]=0;

for(int i=0;i

模式识别实验报告

模式识别实验报告

————————————————————————————————作者:————————————————————————————————日期:

实验报告 实验课程名称:模式识别 姓名:王宇班级: 20110813 学号: 2011081325 实验名称规范程度原理叙述实验过程实验结果实验成绩 图像的贝叶斯分类 K均值聚类算法 神经网络模式识别 平均成绩 折合成绩 注:1、每个实验中各项成绩按照5分制评定,实验成绩为各项总和 2、平均成绩取各项实验平均成绩 3、折合成绩按照教学大纲要求的百分比进行折合 2014年 6月

实验一、 图像的贝叶斯分类 一、实验目的 将模式识别方法与图像处理技术相结合,掌握利用最小错分概率贝叶斯分类器进行图像分类的基本方法,通过实验加深对基本概念的理解。 二、实验仪器设备及软件 HP D538、MATLAB 三、实验原理 概念: 阈值化分割算法是计算机视觉中的常用算法,对灰度图象的阈值分割就是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中每个像素的灰度值与这个阈值相比较。并根据比较的结果将对应的像素划分为两类,灰度值大于阈值的像素划分为一类,小于阈值的划分为另一类,等于阈值的可任意划分到两类中的任何一类。 最常用的模型可描述如下:假设图像由具有单峰灰度分布的目标和背景组成,处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界处两边的像素灰度值有较大差别,此时,图像的灰度直方图基本上可看作是由分别对应于目标和背景的两个单峰直方图混合构成。而且这两个分布应大小接近,且均值足够远,方差足够小,这种情况下直方图呈现较明显的双峰。类似地,如果图像中包含多个单峰灰度目标,则直方图可能呈现较明显的多峰。 上述图像模型只是理想情况,有时图像中目标和背景的灰度值有部分交错。这时如用全局阈值进行分割必然会产生一定的误差。分割误差包括将目标分为背景和将背景分为目标两大类。实际应用中应尽量减小错误分割的概率,常用的一种方法为选取最优阈值。这里所谓的最优阈值,就是指能使误分割概率最小的分割阈值。图像的直方图可以看成是对灰度值概率分布密度函数的一种近似。如一幅图像中只包含目标和背景两类灰度区域,那么直方图所代表的灰度值概率密度函数可以表示为目标和背景两类灰度值概率密度函数的加权和。如果概率密度函数形式已知,就有可能计算出使目标和背景两类误分割概率最小的最优阈值。 假设目标与背景两类像素值均服从正态分布且混有加性高斯噪声,上述分类问题可以使用模式识别中的最小错分概率贝叶斯分类器来解决。以1p 与2p 分别表示目标与背景的灰度分布概率密度函数,1P 与2P 分别表示两类的先验概率,则图像的混合概率密度函数可用下式表示为

电路分析实验报告

电压源与电流源的等效变换 一、实验目的 1、加深理解电压源、电流源的概念。 2、掌握电源外特性的测试方法。 二、原理及说明 1、电压源是有源元件,可分为理想电压源与实际电压源。理想电压源在一定的电流 范围内,具有很小的电阻,它的输出电压不因负载而改变。而实际电压源的端电压随着电流变化而变化,即它具有一定的内阻值。理想电压源与实际电压源以及它们的伏安特性如图4-1所示(参阅实验一内容)。 2、电流源也分为理想电流源和实际电流源。 理想电流源的电流是恒定的,不因外电路不同而改变。实际电流源的电流与所联接的电路有关。当其端电压增高时,通过外电路的电流要降低,端压越低通过外电路的电 并联来表示。图4-2为两种电流越大。实际电流源可以用一个理想电流源和一个内阻R S 流源的伏安特性。

3、电源的等效变换 一个实际电源,尤其外部特性来讲,可以看成为一个电压源,也可看成为一个电流源。两者是等效的,其中I S=U S/R S或 U S=I S R S 图4-3为等效变换电路,由式中可以看出它可以很方便地把一个参数为U s 和R s 的 电压源变换为一个参数为I s 和R S 的等效电流源。同时可知理想电压源与理想电流源两者 之间不存在等效变换的条件。 三、仪器设备 电工实验装置: DG011、 DG053 、 DY04 、 DYO31 四、实验内容 1、理想电流源的伏安特性 1)按图4-4(a)接线,毫安表接线使用电流插孔,R L 使用1KΩ电位器。 2)调节恒流源输出,使I S 为10mA。, 3)按表4-1调整R L 值,观察并记录电流表、电压表读数变化。将测试结果填入表4-1中。 2、实际电流源的伏安特性 按照图4-4(b)接线,按表4-1调整R L 值,将测试的结果填入表4-1中。

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码

武汉大学电力系统分析实验报告

电气工程学院 《电力系统分析综合实验》2017年度PSASP实验报告 学号: 姓名: 班级:

实验目的: 通过电力系统分析的课程学习,我们都对简单电力系统的正常和故障运行状态有了大致的了解。但电力系统结构较为复杂,对电力系统极性分析计算量大,如果手工计算,将花费 大量的时间和精力,且容易发生错误。而通过使用电力系统分析程序PSASP,我们能对电 力系统潮流以及故障状态进行快速、准确的分析和计算。在实验过程中,我们能够加深对电力系统分析的了解,并学会了如何使用计算机软件等工具进行电力系统分析计算,这对我们以后的学习和工作都是有帮助的。 潮流计算部分: 本次实验潮流计算部分包括使用牛顿法对常规运行方式下的潮流进行计算,以及应用PQ分解法规划运行方式下的潮流计算。在规划潮流运行方式下,增加STNC-230母线负荷的有功至1.5.p.u,无功保持不变,计算潮流。潮流计算中,需要添加母线并输入所有母线 的数据,然后再添加发电机、负荷、交流线、变压器、支路,输入这些元件的数据。对运行方案和潮流计算作业进行定义,就可以定义的潮流计算作业进行潮流计算。 因为软件存在安装存在问题,无法使用图形支持模式,故只能使用文本支持模式,所以 无法使用PSASP绘制网络拓扑结构图,实验报告中的网络拓扑结构图均使用Visio绘制, 请见谅。 常规潮流计算: 下图是常规模式下的网络拓扑结构图,并在各节点标注电压大小以及相位。 下图为利用复数功率形式表示的各支路功率(参考方向选择数据表格中各支路的i侧母

线至j侧),因为无法使用图形支持模式,故只能通过文本支持环境计算出个交流线功率,下图为计算结果。

《程序设计基础》课程大作业总结报告(小型工资管理系统)D

XX大学 《程序设计基础》课程大作业总结报告大作业名称小型工资管理系统 学院 XXXXXXXX 班级 XXXXXXXXXX 学生姓名 XXX 学号 XXXXXXXXXX 任课教师 XXX 成绩日期 一、系统的设计思想(简要叙述自己在编写该系统时的思路) 首先,定义一个Employee结构体用来存储员工信息,定义一个数组存储员工信息。 输入函数通过定义一个结构体来存储输入的信息,一个员工信息输入完成之后添加到数组中;输出函数就是对数组的遍历打印;排序采用冒泡排序去进行排序;修改函数通过对比员工编号查找到员工,然后进行修改;同样的,查询函数就是遍历进行字符比较。 二、程序中自己定义的结构体数据类型 struct Employee { char nun[20]; char name[20]; char gender[10]; char department[20]; double basicWage; double performanceWage; double bonus; double payable; }; 三、程序中所有自己定义的函数之间的调用关系图(用函数名作为实体画出它们之间的调用关系) 四、程序运行结果屏幕截图(注意,每个功能至少有一个截图)

1、系统一级菜单截图 2、“数据输入”功能的截图(截图中必须包含自已的真实姓名及班级) 3、“数据修改”功能截图 4、“数据处理”功能截图 (1)“数据处理”功能子菜单截图

(2)“查询”功能截图 (3)“排序”功能截图 按照工号排序 5、“数据输出”功能截图 6、自己新增功能的截图,并在截图下面做一定的说明。有多个新增功能的,可自

模式识别报告二

第二次试验报告 一 实验名称 贝叶斯分类器设计(最小风险贝叶斯决策和最小错误率贝叶斯抉择) 二 实验原理 最小错误率: 合理决策依据:根据后验概率决策 已知后验概率P(w 1|x), P(w 2|x), 决策规则: ? 当P(w 1|x)>P(w 2|x) x ∈w 1, ? 当P(w 1|x)

最小风险: 1. 已知类别的P(w i )及x 的p(x/w i ),利用贝叶斯公式,可得类别 的后验概率P(w i /x)。 2. 利用决策表和后验概率,计算最小条件风险 3. 决策:在各种决策中选择风险最小的决策 三 实验内容 ? 假定某个局部区域细胞识别中正常( w1)和非正常 ( w2)两类先验概率分别为 ? 正常状态:P (w1)=0.9; 异常状态:P (w2)=0.1。 1 (/)()(/)(/)()i i i c i i i p x w P w P w x p x w P w =?=∑

?现有一系列待观察的细胞,其观察值为x: -3.9847 -3.5549 -1.2401 -0.9780 -0.7932 -2.8531 -2.7605 -3.7287 -3.5414 -2.2692 -3.4549 -3.0752 -3.9934 2.8792 -0.9780 0.7932 1.1882 3.0682 -1.5799 -1.4885 -0.7431 -0.4221 -1.1186 4.2532 ?类条件概率分布正态分布分别为(-2,0.5)(2,2)试对观察的结果进行分类。 四实验步骤及贴图 步骤: ?1.用matlab完成分类器的设计,说明文字程序相应语句,子程 序有调用过程。 ?2.根据例子画出后验概率的分布曲线以及分类的结果示意图。 ?3.最小风险贝叶斯决策,决策表如下: ?重新设计程序,完成基于最小风险的贝叶斯分类器,画出相应 的后验概率的分布曲线和分类结果,并比较两个结果。

电路分析实验报告-第一次

电路分析实验报告

实验报告(二、三) 一、实验名称实验二KCL与KVL的验证 二、实验目的 1.熟悉Multisim软件的使用; 2.学习实验Multisim软件测量电路中电流电压; 3.验证基尔霍夫定理的正确性。 三、实验原理 KCL为任一时刻,流出某个节点的电流的代数和恒等于零,流入任一封闭面的电流代数和总等于零。且规定规定:流出节点的电流为正,流入节点的电流为负。 KVL为任一时刻,沿任意回路巡行,所有支路电压降之和为零。且各元件取号按照遇电压降取“+”,遇电压升取“-”的方式。沿顺时针方向绕行电压总和为0。电路中任意两点间的电压等于两点间任一条路径经过的各元件电压降的代数和。 四、实验内容 电路图截图:

1.验证KCL: 以节点2为研究节点,电流表1、3、5的运行结果截图如下: 由截图可知,流入节点2的电流为2.25A,流出节点2 的电流分别为750mA和1.5A。2.25=0.75+1.5。所以,可验证KCL成立。 2.验证KVL: 以左侧的回路为研究对象,运行结果的截图如下:

由截图可知,R3两端电压为22.5V,R1两端电压为7.5V,电压源电压为30V。22.5+7.5-30=0。所以,回路电压为0,所以,可验证KVL成立。 一、实验名称实验三回路法或网孔法求支路电流(电压) 二、实验目的 1.熟悉Multisim软件的使用; 2.学习实验Multisim软件测量电路中电流电压; 3.验证网孔分析法的正确性。 三、实验原理 为减少未知量(方程)的个数,可以假想每个回路中有一个回路电流。若回路电流已求得,则各支路电流可用回路电流线性组合表示。这样即可求得电路的解。回路电流法就是以回路电流为未知量列写电路方程分析电路的方法。网孔电流法就是对平面电路,若以网孔为独立回

VB程序设计大作业报告

VB程序设计大作业报告 班级:机械11102班学号:201103112 姓名:孙文斌日期:2013.05.13 一、设计题目:《抓交通肇事犯》 一辆卡车违反了交通规则,撞人后逃逸。现场有三人目击事件,但都没有记住车号,记住车号的一些特征。甲说:车号的前两位数字是相同的;乙说:车号的后两位数字 是相同的,但与前两位不同;丙是位数学家,他说:四位的车号正好是一个整数的平 方。现在请你根据以上线索帮助警方找出车号以便尽快破案 二、问题分析与算法设计: 按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整数的平方。 假设这个四位数的前两位数字都是i,后两位数字都是j,则这个可能的四位数k为:k = 1000 * i + 100 * i + 10 * j + j 其中,i和j都在0~9之间变化。现在还需使k满足是一个整数c的平方,由于k是一个四位数,所以,m值不可能小于31和大于100,因此,可从31开始试验到100,看是否满足k == c*c,若不满足,则c加1再试,直到找到满足这些限制条件的k为止结束测试。 三、界面与结果截图: 界面截图:

结果截图: 四、结果分析与总结: 通过结果截图我们知道最后得到的车牌号为7744,首先检验甲叙述的前两位数字相同都为7,再检验乙叙述的车牌号后两位相同都为4且不与前两位相同,最后检验丙叙述的该车牌号为88的平方,所以综合上述检验分析结果满足题意。 通过此次VB程序设计从理论到实践,我学到很多很多的的东西,让我对vb程序编写有了一个初步认识。从最初的拿到题目无从下手,接着网上查阅些材料以及反复看书本上的例题使我对这个程序的编写有了一个大致轮廓,接着在草稿纸上写下程序代码,然后到计算机上反复调试,最终才算完成。在这反复调试的过程中我明白了时间是检验真理的唯一标准。这对我今后的学习中都会起到非常重要的作用。最后衷心感谢李宁老师对我vb课程的指导,祝您身体健康,工作愉快。 附录程序源代码: Private Sub command1_click() Dim i%, j%, k%, c% For i = 0 To 9 For j = 0 To 9 If i <> j Then k = i * 1000 + i * 100 + j * 10 + j For c = 31 To 100 If (c * c) = k Then Picture1.Print k End If Next c End If Next j Next i End Sub

模式识别实验报告(一二)

信息与通信工程学院 模式识别实验报告 班级: 姓名: 学号: 日期:2011年12月

实验一、Bayes 分类器设计 一、实验目的: 1.对模式识别有一个初步的理解 2.能够根据自己的设计对贝叶斯决策理论算法有一个深刻地认识 3.理解二类分类器的设计原理 二、实验条件: matlab 软件 三、实验原理: 最小风险贝叶斯决策可按下列步骤进行: 1)在已知 ) (i P ω, ) (i X P ω,i=1,…,c 及给出待识别的X 的情况下,根据贝叶斯公式计 算出后验概率: ∑== c j i i i i i P X P P X P X P 1 ) ()() ()()(ωωωωω j=1,…,x 2)利用计算出的后验概率及决策表,按下面的公式计算出采取i a ,i=1,…,a 的条件风险 ∑== c j j j i i X P a X a R 1 )(),()(ωω λ,i=1,2,…,a 3)对(2)中得到的a 个条件风险值) (X a R i ,i=1,…,a 进行比较,找出使其条件风险最小的 决策k a ,即()() 1,min k i i a R a x R a x == 则 k a 就是最小风险贝叶斯决策。 四、实验内容 假定某个局部区域细胞识别中正常(1ω)和非正常(2ω)两类先验概率分别为 正常状态:P (1ω)=; 异常状态:P (2ω)=。 现有一系列待观察的细胞,其观察值为x : 已知先验概率是的曲线如下图:

)|(1ωx p )|(2ωx p 类条件概率分布正态分布分别为(-2,)(2,4)试对观察的结果 进行分类。 五、实验步骤: 1.用matlab 完成分类器的设计,说明文字程序相应语句,子程序有调用过程。 2.根据例子画出后验概率的分布曲线以及分类的结果示意图。 3.最小风险贝叶斯决策,决策表如下: 结果,并比较两个结果。 六、实验代码 1.最小错误率贝叶斯决策 x=[ ] pw1=; pw2=; e1=-2; a1=; e2=2;a2=2; m=numel(x); %得到待测细胞个数 pw1_x=zeros(1,m); %存放对w1的后验概率矩阵 pw2_x=zeros(1,m); %存放对w2的后验概率矩阵

电力系统分析实验报告

五邑大学 电力系统分析理论 实验报告 院系 专业 学号 学生姓名 指导教师

实验一仿真软件的初步认识 一、实验目的: 通过使用PowerWorld电力系统仿真软件,掌握电力系统的结构组成,了解电力系统的主要参数,并且学会了建立一个简单的电力系统模型。学会单线图的快捷菜单、文件菜单、编辑菜单、插入菜单、格式菜单、窗口菜单、仿真控制等菜单的使用。 二、实验内容: (一)熟悉PowerWorld电力系统仿真软件的基本操作 (二)用仿真器建立一个简单的电力系统模型: 1、画一条母线,一台发电机; 2、画一条带负荷的母线,添加负荷; 3、画一条输电线,放置断路器; 4、写上标题和母线、线路注释; 5、样程存盘; 6、对样程进行设定、求解; 7、加入一个新的地区。 三、电力系统模型: 按照实验指导书,利用PowerWorld软件进行建模,模型如下: 四、心得体会: 这一次试验是我第一次接触PWS这个软件,刚开始面对一个完全陌生的软件,我只能听着老师讲解,照着试验说明书,按试验要求,在完成试验的过程中一点一点地了解熟悉这个软件。在这个过程中也遇到了不少问题,比如输电线的画法、断路器的设置、仿真时出现错误的解决办法等等,在试验的最后,通过请教老师同学解决了这些问题,也对这个仿真软件有了一个初步的了解,为以后的学习打了基础。在以后的学习中,我要多点操作才能更好地熟悉这个软件。

实验二电力系统潮流分析入门 一、实验目的 通过对具体样程的分析和计算,掌握电力系统潮流计算的方法;在此基础上对系统的运行方式、运行状态、运行参数进行分析;对偶发性故障进行简单的分析和处理。 二、实验内容 本次实验主要在运行模式下,对样程进行合理的设置并进行电力系统潮流分析。 选择主菜单的Case Information Case Summary项,了解当前样程的概况。包括统计样程中全部的负荷、发电机、并联支路补偿以及损耗;松弛节点的总数。进入运行模式。从主菜单上选择Simulation Control,Start/Restart开始模拟运行。运行时会以动画方式显示潮流的大小和方向,要想对动画显示进行设定,先转换到编辑模式,在主菜单上选择Options,One-Line Display Options,然后在打开的对话框中选中Animated Flows Option选项卡,将Show Animated Flows复选框选中,这样运行时就会有动画显示。也可以在运行模式下,先暂停运行,然后右击要改变的模型的参数即可。 三、电力系统模型

综合大作业(记事本)可视化程序设计

郑州轻工业学院实验报告 实验课程:可视化程序设计基础实验名称: Windows窗体设计 班级:计算机科学与技术01—1班学号: 541007010157 姓名:郑峰弓实验日期: 2011年11月24日 一、实验目的 1.掌握窗体设计步骤、窗体调用。 2.根据自己所做的实验内容可适当增加条目。 3.熟悉本学期学习的各种控件,上交作业。 二、实验内容 2. 仿MS word (或Windows 系统记事本) ,实现一个文本编辑系统: 读取的文件类型可以是txt、rtf等自定义格式 ,不一定用doc格式 实现文本字体、颜色等格式的设置 实现文件保存、打开、新建等功能 实现有关菜单的设计、工具栏的设计和状态 栏的设计(状态栏显示光标所在行、列等) 三、程序开发操作步骤 1. 启动Visual Studio 2008 。 2. 创建项目。设置项目名为“记事本可视化程序设计”。 3. 添加控件。创建过,出现设计界面,此时会出现一窗体Form1,此时窗体时空的,不包含任何控件的。单击“工具箱”的公共控件选项卡,选择MenuStrip控件,将其放在窗口上,创建两个MenuStrip1,MenuStri2,再选择RichTextBox 控件,将其放在窗口上,调整大小及其位置。再工具箱中的所有Window窗体中选择OpenFileDialog,SaveFileDialog,ColorDialog,FontDialog,StatusStrip控件,将其放在窗口上。 4. 设置控件属性。点击窗口,在属性中的text设置为‘记事本’,将Startposition 设置成Centerscreen。点击MenuStrip1,在窗体上加菜单栏,分别为文件,格式,查看,编辑,在文件,格式,查看,编辑,下又建立子菜单,如下图所示。在子菜单下各自设置各自的热键和快捷键,在MenuStri2上添加8个button,分

华南理工大学《模式识别》大作业报告

华南理工大学《模式识别》大作业报告 题目:模式识别导论实验 学院计算机科学与工程 专业计算机科学与技术(全英创新班) 学生姓名黄炜杰 学生学号201230590051 指导教师吴斯 课程编号145143 课程学分2分 起始日期2015年5月18日

实验概述 【实验目的及要求】 Purpose: Develop classifiers,which take input features and predict the labels. Requirement: ?Include explanations about why you choose the specific approaches. ?If your classifier includes any parameter that can be adjusted,please report the effectiveness of the parameter on the final classification result. ?In evaluating the results of your classifiers,please compute the precision and recall values of your classifier. ?Partition the dataset into2folds and conduct a cross-validation procedure in measuring the performance. ?Make sure to use figures and tables to summarize your results and clarify your presentation. 【实验环境】 Operating system:window8(64bit) IDE:Matlab R2012b Programming language:Matlab

《电力系统分析》实验报告

本科生实验报告 实验课程电力系统分析 学院名称 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师 实验地点6C901 实验成绩 二〇一九年九二〇一九年十二月 1

电力系统分析实验报告 摘要 电力系统分析是电气工程专业的主干基础课程,是学生进入电力系统专业的主要向导和桥梁。而MATLAB仿真中的Simulink建模是对电力系统进行建模分析的一个重要工具。 关键词:电力系统;MATALB;建模 实验一电力系统分析计算 一、实验目的 1.掌握用Matlab软件编程计算电力系统元件参数的方法. 2.通过对不同长度的电力线路的三种模型进行建模比较,学会选取根据电路要 求选取模型。 3.掌握多级电力网络的等值电路计算方法。 4.理解有名制和标幺制。 二、实验内容 1.电力线路建模 有一回220kV架空电力线路,导线型号为LGJ-120,导线计算外径为 15.2mm,三相导线水平排列,两相邻导线之间的距离为4m。试计算该电力线路的参数,假设该线路长度分别为60km,200km,500km,作出三种等值电路模型,并列表给出计算值。 2

模型 1 15.75 欧 22.8 欧 1.8e- 4欧 52.5 欧 76欧6e-4 欧 131.2 5欧 190欧 1.5e- 3欧 2.多级电力网络的等值电路计算 部分多级电力网络结线图如图1-1所示,变压器均为主分接头,作出它的等值电路模型,并列表给出用有名制表示的各参数值和用标幺制表示的各参数值。 图1-1 多级电力网络结线图 线路额定电压电阻 (欧/km) 电抗 (欧/km) 电纳 (S/km) 线路长度 (km) L1(架空 线) 220kv 0.08 0.406 2.81*10-6 200 L2(架空 线) 110kV 0.105 0.383 2.81*10-6 60 L3(架空 线) 10kV 0.17 0.38 忽略15 变压器额定容量P k (kw) U k % I o % P o (kW) 3

模式识别文献综述报告

指导老师:马丽 学号:700 班级: 075111 姓名:刘建 成绩: 目录 ............................................................ 一、报告内容要点............................................................ 二、《应用主成分分解(PCA)法的图像融合技术》............................................................ 三、《基于类内加权平均值的模块 PCA 算法》............................................................

四、《PCA-LDA 算法在性别鉴别中的应用》 ............................................................ 五、《一种面向数据学习的快速PCA算法》 ............................................................ 六、《Theory of fractional covariance matrix and its applications in PCA and 2D-PCA》 ............................................................ 七、课程心得体会 ............................................................ 八、参考文献 ............................................................ 一、报告内容要点 ①每篇论文主要使用什么算法实现什么 ②论文有没有对算法做出改进(为什么改进,原算法存在什么问题,改进方法是什么) ③论文中做了什么对比试验,实验结论是什么?可以加入自己的分析和想法,例如这篇论文还存在什么问题或者缺点,这篇论文所作出的改进策略是否好,你自己对算法有没有什么改进的想法? 二、《应用主成分分解(PCA)法的图像融合技术》 第一篇《应用主成分分解(PCA)法的图像融合技术》,作者主要是实现用PCA可以提取图像数据中主要成分这一特点,从元图像获得协方差矩阵的特征值和特征向量,据此确定图像融合算法中的加权系数和最终融合图像。 作者在图像融合的算法上进行改进,用PCA获得待融合的每幅图像的加权系数Wi。是这样实现的:计算待融合的i幅图像数据矩阵的协方差矩阵,从中获

人工智能 多种模式识别的调研报告

郑州科技学院 本科毕业设计(论文) 题目多种模式识别的调研报告 姓名闫永光 专业计算机科学与技术 学号201115025 指导教师 郑州科技学院信息工程系 二○一四年六月

摘要 信息技术的飞速发展使得人工智能的应用范围变得越来越广,而模式识别作为其中的一个重要方面,一直是人工智能研究的重要方向。在介绍人工智能和模式识别的相关知识的同时,对人工智能在模式识别中的应用进行了一定的论述。 模式识别(Pattern Recognition)是人类的一项基本智能,着20世纪40年代计算机的出现以及50年代人工智能的兴起,模式识别技术有了长足的发展。模式识别与统计学、心理学、语言学、计算机科学、生物学、控制论等都有关系。它与人工智能、图像处理的研究有交叉关系。模式识别的发展潜力巨大。 关键词:模式识别;人工智能;多种模式识别的应用;模式识别技术的发展潜力

引言 随着计算机应用范围不断的拓宽,我们对于计算机具有更加有效的感知“能力”,诸如对声音、文字、图像、温度以及震动等外界信息,这样就可以依靠计算机来对人类的生存环境进行数字化改造。但是从一般的意义上来讲,当前的计算机都无法直接感知这些信息,而只能通过人在键盘、鼠标等外设上的操作才能感知外部信息。虽然摄像仪、图文扫描仪和话筒等相关设备已经部分的解决了非电信号的转换问题,但是仍然存在着识别技术不高,不能确保计算机真正的感知所采录的究竟是什么信息。这直接使得计算机对外部世界的感知能力低下,成为计算机应用发展的瓶颈。这时,能够提高计算机外部感知能力的学科——模式识别应运而生,并得到了快速的发展。人工智能中所提到的模式识别是指采用计算机来代替人类或者是帮助人类来感知外部信息,可以说是一种对人类感知能力的一种仿真模拟。它探讨的是计算机模式识别系统的建立,通过计算机系统来模拟人类感官对外界信息的识别和感知 1、模式识别 什么是模式和模式识别? 模式可分成抽象的和具体的两种形式。前者如意识、思想、议论等,属于概念识别研究的范畴,是人工智能的另一研究分支。我们所指的模式识别主要是对语音波形、地震波、心电图、脑电图、图片、照片、文字、符号、生物传感器等对象的具体模式进行辨识和分类。 模式识别(Pattern Recognition)是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。模式识别又常称作模式分类,从处理问题的性质和解决问题的方法等角度,模式识别分为有监督的分类(Supervised Classification)和无监督的分类(Unsupervised Classification)两种。二者的主要差别在于,各实验样本所属的类别是否预先已知。一般说来,有监督的分类往往需要提供大量已知类别的样本,但在实际问题中,这是存在一定困难的,因此研究无监督的分类就变得十分有必要了。

c++面向对象程序设计大作业

《面向对象程序设计》 大作业 题目学生成绩管理系统 学院 专业 班级 姓名 指导教师 2015 年11 月11 日

目录 一大作业的目的 (1) 二大作业的内容............................ . .. (2) 三大作业的要求与数据............... ...... . (3) 四大作业应完成的工作.................. . (4) 五总体设计(包含几大功能模块)........... . (5) 六详细设计(各功能模块的具体实现算法——流程图) (6) 七调试分析(包含各模块的测试用例,及测试结果) (7) 八总结 (8) 十参考资料 (9)

一大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 二大作业的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C++语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录 的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

模式识别实验报告_2

模式识别理论与方法 课程作业实验报告 实验名称:Generating Pattern Classes 实验编号:Proj01-01 规定提交日期:2012年3月16日 实际提交日期:2012年3月13日 摘要: 在熟悉Matlab中相关产生随机数和随机向量的函数基础上,重点就多元(维)高斯分布情况进行了本次实验研究:以mvnrnd()函数为核心,由浅入深、由简到难地逐步实现了获得N 个d维c类模式集,并将任意指定的两个维数、按类分不同颜色进行二维投影绘图展示。 技术论述:

1,用矩阵表征各均值、协方差2,多维正态分布函数: 实验结果讨论:

从实验的过程和结果来看,进一步熟悉了多维高斯分布函数的性质和使用,基本达到了预期目的。 实验结果: 图形部分: 图1集合中的任意指定两个维度投影散点图形

图2集合中的任意指定两个维度投影散点图形,每类一种颜色 数据部分: Fa= 9.6483 5.5074 2.4839 5.72087.2769 4.8807 9.1065 4.1758 1.5420 6.1500 6.2567 4.1387 10.0206 3.5897 2.6956 6.1500 6.9009 4.0248 10.1862 5.2959 3.1518 5.22877.1401 3.1974 10.4976 4.9501 1.4253 5.58257.4102 4.9474 11.3841 4.5128 2.0714 5.90068.2228 4.4821 9.6409 5.43540.9810 6.2676 6.9863 4.2530 8.8512 5.2401 2.7416 6.5095 6.1853 4.8751 9.8849 5.8766 3.3881 5.7879 6.7070 6.6132 10.6845 4.8772 3.4440 6.0758 6.6633 3.5381 8.7478 3.3923 2.4628 6.1352 6.9258 3.3907

《.net程序设计》大作业报告模板

《.net程序设计》大作业报告学院信息科学与技术学院 专业 学号 学生姓名 指导教师 2017年12月

摘要 目前各种资格认证考试的在线考试通过无纸化考试方式实现了跨越时间、空间的限制,节省了大量的物力财力。在线考试和即时阅卷提高了考试效率,减轻了考生和考务人员的负担。学校的传统考试沿用纸质出题、打印,考试、监考、人工阅卷的流程,中间资源浪费较多。相比而言,在线考试能够更好的服务于学生,满足考试的需求,是网络教育的发展重点。在线考试涉及管理学生考试信息、试题信息的维护和更新,是能够实现的有效的考试方式。在线考试是学校网络教育发展的必然趋势。 本文以开发适用于学校的在线模拟考试系统为例,针对试题维护、随机组卷、在线考试进行了开发和测试,进行了相关的探索和研究。 关键词:JSP 在线考试维护

目录 第1章需求分析 (1) 1.1 XXX (1) 第2章系统模块设计 (3) 2.1 XXX (3) 第3章数据库设计 (6) 3.1 XXX (6) 第4章系统实现 (16) 4.1 登录模块 (16) 第5章心得体会 (36) 参考文献 (37) 附录(源代码) (38)

第1章需求分析 页面设置:A4,上、下页边距3cm,左、右页边距2.5cm 正文:宋体小四号字,首行缩进、固定行距20磅 本章最后说明每个组员的具体分工

第2章系统模块设计功能框图参见如下格式: 图2.1 系统的总体结构

第3章数据库设计 数据表采用如下任一种格式: 表3.1 学生表(Student) 表3-1 考生信息表 字段名字段类型可否为空说明 Id Bigint(8) not null 主键自增 Name Varchar(20) not null 姓名 Sex Varchar(2) not null 性别 Answer Profession CardNo Grade Varchar(50) Varchar(30) Varchar(18) Varchar(18) not null not null not null not null 问题答案 专业 身份证号 所属班级

哈尔滨工程大学模式识别实验报告

实验报告实验课程名称:模式识别 姓名:班级:学号:

注:1、每个实验中各项成绩按照5分制评定,实验成绩为各项总和 2、平均成绩取各项实验平均成绩 3、折合成绩按照教学大纲要求的百分比进行折合 ; 2015年4月 实验1 图像的贝叶斯分类 实验目的 将模式识别方法与图像处理技术相结合,掌握利用最小错分概率贝叶斯分类器进行图像分类的基本方法,通过实验加深对基本概念的理解。 实验仪器设备及软件 HP D538、MATLAB ( 实验原理 基本原理 阈值化分割算法是计算机视觉中的常用算法,对灰度图象的阈值分割就是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中每个像素的灰度值与这个阈值相比较。并根据比较的结果将对应的像素划分为两类,灰度值大于阈值的像素划分为一类,小于阈值的划分为另一类,等于阈值的可任意划分到两类中的任何一类。此过程中,确定阈值是分割的关键。

对一般的图像进行分割处理通常对图像的灰度分布有一定的假设,或者说是基于一定的图像模型。最常用的模型可描述如下:假设图像由具有单峰灰度分布的目标和背景组成,处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界处两边的像素灰度值有较大差别,此时,图像的灰度直方图基本上可看作是由分别对应于目标和背景的两个单峰直方图混合构成。而且这两个分布应大小接近,且均值足够远,方差足够小,这种情况下直方图呈现较明显的双峰。类似地,如果图像中包含多个单峰灰度目标,则直方图可能呈现较明显的多峰。 上述图像模型只是理想情况,有时图像中目标和背景的灰度值有部分交错。这时如用全局阈值进行分割必然会产生一定的误差。分割误差包括将目标分为背景和将背景分为目标两大类。实际应用中应尽量减小错误分割的概率,常用的一种方法为选取最优阈值。这里所谓的最优阈值,就是指能使误分割概率最小的分割阈值。图像的直方图可以看成是对灰度值概率分布密度函数的一种近似。如一幅图像中只包含目标和背景两类灰度区域,那么直方图所代表的灰度值概率密度函数可以表示为目标和背景两类灰度值概率密度函数的加权和。如果概率密度函数形式已知,就有可能计算出使目标和背景两类误分割概率最小的最优阈值。 假设目标与背景两类像素值均服从正态分布且混有加性高斯噪声,上述分类问题可用模式识别中的最小错分概率贝叶斯分类器来解决。以1p 与2p 分别表示目标与背景的灰度分布概率密度函数,1P 与2P 分别表示两类的先验概率,则图像的混合概率密度函数用下式表示 1122()()()p x P p x P p x =+ 式中1p 和2p 分别为 … 212 1()21()x p x μσ--= 222 2()22()x p x μσ-- = 121P P += 1σ、2σ是针对背景和目标两类区域灰度均值1μ与2μ的标准差。若假定目标的灰度较亮,

Java程序设计大作业实验报告

目录 一、前言 (2) 二、需求分析 (3) 三、系统总体设计 (3) 3.1系统总体设计系统思路 (3) 3.2数据库设计 (4) 3.2.1 login1表的设计和数据 (4) 3.2.2 student表的设计和数据 (5) 3.2.3 course表的设计和数据 (5) 3.2.4 score表的设计和数据 (6) 3.3系统功能模块设计 (6) 四、系统详细设计 (7) 4.1登录模块 (7) 4.2 学生模块 (7) 4.3 教师模块 (8) 4.4 管理员模块 (8) 五、系统测试及运行结果 (9) 5.1 主界面 (9) 5.2 学生管理中心界面 (9) 5.3 教师管理中心界面 (10) 5.4 管理员管理中心界面 (10) 5.5 查询课表界面 (11) 5.6 查询成绩界面 (11) 5.7 查询教学情况界面 (11) 5.8 查询所有学生成绩界面 (12) 5.9 学生信息管理界面 (12) 5.10 学生成绩管理界面 (13) 5.11 用户管理界面 (13) 六、实验总结 (14) 七、参考文献 (14)

一、前言 随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。 本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。本系统主要分为三个部分:学生模块、教师模块、管理员模块。其中学生模块实现的功能:查询课表信息和查询成绩。教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。管理员模块实现的功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。

相关文档
最新文档