杨鹏 史旺旺
摘 要:在分析开平方迭代算法收敛速度的基础上,提出了浮点数开平方的初值选取改进算法。该算法具有算法简单、迭代次数少、精度高等特点,较好地解决了开平方运算时间较长的问题。
关键词:开平方;迭代算法;微机保护
分类号:TM 77;TM 744 文献标识码:B
文章编号:1006-6047(2000)01-0007-02
Study on Square Root Algorithm in Microcomputer Protection
YANG Peng
(Polytechnic Institute of Yangzhou University,Yangzhou 225009,China)
SHI Wang-wang
(Polytechnic Institute of Yangzhou University,Yangzhou 225009,China)
Abstract:It presents a method of giving a starting value to improve Newton iteration of extracting square root.The conclusion shows its features of simplicity,high precision and timesaving.
Keywords:square root; iteration algorithm; microcomputer protection▲
0 前言
基于交流采样的电力系统微机测量和保护技术应用十分广泛,测量保护中常常要求计算基波电压、电流的有效值、功率和功率因数以及各谐波分量。全波傅氏算法因能滤去直流和各高次谐波分量,在微机保护中获得了广泛的应用。电压、电流有效值及全波傅氏算法的常见公式为
(1)
(2)
(3)
(4)
(5)
上述公式中,N为每周期内采样点数;R(n)为电压的n次余弦分量;X(n)为电压的n次正弦分量;Um(n)为n次谐波电压幅值;U,I为电压电流有效值。
可见,测量保护中的数据处理离不开开平方运算,开平方运算是非常耗时的算法。常见的开平方运算有牛顿迭代法和查表法[1]。查表法的精度决定于表格区间的长度,为提高精度,就要增加表格长度,这将占用较多的微机内存,同时增加了查表时间。牛顿迭代法计算精度高,但如果初值选择不当,迭代次数将很多,耗时长。微机测量保护中电压、电流的动态变化范围很大,增加了初值的选择难度。本文根据浮点运算的特点,提出将浮点数的阶码和尾数分别处理,较好地解决了初值难以选择问题,迭代次数达到3次时就有很高的精度。
1 牛顿迭代法[2]
开平方函数f(x)=x2-c=0的根的牛顿迭代公式为
(6)
对(6)式配方,得:
(7)
(8)
(7)式除以(8)式得:
反复递推得:
(9)
令,则对x0>0,|q|<1,将q代入(9)式得k次迭代的相对误差为
(10)
由(10)式知,上述迭代算法是收敛的,收敛的速度完全取决于x0的选择,x0越接近真值
2 浮点算法的初值选择
2.1 浮点格式
浮点数由阶码和尾数组成,4字节的IEEE标准浮点格式为
上述格式的阶码寻址不方便,将格式改为
浮点数均按规格化方式存放,即尾数的最高位总为1,这样,对于尾数为M的规格化浮点数,有0.5≤M≤1.0。
2.2 初值选取
采用浮点格式表示的数的开平方可将阶码和尾数分开处理。设阶码为C,尾数为M的浮点数x=M×2C,则
若C为偶数,即C=2k,k为整数,则
(11)
若C为奇数,即C=2k+1,k为整数,则
(12)
由(11)、 (12)式看到,浮点格式数的开平方可以转换为尾数的开平方,而规格化的尾数的变化范围为0.5~1.0,大大缩小了变化范围,减小了初值选择的困难。因0.5≤M≤1.0,则
本文关键字:暂无联系方式电工文摘,电工技术 - 电工文摘