一、項目背景
隨著社會經濟的發展和人民生活水平的提高,居民生活用電、商業用電的結構和用電量也發生了根本性的變化,已經從過去單一的照明用電變為以電子設備和電炊具等家用電器為主的生活、辦公用電,這些用電設備的廣泛普及與增換,必然使在同區域的居民用電量大幅增長的同時,實際供電質量與國家標準要求還存在不小的差異。
無功損耗增加、功率因數下降、諧波增加,會影響到用戶用電設備的正常運行,嚴重時會造成用電設備損壞,增大電氣設備損耗、溫度升高、降低運行效率,絕緣加速老化、縮短設備使用壽命;降低供用電設備的繼電保護、控制以及檢測裝置的工作精度和可靠性。
20世紀20年代末,人們開始注意到電力系統非線性負載會產生諧波。20世紀50年代,隨著科學技術的進步,大量非線性負載給電力系統帶來了嚴重的諧波干擾。20世紀70年代以來,由于諧波所造成的危害日趨嚴重,世界各國對諧波問題都予以充分的關注,國際上召開了多次有關諧波問題的學術會議。最近40年,世界各國對電力系統諧波問題的研究已超過了電力系統自身的研究范疇,并且取得了前所未有的發展。
目前諧波治理設備檢測一般通過更改有源電力濾波器(APF)的代碼,使其工作于負載模式,模擬諧波源,將諧波注入待測電網,而諧波治理設備并入后,通過一系列檢測算法計算出電網含有諧波電流的大小,發出與諧波源大小相等,方向相反的諧波電流,在并網處疊加抵消,達到治理的效果。通過對比治理設備投入前后剩余諧波電流大小并于相關標準對比,最終判定諧波治理設備的功能特性。
本次比賽實驗主要基于PSOC6處理器PWM模塊發波,在功率驅動板側檢測波形和相關驅動能力。
二、項目開發原理
由于全控型電力半導體器件的出現,不僅使得逆變電路的結構大為簡化,而且在控制策略上與晶閘管類的半控型器件相比,也有著根本的不同,由原來的相位控制技術改變為脈沖寬度控制技術,簡稱PWM技術。采用PWM方式構成的逆變器,其輸入為固定不變的直流電壓,可以通過PWM技術在同一逆變器中既實現調壓又實現調頻。
工程實際中應用最多的是正弦PWM法(簡稱SPWM),它是在每半個周期內輸出若干個寬窄不同的矩形脈沖波,每一矩形波的面積近似對應正弦波各相應每一等份的正弦波形下的面積可用一個與該面積相等的矩形來代替,于是正弦波形所包圍的面積可用這N個等幅(Vd)不等寬的矩形脈沖面積之和來等效。各矩形脈沖的寬度自可由理論計算得出,但在實際應用中常由正弦調制波和三角形載波相比較的方式來確定脈寬:因為等腰三角形波的寬度自上向下是線性變化的,所以當它與某一光滑曲線相交時,可得到一組幅值不變而寬度正比于該曲線函數值的矩形脈沖。若使脈沖寬度與正弦函數值成比例,則也可生成SPWM波形。
在進行脈寬調制時,使脈沖系列的占空比按正弦規律來安排。當正弦值為最大值時,脈沖的寬度也最大,而脈沖間的間隔則最小。反之,當正弦值較小時,脈沖的寬度也小,而脈沖間的間隔則較大;這樣的電壓脈沖系列可以使負載電流中的高次諧波成分大為減小,稱為正弦波脈寬調制。三相互差120°PWM波形如圖 1所示:
圖1 三相PWM波形
工程中,一般將三相正弦波數據制表,然后通過查表法將數據與定時器的計數值進行比較,輸出PWM波形。一般采用兩個定時器,一個高級定時器(需要具備三路互補輸出的PWM)和一個基本定時器(通用定時器),其中高級定時器用于輸出PWM,作為高頻載波。而基本定時器用于設置輸出波形的周期(頻率),通過定時的查表讀取數據,調節高級定時器脈沖的占空比,實現正弦波的輸出。需要注意的是,高級定時器輸出的波形依然是相較規則的脈沖,通過功率驅動板放大輸出,驅動IGBT功率管。兩路互補的PWM波形如圖 2所示:
圖2 互補PWM波形
經過功率驅動板放大后的PWM信號,驅動IGBT的柵極,由于IGBT結電容的存在,會導致PWM信號出現一些不規則的變化,通過添加柵極電阻可以調整作用在IGBT柵極上的PWM波形。在IGBT輸出交流測輸出的依然是不規則的直流電壓,需要對輸出進行濾波,在出線側加裝電感器,濾除高頻成分,而保留低頻部分。經過濾波處理后的三相電流與電壓波形如圖3所示,由于驅動采用調制波采用單極性,因此波形電壓于電流均含有直流分量。
目標設計PWM頻率為20KHZ,輸出波形頻率50Hz,調制波為多個高次諧波疊加基波,不再是標準的正弦波。需要對各次諧波的幅值設置可調,相位可調。通過仿真進行頻譜分析各次諧波含有率及總畸變率如圖4所示。
三、項目硬件
1、主控制器
PSoC?6單片機是一款高性能、超低功耗、安全的單片機平臺,專為物聯網應用而設計。
CY8C62x8/A產品線,基于PSoC 6 MCU平臺,是一個雙CPU微控制器與低功耗閃光技術、數字可編程邏輯、高性能模擬到數字轉換和標準通信和定時外設的組合。PSOC 6是雙核CPU系統,具有一個M4F核和一個M0+內核,其中M4F內核150MHz,M0+內核100MHz,具備豐富的存儲,高達2M 的Flash以及1M 的SRAM。
計時器/計數器/脈寬調制器(TCPWM)
■TCPWM支持以下操作模式:
?計時器計數器比較
?計時器與捕獲
?正交解碼
?脈寬調制(PWM)
?偽隨機PWM
?PWM與死時間
■上,下,上/下計數模式
■時鐘調整(除1、2、4,…。64,128)
■雙緩沖比較/捕獲和周期值■下流,溢出,和捕獲/比較輸出信號
■支持中斷:
?終端計數-取決于模式;通常發生在溢出或下流?捕獲/比較-計數被捕獲到捕獲寄存器或計數器值等于比較寄存器
■互補輸出
■可選擇開始、重加載、停止、計數和捕獲事件信號;有上升邊,下降邊,兩個邊,和水平觸發選項。TCPWM具有一個剎車輸入,以強制輸出到預定狀態。
在PSOC 6設備中有:
■8個32位TCPWMs
■24個16位TCPWMs
本次IGBT驅動采用板子上的Arduino擴展接口CON7上的1-6腳,剛好對應3對互補輸出的PWM,其對應關系如下表:
2、功率驅動板
由PSOC 6單片機TCPWM模塊輸出的PWM信號不足以直接驅動IGBT,需要對其進行功率放大,采用厚膜驅動。功率驅動板設計6單元IGBT驅動,可驅動300A/1700V 以下的 IGBT,每路輸出電流可達6A。其中互補的兩個單元共用一路輔助電源。可以測試帶IGBT和不帶IGBT兩種情況。
3、IGBT模塊
IGBT模塊采用英飛凌6單元封裝IGBT,型號為FS50R12KT3,集電極-發射極電壓1200V,連續集電極電流可達50A,柵極閾值電壓為5-6.5V;其反并聯二極管正向壓降1.65V。IGBT模塊自帶負溫度系數熱敏電阻,25℃時,其額定阻值為5000歐姆。
4、直流電源
功率驅動板僅需要一路直流電源,就可以實現驅動6單元IGBT,直流電源采用直流穩壓電壓。
四、項目軟件
軟件采用RT-Thread Studio開發,RT-Thread系統版本為5.0.1,BSP版本為1.0.3。
1、程序流程
(1)、初始化開發板;
(2)、PWM初始化;
(3)、設置含諧波次數及幅值;
(4)、PWM輸出;
2、關鍵程序
/*
- Copyright (c) 2006-2023, RT-Thread Development Team
- SPDX-License-Identifier: Apache-2.0
- Change Logs:
- Date Author Notes
- 2022-06-29 Rbb666 first version
/
#include
#include
#include "drv_gpio.h"
#include "cyhal_pwm.h"
/線程控制塊 **/
rt_thread_t led_thread=RT_NULL;
rt_thread_t pwm_thread=RT_NULL;
/***********線程入口函數*************/
static void led_thread_entry(void *parameter);
static void pwm_thread_entry(void *parameter);
#define LED_PIN GET_PIN(0, 1)
/***********A、B、C三相*************/
uint16_t ua[128]={
0
};
uint16_t ub[128]={
0};
uint16_t uc[128]={
0
};
cyhal_pwm_t pwm_obj1;
cyhal_pwm_t pwm_obj2;
cyhal_pwm_t pwm_obj3;
cyhal_clock_t clock_obj;
/***********互補輸出PWM初始化函數*************/
static void pwm_init(void)
{
pwm_obj1.dead_time_set=1;
pwm_obj1.pin=P5_0;
pwm_obj1.pin_compl=P5_1;
cyhal_pwm_init_adv(&pwm_obj1,P5_0,P5_1,CYHAL_PWM_CENTER_ALIGN,1,2,1,&clock_obj);
cyhal_pwm_set_period(&pwm_obj1,3000-1,0);
cyhal_pwm_start(&pwm_obj1);
pwm_obj2.dead_time_set=1;
pwm_obj2.pin=P11_2;
pwm_obj2.pin_compl=P11_3;
cyhal_pwm_init_adv(&pwm_obj2,P11_2,P11_3,CYHAL_PWM_CENTER_ALIGN,1,2,1,&clock_obj);
cyhal_pwm_set_period(&pwm_obj2,3000-1,0);
cyhal_pwm_start(&pwm_obj2);
pwm_obj3.dead_time_set=1;
pwm_obj3.pin=P11_4;
pwm_obj3.pin_compl=P11_5;
cyhal_pwm_init_adv(&pwm_obj3,P11_4,P11_5,CYHAL_PWM_CENTER_ALIGN,1,2,1,&clock_obj);
cyhal_pwm_set_period(&pwm_obj3,3000-1,0);
cyhal_pwm_start(&pwm_obj3);
}
/***********main函數*************/
int main(void)
{
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
pwm_init();
led_thread=rt_thread_create("led",led_thread_entry,RT_NULL,256,3,10);
if(RT_NULL!=led_thread)
{
rt_thread_startup(led_thread);
}
pwm_thread=rt_thread_create("pwm",pwm_thread_entry,RT_NULL,256,2,10);
if(RT_NULL!=pwm_thread)
{
rt_thread_startup(pwm_thread);
}
}
/***********LED線程入口函數*************/
static void led_thread_entry(void *parameter)
{
while(1)
{
rt_pin_write(LED_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
}
/***********諧波注入PWM線程入口函數*************/
static void pwm_thread_entry(void *parameter)
{
uint8_t i=0;
while(1)
{
for(i=0;i<128;i++)
{
cyhal_pwm_set_period(&pwm_obj1,3000-1,ua[i]);
cyhal_pwm_set_period(&pwm_obj2,3000-1,ub[i]);
cyhal_pwm_set_period(&pwm_obj3,3000-1,uc[i]);
rt_thread_mdelay(20);
}
}
}
五、實驗結果
1、開發板PWM輸出
圖9 互補PWM輸出
2、驅動板PWM輸出
3、IGBT諧波輸出波形
六、結論和后期展望
1、結論
通過采用PSOC 6處理器的PWM以及基于類SPWM調制實現輸出諧波,基本實現了本次比賽預計的功能。
2、后期工作
后續將采用ARM+FPGA架構,進一步針對SPWM,實現諧波輸出;增加人機交互,參數設置可視化,利用FFT算法展示諧波頻譜;故障處理,緊急切除IGBT;增加輸出反饋信號采集,實現輸出閉環控制,提高精度。目前就ARM+FPGA主控制、主電路、電源部分已完成初步設計。
評論
查看更多