gonglv.c

来自「一个功率程序」· C语言 代码 · 共 75 行

C
75
字号
#include"stdio.h"
#include"math.h"

#define pointnumber 128
#define PI 3.1415936

float Ua[128],Ub[128],Uc[128],Ia[128],Ib[128],Ic[128];
float Pa,Pb,Pc,P,Ua_res,Ub_res,Uc_res,Ia_res,Ib_res,Ic_res,Sa,Sb,Sc,S;
//float res;

float RES();
void makewave();

main()
{
	int i;
	makewave();
	for(i=0;i<pointnumber;i++)
	{
	 Pa+=Ua[i]*Ia[i];
	}

	Pa=Pa/128.0;                      //单相平均功率
	for(i=0;i<pointnumber;i++)
	{
	 Pb+=Ub[i]*Ib[i];	
	}
	Pb=Pb/128.0;
	for(i=0;i<pointnumber;i++)
	{
	 Pc+=Uc[i]*Ic[i];	
	}
	Pc=Pc/128.0;
	P=Pa+Pb+Pc;                       //三相平均功率
    Ua_res=RES(Ua);
	Ub_res=RES(Ub);
	Uc_res=RES(Uc);
	Ia_res=RES(Ia);
	Ib_res=RES(Ib);
	Ic_res=RES(Ic);
	Sa=Ua_res*Ia_res;
	Sb=Ub_res*Ib_res;
    Sc=Uc_res*Ic_res;
	S=Sa+Sb+Sc;     //三相视在功率
    return;
}

void makewave()
{
	int i;
    for(i=0;i<pointnumber;i++)
	{
     Ua[i]=220*1.414*cos(2*PI*50*0.02*i/128.0);
     Ub[i]=380*cos(2*PI*50*0.02*i/128.0-2*PI/3.0);
     Uc[i]=380*cos(2*PI*50*0.02*i/128.0+2*PI/3.0);
	 Ia[i]=3*cos(2*PI*50*0.02*i/128.0);
	 Ib[i]=3*cos(2*PI*50*0.02*i/128.0-2*PI/3.0);
	 Ic[i]=3*cos(2*PI*50*0.02*i/128.0+2*PI/3.0);
	}
}
float RES(float x[128])
{
	float res;
	int i;
    res=0;
    for(i=0;i<128;i++)
	{
      res+=pow(x[i],2);
	}
      res=res/128;
      res=sqrt(res);
	  //printf("%f\n",res);
	  return res;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?