本帖最后由 lansebuluo 于 2015-7-26 23:47 编辑
在科技飞速发展的今天,各种各样的用电设备相继产生,当有些电气设备投入到电网时,会对电网电压产生干扰,影响电网的电能质量,尤其是大型电力电子设备投入使用后,对电网的影响更大。在这种环境下,产生了各种电能质量分析设备,对电网某个结点进行监测,实时记录电网波动,利用大量数据对电网进行评估。电能质量分析设备一般都很贵,很难在学习的过程中使用到,尤其是对个人的学习。本文将介绍如何进行电能质量检测,怎样做一个简单的电能质量分析仪。 通过这个题目,相应我们会学习到TI公司生产的MCU控制器TMS320F28335,这也是电力电子行业应用很多的控制器芯片。电能质量分析包括很多方面,例如:电压(幅值、相位、频率)、电流(幅值、相位、频率)、功率、功率因数、三相电压不平衡度、电压闪变、谐波含量等,很多国际标准对这些也有明确的定义,这里不再详述,本文主要介绍电压有效值、频率、谐波含量进行分析。 1> 芯片简介: TMS320F28335芯片简介 l 高性能静态CMOS技术 高达150MHZ(6.67ns的周期时间); l 高性能32位CPU IEEE-754单精度浮点单元 哈佛流水线结构 快速中断响应处理 统一的内存管理模式 使用C/C++ 和汇编语言 l 6通道的DMA控制器(用于ADC、McBsp、ePWM、XINTF和SARAM) l 16位或32位外部接口XINTF l 片上存储器 256K*16 Flash ,34K*16 SARAM,1 Kx16 OTPROM 8K*16 Boot ROM(支持软件引导模式SCI、SPI、CAN、I2C、McBSP、XINTF和并行IO) l 时钟和系统控制 支持动态锁相环PLL; 片载振荡器; 安全装置定时模块 l GPIO0~GPIO63引脚可以连接到八个外部内核中断其中的一个 l 支持58个外设中断的PIE模块(外设中断扩展) l 增强型的外设模块: 18个PWM输出,包含6个高分辨率脉宽调制模块(HRPWM)、6个事件捕获输入,2通道的正交调制模块(QEP); l 3个32位定时器 l 串行端口外设 2个局域网控制器CAN模块 3个SCI模块(SCIA、SCIB、SCIC) 2个McBSP模块(可配置为SPI) 1个SPI 1个I2C l 12位,16通道模数转换ADC 80ns转化率;2*8通道复用输入器;两个采样保持;同时支持多通道转换 EP4CE10E22C8N芯片简介 低成本、低功耗的 FPGA架构: l 10,320逻辑单元 l 414 Kb的嵌入式存储器 l 23个 18 × 18 乘法器,实现DSP处理密集型应用 l 2个通用PLL l 10个全局时钟网络 l 91个I/O l 21个LVDS AD7606芯片简介 l 8路同步采样输入 l 真双极性模拟输入范围:±10 V、±5 V l 5V模拟单电源,2.3V至+5V VDRIVE l 1MΩ模拟输入阻抗 l 模拟输入箝位保护 l 二阶抗混叠模拟滤波器 l 高吞吐速率:200 kSPS(所有8个通道) l 灵活的并行/串行接口 l 95.5 dB SNR, -107 dB THD l ±0.5 LSB INL, ±0.5 LSB DNL l 低功耗:100 mW 待机功耗:25 mW l 64引脚LQFP 封装 2> 设计概要 a> 电压采样电路设计 交流电压采样是把额定有效值电压220V 50Hz信号转换为运算放大电路、模数转换器可接受的电压水平。 传统转换方式是通过电压互感器,把高电压转换为低电压,高压侧与低压侧电气隔离,二次侧不需要外部电源功能,但是电压互感器的响应速度较慢,不能测量直流分量,在要求响应速度较快的系统中,受到了限制。 新型的电流型霍尔元件,不仅响应速度快,也能测量直流分量,通过限流电阻,将高电压转换成低电流,然后经过电流型霍尔元件隔离输出电流,再经取样电阻转换成电压,电压转换精度受霍尔元件线性度影响,高精度霍尔一般成本较高。 在交流电压转换方式中还有一种,通过差分放大电路,将高电压信号转换成低电压信号,此类转换方式相对控制灵活,可通过选择运放和周边器件控制信号转换的响应速度,成本也相对较低,但是,给运算放大器供电电源与测量交流电压应该隔离,当测量多个信号时,应考虑信号间干扰。 本项目综合考虑到成本、性能、精度问题,采用差分放大电路进行电压转换,转换电压要求: 输入电压:400V (幅值) 输出电压:6V (幅值) 变比:400:6
为了尽可能增大差分放大电路的输入阻抗,设计两级放大电路,先通过差分放大电路,将信号缩小到2V左右,再经后级的反向放大电路放大3倍。电路图如下所示:
在运放同向输入与反向输入间加入反并联的电压钳位二极管,保护输入端,在正输入极与地之间连接一个背靠背的5V稳压二极管,钳位共模输入电压,第二级运放输出即可连接模数转换器输入。 a> 频率精确测量 在进行FFT分析、有效值计算过程中,要明确知道信号的频率,才能准确测量出电网电压的谐波含量、有效值等参数。测量频率方法很多,本节主要讲解过零点检测、软件锁相环实现频率测量的方式。 单相软件锁相环技术,可以通过模数转换,在软件中实现过零点计算,并把检测过零点与软件内相位进行对比,产生误差信号,利用误差信号调节采样周期,从而让软件内相位与实际过零点存在稳定的误差值,而达到软件锁相的目的。当过零点落在两个采样点之间时,检测过零点会有偏差,尽管可以通过线性计算的方法,进一步缩小误差,但信号谐波含量较大时,同样会引起检测偏差,导致频率计算偏差较大。 本项目采用硬件方法实现过零点检测和软件锁相,解决了上述所产生的问题,并且频率检测精度很高,具体实现方法如下: 利用TI公司网站的WEBENCH Designer设计4阶带通滤波器,带通滤波器的设计过程如下: 1>打开WEBENCH设计中心,在右侧选择Filters->Bandpass,点击“开始设计”,开始加载设计器,等待设计器加载完成。2>更改中心频率为50Hz,通带宽度为10Hz,其它可选默认,点击“Start Filter Design”。 3>选择4阶巴特沃兹滤波器。 4>产生如下所示电路图 5>其波特图如下所示 multisim仿真图: 电压信号经四阶巴特沃兹带通滤波器滤波后,再经滞回比较器转换为方波信号。 滞回比较器设计如下图,LM311是集电极开路输出,可以将电平降为数字输入电平,右侧显示输出方波信号。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg 将方波信号输入到FPGA芯片引脚上,利用数字锁相环,将频率倍频为10.24kHz,实现方框图如下: 频率值为采样电压的频率,信号输出即为模数转换器触发采样的时钟信号,只有当此信号有效时,MCU采样处理的模拟信号才有意义。额定50Hz时,采样触发时钟为10.24kHz。 a> RMS有效值测量 有效值为10个工频周期(2048个样本)累计得出的结果。通过AD采样得出的2048个连续样本,进行均方根计算。AD采样的结果需要转换为电网电压采样值,这需要对采样进行标定,标定的方法可以使用y=a*x+b,得出系数a和系数b。 b> 谐波分析 电压谐波计算基于平均间隔 10 周 (200ms),此间隔准确含有2048个样本值。根据这些样本值计算得出1024个FFT结果(5Hz)。其表示意义如下 第0个:DC直流分量 第1个:5Hz幅值 第2个:10Hz幅值 第3个:15Hz幅值 …… 第1023个:5115Hz幅值 从其中即可选择出基波幅值、2-50次谐波幅值,THD计算如下式 注意:根据IEC标准,THD中不包括40次以上谐波。 TMS320F28335进行FFT计算的程序解释: 使用C28x Floating Point UnitLibrary将对应的库拷贝到工程目录下,添加C SOURCE文件, 在主程序文件中,定义FFT计算的相应变量 typedef struct { float32 *InBuf; float32 *OutBuf; float32 *CosSinBuf; float32 *MagBuf; float32 *PhaseBuf; Uint16 FFTSize; Uint16 FFTStages; } RFFT_F32_STRUCT;
#define RFFT_SIZE 2048 #define RFFT_STAGES 11 //2是11次方
float32InBuffer[RFFT_SIZE]; float32OutBuffer[RFFT_SIZE]; float32TwiddleBuffer[RFFT_SIZE]; float32MagBuffer[RFFT_SIZE/2];
RFFT_F32_STRUCT rfft; 在CMD文件中分配连续的地址空间给变量InBuffer、OutBuffer、TWIDDLEBUF、MAGBUF: INBUF : > RAML4, PAGE = 1, ALIGN(4096) OUTBUF : > RAML5, PAGE = 1, ALIGN(4096) TWIDDLEBUF : > RAML6, PAGE = 1, ALIGN(4096) MAGBUF : > RAML7, PAGE = 1, ALIGN(4096) 初始化程序设置: // Clear input buffers: for(i=0; i < RFFT_SIZE; i++) { InBuffer = 0.0f; } rfft.FFTSize = RFFT_SIZE; rfft.FFTStages = RFFT_STAGES; rfft.InBuf = &InBuffer[0]; //Input buffer rfft.OutBuf = &OutBuffer[0]; //Output buffer rfft.CosSinBuf =&TwiddleBuffer[0]; //Twiddle factorbuffer rfft.MagBuf = &MagBuffer[0]; //Magnitude buffer
RFFT_f32_sincostable(&rfft); //Calculate twiddle factor
for (i=0; i < RFFT_SIZE; i++) { OutBuffer= 0; //Clean up output buffer } for (i=0; i < RFFT_SIZE/2; i++) { MagBuffer= 0; //Clean up magnitude buffer } 当样本数达到2048点时,开始FFT分析: RFFT_f32(&rfft); RFFT_f32_mag(&rfft); 结果保存在MagBuffer前1024个地址空间中,当然至于这个结果值的意义已经在本节开头说明,你看到的这个幅值可能比较大,为什么呢,对于这个我记不太清楚了,好像是要除以RFFT_SIZE/2,才能真正成为幅值,对于这点我不太确定,等后期我会对这点再次确认,并更新到这里。
c> F28335的DMA 通道设置 因为AD7606是一个慢速设备,F28335读取AD7606芯片的采样值,会消耗CPU处理时间,使用DMA通道,可以再F28335的CPU不干预下,完成读取AD7606采样结果值到F28335内部0等待周期RAM中。读取控制框图如下: d> 电路板原理图分析 1>TMS320F28335主电路,XINTF总线连接AD7606、FPGA、SRAM、FLASH。 F28335连接外部30MHz有源晶振: 2路指示灯和2路开关选择输入到F28335,1路电源上电指示LED: F28335手动复位按钮: F28335BOOT模式选择: 模拟电源与数字电源通过磁珠进行连接: F283351.9V电源: 3.3V电源: FGPA1.2V 电源:
FPGA2.5V 电源: SRAM和FLASH连接: FPGA连接: AD7606连接图:
写在最后: 本人从事了多年基于C28的软件编程工作,从最开始的F2812到现在一直在用的F28335,很多情况下都是只完成项目的一部分功能,没能完完整整得做一个项目;并且在工作过程中,也有过一些另类的想法,涉及到职能划分的情况,不便把这些想法应用在设计上,所以也就无法验证正确与否。一直以来心中总有一个想法,做一块板子,能把我做过的零散的东西,串成一个整体,也想把这个项目开源化,帮助更多的初学者们学习一些案例,积累一些经验;当然也希望感兴趣的朋友能够参与到这个项目中,共同去完成一些设计;更希望大家能给与支持和帮助,对于上面的设计不足之处,给与指正,特别是咱网站和deyisupport的同仁们。 上文中的设计只是一个参考,只是部分验证过功能,还没有实际整体完成,当然我也在努力进行中,PCB板正在画图中,涉及到成本问题,不想出一些致命错误,所以进展有点慢。 上面的设计只是电能质量分析-电压部分,当完成硬件设计后,我会继续更新电流部分、功率分析、不平衡度等。除了这些功能之外,还会利用这块板子完成波形采集功能,将波形通过USB或是网络传输到PC客户端,进行波形显示,也就是一台慢速的示波器哦。采集功能完成之后,利用F28335强大的EPWM模块,制作几个小型逆变电源还是可以的。这些想法在我脑子中早已有了方案,实现只是时间问题吧。 感兴趣的朋友可以关注我的更新。
|