首页 理论教育软件总体设计-现场总线与工业以太网应用技术

软件总体设计-现场总线与工业以太网应用技术

【摘要】:由于TMS320LF2407A是定点DSP,用C语言实现快速傅里叶变换不必考虑定点数定标的问题,也不必担心定点数溢出的问题,C语言有float型变量,其取值范围为1.19209290e-38~1.19209290e+38,完全可以满足快速傅里叶计算的量程范围。由任务要求可知,软件设计的重点是电网电压、电流的数据采集和数据处理,这些程序设计的优劣直接影响仪表的测量精度和运算速度。软件设计主要包括数据采集、数据处理和数据通信几部分。

由于TMS320LF2407A是定点DSP,用C语言实现快速傅里叶变换不必考虑定点数定标的问题,也不必担心定点数溢出的问题,C语言有float型变量,其取值范围为1.19209290e-38~1.19209290e+38,完全可以满足快速傅里叶计算的量程范围。使用C语言编写FFT算法,具有逻辑清晰、易于开发等优点。其中计算实部和谐波的循环次数为Nlog2N次,其运算低,使用DSP执行此函数时所需时间仅为几百微秒。为了进一步提高执行速度,可以将程序中计算正弦、余弦的函数用固定的数组代替,这样处理后,执行速度可以减少到几十微秒,完全能够满足实时处理的需要。

软件系统完成的主要任务是测量电网电压、电流的各项电力参数,包括各相电压、电流的有效值功率、电度、功率因数及谐波总畸变率等。由任务要求可知,软件设计的重点是电网电压、电流的数据采集和数据处理,这些程序设计的优劣直接影响仪表的测量精度和运算速度。另外,仪表还可以与上位机通信,以记录大量的数据信息。

软件设计主要包括数据采集、数据处理和数据通信几部分。数据采集模块所要完成的任务是实时测量电压、电流的信号周期,并将其均分128份后作为A/D转换的采样周期。

本系统测量周期为250ms,在一个测量周期内连续测量4个周波(80ms)的电压电流信号,其余时间用于计算和其他任务的处理。

本系统要求分析到31次谐波,为了保证精度,每周期采样128次。

电网中电力信号的周期大约是20ms,若每周期采样128次,则采样周期为20ms/128≈0.156ms=156μs,即要完成128次采样,所采用的A/D转换的转换时间不应超过156μs。本设计使用TMS320LF2407A内部的A/D转换模块,A/D转换时序如图9-9所示。

978-7-111-35607-3-Chapter09-13.jpg

图9-9 A/D转换时序图

PS是预定的CPU时钟,它可以通过改变ADCTR1寄存器中的ACQ PS0~ACQ PS3位段域和CPS位来实现。当ACQ PS0~ACQ PS3位段域的值全为0,即预定标器的值为1,并且CPS为0时,PS时钟将和CPU时钟一样。对于预定标器的任何其他值,PS都会被放大(即增加了采样/保持窗口的时间)。TMS320LF2407A芯片一个完整的A/D转换周期约为500ns,远远小于采样周期156μs,完全可以满足交流采样的频率要求。(www.chuimin.cn)

测量电压频率时,将DSP的捕获引脚设置为上升沿捕获。如果捕获到电压上升沿就发生中断,将时基定时器1中的计数值自动读入到一个16位2级深的FIFO寄存器中。两次计数值之差就是电压信号周期。

测量出电压周期后,以此周期除每周期采样次数即可得到采样周期。下一步以得到的采样周期初始化定时器2,每到一个采样周期的时间,定时器2就会发生中断,启动A/D转换。这里分别对A相电流、电压,B相电流、电压,C相电流、电压和N相电流进行采样,由于每个采样通道间的采样间隔非常短,所以可以认为是同时采样7个通道。根据周期函数的定义,任意一个周期长度范围内的积分值均相等。也就是说,任意采样一个周期长度的波形,就能计算出电流、电压的有效值,以及谐波分量和功率等电力参数。因此,这里不用整周期采样,而是任意采样一段电压周期长度的波形。

数据处理模块的工作是根据A/D转换得到的结果进行快速傅里叶变换及采用FFT变换得到的各次谐波幅值计算出各种电力参数。在进行谐波计算时,可以得到各次谐波的实部和虚部,从而得到各次谐波相角的正切函数值,即用快速傅里叶变换既可以得到各次谐波的幅值,也可以求出它们对应的相角。

由于谐波分析法中已经具体阐述了FFT的理论推导和算法实现,所以这里只给出计算电压、电流的有效值,谐波总畸变率的算法公式。

电压、电流的有效值,有功功率,总谐波畸变率公式分别如下:

978-7-111-35607-3-Chapter09-14.jpg

式中,N为每个周期均匀采样的点数;Uh为第h次谐波电压方均根值;Ih为第h次谐波电流方均根值;φh为第h次谐波电流的相角;θh为第h次谐波电压的相角。