王 婧,宋晓茹,高 嵩,王 坤
(西安工业大学电子信息工程学院,西安 710021)
随着社会的不断进步,电已经成为人们生活中必不可少的一部分,电是人类文明中一项伟大的发明,电力系统和电力网的发展是人类关注的焦点,这么长时间以来,各国的专家已经研究了很多关于这方面的问题,也发表了很多论文,这足以说明电力系统的重要性,也是一个国家发展和创新的动力。
在传统的信息量小精确度低的有限的电力数据采集存储空间下,没有办法来满足在实际情况下电力系统调度和管理的需要[1]。本文在交流采集系统下运用STM32芯片[2]。最大程度上利用其片上的丰富资源进行设计,目的是达到节省硬件的投资。该芯片内部功能模块丰富,可以直接实现AD转换,对数据进行高速采集和处理[3]。简化了硬件设计,节约了投资。利用 ARM 捕获功能和定时器里的计时功能获得发电机的频率,提高了精确度[4]。并且还实现了对采集到的交流信号进行快速傅里叶变换[5-6](fast fourier transform, FFT)进而计算出更加精准的数据和对谐波的分析。系统结构比较简单,具有可靠性高、低成本、低功耗等优点,适合实时现场操作,具有较高的应用价值[7]。
本课题设计的励磁控制系统[8-9]的交流采样[10]系统是对机端及电网交流电压的检测环节,利用ARM微控制器的定时器,测得发电机频率,得出A/D转换器的采样周期;对发电机的机端电压进行高速交流采样,然后经过快速傅立叶变换算法,计算出机端电压[11-12]。
系统原理框图如图1所示。
图1 硬件系统框图
在自动励磁调节系统的测量系统中,应用交流采样法测量工频电压、电流、功率等电参数十分广泛。交流采样法[13]一般是先通过采样把时域上连续的信号变成时域上离散的信号。所谓采样就是对一个连续信号以一定的时间间隔取其瞬时值。具体是通过采样/保持器和A/D转换器来实现将连续信号x(t)变成数字信号x(nTs),然后利用计算机或微处理器进行信号的数字处理。信号虽然已经离散化和量子化,但只要满足一定的条件,仍能包含被采样信号所载有的信息。采样定理就是规定不失真恢复原信号所要满足的条件。
傅里叶变换实现了时域到频域的转换,在信号处理技术领域有着大量应用。计算机只能处理有限长的离散时间序列,所以必须对一个连续的变化模拟信号进行转换,也就是模拟信号数字化。
如式(1)和(2)为有限长序列的离散傅里叶变换定义。
正变换:
0≪k≪N-1
(1)
反变换:
0≪n≪N-1
(2)
使DFT运算中有些项加以合并,达到减少运算量的效果。
电源电路模块流程图见图2。
图2 电源电路模块流程图
本设计中需要单独的电源供电,所以需要焊接一个电源电路。LM358、LM324等芯片需要+5 V、-5 V电源,还有部分电路用到+1.65 V电源,因为STM32F103RCT6主控单元只提供3.3 V电压,所以需要设计一个可以供这些电的电源电路。见图3。
图3 电源电路
经过整流桥整流过的电压还不够稳定,所以接入一个较大容量的电解电容,利用其充放电特性的作用,使整流后的脉动直流电压变成相对比较稳定的直流电压。电解电容的参数一般有两个,一个是电解电容的容量,一个是它对应的最大工作电压,电压一般选择前一级同一线路电压的2到3倍即可。
接入这两种电容的作用:因为通过整流桥整流过后的波形是锯齿波,为了让其变为平稳顺滑的脉动波,并且接近于直流,所以接入它们起到滤波的作用;还有一个储电的作用,需要释放的时候进行释放。
图4为加法器基准电压电路图,电压、电流采集电路中需要用到+1.65 V作为加法器的基准电压。+3.3 V的电压经两个10 K的电阻分压,生成+1.65 V的电压,然后经过电压跟随器进行隔离,之后,再经过滤波,得到+1.65 V电压了。
图4 加法器基准电压
采集发电机机端交流电压Ua、Ub、Uc,定子交流电流Ia、Ib、Ic等模拟量,计算出发电机定子电压、发电机定子电流等。交流采样技术是微机励磁的关键技术和励磁装置数字化深度的标志之一。因为同步发电机输出高电压,危险系数大,而且大数据不方便采集,所以为了人身安全,为了准确便利的测量,所以在本设计中接入了传感器,来让它变为小电压、小电流。影响AD采样的因素有分辨率、最小采样单位值、量程、电源噪音等。
交流电压采集流程图见图5。
图5 交流电压采集流程图
2 kW同步发电机输出的机端电压信号先是输电机电压、电压互感器的二次电压转换成与原信号在数量上成正比,但幅值较低的交流电压,并联一个电阻,把它变成正负1 V小幅值电压;再加入RC滤波电路,滤除大于3*标准50 Hz=150 Hz的高频信号;为了使±1 V电压平稳小误差的输入到比例放大器,本课题加入LM358进行缓冲隔离;然后信号通过LM324放大器放大为-1.65 V-+1.65 V;通过加法抬升电路将电压抬升为0~3.3 V。最后加上两个肖特基二极管,肖特基二极管有快速导通的特性,起到钳位作用,保证输入STM32F103RCT6的电压在一定范围内。交流电压采集电路见图6。
图6 交流电压采集电路
本设计采用的是SPT204A电压互感器,SPT204A电压互感器的额定输入电流为2 mA,额定输出电流为2 mA,变比为1:1,它其实是一款毫安级的精密电流互感器,用户使用时需要将电压信号变换成电流信号,左边的R78电阻是一个限流电阻,不论额定输入电压多大,调整R78电阻的阻值,使额定输入电流为2 mA,就满足使用条件。因为STM32F103RCT6主控单元只获取电压信号,这时电流互感器相当于一个电流源,给它并一个电阻,就变成了一个电压源,相当于电压信号。然后可以通过欧姆定律计算出需要并联一个500 Ω的电阻,这样就变成电压信号了。
主程序是本次设计的核心。为了实现本设计的功能,软件部分是该设计的主要部分,尤其是各个算法的理解应用,是本设计的重点和难点。软件部分是根据硬件系统来进行设计的。本设计拟采用Keil 5 MDK集成开发工具,遵循结构化、模块化、自顶向下、逐步细化的设计思想编写C语言程序实现系统的相关功能。后期再通过反复试验、调试,从而达到最佳控制发电机的机端电压的效果。本课题主要实现交流采集系统软件部分的设计。主程序流程图如图7所示。
图7 主程序流程图
当系统上电后,首先是系统的初始化,初始化完成后再通过IIC总线将电压值、报警值、PID的三个参数的初始值存储在外部存储模块AT24C02中,以便于可以随时进行修改它们的值,利用定时器的外部计数法进行同步测频,得出AD转换的采样周期,通过香农采样定理将采到的模拟量送给AD转换器得到数字量由DMA通道读取电压采样值,通过FFT运算获取有效值,并且由TFT实时显示波形值及电压值。当测量的电压值大于报警值时,会进行报警,符合的话进行下一次采样。
本设计PA4作为模拟量输入采集端口,采样的过程是先对电压采集10次后,得到10次的电压总和,求平均值(value=value/10),求出的平均值进行量纲转换(ad_v=value*3.3/4095)得到ad_v。
在进行数据流操作时,要想把CPU程序的花费时间少一点,那就用DMA来读取。DMA的作用就是保证了I/O口和内存以及内存与内存彼此数据间的传输能够高速地进行。DMA是一种直接存储设备。它在数据传输的过程中也不需要CPU有任何的指示,数据能够在DMA上很快的移动。这样的话就可以解放CPU来干别的工作。通过初始化DMA和ADC相关寄存器,使得ADC采样结束之后,DMA自动读取转换结果,并将其存放到事先指定的区。
流程图在描述ADC的时候可以看出,采集数据,采用多通道AD采样的DMA传输,首先需要配置ADC功能引脚,然后配置多通道ADC功能,接着配置DMA通道,使能ADC转换结果从外设到内设,开始启动ADC转换功能,对各通道的连续采样结果取平均值,最后转换采样结果。
ADC的工作参数具体如下:打开ADC外设时钟;使用ADC1,所有模式配置为独立模式;多通道采集,开启扫描模式;需要不断的采集外部的模拟数据,所有使能连续转换模式;不使用外部触发转换信号;转换结果右对齐;设置需要转换的通道的个数,最后调用ADC_Init()函数把这些参数写入ADC的寄存器完成配置。
因为STM32F103RCT6中自带的内部存储器,程序一旦被烧录进去,就不能更改。但是在采集过程中,需要在线修改一些参数值。外部存储模块可以设定修改一些变量值,并且也用来存储电压报警值等。将STM32F103RCT6的PB6管脚连接至存储芯片的SCL管脚,PB7连接至SDA管脚,分别为IIC的时钟输入输出和数据输入输出。
本设计应用的是AT24C02芯片进行存储。主要储存PID参数、电压设定值和报警值等数据。AT24C02是本实验板中的EEPROM芯片的SCL及SDA引脚连接到了STM32对应的I2C引脚中,结合上拉电阻,构成了I2C通讯总线,它们通过IIC总线交互。IIC总线是遵从IIC总线协议的一个双向半双工通讯接口,在STM32内部已经集成好,通过对内部寄存器的配置,可以直接使用IIC进行通信,由管脚自动产生时钟信号、开始信号、结束信号,并处理应答信号。在IIC总线上可挂载多个从机,通过寻址找到各个从机的“位置”。由时钟线SCL和数据线SDA组成。SDA通信协议中有三个不可缺少的信号分别是开始信号、答应信号、结束信号。开始信号:SCL为1,SDA由1变0被定为开始信号,标志开始传输数据。答应信号:在8位数据传输完后,SDA上的一个低电平,被视为答应信号。结束信号:SCL由0变1被视为结束信号,表示此次传输完成。EEPROM芯片是7位设备地址,其中高4位是固定的分别为1010b,低3位则由A0/A1/A2信号线的电平决定,R/W是读写方向位,与地址无关。
数据存储和读取子程序主要是IIC总线对AT24C02的读取和写入数据。本次存储的是一些系统的参数,因此在存储前需要将十进制的数字转化为ASCII码,然后通过IIC总线写字节函数向AT24C02写入数据,写入数据完成时清零数据缓冲区,防止出错。根据设计要求在下一次显示中需要显示之前存储的参数,因此通过IIC读取函数读出存储的参数值,比较读取值与输入值是否相同,相同则显示该数据,若不相同则在LCD上显示F提示错误。
STM32常用的测频方法有利用外部中断测频、PWM输入测频、输入捕获测频、外部时钟计数器。外部中断测频是当外部中断到来时启动定时器为1秒的定时器,并记录1秒钟来了几个脉冲,则可得到频率。外部中断测频编写容易,通用性强,缺点是中断进入频繁,误差大。在低频可达到非常高的测频精度,尤其在10 Hz时可达到0.01%的精度。
本设计中的同步测频单元,有两种设计方法,一种是硬件设计;另一种是软件设计。参考大量文献之后,发现硬件设计外围电路虽然简单,但是不好实现,不方便计数,浪费时间和物力。相较之下,软件设计更快捷一点,利用 ARM 捕获功能和定时器里的计时功能获得发电机的频率。本次设计一个周期内打64个点,测得的采样频率应该是50*64=3 200 Hz。
本设计选用MCUDEV_TFT 1.44彩屏,通过按键控制来显示三相电压值,设置的电压报警值,PID参数值以及实时采集电压的正弦波形。此款彩屏可以根据中文字库显示多种字符,有很快的写入速度,能满足本系统对实时性的要求。
执行主函数时不断的扫描键盘,如果有键按下,程序就转去执行判断键值并执行相应的程序。按键输入程序是读取外部按键的信号输入,然后判断信号是否消失,如果信号消失则证明按键松开,根据键值执行相应的功能;若信号没有消失则继续等待。
在本设计中,只要四个按键就可以满足实验要求,MENU按键的功能就是切换LCD屏幕,PLUS的功能是用来设定电压、报警、PID值,SHIFT就是对光标进行左右移动,UPDOWN的功能是移位。这四个按键分别通过PA8,PA9,PA10,PA13与STM32控制器相连接。数值增加键在每一次操作完成后都会将对应的参数储存到24c02中,MENU将使程序跳出设置执行其他部分。
当交流采集单元收集的三相电压值大于规定的报警电压值时,产生一个电平信号并输出到报警模块,蜂鸣器将会发声,LED灯发光表示超出上限值。本设计的PA1和PA2是一个声光报警接口,两个接口分别接蜂鸣器和LED灯。
本次设计对于系统的搭建,选择了先规划整体系统布局后模块焊接的设计模式。首先是对STM32F103RCT6单片机最小系统的设计,让单片机可以正常工作;然后是搭建电源电路,经过电源电路把220V电压转换成需要的电压;接着设计交流采集模块,最后搭建声光报警、按键电路、外部储存电路以及显示模块。
电源电路因为要先通过一个220/12 V的带中间触头的变压器,将电压变为12 V,所以就用万用表先测试了变压器三端的电压,并用示波器观察了它的波形、幅值、周期等。用示波器测得的变压器两端的测试情况,测得电压幅值是正负36 V,周期为24.80 ms,所以计算得到它的有效值大约为25.46 V,在24 V左右,在电压范围之内;然后依次测试了其他两端的示波器显示结果,波形和这个图差不多,测得电压幅值是正负17 V,周期为25.00 ms,所以计算得到它的有效值大约为12.02 V,在12 V左右,在电压范围内。
交流电压采集模块,通过传感器获得交流电压模拟量,然后通过一系列转化,传入到STM32F103RCT6单片机的ADC接口中,进行AD转换,把模拟量转变成数字量。
按键显示模块设计有4个按键,都是低电平触发,MENU按键的功能就是切换LCD屏幕,PLUS的功能是用来设定电压、报警、PID值,SHIFT就是对光标进行左右移动,UPDOWN的功能是移位。系统通入电源后,显示出测得的三相电压值。如图8所示。单片机自带的TFT显示屏通过操作按键可以显示出三个界面。第一个界面是实时采集的三相相电压值、电压设定值、频率,第二个界面是实时采集的交流电压正弦曲线,第三个界面是电压设定值、报警值。这个模块实现对采集到的数据进行模数转换,等到采集到之后,需要分别进行量化处理才能输出给上位机。
图8 显示调试
同步发电机励磁控制系统主要由交流采集和移相触发脉冲两部分构成,所以一个良好的交流采集系统对同步发电机励磁控制系统的运行有着很重要的意义和作用。本文介绍的交流交流采集系统使用ARM芯片STM32,该芯片内部功能模块丰富可以对数据进行高速采集和处理并且直接实现AD转换。简化了硬件设计,节约了投资。利用 ARM 捕获功能和定时器里的计时功能获得发电机的频率提高了精确度。实现了对采集的交流信号进行FFT处理,计算更精准的数据及谐波分析。这种基于STM32的交流电压采集系统有很高的应用价值和广阔的市场前景。本次交流采集系统还可以把它往智能化方向发展,比如可以实现人机界面交互式,人们可以通过电脑远程控制同步发电机进行交流采集,这样不仅可以节省资源,也可以使交流采集系统的硬件电路设计更简单,更可靠,更安全。