新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于C2000內(nèi)置12位ADC的電能計量方案

        基于C2000內(nèi)置12位ADC的電能計量方案

        作者: 時間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201706/348097.htm

        摘要

        本應(yīng)用筆記介紹了基于內(nèi)核和片內(nèi)12位實(shí)現(xiàn)軟件的方案。半導(dǎo)體有限公司生產(chǎn)的32位高性能實(shí)時,廣泛應(yīng)用于諸如馬達(dá)驅(qū)動,數(shù)字電源等各種和功率控制相關(guān)的實(shí)時控制領(lǐng)域,而電能和功率的計算在以上應(yīng)用中往往作為反饋控制的輸入信號存在。因此,將軟件算法集成到平臺上是實(shí)現(xiàn)各種實(shí)時控制SOC方案的關(guān)鍵。本文介紹了在C2000上實(shí)現(xiàn)軟件計量算法的具體方法以及TI基于C2000的軟件計量庫的使用方法,同時給出了測試結(jié)果。



        1 C2000計量庫介紹

        1.1應(yīng)用背景

        節(jié)能環(huán)保的倡導(dǎo)和推行使大部分家用電器都有對能耗統(tǒng)計的需求,對于這個巨大的應(yīng)用市場,將C2000芯片在家電電機(jī)電源上的應(yīng)用優(yōu)勢在最小硬件成本添加代價下兼容拓展能耗統(tǒng)計功能是本次設(shè)計的目的。


        C2000芯片專注于電機(jī)電源控制,其優(yōu)秀的性能已被業(yè)界普遍認(rèn)可。本次設(shè)計是基于C2000 Piccolo系列芯片搭建的軟件測試平臺,實(shí)現(xiàn)一套滿足智能家居能耗計量的軟件庫,使用最小的硬件代價實(shí)現(xiàn)對C2000應(yīng)用領(lǐng)域的豐富。

        1.2硬件平臺及軟件庫介紹

        本次參考設(shè)計硬件平臺使用C2000 Piccolo Entry Line Control Pad,這是TI提供的一套低成本C2000開發(fā)板,基于此平臺搭建的電路進(jìn)行計量庫開發(fā)可以使用戶在逐步學(xué)C2000開發(fā)編程的同時實(shí)現(xiàn)一套能耗計量軟件。
        此參考設(shè)計實(shí)現(xiàn)一個單相方案。參考設(shè)計的目的旨在實(shí)現(xiàn)一個完整的單相計量庫。使用戶在這個參考設(shè)計的基礎(chǔ)上快速建立自己的單相計量方案。代碼庫提供有功功率,無功功率,視在功率,有功能量以及無功能量,同時還能測量回路電流有效值,電壓有效值,功率因數(shù),頻率等參數(shù),滿足單相電能計量的需求,軟件支持?jǐn)?shù)字校表。



        2 第二部分 計量電路及功能描述


        2.1計量代碼庫

        調(diào)用計量庫時,只需要將emeter目錄下的所有文件都添加進(jìn)來,就能夠使用計量功能了。其中文件emeter-interface.h中聲明了所有對外調(diào)用接口,供程序調(diào)用,以實(shí)現(xiàn)校表和計量數(shù)據(jù)讀取等功能。算法庫默認(rèn)配置轉(zhuǎn)換率為3200點(diǎn)/秒,轉(zhuǎn)換數(shù)據(jù)為12bit,數(shù)據(jù)范圍0—4096,實(shí)現(xiàn)單相計量。函數(shù)adc_interrupt()實(shí)現(xiàn)對原始轉(zhuǎn)換數(shù)據(jù)的運(yùn)算,measurement_callback()負(fù)責(zé)進(jìn)一步處理adc_interrupt()中預(yù)處理的數(shù)據(jù)。因此可以在每個中斷中調(diào)用adc_interrupt(adc_raw[2]),也可以緩存多個點(diǎn)然后再循環(huán)調(diào)用此函數(shù),函數(shù)入?yún)dc_raw為信號輸入,adc_raw[0]為電壓轉(zhuǎn)換數(shù)據(jù),adc_raw[1]為電流轉(zhuǎn)換數(shù)據(jù)。adc_interrupt(),measurement_callback()實(shí)現(xiàn)流程如圖1所示:

        圖1 計量軟件流程圖

        計量前端電路由電壓信號調(diào)理電路和電流信號調(diào)理電路組成。電壓信號調(diào)理電路使用電阻器對輸入工頻信號分壓,并經(jīng)過運(yùn)算放大器緩沖后送至MCU ADC輸入引腳。電流互感器輸出電流信號通過負(fù)載電阻轉(zhuǎn)換成電壓信號,經(jīng)過運(yùn)算放大器放大后送至MCU ADC輸入引腳。推薦電路如圖2所示:

        圖2 CT計量前端參考電路

        上圖電壓輸入分析如下:

        市電220V交流輸入,經(jīng)10k和15k并聯(lián)再串聯(lián)2M電阻分壓,輸入交流電壓為220V*(6/(2000+6))=0.66V,直流電壓3.3*10/25=1.32V。總的輸入電壓幅值0.66*1.414+1.32=2.25V,輸入信號3.3V以內(nèi)。電流互感器輸入5A/2.5mA(根據(jù)互感器具體型號定),取樣電阻電壓2.5*10=25mV,經(jīng)運(yùn)放20倍放大(具體放大倍數(shù)調(diào)整R9,R10),輸入交流信號25*20=0.5V,總的輸入電流幅值(10A)1*1.414+1.6=3.014V,輸入信號3.3V以內(nèi)。當(dāng)使用錳銅電阻獲得電流信號時,電流信號調(diào)理電路形式如下:

        圖3 錳銅計量前端參考電路

        2.2函數(shù)說明

        emeter-interface.h文件中聲明的主要函數(shù)和宏定義如下:

        int32_t get_parameter(int address)
        介紹:獲取各種計量參數(shù)從地址address。
        入?yún)ⅲ?6位整型address地址
        出參:返回該地址上的數(shù)據(jù)。
        可中斷重入,可中斷中使用。

        uint8_t set_parameter(int address, int32_t value)
        介紹:設(shè)置各種校表參數(shù)和表參數(shù)到地址address。
        入?yún)ⅲ?6位整型,address地址32位有符號整型value值
        出參:返回1表示操作成功,返回0表示操作失敗.
        不可中斷重入,不可中斷中使用。

        void measurement_setup (void)
        介紹:代碼庫初始化,在上電之初調(diào)用。
        入?yún)ⅲ簾o
        出參:無

        void measurement_callback (void)
        介紹:此函數(shù)周期性(1s)調(diào)用,以更新實(shí)時數(shù)據(jù)。
        入?yún)ⅲ簾o
        出參:無
        不可中斷重入,不可中斷中使用。

        void adc_interrupt(int16_t * adc_raw)
        Application Report
        ZHCA501–Jan 2013
        介紹:可以在ADC每個中斷中調(diào)用adc_interrupt(adc_raw[2]),也可以緩存多個點(diǎn)然后再循環(huán)調(diào)用此函數(shù),
        函數(shù)入?yún)dc_raw為信號輸入,adc_raw[0]為電壓轉(zhuǎn)換數(shù)據(jù),adc_raw[1]為電流轉(zhuǎn)換數(shù)據(jù)
        入?yún)ⅲ弘妷弘娏鬏斎階DC值數(shù)值,adc_raw [0]電壓,adc_raw [1]電流。
        出參:無



        2.3 地址及相應(yīng)功能介紹

        考慮到代碼將來的改動或擴(kuò)展,地址不具體定義。使用枚舉變量讓編譯器自動生成。用戶可以include的這個變量定義,使用枚舉地址設(shè)置和獲取數(shù)據(jù)。


        int32_t get_parameter(int address)函數(shù)地址枚舉變量定義如下

        獲取實(shí)時數(shù)據(jù)結(jié)構(gòu)

        enum get_parameter_table
        {
        AFE_BASE_A = 0x0000,
        AFE_GET_ACTIVE_POWER,
        AFE_GET_REACTIVE_POWER,
        AFE_GET_APPARENT_POWER,
        AFE_GET_ACTIVE_ENERGY,
        AFE_GET_REACTIVE_ENERGY,
        AFE_GET_VRMS,
        AFE_GET_IRMS,
        AFE_GET_POWER_FACTOR,
        AFE_GET_FREQUENCY,

        AFE_GET_ENERGY_MODE,
        AFE_GET_STARTUP_I,
        AFE_GET_PULSE_CONST,
        AFE_GET_POWER_GAINA0,
        AFE_GET_PHASEOFFSET_A0,
        AFE_GET_VGAINA,
        AFE_GET_IGAINA,
        AFE_GET_IOFFSETA,
        };


        以下對每個地址進(jìn)行解析:

        AFE_GET_ACTIVE_POWER
        描述:有功功率
        單位:10mW

        AFE_GET_REACTIVE_POWER
        描述:無功功率
        單位:10mVar

        AFE_GET_APPARENT_POWER
        描述:視在功率
        單位:10mVA

        AFE_GET_VRMS
        描述:電壓有效值
        單位:10mV

        AFE_GET_IRMS
        描述:電流有效值
        單位:1mA

        AFE_GET_POWER_FACTOR
        描述:功率因數(shù)
        單位:0.0001

        AFE_GET_ACTIVE_ENERGY
        描述:兩回路中較大有功電能脈沖數(shù)
        單位:依賴脈沖常數(shù)

        AFE_GET_REACTIVE_ENERGY
        描述:兩回路中較大無功電能脈沖數(shù)
        單位:依賴脈沖常數(shù)

        AFE_GET_FREQUENCY
        描述:系統(tǒng)頻率
        單位:0.01Hz

        AFE_GET_POWER_GAINA0
        描述:功率增益

        AFE_GET_PHASEOFFSET_A0
        描述:電壓電流角差補(bǔ)償

        AFE_GET_VGAINA
        描述:電壓增益

        AFE_GET_IGAINA
        描述:電流增益

        AFE_GET_IOFFSETA
        描述:電流偏置
        單位:1mA

        AFE_GET_POFFSETA
        描述:功率偏置
        單位:10mW

        AFE_GET_ENERGY_MODE
        描述:能量累計模式
        單位:0絕對值累計1正能量累計

        ZHCA501–Jan2013
        描述:啟動電流
        單位:1mA

        AFE_SET_PULSE_CONST
        描述:脈沖常數(shù)

        獲取實(shí)時數(shù)據(jù)結(jié)構(gòu)
        enum set_parameter_table
        {
        AFE_SET_BASE = 0x00,
        AFE_SET_POWER_GAINA0,
        AFE_SET_PHASEOFFSET_A0,
        AFE_SET_VGAINA,

        AFE_SET_STARTUP_I,
        AFE_SET_FREQUENCY,
        AFE_SET_SAMPLES_10S,

        AFE_SET_IGAINA,
        AFE_SET_IOFFSETA,
        AFE_SET_POFFSETA,
        AFE_SET_ENERGY_MODE,

        AFE_SET_PULSE_CONST,
        AFE_SET_CAL_INIT,
        };

        AFE_SET_POWER_GAINA0
        描述:功率增益

        AFE_SET_PHASEOFFSET_A0
        描述:電壓電流角差補(bǔ)償

        AFE_SET_VGAINA
        描述:電壓增益

        AFE_SET_STARTUP_I
        描述:啟動電流
        單位:1mA

        AFE_SET_IGAINA
        描述:電流增益

        AFE_SET_IOFFSETA
        描述:電流偏置
        單位:1mA

        AFE_SET_POFFSETA
        描述:功率偏置
        單位:10mW

        AFE_SET_PULSE_CONST
        描述:脈沖常數(shù)

        AFE_SET_CAL_INIT
        描述:校表初始化

        AFE_SET_CAL_END
        描述:校表結(jié)束

        AFE_SET_SAVE_FUNC
        描述:用戶設(shè)置校表數(shù)據(jù)保存函數(shù)

        3 校表介紹

        3.1 校表寄存器

        校表寄存器在火線零線等同對待。


        功率增益寄存器

        電壓電流角差補(bǔ)償寄存器

        有功偏置寄存器


        電流增益寄存器

        電流偏置寄存器


        電壓增益寄存器


        3.2 校表方法

        本計量庫提供了專門的接口對計量參數(shù)進(jìn)行校準(zhǔn)。校表軟件在pc端運(yùn)行,通過串口通訊,進(jìn)行參數(shù)設(shè)置。具體操作可參考示例代碼。

        3.2.1 功率增益及偏置校準(zhǔn)

        功率增益校準(zhǔn)可以進(jìn)行單點(diǎn)和兩點(diǎn)校準(zhǔn)。當(dāng)單點(diǎn)校準(zhǔn)時,功率偏置默認(rèn)為0。當(dāng)兩點(diǎn)校準(zhǔn)時,功率偏置為功率相對0點(diǎn)的截距。校表可以通過脈沖也可以通過多次讀取功率值求平均進(jìn)行。兩點(diǎn)校表公式如下:(最好取100%Ib 和5%Ib兩點(diǎn))


        功率增益校驗(yàn)公式:

        EH和EL為大電流和小電流時功率的誤差。(如100%Ib和5%Ib兩點(diǎn)功率的誤差)NH2L為大電流和小電流的比差。(如NH2L=100%Ib/5%Ib=20)


        功率偏置校驗(yàn)公式:

        PGEN是在小電流時的標(biāo)準(zhǔn)功率值。


        無功的增益和偏置類似于有功,可參考有功校準(zhǔn)。以下是一個單點(diǎn)校表的例子,說明如何編寫校表軟件:


        1. EH =0.5%

        2. 原始的P1_GAINn=10000

        3. 新的P1_GAINn+1=10000/(1+0.5%)=9950

        3.2.2 電壓電流角差校準(zhǔn)

        電壓電流的角度補(bǔ)償使用的是軟件同步。


        角差補(bǔ)償使用下面公式

        fM是電網(wǎng)頻率。如果fM=50Hz,fm=256×4096=1MHz,每個步長是0.017°,當(dāng)功率增益和偏置都校準(zhǔn)完畢后,才對角差進(jìn)行校準(zhǔn)。步驟如下:


        1. 在100%Ib點(diǎn),設(shè)置功率因數(shù)為0.5L。


        2. 獲取當(dāng)前脈沖的誤差E。并將E帶入下面公式

        公式計算如下例:

        1. E =0.3%

        2. 原始的 P1_PHASEn = 6

        3. 新的 P1_PHASEn+1 =10+6=16



        3.2.3 電壓增益校準(zhǔn)

        電壓增益校準(zhǔn)步驟如下:


        1. 將電壓設(shè)置成固定的電壓值,如:220V

        2. 如下公式

        3. 設(shè)置VRMS_FACTORn+1 到功率增益寄存器,步驟如下:


        1) VRMSGEN = 220V and VRMSmeasure = 219V

        2) 原始的 VRMS_FACTORn = 2000

        3) 新的 VRMS_FACTORn+1 =2000*220/219=2009

        3.2.4 電流增益校準(zhǔn)

        此校準(zhǔn)類同電壓增益校準(zhǔn)。


        3.3 校表軟件使用

        3.3.1 校表軟件界面介紹

        圖4 校表軟件界面

        圖4的校表軟件界面分為5個模塊:1,串口連接模塊;2,實(shí)時數(shù)據(jù)模塊;3,校正數(shù)據(jù)設(shè)置模塊;4,校正數(shù)據(jù)讀出模塊;5、通訊數(shù)據(jù)模塊。

        3.3.2 實(shí)時數(shù)據(jù)模塊使用

        實(shí)時數(shù)據(jù)模塊將電表實(shí)時測量的數(shù)據(jù)通過串口讀出在校表軟件中顯示,實(shí)時顯示數(shù)據(jù)包括:Voltage(V)有效電壓值(單位:伏特),Current(A)有效電流(單位:安培),Active Power(W)有功功率(單位:瓦特),Reactive Power(Var)無功功率(單位:乏),Apparent Power(VA)視在功率(單位:伏安),Power Factor 功率因素Frequency(Hz)頻率(單位:赫茲)。點(diǎn)擊Read按鈕,可以顯示電表實(shí)時測量的數(shù)據(jù)。


        3.3.3 校正數(shù)據(jù)設(shè)置模塊使用

        校表軟件目前只支持Voltage Gain有效電壓增益、Current Gain有效電流增益、Power Gain有功功率增益、Phase Offset相位偏置單點(diǎn)校正。默認(rèn)電壓校正點(diǎn)為:220V有效電壓,電流校正點(diǎn)為:1A有小電流,有功功率校正點(diǎn)為:220W;相位偏置校正點(diǎn)為:220V、1A、0.5L。



        校正步驟:

        1,使用校表儀器輸出220V有效電壓,1A有效電流,功率因素1.0的信號,送至電表電壓、電流輸入端;

        2,在Volage Gain中輸入默認(rèn)有效電壓校正值220,點(diǎn)擊Setting設(shè)置;

        3,在Current Gain中輸入默認(rèn)有效電流校正值1,點(diǎn)擊Setting設(shè)置;

        4,在Power Gain中輸入默認(rèn)有功功率校正值220,點(diǎn)擊Setting設(shè)置;

        5,使用校表儀器輸入有效電壓,1A有效電流,功率因素0.5的信號,送至電表電壓、電流輸入端;

        6,在Phase Offset中輸入offset值,一個單位對應(yīng)0.02°,輸入一個數(shù)值,然后通過實(shí)時數(shù)據(jù)窗口讀出新的功率因素,反復(fù)校正,直至讀出功率因素接近0.5即可;

        7,校正完畢后,點(diǎn)擊Save保存數(shù)據(jù),電表將最后的校正數(shù)據(jù)保存至MCU FLASH中。

        3.3.4 校正數(shù)據(jù)讀出模塊使用

        校正數(shù)據(jù)讀出模塊可以通過串口將電表FLASH存儲的V Gain,I Gain,Phase Offset,P Gain校正數(shù)值的讀出。


        3.3.5 通訊數(shù)據(jù)模塊使用

        通訊數(shù)據(jù)模塊實(shí)時顯示串口收發(fā)的數(shù)據(jù)。設(shè)置過程中如果出現(xiàn)“Time out!”提示,表示連接超時,應(yīng)當(dāng)檢查通訊線路連接,然后重新發(fā)送命令。校正數(shù)據(jù)設(shè)置成功后,通訊數(shù)據(jù)模塊提示“Set successful!”。通過按鍵Clear Logs,可以清空通訊數(shù)據(jù)窗口歷史數(shù)據(jù)。



        4 結(jié)論

        4.1 硬件平臺

        本方案在C2000F280270 Control Pad上進(jìn)行搭建了測試平臺,并在標(biāo)準(zhǔn)的電能表測試設(shè)備上進(jìn)行了精度測試。圖5為實(shí)際測試的樣機(jī):

        圖5 測試樣機(jī)


        4.2 軟件資源占用

        本方案占用的C2000資源如下表所示。

        4.3 測試數(shù)據(jù)

        本方案測試精度如下:


        電壓電流頻率

        有功功率和無功功率:


        功率因素:

        5 參考文獻(xiàn)

        [1] TI. TMS320F28027/28026/28023/28022/28021/28020/280200 Piccolo Microcontrollers

        [2] Kes Tam. Current-Transformer Phase-Shift Compensation and Calibration.

        [3] Percy Yu. MSP430AFE253 test report for China State Grid specification.



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 浪卡子县| 赣州市| 正阳县| 云梦县| 连云港市| 沙坪坝区| 曲阜市| 龙里县| 孟津县| 弥勒县| 河西区| 开封县| 苍梧县| 甘洛县| 松潘县| 保德县| 长春市| 尉氏县| 溧水县| 昌图县| 南通市| 三江| 安西县| 惠州市| 龙南县| 科技| 罗平县| 海宁市| 额敏县| 望谟县| 长兴县| 安康市| 咸宁市| 时尚| 宁都县| 海丰县| 哈巴河县| 西峡县| 巫山县| 米脂县| 涞源县|