APP下载

基于改进旋转门算法的船舶综合电力数据压缩技术分析

2020-06-03商承亚鲍先强付立军朱琬璐徐兴华

中国舰船研究 2020年1期
关键词:压缩比数据量直流

商承亚,鲍先强,付立军,朱琬璐,徐兴华

海军工程大学 船舶综合电力技术重点实验室,湖北 武汉 430033

0 引 言

船舶综合电力系统(Integrated Power System,IPS)由发电、输变电、配电、推进、储能和能量管理6 个子系统组成,其将传统船舶中相互独立的动力和电力两大系统合二为一,以电能的形式统一为推进负载、脉冲负载、通信、导航和日用设备等供电,实现了全舰能源的综合利用[1-3],符合船舶信息化和智能化的发展趋势,代表着船舶动力系统未来的发展方向[4]。

随着IPS 规模的日益扩大,规模化的量测装置持续生成大量数据[5],如果将这些数据直接进行存储,不仅会大量浪费存储空间,而且还会使数据查询和传输变得困难[6-7]。传统的关系型数据存储方案[8]因其横向扩展的限制,难以处理来自不同分系统的海量数据,近年来流行的非关系型NoSQL 数据库存储方案[5,9-10]虽然在一定程度上缓和了海量数据存储的压力,但针对IPS 海量历史数据的存储方案还是不太成熟,特别是面对IPS 中日益增长的数据规模,亟需高效的数据压缩技术予以支撑。

在海量实时数据应用背景下,无损压缩技术因其压缩比的限制并不能很好地解决数据的存储问题,有损压缩中的信号变换方法虽然通过存储少量系数可以实现数据的高效压缩保真[11],但多种舰船业务中小波基的选取大大增加了该方法的使用难度,而分段线性方法中的旋转门算法则因算法简单、压缩参数便于调整而得到了广泛应用。

本文拟针对IPS 业务的数据特性,在分析旋转门趋势(Swinging Door Trending,SDT)压缩算法的基础上,提出一种压缩偏差∆E与船舶业务相适应的数据压缩算法,并根据不同的船舶业务需求,通过误差反馈动态调整压缩偏差∆E,以实现对IPS 历史数据的高效压缩存储。同时,基于Simulink 平台模拟数据序列,然后通过测试评估验证改进算法的压缩性能。

1 IPS 数据及SDT 算法

1.1 IPS 数据

以IPS 中压直流区域配电装置(图1)为例进行分析。该系统包括左、右舷700 V 直流母线、4 MW DC/DC 变流器以及4 个配电分区。左、右舷各配置有2 台4 MW 的DC/DC 变流器,每个配电分区包括2 台1 MW DC/AC 逆变器,另外,还包含中压直流整流电源、水电组负载、可调电抗器等陪试设备[12]。在系统运行过程中,需要对重要的电气参数数据进行采集监测,如交流配电网络中各节点的有功功率、无功功率、部分节点电压、直流配电网络中的电压电流,以及各类负载的温、湿度[13],系统量测的物理量较多,随着时间的推移,不断产生的量测值将使数据规模越来越大。

图 1 IPS 中压直流区域配电网络拓扑图Fig. 1 Medium voltage DC zonal electric distribution network topology of IPS

高度的信息化使IPS 数据呈现出规模大、类型多、更新速度快的特点,给长期历史数据存储带来了极大的压力,但在系统运行过程中,电气参数在暂态变化过程后较为稳定,数据量测值临近度高,可以在数据持久化存储之前进行相应的压缩处理来提高数据存储效率。

1.2 SDT 算法

SDT 算法是一种采用直线对过程数据进行拟合的算法,对于数据样本,其通过规定最大允许误差,可以找出尽可能最长的直线趋势,这对缓慢变化的数据来说能够提供较好的压缩和恢复性能[14-15]。

SDT 算法原理[7,16-17]如下:以图2 为例,横坐标T0~T5为采集数据点的时间坐标,纵坐标为采集数据点的数据值,设∆E为压缩偏差,以数据点Y0为起始点,以距离数据点Y0为∆E的上、下两点作为支点,建立两扇虚拟的门,当只有一个数据时门闭合,随着数据点的增加,门会旋转打开,门的长度也可延伸,且一旦打开就不能再闭合;只要两扇门的内角之和小于180°,旋转操作就可以继续,当两扇门的内角之和大于180°时,就停止操作,然后存储前一数据点,并由该点开始新一段压缩。因此在图2 中,存储点为Y0,Y3,Y4。

SDT 算法的压缩偏差∆E决定了两扇门达到平行时所能容纳的精度范围,其对算法的压缩性能影响较大。压缩偏差∆E越大,舍弃的原数据点越多,压缩存储的数据量就越少,算法的数据压缩效果也就越好;反之,压缩偏差∆E设置得越小,压缩存储的数据量就越大,算法的数据压缩效果也就越差。

图 2 旋转门算法压缩原理Fig. 2 Swinging door algorithm compression principle

IPS 不同分系统的数据特性不同,多种业务软件的数据处理需求不同,因此数据压缩过程中所需要设置的∆E也不同,而数据压缩时∆E值是预先设定的,通常需要经过长时间的积累和经验才能确定合适的值,这与IPS 的多种业务软件需求相矛盾。另外,SDT 算法在提供高压缩比的同时忽略了数据精度对于数据压缩的重要性,如果只追求数据的高压缩比,会在数据压缩过程中舍弃较多的原数据,易造成数据解压缩之后的失真,这对于业务应用来说很重要,因为失真的数据不能真实反映系统运行状态,可能会导致错误的控制指令,如断路器的错误开断、发电机的错误解列,这些错误指令会给整个IPS 的运行带来很大的不稳定因素。因此,在IPS 数据压缩存储过程中,压缩算法在保证数据压缩精度的前提下根据业务性能对压缩偏差∆E进行动态调整就显得很有必要。

2 改进的SDT 算法

2.1 数据压缩算法的评价指标

数据压缩算法的评价指标通常采用数据压缩比和数据的解压缩误差来表示。设一组数据为y1~yn,压缩之后数据的个数为m(m≤n),解压缩后的数据为,那么描述数据压缩性能的压缩比CR、均方误差MSE、均方根误差RMSE和平均绝对误差MAE分别如下所示:

压缩比CR用于衡量压缩算法对一组数据的压缩能力,压缩比越大,算法的压缩效果越好,其通常是作为较为硬性的压缩效果评价指标;上面的3 种解压缩误差都不同程度地反映了一组数据的失真程度,即数据解压缩之后的数据准确度,它们的计算值越小,表明原数据与解压缩值之间的误差越小,算法的压缩精度越高,其中平均绝对误差MAE的计算最简单,计算量也最小。在数据规模越来越大的背景下,本文选择计算量较小的MAE作为数据压缩评价指标,在反映数据压缩性能的前提下,可以节省一定的计算开销。

2.2 算法概述

针对合适的压缩偏差∆E难以确定的问题,本文将数据真实值与数据解压缩值之间的平均绝对误差MAE作为数据压缩算法的重要评价指标,并根据实际压缩误差与期望压缩误差之间的偏差动态调整数据压缩偏差∆E,调整之后,再次对压缩数据进行压缩。通过不断的迭代,使数据压缩的实际性能符合预期,从而降低数据存储量。

本文将基于自动控制系统模型,将数据真实值与解压缩值(预测值)之间的期望误差δ作为系统输入,实际平均绝对误差MAE作为系统的输出,两者之间的差值ε作为反馈量,通过负反馈作用于控制器来调整压缩偏差∆E。在改进的压缩算法中,参数∆E不需要设定为固定值,只需要给出大致的上、下阈值,就可以根据实际的压缩情况进行动态调整。

2.3 算法步骤

假设Emax和Emin分别为压缩偏差∆E的上、下阈值,D为压缩偏差的调整参数,τ为数据解压缩实际误差与期望误差之间的偏差容差,y1~yn为一组待压缩的数据值,算法步骤如下:

1) 在对当前的数据点y1~yn进行数据压缩之前,首先进行压缩参数的初始化。Emax和Emin可以自行设定,D和τ作为自动控制系统模型参数需要提前设定,本算法拟设Emax=0.6,Emin=0.1,∆E=(Emax+Emin) /2,D=(Emax−Emin) /10,τ=0.2。

2) 设T为压缩算法所允许的最大时间间隔,从待压缩数据中取出一点yi(1≤i≤n),若该点与上一存储点的时间间隔大于等于T,则将前一个数据点yi-1直接存储,不需要进行旋转门分析,否则,进行下一步骤的旋转门压缩。

3) 计算数据点yi处旋转门两扇门的斜率kup和kdown,如果两扇门之间已经平行,或者说kup≥kdown,则将前一数据点yi-1进行存储,并将其作为新的压缩起始点,否则,该数据点yi将被舍弃。

4) 检验数据是否压缩完毕,若压缩完毕,进行下一步的操作,否则,返回第2)步,对下一数据点yi+1进行相同的压缩操作。

5) 数据压缩完毕后,通过解压缩算法对数据进行恢复,解压缩之后的数据为,由此可以计算出数据真实值与解压缩值之间的平均绝对误差MAE,经与期望误差δ作差,得到两者之间的差值ε。

6) 根据差值ε情况,对压缩偏差∆E做出动态调整:

(1) 当0≤ε<δ·τ时,说明数据偏差ε在可容许的误差范围内,∆E选取比较合适,不需要做出调整;

(2) 当ε≥δ·τ时,说明数据偏差ε偏大,所计算获得的平均压缩误差MAE偏小,∆E偏小,存储了较多原始数据,应在Emax范围内适当扩大∆E,

(3) 当−δ·τ<ε<0 时,说明数据偏差ε偏小,计算获得的平均压缩误差MAE偏大,∆E偏大,舍弃了较多的原始数据,应在Emin范围内适当减小∆E,

当ε不属于以上情况时,说明解压缩之后的数据已经严重失真,应直接返回第1)步,对初始参数进行重新设置,然后再进行数据压缩处理。

7) 对压缩偏差∆E进行动态调整后,返回第2)步用新的∆E进行数据压缩处理,通过不断迭代直至偏差ε在误差容许范围内,从而完成数据压缩。改进算法的具体流程如图3 所示。

2.4 数据解压缩原理

对改进SDT 压缩算法的数据进行数据解压缩时,通常采用线性插值法,由存储的数据点之间的两点连线来表示两点之间任意时刻的解压值。假设y0,yk为连续存储的2 个数据点,t0,tk为其所对应的时间,则它们之间任意时刻ti所对应的解压缩值y˜i都可以用公式(7)来表示。

3 性能测试

3.1 测试环境及负载生成

图 3 改进SDT 算法流程图Fig. 3 Improved SDT algorithm flow chart

测试平台采用X86 架构,平台的核心配置参数如下:CPU 为i5@3.4 GHz,ARM 为8 GB,算法的实现以及测试程序均基于C-Free 开发环境,在Win7(64 位)操作系统下展开测试。测试程序通过加载Simulink 模块模拟生成具有IPS 数据特点的数据序列文件,实现对模拟IPS 数据的压缩,并存储在相应的文件中。

IPS 运行时,所需要监测的电气量主要分为具有振荡特性的交流信号、稳定的直流信号和激变的脉冲信号3 种,例如发电机侧与低压网络中的交流参数、中压直流区域配电网络中的各种直流参数、温度参数和高能武器系统中的脉冲参数,这些电气参数的暂态变化过程可以由振荡信号、直流信号和激变信号叠加而成。因此,测试负载的生成即是在提取IPS 数据特点的基础上,在Simulink 中分别模拟生成系统运行时的数据文件,以进行压缩算法的性能测试。

3.2 振荡信号的处理测试

对于具有振荡特性的交流信号的生成,在Simulink 模块中选取正弦信号波发生器sine wave,模拟产生y=Asin(ωx+ϕ)形 式的数据文件sin.mat并加载到Matlab 软件中生成txt 文本文件,然后通过改进的SDT 算法进行数据压缩处理测试。

设A=100,ω=2,φ=0°,为保证数据压缩精度,本算法设置τ=0.2,δ=0.2,Emin=0.1,Emax=0.6,T=10Tf(Tf为采样周期),对采集的数据序列进行压缩处理并存储到out.txt文件中,然后通过解压缩算法将数据恢复至src.txt文件中。

为能直观地看出压缩效果,先选取数据量小(n=300)的数据序列,将原数据序列、压缩存储数据与解压缩数据在Matlab 软件中绘出并进行对比,结果如图4(a)所示。

保持改进SDT 算法的参数设置不变,对不同幅值、不同频率的振荡数据序列进行压缩处理。通过Simulink 平台模拟产生3 种振荡数据序列y=100sin2x,y=200sin2x和y=100sin3x,在期望误差δ=0.2 的情况下,原数据解压缩值的精度得到了保证,随着数据量的增加,算法的压缩效果如图4(b)和图4(c)所示。

由图4(b)可以看出,改进的SDT 算法对不同的振荡数据序列均有着很好的压缩效果,随着被压缩数据幅值、采集频率的增大,数据压缩效果有所下降。由图4(c)可以看出,算法的压缩效果随着数据量的增大变化不大,较为稳定。另外,在数据的压缩过程中,在期望误差δ和压缩偏差上、下限确定的情况下,随着幅值、采集频率的增大,算法的迭代次数,即∆E的调整次数也会逐渐增加,但整个过程都是自动进行的动态调整。

图 4 振荡数据序列的数据压缩Fig. 4 The data compression of oscillation data sequence

3.3 直流信号的处理测试

对于IPS 稳定运行过程中直流信号的生成,可在Simulink 模块中选用脉冲发生器Pulse Generator,通过调节占空比和信号周期模拟生成的y=A形式数据文件constant.mat,将数据转为txt 格式存储后,再通过压缩算法来进行直流信号的压缩性能测试。

设A=100,对于直流信号的压缩,期望误差的取值可以稍大一些以提高压缩比。本算法设置τ=0.2,δ=0.5,Emin=0.1,Emax=0.6,T=10Tf,将采集的数据序列进行压缩处理并存储到out.txt 文件中,然后再通过解压缩算法将数据恢复至src.txt文件。

为了直观地看出压缩效果,先选取数据量小(n=300)的数据序列,将原数据序列、压缩存储数据与解压缩数据在Matlab 软件中绘出并进行对比,结果如图5(a)所示。图中,红色的点为压缩存储点。

保持改进SDT 算法的参数设置不变,对稳定的直流数据序列进行压缩处理,在期望误差δ=0.5 的情况下,随着数据量的增加,算法的压缩效果如图5(b)所示。

由图5(b)可以看出,改进的SDT 算法对于稳定的直流数据序列有着良好的数据压缩效果,且压缩效果随着数据量的增大变化不大。另外,此时的数据压缩比CR受最大时间间隔T的影响较大,当T固定后,压缩比CR也会固定,考虑到数据解压缩是通过线性插值方法实现的,所以此时的解压缩数据与原数据之间的实际误差为0。

3.4 脉冲信号的处理测试

对具有激变特性的脉冲信号的生成,可在Simulink 模块中选用脉冲发生器Pulse Generator,通过调节占空比和幅值模拟生成的数据文件pulse.mat,在将数据加载到Matlab 软件中转为txt 格式后,通过改进的SDT 算法进行脉冲信号的压缩性能测试。设Pulse Generator 发生器的信号幅值为100,占空比为5%,对脉冲信号的压缩,可将压缩偏差的上、下限稍作改动以提高压缩比。本算法设置τ=0.2,δ=0.5,Emin=0.1,Emax=0.6,T=10Tf,对采集的数据序列进行压缩处理并存储到out.txt文件中,然后通过解压缩算法将数据恢复至src.txt文件。

为了直观地看出压缩效果,先选取数据量小(n=300)的数据序列,将原数据序列、压缩存储数据与解压缩数据在Matlab 软件中绘出并进行对比,结果如图5(c)所示。

图 5 直流/脉冲数据序列数据压缩Fig. 5 The data compression of DC/pulse data sequence

保持改进SDT 算法的参数设置不变,对激变的脉冲数据序列进行压缩处理,在期望误差δ=0.5 的情况下,随着数据量的增加,算法的压缩效果如图5(d)所示。

由图5(d)可以看出,改进的SDT 算法对激变的脉冲数据序列有着良好的压缩效果,其在保证解压缩数据精度的前提下能够实现较大的压缩比,且随着数据量的增大,算法的压缩性能也较为稳定。另外,由图中还可以看出,最大的时间间隔T对脉冲数据序列的压缩影响较大,而当参数T设定后,其对于脉冲数据序列的压缩性能便基本不变了。

4 结 论

随着IPS 的发展,传统的数据存储方法存在着占用资源过多,已有的压缩算法存在着忽视压缩精度、多种业务下压缩偏差难以确定等问题。本文基于SDT 算法提出了其改进算法,优势如下:

1) 能根据系统数据特性保证数据的压缩精度在期望范围内,满足IPS 业务需求;

2) 能在保证精度的同时动态调整压缩偏差,通过平均绝对误差反馈不断迭代获得较高的压缩比,简化压缩偏差的设置步骤。

文章基于Simulink 模拟产生了具有系统数据特性的数据序列并对算法性能进行了测试,结果证明对于模拟的数据序列,改进的SDT 算法具有较好的压缩效果。可见,采用改进的SDT 算法可以提高IPS 的数据压缩效率,对于数据驱动的船舶智能化具有重要意义。

猜你喜欢

压缩比数据量直流
基于强化学习的直流蒸汽发生器控制策略研究
基于附加直流的选择性低压漏电保护实现方法
“宁电入湘”直流工程再提速
高压缩比射流点火天然气发动机燃烧及排放特性
基于大数据量的初至层析成像算法优化
VC-Turbo超变擎300
高刷新率不容易显示器需求与接口标准带宽
可变压缩比技术在车用发动机上的应用浅析(一)
直流屏直流正极接地故障分析
电力营销数据分析中的数据集成技术研究