新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于CS5451A的三相多功能電能表設計

        基于CS5451A的三相多功能電能表設計

        作者: 時間:2006-07-12 來源:網絡 收藏

        隨著電子技術的飛速發展,電能表的集成度越來越高,在多功能電表市場上,主要有兩種架構:電能計量芯片加微控制器;A/D轉換芯片加微處理器。第一種方案成本比較低,功能主要取決于電能芯片,微控制器不能進行復雜的數據處理,所以不具有諧波分析功能。第二種方案可以通過復雜的數據處理,實現非常多的功能。本文主要介紹基于A+TMS320F2801的多功能電表設計。

        A是Cirrus Logic公司為能源測量工業設計的高度集成的Δ-Σ A/D轉換器。A在一個芯片上集成了6個Δ-Σ A/D轉換器、濾波器和一個與微控制器或DSP相聯接的串行接口。CS5451A與一個變流器或可測量電流的分流器和電阻分割器或測量用變壓器直接連接。同時該產品已被初始化和功能完全設置,并包括一個參考電壓。

        TMS320C28x系列數字信號控制器是業界第一款32位基于DSP的控制器,具有板載Flash存儲器和高達150MIPS的性能,它們針對于工業自動化、數字電源、汽車控制以及高級傳感應用。C28x內核是世界上最高性能控制優化內核,提供計算帶寬來實時處理許多復雜的控制算法,如無傳感速度控制、隨機PWM以及功率因數校正。C28x還提供了足以與一般MCU相匹敵的C代碼效率,與C2000系列中的當前器件完全代碼兼容。

        硬件設計

        圖1:基于CS5451A+TMS320F2801的多功能電表框圖。

        圖1所示為本方案的硬件框圖,本方案按功能可分成以下幾個模塊:

        電壓轉化模塊是一個電阻網絡,用分壓電阻的方法,把三相電壓信號轉化成三個400mV的信號,經過阻容濾波送入CS5451A(見圖2)。




        圖2:采用電阻網絡的電壓轉化模塊。

        電流轉化模塊是通過電流互感器,把0-6安的三相電流信號轉化成三個400mV的信號,經過阻容濾波送入CS5451A(見圖3)。


        圖3:通過電流互感器把0-6安的三相電流信號轉化成三個400mV的信號。

        CS5451A模塊功能是把輸入的六通道電壓電流信號轉化成數字信號輸出。CS5451A與TMS320F2801通過SPI口連接,每隔250微秒主動發出一組數據。

        TMS320F2801有兩個SPI接口,一個作為從SPI接收CS5451A數據,另一個作為從SPI與MCU通訊。24C04用來保存設置數據和校準數據。

        軟件設計

        軟設計分兩大部份,TMS320F2801的軟件和MCU軟件。

        MCU軟件主要是從TMS320F2801種讀取數據、顯示和與PC機通訊,本文不作介紹。

        TMS320F2801的軟件實現對CS5451A的數據采集、電量計算、諧波分析、與89C52

        通訊、脈沖輸出。軟件主流程如圖4。

        初始化系統配置寄存器,包括系統頻率設置、Flash寄存器初始化、SPIA和SPIB的使能。SPIA用來接收CS5451A的數據,SPIB用于89C52通訊。

        外部中斷用來捕捉CS5451A的同步信號,在捕捉到同步信號以后,初始化并啟動SPIA模塊,SPIA模塊在接收到12個字節數據以后產生中斷,把數據保存到緩存中。流程如圖5。

        圖4:軟件主流程圖。

        電能計算方法

        電壓有效值:

        電流有效值:

        有功功率:

        無功采用移相90度算法,In+t是移相90度后的電流值

        諧波分析方法

        由于電網頻率是變化的,采樣頻率固定,所以每個周波采集到的瞬時值個數是不固定的。要進行64點FFT計算,必須把采集到的瞬時值轉化成64點瞬時值,轉化方法有多種,本設計采用的是拉格朗日二次差值法,精度比線性差值法高,計算量也可以達到要求。

        圖5:中斷處理流程圖。

        /*

        拉格朗日定理(lagrange):

        若函數f(x)滿足:(1)f(x)在閉區間[a,b]上連續;(2)f(x)在開區間(a,b)可導;

        則在開區間(a,b)必存在S,使得f(b)-f(a)=f'(s)(b-a)。

        拉格朗日二次插值公式:

        已知曲線上三點(x0,y0),(x1,y1),(x2,y2),則該二次曲線為:

        L(x)=(x-x1)(x-x2)f(x0)/(x0-x1)(x0-x2)+(x-x0)(x-x2)f(x1)/(x1-x0)(x1-x2)+(x-x0)(x-x1)f(x2)/(x2-x0)(x2-x1);

        */

        //Ta是周期值

        //Points是要抽取的點數,本系統進行64點FFT計算,Points取64

        float fft_buf[128]; // 保存CS5451A采集的128點數據

        float dataR[128]; // 保存抽出來的64點數據

        void DataChange(float Ta,int Points)

        {

        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;j3;j++)

        {

        p=1;

        c=1;

        for( k=0;k3;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計算和電量計算程序用匯編語言編寫,程序編寫這里不作介紹。

        電能表相關文章:電能表原理


        關鍵詞: 5451A 5451 CS 三相

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 靖宇县| 凌源市| 岳阳县| 滨海县| 天祝| 临海市| 天全县| 安岳县| 连平县| 廊坊市| 保德县| 广饶县| 蛟河市| 阿鲁科尔沁旗| 文昌市| 广汉市| 周宁县| 库车县| 玉林市| 沈阳市| 镇原县| 抚远县| 临泽县| 苍南县| 盐池县| 嘉善县| 浦北县| 页游| 海南省| 东乡| 东光县| 南昌县| 安仁县| 重庆市| 澳门| 洛宁县| 化隆| 鞍山市| 巍山| 荥经县| 佛山市|