-
大小: 28KB文件類(lèi)型: .c金幣: 1下載: 0 次發(fā)布日期: 2022-02-20
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
用DFT算法和查表的方法實(shí)現(xiàn)電力系統(tǒng)各種參數(shù)的分析
代碼片段和文件信息
#include?“DSP28_Device.h“
#if(ADC)
extern?Uint16 volatile test_wordtest_byte;
extern?STATUS volatile Flags;
extern?Uint16 volatile adbuf[6][ADC_PR+ADC_OFFSET]adcbcntClrTimer;
extern?Uint16 volatile avarage_pr_cnt; //周期個(gè)數(shù)計(jì)數(shù)器
extern?Uint16 volatile TdCntTdCntATdCntBTdCntCBdCntBdCntABdCntBBdCntC;//投切延時(shí)計(jì)數(shù)器返回延時(shí)計(jì)數(shù)器
extern?int32 volatile VirtVal[7]papbpcqaqbqcthdi0sasbsc;//存放最終計(jì)算結(jié)果VirtVal緩沖區(qū)0單元到6單元分別是uaubuciaibici0
extern?Uint16 volatile UCoefUaCoefUbCoefUcCoefIaCoefIbCoefIcCoef; //Ua、Ub、Uc、Ia、Ib、Ic六個(gè)模擬輸入通道的系數(shù)
extern?Uint16 volatile UaaUbbUcc;
extern?float volatile IaaIbbIcc;
extern?float volatile AdrMax[7]AdrMin[7];
extern?float volatile paspbspcsqasqbsqcs;
extern?float volatile UaSumUbSumUcSumIaSumIbSumIcSumI0Sum;
extern?float volatile PaSumPbSumPcSumQaSumQbSumQcSumSaSumSbSumScSum;
extern?float volatile cosacosbcoscsaasbbscc; //存放功率因數(shù)
extern?float volatile UaBuf[AVARAGE_PR_NUM]UbBuf[AVARAGE_PR_NUM]UcBuf[AVARAGE_PR_NUM];
extern?float volatile IaBuf[AVARAGE_PR_NUM]IbBuf[AVARAGE_PR_NUM]IcBuf[AVARAGE_PR_NUM];
extern?float volatile PaBuf[AVARAGE_PR_NUM]PbBuf[AVARAGE_PR_NUM]PcBuf[AVARAGE_PR_NUM];
extern?float volatile QaBuf[AVARAGE_PR_NUM]QbBuf[AVARAGE_PR_NUM]QcBuf[AVARAGE_PR_NUM];
extern?float volatile SaBuf[AVARAGE_PR_NUM]SbBuf[AVARAGE_PR_NUM]ScBuf[AVARAGE_PR_NUM];
extern?Uint16 volatile inpwpwidctuhuli00; //存放設(shè)置的參數(shù):口令、地址、變比、電壓上限、電壓下限
extern?Uint16 volatile thducosskkbdtd; //電壓諧波畸變率上限、補(bǔ)償?shù)墓β室驍?shù)上限、投入門(mén)限系數(shù)、投切延時(shí)
extern?OUTPORT volatile outpin[OUTNUM];
extern?Uint16 volatile EquAEquBEquCEquT;
extern?Uint16 volatile singlecapsrnumtogthercaptrnum;
extern?SSTEP volatile sstep;
extern?TSTEP? volatile tstep;
extern?Uint16 volatile frequenceFreCntPerVal;
extern?Uint16 volatile FreBuf[AVARAGE_PERIOD];
extern?float volatile harm_cos_tab[ADC_PR+ADC_OFFSET];
extern?float volatile harm_sin_tab[ADC_PR+ADC_OFFSET];
extern?Uint16 volatile harmsca[6][HARM_TIME]; //分別存放6相的諧波總加及3~HARM_TIME次諧波分量比例
extern?Uint16 volatile HSS[6][HARM_TIME];
extern?Uint16 volatile HarSca[6][HARM_TIME];
extern?Uint16 volatile MaxHarm[6][HARM_TIME];
#if(MMI)
Uint32?Taxis(Uint16?*BufUint16?AverageTime) //將Buf內(nèi)的數(shù)據(jù)去掉一個(gè)最大的和一個(gè)最小的
{
Uint32?Temp;
Uint16?CntReg;
if(AverageTime>=4) //只有數(shù)據(jù)個(gè)數(shù)較多時(shí)才去掉最大值和最小值再求平均
{
Reg=0;
for(Cnt=1;Cnt {
if(*(Buf+Reg)<*(Buf+Cnt))Reg=Cnt;
}
Temp=*(Buf+Reg);
for(Cnt=Reg;Cnt {
*(Buf+Cnt)=*(Buf+Cnt+1);
}
*(Buf+AverageTime-1)=Temp; //最大值放在最后一個(gè)單元
Reg=0;
for(Cnt=1;Cnt {
if(*(Buf+Reg)>*(Buf+Cnt))Reg=Cnt;
}
Temp=*(Buf+Reg);
for(Cnt=Reg;Cnt {
*(Buf+Cnt)=*(Buf+Cnt+1);
}
*(Buf+AverageTime-2)=Temp; //最小值放在最后第二個(gè)單元
Temp=0;
for(Cnt=0;Cnt
評(píng)論
共有 條評(píng)論