pm

[TOC]

摘要

面向电磁式互感器的全场景试验系统是模拟电磁式互感器的变电站二次设备分布式测试系统。系统的子终端由数字控制模块、接口模块和模拟量输出模块构成。为了保证子终端能很好的保持模拟量输出的精度一致性和同步一致性,本系统利用DSP和FPGA器件实现了终端运行参数的管理系统,可以方便的实现终端运行参数的修改、保存和实时分配。

关键字:全场景试验系统;DSP;FPGA;Flash API;参数修正

引言

全场景试验系统是一个“一主多从”模式的分布式测试系统,用于对智能变电站的二次设备进行完整的功能性测试。主机中包含仿真平台,可以对整个变电站的一次系统进行仿真;从机连接在各个二次设备节点的入口,用于接收仿真数据并进行同步试验。全场景试验系统目前已经发展了两代,第一代用于使用电子式互感器的智能变电站,从机的输出是简单的数字光纤信号;第二代用于使用电磁式互感器的智能变电站,从机终端的输出是实际的电压、电流模拟量信号。

面向电磁式互感器的全场景试验系统终端包含功率放大装置,多个功率放大装置的特性都有细微差别,要保证数据输出的一致性就需要针对功率放大器的实际特性进行参数适配。另外,作为输出装置,从机终端需要有良好的守时性能,这个就需要对各个终端的时间系统进行管理与修正。从机终端的数字控制部分是FPGA和DSP,终端的运行参数管理也就是由这两个器件来执行。本文将介绍面向电磁式互感器的全场景试验系统子终端的输出部分的结构、终端正常运行所需的参数,并在此基础上详细介绍这些运行参数的管理。

终端组成

面向电磁式互感器的全场景试验系统子终端的组成如图所示:

Image Title

可将系统划分为三个模块:

  1. 接口模块。接口模块可分为网络接口和液晶人机接口。网络接口与主机终端相连,用于传送状态仿真数据以及相应的命令。人机接口指的是带触摸屏的液晶,可以实时检测功放的输出,并对设备运行参数进行修改。
  2. 模拟输出与检测模块。模拟输出模块需要输出6路电流信号和4路电压信号,由功率放大器直接输出。检测回路是功放输出接PT/CT将信号缩放至合适的范围,用于实时检测。
  3. 数字控制模块。控制器使用的是FPGA和DSP。FPGA完成的功能是仿真数据缓存与输出控制、DAC控制;DSP完成的功能是带触摸屏液晶的人机接口实现、ADC采样数据处理。终端中使用的DAC和ADC都是16位分辨率的多通道器件,转换时钟都是由FPGA给出。

终端运行参数

模拟输出校正参数

功率放大器的线性放大系数由电阻、电容、电感等器件决定,现实中这些器件总会存在着差异,这就决定了功率放大器的线性放大系数都是有所差异的。此外,本系统使用的是线性直流放大器,每一台装置的每一路放大器也有着不一样的零漂特性。

为了使系统的输出保持精度和线性度的一致,需要对功率放大器的放大系数和零漂进行校正。本系统使用的数字校正的方法,由FPGA实现,其原理如图所示:

Image Title

每一点的仿真数据要乘以幅值校正数据AMP_adj,然后加上零漂校正值ZD_adj,这样输出的数据经过DA转换出来的模拟量才能更好的复现仿真输出。

一台终端有10路输出,因此需要10个幅值校正系数AMP_adj与10个零漂校正值ZD_adj

回路互感器变比参数

系统的液晶屏可以实时的显示功率放大器10路输出的幅值和相角,其数据路径为:【功放输出】—>【PT/CT互感器】—>【ADC】—>【DSP】—>【液晶】。同样的,互感器电路模块的对称性也是不能很好的保证,因此每台终端的每一路检测回路的互感器变比都是有细微不同。因此每台终端需要10个互感器变比修正系数RATIO_adj。在DSP内的实现原理如图:

Image Title

ADC对互感器模块的输出模拟值进行采样,并经过FFT运算模块提取出信号的频域信息。其中幅值信息要乘以变比校正系数,这样液晶上的幅值信息才能准确的反应实际的功放输出。

时间系统计数参数

终端使用恒温晶振作为系统的时钟源,FPGA内部使用PLL模块将其倍频至50Mhz作为系统时钟。时间系统对50Mhz进行计数,达到周期计数值就对秒信号进行累加并以输出秒脉冲PPS信号,并以此来同步DAC和ADC的转换时钟。

恒温晶振有着脉冲随机误差小,频率偏移小的良好特性,但是每个恒温晶振的实际频率还是会有些许不同。如果用同样的参数来建立时间系统,则每个系统都会存在时间误差,反应到终端上,就是会引起各个终端输出信号的相位偏移,影响到系统的同步性能。

因此,每个终端要根据所用的恒温晶振的实际频率来选取合适的时间系统计数值参数,来产生精确的时间信号。为了得到更高分辨度的数字校正效果,本系统采用多周期循环计数校正的方式,多周期循环校正的参数可用如下的数据结构表示:

1
2
3
4
5
6
struct osc_param
{
Uint rgl_prd;
Uint sng_prd;
Uint loop_cnt;
};

loop_cnt表示循环周期数,rgl_prd表示常规秒计数值,一个循环周期内作为秒计数值执行loop_cnt-1次,sng_prd表示单次秒计数值,一个循环周期内作为秒计数值执行一次。

实现图如下所示:

Image Title

上面所说的数据结构里面的数据是图中循环移位寄存器的参数:寄存器的个数和各个寄存器的初始值。循环移位寄存器以PPS为时钟信号做循环移位,其输出用来修改时间系统中“N-计数器”的N值,这样就完成了时间系统的校正。时间系统所用的是50Mhz时钟,则以40为循环计数周期的话,这套校正方法可以实现接近0.5ns分辨率的校正效果。

参数管理

高性能的器件在不同环境中还是会表现出不尽相同的特性,所以终端的功率放大器和互感器模块在不同环境中也是难以保持一致的特性。另外,一切元件都会老化,随着时间的变换,终端的特性也会发生不确定的变化。

因此,为了保证终端的性能,需要对各个终端进行参数校验,这些参数的管理也是终端数字控制器的一个大任务。

基于Flash API的参数数据库

由于需要不定时的修改终端参数,终端的数字系统就需要一个小型的数据库来存储这些数据。

本系统中使用的DSP器件为TI公司的新一代DSC(数字信号控制器)——TMS320F28335,该器件有8个扇区一共256k*16bit空间的片内Flash存储资源。Flash的数据读取就是普通的存储器读取操作,而Flash的写入操作则是要遵循“擦除扇区”—>“写入数据”—>“数据校验”同时要满足特定时序的复杂操作。

为了数据的安全性和操作的简易性,TI公司对DSP器件的片内Flash操作进行了封装,对用户提供了Flash API。Flash API主要提供了如下的C语言接口函数:

  1. Uint16 Flash_Erase(Uint16 SectorMask, FLASH_ST *FEraseStat);
    擦除SectorMask指定的Flash扇区数据,用FEraseStat指示执行状态。
  2. Uint16 Flash_Program(Uint16 *FlashAddr, Uint16 *BufAddr, Uint32 Length, FLASH_ST *FProgStatus);
    BufAddr指定的地址上取出Length长度的数据写入FlashAddr指定的Flash地址上,FProgStatus用于指示执行状态。
  3. Uint16 Flash_Verify(Uint16 *StartAddr, Uint16 *BufAddr, Uint32 Length, FLASH_ST *FVerifyStat);
    BufAddr指定的地址上取出Length长度的数据与FlashAddr指定的Flash地址上取出相同长度的数据进行校验,FProgStatus用于指示执行状态。

使用这些函数之前还需要执行一系列的操作:

  1. 根据实际使用的器件设置好相应的系统资源(CPU时钟、PLL锁相环等)管理寄存器。
  2. 将Flash相关函数代码搬移到内部单周期访问存储器(SARAM)内,以保证Flash操作的时序正确性。
  3. 关闭系统中所有的中断,以防在Flash操作时响应中断引起数据的损坏。

使用如下的数据结构:

1
2
3
4
5
6
7
8
9
10
11
12
struct param_buf
{
typeA AMP_adj0; //第1路幅值校正参数
...
typeA AMP_adj9; //第10路幅值校正参数
typeB ZD_adj0; //第1路幅值校正参数
...
typeB ZD_adj9; //第10路幅值校正参数
typeC RATIO_adj0; //第1路互感器变比校正参数
typeC RATIO_adj9; //第10路互感器变比校正参数
struct osc_param msp; //时间系统校正参数结构体
};

作为连接数据库的缓存结构体可以很方便的实现终端参数的存取。

参数的实时修正

子终端的带触摸板液晶显示屏提供了终端运行参数修改的接口,操作者可以操作液晶界面来方便的修改终端的各项参数。功率放大器的幅值和零漂修正参数以及时间系统参数都是在FPGA内部执行的,这些参数修改之后需要立即从DSP传送到FPGA,这样操作者就可以使用各种仪表实时的看到参数的修正效果,达到人工的闭环校正。

终端各个参数的典型整定流程如下:

  1. 时间系统参数校正:
    1. 进入时间系统参数修改界面;
    2. 将子终端的PPS信号连接至标准时间仪器;
    3. 根据仪器检测出的偏差来修改时间系统参数,直至达到理想偏差范围内;
    4. 保存参数,退出界面;
  2. 功率放大器零漂校正:
    1. 进入零漂校正界面;
    2. 将子终端的功率放大器输出接至直流表;
    3. 调节ZD_adj参数直至直流表显示的零漂值到达可接受范围;
    4. 保存参数,退出界面;
  3. 功率放大器幅值系数校正:
    1. 进入幅值系数校正界面;
    2. 将子终端的功率放大器输出接至交流功率表;
    3. 终端输出50V/2A的工频校验信号;
    4. 调节AMP_adj参数直至交流功率表显示的功率放大器电压、电流输出达到可接收范围;
    5. 保存参数,退出界面;
  4. 互感器变比整定:
    1. 在互感器变比整定之前要先完成功率放大器幅值系数的校正;
    2. 进入互感器变比整定界面;
    3. 终端输出50V/2A的工频校验信号;
    4. DSP对检测回路采集的信号进行运算,得出幅值信息,并此计算出互感器变比;
    5. 保存参数,退出界面;

总结

本文介绍了面向电磁式互感器的全场景试验系统子终端的结构组成特点,详细描述了基于FPGA和DSP的终端运行参数管理系统。这个管理系统以DSP的片内Flash作为数据库,并且提供了参数校正的用户界面,可以非常简便的实现功率放大器幅值系数、零漂校正,互感器变比调节,时间系统参数整定的功能,很好的保证了子终端的各项运行指标。


参考文献

TMS320F2833x Flash API August 14, 2008
Running an Application from Internal Flash Memory on the TMS320F28xxx DSP SPRA958L – January 2013 Application Report
Copying Compiler Sections From Flash to RAM on the TMS320F28xxx DSCs SPRAAU8 – March 2008 Application Report