DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 274|回复: 0
打印 上一主题 下一主题

单片机中最小二乘方滤波器的向量测量和功率计算

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:46:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:提供了一种每周波四点采样的最小二乘方滤波器,通过整型变换和查表求根等优化算法,可在单片机中实现相量的快速测量。分析了滤波器中相量的相位关系,并提供了两线制功率的计算方法。
    关键词:最小二乘方滤波器 向量 单片机 功率
目前,以单片机为基础的数字式电气测量、保护装置已成为主流形式。交流信号直接采样也已成为一种普通的方法。快速傅立叶算法是其中的主要算法,而最小二乘方算法,计算量很大,特别是在单片机的处理能力有限的情况下,既要保证实时性,又要保证计算速度,不经过精心设计和程序优化,很难保证二者的统一。
通过减少采样次数、使用每周滤四个采样点拟合的滤波器和一套优化措施,使该算法计算速度大大提高,可以胜任工频向量的实时测量,因而可以用于过流、速断、方向保护等多个方面。本文分析了滤波器中的向量相位关系,同时给出了以此为基础的两线制功率计算举例。该方法已通过实际应用检验。
1 最小二乘方滤波器的构造
根据文献[1~3]的研究结果,对每一路信号,输入电压函数可表示为:



    式中:
P0——直流分量值
Pk——第K次谐波分量的幅值 K=1,…,N
θk——第K次谐波的相对起始相角 K=1,…,N
ω——基波角频率,ω=2πf,f=50Hz
λ——常数,等于直流分量衰减时间常数
在一般测量、保护应用中,只关心基波成分。为减少计算量,应最大限度地减少采样次数。根据采样定理,一个正弦函数的离散采样次数量少每周波3次。为方便起见,将每周波采样次数定为4次,即采样周期为5ms。则公式(1)中只能包含直流和工频分量。将直流分量按泰勒级数展开并取其前两项,则(1)式成为:
u(t)=P0-P0λt+P1sin(ωt)cos(θ1)+P1cos(ωt)sin(θ1)     (2)
其中,P0为直流分量值,P1为基波峰-峰值,θ1为基波分量在采样时刻相对于零点的相位角。
若以最近连续4次采样值为样本,可得到4个采样方程。如将P0、-P0λ、P1cos(θ1)P1sin(θ1)作为待测未知数,可将4个采样方程表示成如下矩阵:



    若分别用符号A表示系数矩阵,X表示未知参数向量,U表示采样值,则:
X=A -1U     (3)
其中A-1表示A的逆矩阵,亦即向量X的最小二乘方滤波器。根据文献[3],这个滤波器为:



    因此,
P1cos(θ1)=∑A-1[3][I]U[I] I=1,4     (4)
P1sin(θ1)=∑A-1[4][I]U[I] I=1,4     (5)
cos(θ1)=P1cos(θ1)/P1     (6)
sin(θ1)=P1sin(θ1)/P1     (7)
P0=∑A-1[1][I]U[I] I=1,4     (8)
P0λ=∑A-1[2][I]U[I] I=1,4     (9)



    实际应用中,为了减少单片机顺序采样带来的时间延迟所造成的计算误差,硬件电路应具有同步采样功能。其作用就是在采样时刻将所有电气信号分别保持下来。
2 数字滤波器中瞬时相量的关系
如果用ua、ub、uc分别表示三相电压相量,Ua,Ub、Uc表示其有效值,初始相位角分别用θua、θub、θuc表示;用ia、ib、ic分别表示三相电流相量,Ia、Ib,Ic表示其有效值,初始相位角分别为θia、θib、θic。则(4)式就是对应相量在X轴上的投影,即矢量的实部;(5)式就是对相量在Y轴上的投影,即矢量的虚部,(4)和(5)式中的θ1是上述相量相对于20ms时间窗之初时刻的相位角。
图1表示了A相电压和A相电流的相位关系,其他依此类似。


上述相量的相位关系是相量进一步运算的基础。
3 两线制功率计算
目前,高压线路的功率测量一般采用三相电压和两组电流,即两线制功率表方法。用式(4)、(5)、(6)、(7)和(10)可以实现线路有功功率和无功功率测量,具体过程如下:
两线制的前掉是假设三相电流平衡,即:
ia+ib+ic=0     (11)
如果无B相电流互感器,则B相电流:
ib=-(ia+ic)     (12)
线路有功功率为:
P=Pa+Pb+Pc=ua×ia+ub×ib+uc×ic
=ua×ia-ub×(ia+ic)+uc×ic
=uab×ia+ucb×ic
=Uab×Ia×cos(θuab-θia)+Ucb×Ic×cos(θucb-θic)     (13)
根据三角函数公式:
cos(θuab-θia)=con(θuab)×cos(θia)+sin(θuab)×sin(θia)     (14)
cos(θucb-θic)=cos(θucb)×cos(θic)+sin(θucb)×sin(θic)     (15)
其中,uab为A相和B相之间的线电压;ucb为C相和B相之间的线电压。
将(6)和(7)式结果带和(14)、(15)和(13)式,即测得三相平衡线路的有功功率。
如果输入电压是相电压,则:
P=Pa+Pb+Pc=ua×ia+ub×ib+uc×ic
=ua×ia-ub×(ia+ic)+uc×ic
=Ua×Ia×cos(θua-θia)-Ub×Ia×cos(θub-θia)
-Ub×Ic×cos(θub-θic)+Uc×Ic×cos(θuc-θic)     (16)
将上式中的余弦函数展开后,再钭(6)和(7)式的对应结果分别代入即可。
无功功率的计算只需将(14)、(15)和(16)式中的余弦运算改为相应的正弦运算即可。
4 基于单片机应用的优化措施
从目前市场情况来看,虽然单片机性能在不断提高,如INTEL单片机从8位、16位到32位不断推陈出新,但真正得以广泛采用的并不是性能最好的产品。从实际应用来看,有时必须面对一个受限制的客观现实。就本应用来说,采用以下措施可大大提高程序的计算速度。
4.1 变浮点运算为整数运算
对于(4)~(10)式来说,采用C或PL/M高级语言进行浮点运算既方便,精度又高。但与整数运算相比,浮点运算速度要慢得多。因此,为提高计算速度,应尽量采用整数运算。从工程实际来看,A/D转换后的结果一般是双字节整数,可与放大10位的最小二乘滤波器直接运算,则(4)式变为:
X[3]=5×U[2]-10×U[3]+5×U[4]     (17)
(5) 式变为:
X[4]=5×U[1]-10×U[2]+5×U[3]     (18)
(17)、(18)式只有6次4字节的长整数乘法和4次加法。即使对12位A/D而言,(17)、(18)式的计算结果也不会溢出。由于滤波器扩大10倍时是整数,没有四舍五入,因此计算过程无任何附加误差。
4.2 快速求平方根法
从(4)~(10)式来看,耗时最多的是(10)式,即求平方根运算,获得基波的峰-峰值。
如果直接采用标准浮点库提供的开平方函数,16MHz的80196KC需3ms左右。若采用文献[4]中的整数查表法,或文献[5]提供的精度为1%的二分法,相同条件下求根所需时间一般在100~300μs之间,计算速度提高10倍以上。
本文提出的每周波4个采样点的最小二乘方滤波器可在一般单片机中实现工频信号的实时相量测量。算法进一步优化后,可在一个周波的时间窗内对多路信号作出实时反映,满足一般保护的技术要求。该算法还可以实现其他保护和测量功能。
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-3 02:18 , 耗时 0.093155 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表