float fft_buf[128]; // 保存CS5451A采集的128点数据

float dataR[128]; // 保存抽出来的64点数据

void DataChange(float Ta,int Points)

图4:软件主流程图。

{

int i,j,k;

int index; //offset;

float p=1.0;//初始化p

float c=1.0;

float yE=0;

float m;

int T0=25; //To单位为10us.

for(i=0;i{

//找到所需的三个点的第一个点。 整除的状况要考虑。

index=(floor((i*Ta*100)/(Points*T0)));

//若所求的点为已知点则跳过。

if((i*Ta*100)/(Points*T0)-floor((i*Ta*100)/(Points*T0))==0)

{

dataR[i]=fft_buf[index];

continue;

}

//用lagrange计算出所求的点。

for(j=0;j《3;j++)

{

p=1;

c=1;

for( k=0;k《3;k++)

{

if(k==j)continue;//判断是否为同一个数

m=index+k;

m=m*T0*Points;

p=p*(Ta*i*100-m);

p=p/Points;

c=c*((index+j)*T0-(index+k)*T0); }

//求和

yE=yE+p*fft_buf[index+j]/c;

}

dataR[i]=yE;

yE=0;

}

}

本方案中数据运算量很大,对TMS320F2801的要求很高,所以FFT计算和电量计算程序用汇编语言编写,程序编写这里不作介绍。

责任编辑:gt

关于智能电网就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查