交流采样算法急需请教

老人参 2008-03-06 08:26:33

前一次电流AD的平方*(当前时间+1)+后一次电流AD的平方*(当前时间)




(当前时间+1)*基本间隔采样数+((当前时间+1)*(每周期采样数-基本仅隔采样数))



上面的 除以 下面的是什么意思,用的是什么算法?


部分代码如下,请给解释一下,要是能找到作者就好了,可惜没有找到

U_aVI2=U_aVI1;
U_aVI1=U_aVI;
U_aVI= ((float)CA_M_A*((float)AC_TACCR0+1)+(float)CA_N_A*(float)AC_TACCR0)
/ ( ((float)AC_TACCR0+1)*(float)AC_M+((float)AC_TACCR0+1)*((float)_ADC_N-(float)AC_M));

for(b=_DISP_BUF_N-1;b>0;b--){
DISP_buf1[b]=DISP_buf1[b-1];
DISP_buf[b]=DISP_buf1[b];
}
DISP_buf1[0]=U_aVI;
DISP_buf[0]=U_aVI;
for(a=0;a<_DISP_BUF_N;a++){
for(b=a;b<_DISP_BUF_N;b++){
if(DISP_buf[a]<DISP_buf[b]){
U_aVI=DISP_buf[a];
DISP_buf[a]=DISP_buf[b];
DISP_buf[b]=U_aVI;
}
}
}
U_aVI=0;
for(a=4;a<_DISP_BUF_N-4;a++){
U_aVI=U_aVI+DISP_buf[a];
}
U_aVI=U_aVI/(float)(_DISP_BUF_N-8);

DISP_buf[0]=U_aVI;
DISP_buf[1]=U_aVI1;
DISP_buf[2]=U_aVI2;

if(DISP_buf[0]>DISP_buf[1]){
DISP_buf[4]=DISP_buf[0];
DISP_buf[0]=DISP_buf[1];
DISP_buf[1]=DISP_buf[4];
}
if(DISP_buf[0]>DISP_buf[2]){
DISP_buf[4]=DISP_buf[0];
DISP_buf[0]=DISP_buf[2];
DISP_buf[2]=DISP_buf[4];
}
if(DISP_buf[1]>DISP_buf[2]){
DISP_buf[4]=DISP_buf[1];
DISP_buf[1]=DISP_buf[2];
DISP_buf[2]=DISP_buf[4];
}
if(U_aIMAX<DISP_buf[1]){
U_aIMAX=DISP_buf[1];
}
...全文
530 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
come_onzhang 2012-03-20
  • 打赏
  • 举报
回复
请问您这个问题解决了吗 我想请教您我也正做交流电的采集 可是不知道怎么用c语言实现 你能帮帮我吗 可不可以把您的资料发给我一份呢 1067929469@qq.com 这个是我的邮箱谢谢
老人参 2008-03-06
  • 打赏
  • 举报
回复
要是知道的人,给我发电子邮件也可以 laorenshen@163.com 谢谢

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧