太阳能应用中的电压和电流测量的测量技术介绍

描述

太阳能应用中的电压和电流测量需要隔离的测量技术。DSP sinc输入与ADI公司的AD7401A隔离式ADC一起,只是ADI公司提供此类隔离测量的信号链的一个例子。

本文档介绍ADI公司使用ADSP-CM403xy和AD7401A器件设计的测量应用的典型信号链。

太阳能光伏逆变器系统

太阳能光伏逆变器转换来自太阳能电池板的电力,并将这些电力有效地部署到公用电网。来自太阳能电池板的电力本质上是一个直流电流源,被转换为交流电流,并与电网的频率同相馈入公用电网,并达到非常高的效率水平。转换可以采取一个或多个阶段(参见图 1)。第1级通常是DC-DC转换,其中太阳能电池板输出的低电压和高电流转换为高电压和低电流。这样做的原因是将电压提高到与电网峰值电压兼容的水平。第2级通常是将直流电压和电流转换为交流电压和电流,通常使用H桥拓扑。

dsp

图1.太阳能光伏逆变器信号链,ADI公司。

模数转换器理论—AD7401A

AD7401A是一款二阶Σ-Δ调制器,采用基于ADI耦合器技术的片内数字隔离功能,可将模拟输入信号转换为高速1位数据流。AD7401A采用5 V电源供电,接受±250 mV(满量程±320 mV)差分输入信号。模拟调制器无需外部采样保持电路,可连续对模拟输入进行采样。输入信息以数据速率高达20 MHz的密度包含在输出流中。原始信息用适当的数字滤波器(即sinc滤波器)重建。处理器端(非隔离)可以使用5 V或3 V电源(V®电子数据分析).

示例电路 – 描述

dsp

图2.隔离电压电路。

Σ-Δ调制器的交流输入是交流正弦波,代表来自单相电网的220 V rms。有一个电阻分压器,用于将输入范围减小到ADC的指定输入范围。输入滤波器可降低输入端的噪声。

Σ-Δ调制器的输出包含两个信号:来自ADSP-CM403xy DSP处理器的高速时钟输入和保存调制数据的数据信号。该数据可以直接输入到sinc3滤波器,在那里数据可以直接转换为ADC结果。此数据的示例如下所示。

dsp

图3.调制器示例数据。

在ADC的较低范围内,输入信号具有较窄的脉冲宽度,而在刻度的较高端,脉冲宽度接近其最大值。当通过sinc滤波器时,输出数据是对角线中显示的数据。AD7401A可在高达891 V单极性范围或565 V双极性范围内工作,隔离栅为20μm聚酰亚胺。有关此方面和各种认证的更多信息,请参见相关数据表。

ADSP-CM403XY 辛克3外设模块

dsp

图4.ADSP-CM403 SINC外设框图。

框图显示了四个sinc滤波器对(sinc0–sinc3)、两个调制器时钟源和两组控制寄存器(单元)。该模块接受来自 GPIO 输入引脚的四个 Σ-Δ 位流,并将两个调制器时钟源定向到 GPIO 输出引脚。脉宽调制(PWM)信号同步调制器时钟,以优化系统性能。每个sinc滤波器对包括初级滤波器、次级滤波器、DMA接口和过载限值检测功能。主 sinc滤波器使用 DMA 将其数据传输到内存。次级sinc滤波器产生过载信号,这些信号可通过触发路由单元(TRU)进行路由,以触发PWM调制器跳闸并产生中断。

使用AD7401A时,该器件的额定抽取率(DR)为256。但是,可以在其他抽取率下使用此设备。

对于DR=256,sinc3滤波器的响应如下图5a和5b所示。

dsp

图5.(a) Sinc3抽取率=256和(b)模块本底噪声。

数字滤波器

sinc滤波器具有传递函数,该传递函数适用于数字逻辑中的实现,使用一系列求和和抽取函数。滤波器的目的是去除调制器采样时钟并恢复采样信号的数字值。滤波器设计与双极性Σ-Δ调制器匹配,0 V输入的脉冲密度为50%,正输入的脉冲密度超过50%,负输入的脉冲密度小于50%,如图6所示。

dsp

图6.ADSP-CM403 SINC滤波器框图。

数字滤波器是一组由调制器时钟(M_CLK)驱动的累加器,后跟一组由抽取时钟(D_CLK)驱动的微分器。输入累加器将输入位流转换为多字节字,而输出微分器得出位流的平均密度。

累加器和微分器级的数量可以是三个或四个,具体取决于滤波器的顺序。滤波器的直流增益和带宽是滤波器阶数(O)和抽取率(D)的函数,抽取率是调制器与抽取时钟的比值。sinc滤波器的传递函数由累加器和微分器的传递函数的乘积产生,在z域中由下式给出

dsp

对齐 PWM 和 Sinc 数据

sinc外设模块和PWM本质上在ADSP-CM403的同一系统时钟上运行,典型值为100 MHz。PWM和sinc可以同步,以便数据可以在与控制算法一致的适当时间和速率下可用。这通常与PWM电平波形对齐。下图显示了使用 sinc输入与电网同步所需的时序示例。当PWM以20 kHz (50μs)运行时,PWM_SYNC信号(同步PWM模块或来自不同DSP的外部PWM需要)位于PWM波形的中心,很少发生开关。为了对齐sinc数据,AD7401A的时钟速率应设置为10.24 MHz,抽取率为256(在AD7401A数据手册中指定)。由此产生的 16 位字速率为 40 KHz (50μs);PWM频率的两倍。如下图所示,由于sinc也可以设置为与PWM_SYNC输出对齐,因此sinc现在每个PWM周期将产生两个数据输出。输出字将以SRAM格式在下一个PWM_SYNC信号中可用。这清楚地表明sinc数据可用于电网同步算法控制。

dsp

图7.ADSP-CM403中PWM和SINC外设的对齐。

编程示例

/* SPECIFY DECIMATION RATE OPTIONS */

/* 256 */
// RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_256, 0);
// RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_256);          // PCINT INT RATE

/* 128 */
RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_128);          // PCINT INT RATE
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_128, 0); 

/* 64 */
RESULT = ADI_SINC_SETLEVELCONTROL (DEV, ADI_SINC_GROUP_0, 0, 0, SAMPLECOUNT_INTRATE, PSCALE_64);          // PCINT INT RATE
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_PRIMARY,DECRATE_64, 0);

/* SET SECONDARY RATE CONTROL “/
RESULT = ADI_SINC_SETRATECONTROL (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_SECONDARY, 8, 0);
RESULT = ADI_SINC_SETFILTERORDER (DEV, ADI_SINC_GROUP_0, ADI_SINC_FILTER_THIRD_ORDER, ADI_SINC_FILTER_THIRD_ORDER); RESULT = ADI_SINC_SETCIRCBUFFER(DEV, ADI_SINC_GROUP_0, SINC_CIRCBUFFER, CIRC_BUF_SIZE);

/* SET OVERLOAD AMPLITUDE DETECTION LIMITS TO 0 – FULLSCALE */
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_0, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_1, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_2, 0X0000, 0XFFFF);
RESULT = ADI_SINC_SETAMPLITUDELIMIT (DEV, ADI_SINC_PAIR_3, 0X0000, 0XFFFF);

/* SPECIFY MODULATOR CLOCK FREQUENCY, PHASE & STARTUP SYNCHRONIZATION */
RESULT = ADI_SINC_CONFIGMODCLOCK (DEV, ADI_SINC_GROUP_0, FSYSCLK, MODCLK, 0, FALSE);          // UP TO 20MHZ

/* IT’S THE SAME CLOCK AS THE PWM – SO PWM AND SINC ARE SYNCHRONOUS */
RESULT = ADI_SINC_ENABLEMODCLOCK (DEV, ADI_SINC_GROUP_0, ADI_SINC_MOD_CLK_IMMEDIATE );

/* ASSIGN BUFFERS TO RECEIVE SINC DATA-AUTOMATICALLY DMA’D INTO SRAM IN THE ADSP-CM403*/
RESULT = ADI_SINC_SUBMITBUFFER(DEV, ADI_SINC_GROUP_0, SINCDATA0, NUM_SAMPLES);

/* ROUTE THE TRU INTERRUPT */
RESULT = ADI_SINC_ENABLEDATAINTERRUPT (DEV, ADI_SINC_GROUP_0, ADI_SINC_DATA_INT_0, TRUE);

/* ENABLE & ASSIGN USED SINC FILTER PAIR, AND SPECIFY INTERRUPT MASKS */
RESULT = ADI_SINC_SETCONTROLINTMASK (DEV, ADI_SINC_INT_EPCNT0|ADI_SINC_INT_EFOVF0|ADI_SINC_INT_EPCNT1|ADI_SINC_INT_EFOVF1);
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_0, ADI_SINC_GROUP_0, TRUE);               // ACV_EXTERNAL
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_1, ADI_SINC_GROUP_0, TRUE);               // ACV_INTERNAL
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_2, ADI_SINC_GROUP_0, TRUE);               // DC LINK
RESULT = ADI_SINC_ENABLEPAIR(DEV, ADI_SINC_PAIR_3, ADI_SINC_GROUP_0, TRUE);               // AC_CURRENT

/* WAIT AND READ FULL SINE WAVE INTO SRAM – START NEAR AC CROSSOVER. */
DO
{
     PWM_SINC_LOOP=0;
     GET_ADC_DATA_PWM();
}
WHILE ((SINC_VEXT_DATA[0] > 50) || (SINC_VEXT_DATA[0] < -50)) ; // START SINC AT 0 V MEASUREMENT-ALIGNS WITH SINEWAVE.

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分