久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2499|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

電網(wǎng)相關(guān)程序(電網(wǎng)電壓前向旋轉(zhuǎn)校正,迭代矯正,電壓正負(fù)序分離,計(jì)算電網(wǎng)相位指針)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:292857 發(fā)表于 2018-3-16 17:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
電網(wǎng)相關(guān)程序
8.1電網(wǎng)電壓正負(fù)序分離程序
//1函數(shù)功能:對(duì)電網(wǎng)電壓進(jìn)行正負(fù)序分離
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:
// K_E_ITR  K_E_INST   K_E_NP
//4 函數(shù)內(nèi)部變量:
long int E_ALF_DIFF_GRD=0;
long int E_BET_DIFF_GRD=0;
long int E_ALF_PST_ITR=0;
long int E_BET_PST_ITR=0;
long int E_ALF_NEG_ITR=0;
long int E_BET_NEG_ITR=0;
int E_ALF_GRD_NP_LST1=0;
int E_BET_GRD_NP_LST1=0;
int E_ALF_PST_GRD_INST=0;
int E_BET_PST_GRD_INST=0;
int E_ALF_NEG_GRD_INST=0;
int E_BET_NEG_GRD_INST=0;
long int E_PST_GRD_TMP=0;
long int E_NEG_GRD_TMP=0;
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
//int CAL_FRQ=0;
//int E_ALF_GRD_LST1=0;
//int E_BET_GRD_LST1=0;
//int COS_THT_AT_PWMA_RLD=0;
//int SIN_THT_AT_PWMA_RLD=0;
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
//int E_ALF_PST_GRD=0;
//int E_BET_PST_GRD=0;
//int E_ALF_NEG_GRD=0;
//int E_BET_NEG_GRD=0;
//int E_PST_GRD=0;
//int E_NEG_GRD=0;
//int SIN_THT_PST_GRD=0;
//int COS_THT_PST_GRD=0;
//int SIN_THT_NEG_GRD=0;
//int COS_THT_NEG_GRD=0;

//8 代碼執(zhí)行時(shí)間:25us
//9 代碼長度:376
//10 函數(shù)體
extern void E_PN_SEQU_SPRT_V4();
void E_PN_SEQU_SPRT_V4()
{            
                //電網(wǎng)電壓微分計(jì)算賦初值
                if((E_PST_GRD==0)&&(E_NEG_GRD==0))
                {
                              E_ALF_GRD_NP_LST1=E_ALF_GRD;
                              E_BET_GRD_NP_LST1=E_BET_GRD;
                }
                //計(jì)算電網(wǎng)電壓微分值
              E_ALF_DIFF_GRD=((long int)E_ALF_GRD*CAL_FRQ-(long int)E_ALF_GRD_NP_LST1*CAL_FRQ)*13/4096;
              E_BET_DIFF_GRD=((long int)E_BET_GRD*CAL_FRQ-(long int)E_BET_GRD_NP_LST1*CAL_FRQ)*13/4096;

              //通過當(dāng)前值和微分值計(jì)算正負(fù)序分量
              E_ALF_PST_GRD_INST=(E_ALF_GRD+E_BET_DIFF_GRD);
              E_BET_PST_GRD_INST=(E_BET_GRD-E_ALF_DIFF_GRD);
              E_ALF_NEG_GRD_INST=(E_ALF_GRD-E_BET_DIFF_GRD);
              E_BET_NEG_GRD_INST=(E_BET_GRD+E_ALF_DIFF_GRD);


                if((E_PST_GRD==0)&&(E_NEG_GRD==0))
                {
                  //正負(fù)序電壓賦初值
                              E_ALF_PST_GRD=E_ALF_PST_GRD_INST/2;
                              E_BET_PST_GRD=E_BET_PST_GRD_INST/2;
                              E_ALF_NEG_GRD=E_ALF_NEG_GRD_INST/2;
                              E_BET_NEG_GRD=E_BET_NEG_GRD_INST/2;
                }
                else
                {
                  //正負(fù)序電壓向前校正一個(gè)PWM周期
                  E_ALF_PST_ITR=((long int)COS_THT_AT_PWMA_RLD*E_ALF_PST_GRD-(long int)SIN_THT_AT_PWMA_RLD*E_BET_PST_GRD)/512;
                              E_BET_PST_ITR=((long int)COS_THT_AT_PWMA_RLD*E_BET_PST_GRD+(long int)SIN_THT_AT_PWMA_RLD*E_ALF_PST_GRD)/512;
                              E_ALF_NEG_ITR=((long int)COS_THT_AT_PWMA_RLD*E_ALF_NEG_GRD+(long int)SIN_THT_AT_PWMA_RLD*E_BET_NEG_GRD)/512;
                              E_BET_NEG_ITR=((long int)COS_THT_AT_PWMA_RLD*E_BET_NEG_GRD-(long int)SIN_THT_AT_PWMA_RLD*E_ALF_NEG_GRD)/512;
                              //遺忘濾波運(yùn)算            
                              E_ALF_PST_GRD=((long int)E_ALF_PST_ITR*K_E_ITR+E_ALF_PST_GRD_INST*K_E_INST)/K_E_NP;
                              E_BET_PST_GRD=((long int)E_BET_PST_ITR*K_E_ITR+E_BET_PST_GRD_INST*K_E_INST)/K_E_NP;
                              E_ALF_NEG_GRD=((long int)E_ALF_NEG_ITR*K_E_ITR+E_ALF_NEG_GRD_INST*K_E_INST)/K_E_NP;
                              E_BET_NEG_GRD=((long int)E_BET_NEG_ITR*K_E_ITR+E_BET_NEG_GRD_INST*K_E_INST)/K_E_NP;
                }
                  //電網(wǎng)電壓延時(shí)一個(gè)周期
                              E_ALF_GRD_NP_LST1=E_ALF_GRD;
                              E_BET_GRD_NP_LST1=E_BET_GRD;
                    //正序電壓模值計(jì)算
                              SQUR_X=E_ALF_PST_GRD;
                              SQUR_Y=E_BET_PST_GRD;
                              SQRT_ROOT_V4();            
                                E_PST_GRD=SQRT_MOD;
                                //電網(wǎng)正序正、余弦計(jì)算
                                E_PST_GRD_TEMP=(long int)1073741824/SQRT_MOD;//1073741824=1024*1024*1024
                                SIN_THT_PST_GRD=(long int)E_BET_PST_GRD*E_PST_GRD_TMP/(long int)1048576;//1048576=1024*1024
                              COS_THT_PST_GRD=(long int)E_ALF_PST_GRD*E_PST_GRD_TMP/(long int)1048576;
                                //負(fù)序電壓模值計(jì)算
                              SQUR_X=E_ALF_NEG_GRD;
                              SQUR_Y=E_BET_NEG_GRD;
                              SQRT_ROOT_V4();
                              E_NEG_GRD=SQRT_MOD;
                              //電網(wǎng)負(fù)序正、余弦計(jì)算   
                              //E_NEG_GRD_TEMP=(long int)1073741824/SQRT_MOD;//1073741824=1024*1024*1024
                              //SIN_THT_NEG_GRD=(long int)E_BET_NEG_GRD*E_NEG_GRD_TMP/(long int)1048576;//1048576=1024*1024
                                //COS_THT_NEG_GRD=(long int)E_ALF_NEG_GRD*E_NEG_GRD_TMP/(long int)1048576;
}
//11程序原理說明
//12 程序流程圖

8.2電網(wǎng)檢測程序
//1函數(shù)功能:對(duì)電網(wǎng)相序、幅值的檢測
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:
  DEG_UNB_GRD_LMT
//4 函數(shù)內(nèi)部變量:
  int DEG_UNB_GRD_CNT=0;
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
//int E_PST_GRD=0;
//int E_NEG_GRD=0;
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
//long int E_UNBL_DGR =0;
//int FAULT_FLG=0;
//int FAULT_CODE=0;
//int FAULT_VAL=0;
//8 代碼執(zhí)行時(shí)間:3.3us
//9 代碼長度:76
//10 函數(shù)體:
extern void GRD_TEST_V4();
void GRD_TEST_V4()
{
  if(DEG_UNB_GRD_CNT==1000)
  {
                //計(jì)算電網(wǎng)電壓跌落程度
                E_UNBL_DGR=(long int)E_NEG_GRD*1024/E_PST_GRD;
                //電網(wǎng)電壓相序檢測
                if(E_UNBL_DGR>=DEG_UNB_GRD_HLMT)
                {
                  if(FAULT_FLG==0)
                  {
                                              FAULT_FLG=1;
                                              FAULT_CODE=43;
                                              FAULT_VAL=E_NEG_GRD/16;
                  }
                                GRID_TEST_FLG=0;//電網(wǎng)電壓檢測標(biāo)志位
                  }
                //電網(wǎng)電壓不平衡檢測
                if((E_UNBL_DGR>=DEG_UNB_GRD_LLMT)&&(E_UNBL_DGR<DEG_UNB_GRD_HLMT))
                {
                                if(FAULT_FLG==0)
                                {
                                              FAULT_FLG=1;
                                              FAULT_CODE=42;
                                              FAULT_VAL=E_UNBL_DGR;
                                }
                                              GRID_TEST_FLG=0;
                }
                //電網(wǎng)電壓檢測通過
                else
                {
                                GRID_TEST_FLG=1;
                }
    DEG_UNB_GRD_CNT=999;
  }
  DEG_UNB_GRD_CNT++;
}
//11程序原理說明
//12 程序流程圖

8.3計(jì)算電網(wǎng)相位指針程序不帶過零檢測
//1函數(shù)功能:由反三角函數(shù)得出的電網(wǎng)相位角信息計(jì)算出對(duì)應(yīng)的電網(wǎng)相位指針。
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:無
//4 函數(shù)內(nèi)部變量:無
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
//int THT_LST1=0;//第(n-1)周期電網(wǎng)相位角
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
//int THT_PNT_LST1=0;//第(n-1)周期的相位指針
//int THT_PNT_LST2=0;//第(n-2)周期的相位指針
//int THT_PNT_NXT1=0;//第(n+1)周期的相位指針
//int THT_PNT_NXT2=0;//第(n+2)周期的相位指針
//8 代碼執(zhí)行時(shí)間
//9 代碼長度
//10 函數(shù)體
extern void THT_PNT_CAL_WO_V4();
void THT_PNT_CAL_WO_V4()
{
              if(THT_LST1>=11488)
              THT_LST1=THT_LST1-11520;
              THT_PNT_LST1=(THT_LST1+47)/96;

              THT_PNT_LST2=THT_PNT_LST1-1;
if(THT_PNT_LST2<0)
    THT_PNT_LST2=119;

    THT_PNT_NXT1=THT_PNT_LST1+1;
   if(THT_PNT_NXT1>119)
    THT_PNT_NXT1=0;

    THT_PNT_NXT2=THT_PNT_LST1+2;
              if(THT_PNT_NXT2>119)
              THT_PNT_NXT2=THT_PNT_NXT2-120;
}
//11程序原理說明
//12 程序流程圖

8.4計(jì)算電網(wǎng)相位指針程序帶過零檢測
//1函數(shù)功能:由反三角函數(shù)得出的電網(wǎng)相位角信息計(jì)算出對(duì)應(yīng)的電網(wǎng)相位指針。
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:無
//4 函數(shù)內(nèi)部變量:
int THT_ZR_CFM_FLG=0;                            //電網(wǎng)相位角過零確認(rèn)標(biāo)志位
int THT_TMP_LST1=0;                                          //第(n-2)周期電網(wǎng)相位角
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
//int int THT_LST1=0;                                          //第(n-1)周期電網(wǎng)相位角
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
//int THT_PNT_LST1=0;                                          //第(n-1)周期的相位指針
//int THT_PNT_LST2=0;                                          //第(n-2)周期的相位指針
//int THT_PNT_PRST=0;                                          //第n周期的相位指針
//int THT_PNT_NXT1=0;                            //第(n+1)周期的相位指針
//int THT_PNT_NXT2=0;                            //第(n+2)周期的相位指針
//int GRD_PRD_END_FLG=0;                            //一個(gè)電網(wǎng)周期結(jié)束標(biāo)志位,用于求取一個(gè)周期內(nèi)的直流側(cè)電壓的平均值
//8 代碼執(zhí)行時(shí)間
//9 代碼長度
//10 函數(shù)體

extern void THT_PNT_CAL_W_V4();
void THT_PNT_CAL_W_V4()
{
              THT_PNT_LST1++;
              if(THT_PNT_LST1>100)
              {
                            THT_ZR_CFM_FLG=1;
              }
              if(THT_ZR_CFM_FLG==1)
              {
                            if((THT_TMP_LST1-THT_LST1)>10000)
                            {
                                          GRD_PRD_END_FLG=1;
                                          THT_ZR_CFM_FLG=0;
                            }
              }
              THT_TMP_LST1=THT_LST1;
              if((THT_LST1>=11488)||(THT_PNT_LST1>=120))
              {
                            THT_PNT_LST1=0;
              }
              THT_PNT_LST2=THT_PNT_LST1-1;
              if(THT_PNT_LST2<0)
              THT_PNT_LST2=THT_PNT_LST2+120;
              THT_PNT_PRST=THT_PNT_LST1+1;
              if(THT_PNT_PRST>119)
              THT_PNT_PRST=THT_PNT_PRST-120;
              THT_PNT_NXT1=THT_PNT_LST1+2;
              if(THT_PNT_NXT1>119)
              THT_PNT_NXT1=THT_PNT_NXT1-120;
              THT_PNT_NXT2=THT_PNT_LST1+3;
              if(THT_PNT_NXT2>119)
              THT_PNT_NXT2=THT_PNT_NXT2-120;
}
//11程序原理說明
6K時(shí)THT_PNT_LST1計(jì)數(shù)120次;9K時(shí)THT_PNT_LST1計(jì)數(shù)180次。
當(dāng)THT_PNT_LST1大于100時(shí),電網(wǎng)相位角過零確認(rèn)標(biāo)志位置1,程序開始判斷THT_TMP_LST1-THT_LST1的值,若大于10000,即認(rèn)為角度指針已過零(例如:THT_LST1=96(3°),THT_TMP_LST1=11520(360°))。電網(wǎng)相位角過零確認(rèn)標(biāo)志位THT_ZR_CFM_FLG清0,電網(wǎng)過零標(biāo)志位GRD_PRD_END_FLG置1。當(dāng)THT_LST1大于11488(稍小于11520)或THT_PNT_LST1大于等于120時(shí),THT_PNT_LST1清0。
//12 程序流程圖


8.5電網(wǎng)電壓前向旋轉(zhuǎn)校正
//1函數(shù)功能:對(duì)分離出來的正負(fù)序電壓向前校正兩個(gè)周期
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:無
//4 函數(shù)內(nèi)部變量:無
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
//int E_ALF_PST_GRD=0;//第(n-1)周期電網(wǎng)電壓正序采樣值A(chǔ)LP
//int E_BET_PST_GRD=0;//第(n-1)周期電網(wǎng)電壓正序采樣值BET
//int E_ALF_NEG_GRD=0;//第(n-1)周期電網(wǎng)電壓負(fù)序采樣值A(chǔ)LP
//int E_BET_NEG_GRD=0;//第(n-1)周期電網(wǎng)電壓負(fù)序采樣值BET
//int COS_THT_2_CYC=0;
//int SIN_THT_2_CYC=0;
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
//int E_ALF_PST_GRD_FRW=0;//第(n-1)周期電網(wǎng)電壓正序采樣值A(chǔ)LP
//int E_BET_PST_GRD_FRW=0;//第(n-1)周期電網(wǎng)電壓正序采樣值BET
//int E_ALF_NEG_GRD_FRW=0;//第(n-1)周期電網(wǎng)電壓負(fù)序采樣值A(chǔ)LP
//int E_BET_NEG_GRD_FRW=0;//第(n-1)周期電網(wǎng)電壓負(fù)序采樣值BET
//8 代碼執(zhí)行時(shí)間:1.92us
//9 代碼長度: 81
//10 函數(shù)體
extern void E_GRD_FRW_V4();
void E_GRD_FRW_V4()
{
                //正負(fù)序電壓向前校正兩個(gè)PWM周期
              E_ALF_PST_GRD_FRW=((long int)E_ALF_PST_GRD*COS_THT_2_CYC-(long int)E_BET_PST_GRD*SIN_THT_2_CYC)/1024;
              E_BET_PST_GRD_FRW=((long int)E_BET_PST_GRD*COS_THT_2_CYC+(long int)E_ALF_PST_GRD*SIN_THT_2_CYC)/1024;
              E_ALF_NEG_GRD_FRW=((long int)E_ALF_NEG_GRD*COS_THT_2_CYC-(long int)E_BET_NEG_GRD*SIN_THT_2_CYC)/1024;
              E_BET_NEG_GRD_FRW=((long int)E_BET_NEG_GRD*COS_THT_2_CYC+(long int)E_ALF_NEG_GRD*SIN_THT_2_CYC)/1024;
}
//11程序原理說明
以PWM重載頻率6K為例,每個(gè)重載周期電網(wǎng)變化
//12 程序流程圖

8.6電網(wǎng)電壓迭代矯正
//1函數(shù)功能:電網(wǎng)電壓迭代濾波,矯正
//2 函數(shù)所使用數(shù)表:無
//3 函數(shù)所使用的常量:
#define              KF_GRD_CLB              14
//4 函數(shù)內(nèi)部變量:
int              E_ALF_GRD_CLB_LST2=0;
int              E_BET_GRD_CLB_LST2=0;
int              E_ALF_GRD_ITR_LST1=0;
int              E_BET_GRD_ITR_LST1=0;
//5 函數(shù)的控制變量:無
//6 函數(shù)輸入變量(應(yīng)定義為全局變量):
int              E_ALF_GRD_LST1=0;
int              E_BET_GRD_LST1=0;
//7 函數(shù)輸出變量(應(yīng)定義為全局變量):
int              E_ALF_GRD_CLB_LST1=0;
int              E_BET_GRD_CLB_LST1=0;

//8 代碼執(zhí)行時(shí)間:2us
//9 代碼長度:105
//10 函數(shù)體:
extern void E_GRD_CLB_V4();
void E_GRD_CLB_V4()
{
              if((E_ALF_GRD_CLB_LST2==0)&&(E_BET_GRD_CLB_LST2==0))
              {
                            E_ALF_GRD_CLB_LST1=E_ALF_GRD_LST1;
                            E_BET_GRD_CLB_LST1=E_BET_GRD_LST1;
              }
              else
              {
                            E_ALF_GRD_ITR_LST1=((long int)E_ALF_GRD_CLB_LST2*COS_THT_AT_PWMA_RLD-(long int)E_BET_GRD_CLB_LST2*SIN_THT_AT_PWMA_RLD)/1024;
                            E_BET_GRD_ITR_LST1=((long int)E_BET_GRD_CLB_LST2*COS_THT_AT_PWMA_RLD+(long int)E_ALF_GRD_CLB_LST2*SIN_THT_AT_PWMA_RLD)/1024;
                            E_ALF_GRD_CLB_LST1=((long int)KF_GRD_CLB*E_ALF_GRD_ITR_LST1+(long int)(16-KF_GRD_CLB)*E_ALF_GRD_LST1)/16;
E_BET_GRD_CLB_LST1=((long int)KF_GRD_CLB*E_BET_GRD_ITR_LST1+(long int)(16-KF_GRD_CLB)*E_BET_GRD_LST1)/16;
              }
              E_ALF_GRD_CLB_LST2=E_ALF_GRD_CLB_LST1;
              E_BET_GRD_CLB_LST2=E_BET_GRD_CLB_LST1;            
}
//11程序原理說明
程序算法流程圖如下
表示采樣獲取的原始值;
由前一周期獲得的迭代值;
由前一周期獲得的迭代值和采樣值加權(quán)計(jì)算的值.


函數(shù)的輸入變量是采樣獲取的原始值E_ALF_GRD_LST1和E_BET_GRD_LST1;
函數(shù)的輸出變量為迭代值和采樣值加權(quán)計(jì)算的電壓E_ALF_GRD_CLB_LST1和E_BET_GRD_CLB_LST1.
(1) 在程序運(yùn)行的第一個(gè)周期矯正的電網(wǎng)電壓E_ALF_GRD_CLB_LST2和E_BET_GRD_CLB_LST2都為零,此時(shí)矯正值E_ALF_GRD_CLB_LST1和E_BET_GRD_CLB_LST1用采樣的原始值
(2)在程序運(yùn)行了一個(gè)周期之后E_ALF_GRD_CLB_LST2和E_BET_GRD_CLB_LST2不同時(shí)為零,將其向前矯正3度算出迭代值E_ALF_GRD_ITR_LST1和E_BET_GRD_ITR_LST1.
(3) 位電壓矯正系數(shù),一般取0.8左右.
//12 程序流程圖

電網(wǎng)相關(guān)程序.doc

81.5 KB, 下載次數(shù): 9, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99热精品在线观看 | 国产在线一区二区三区 | 欧美日韩国产精品激情在线播放 | 亚洲精品视频免费观看 | 成人免费在线视频 | 成人免费观看男女羞羞视频 | 欧美精品v国产精品v日韩精品 | 日韩一级免费电影 | 亚洲一区三区在线观看 | 日韩一区二区三区在线观看 | 国产精品亚洲一区二区三区在线 | 国产精品国产精品国产专区不蜜 | 精品一区二区三区在线观看 | 四虎影视| 中文字幕日韩欧美一区二区三区 | 99精品久久 | 亚洲精品视频一区 | 久久精品一级 | 亚洲小视频在线观看 | 久久久精 | 亚洲视频三区 | 九九久久在线看 | 中文字幕在线播放第一页 | 久久精彩视频 | 美女久久| 久久久久久久av | 久久黄色网 | 免费一区 | 国内自拍真实伦在线观看 | 国产福利视频网站 | 日韩高清一区 | 亚洲欧洲中文 | 老牛影视av一区二区在线观看 | 精产国产伦理一二三区 | 日本一区二区视频 | 欧美a区| 日韩精品在线视频 | 毛片大全| 国产区在线免费观看 | 欧美影院| 蜜桃臀av一区二区三区 |