当前位置:文档之家› 结合支持向量机的卡尔曼预测算法在VRLA蓄电池状态监测中的应用

结合支持向量机的卡尔曼预测算法在VRLA蓄电池状态监测中的应用

结合支持向量机的卡尔曼预测算法在VRLA蓄电池状态监测中的应用
结合支持向量机的卡尔曼预测算法在VRLA蓄电池状态监测中的应用

2011年11月电工技术学报Vol.26 No. 11 第26卷第11期TRANSACTIONS OF CHINA ELECTROTECHNICAL SOCIETY Nov. 2011

结合支持向量机的卡尔曼预测算法

在VRLA蓄电池状态监测中的应用

李昌1罗国阳2

(1. 温州大学物理与电子信息工程学院温州 325025

2. 浙江正泰电器股份有限公司乐清 325603)

摘要阀控式铅酸蓄电池在性能劣化时的系统状态模型是难以准确获知的,针对这一问题,在建立了蓄电池等效电路模型及其线性系统状态空间描述基础上,导出了一种适用于蓄电池性能劣化时的非线性求解方法,进而提出了一种结合支持向量机的卡尔曼预测算法。利用支持向量机迭代修正卡尔曼预测过程中的新息误差,使得卡尔曼预测算法具备了对蓄电池劣化时的状态方程修正功能。实验结果表明,该算法能准确预测蓄电池的实时剩余容量,辨识出蓄电池健康状态的非线性劣化趋势。

关键词:支持向量机卡尔曼预测SVM-KF SOC SOH

中图分类号:TM912

Application of Kalman Prediction Algorithm Combined

with SVM in Monitoring States of VRLA Battery

Li Chang1 Luo GuoYang2

(1. Wenzhou University Wenzhou 325025 China

2. Zhejiang CHINT Electrics Co., Ltd. Yueqing 325603 China)

Abstract It is difficult to obtain the accurate system state model of a valve-regulated lead acid (VRLA) battery with performance degradation. In order to solve this problem, firstly, using the equivalent circuit model of a VRLA battery and linear dynamic state-space mode, a non-linear mode well suited for the deteriorative battery is deduced. Furthermore, based on the deduced non-liner mode,

a Kalman prediction algorithm combined with support vector machine (SVM) method (SVM-KF) is

proposed. In the proposed approach, SVM is employed to iterative correct information error during Kalman prediction, so the prediction algorithm is provided with correction ability while a battery is in the degradation. All the obtained results show that the proposed algorithm can accurately predict the remaining capability of the battery and identify the nonlinear deterioration tendency of the battery.

Keywords:Support vector machine, Kalman prediction, SVM-KF, SOC, SOH

1引言

由于阀控式铅酸蓄电池(Valve-Regulated Lead Acid Battery, VRLA)免维护、大容量、低成本等特点已广泛应用于通信电源、UPS系统、电力直流屏、混合动力汽车等生产生活的诸多领域。由于VRLA 蓄电池的充放电过程并非是一个完全可逆的电化学过程,总的充放电次数是有限的,因此,蓄电池性能状态的维护与监控直接关系到整个系统的运行性能。通常,VRLA蓄电池的充放电能力可由蓄电池健康状态(State of Health, SOH)来衡量[1]:

A

N

SOH

Q

Q

=(1)式中,Q N与Q A分别是新旧蓄电池充电后的最大放

收稿日期 2011-03-17 改稿日期 2011-08-11

第26卷第11期 李 昌等 结合支持向量机的卡尔曼预测算法在VRLA 蓄电池状态监测中的应用 169

电量。显然,在蓄电池使用的初期,SOH 接近于1,随着充放电次数的增加,SOH 逐步减小。在工业应用过程中应该及时更替SOH 过小的蓄电池,以免引起更大的蓄电池组供电系统故障。因此,估计蓄电池的SOH 值已逐渐成为蓄电池监控系统的研究热点。

另一方面,精确估计蓄电池实时剩余容量对于提高蓄电池监测系统的效率有着重要意义[2]。当前的容量预测技术主要有两类:一类是基于蓄电池内部工作原理,找到蓄电池外部参数与容量之间的关系,这需要清晰的阀控式铅酸蓄电池电化学机理作为基础,考虑到各个产家提供的蓄电池内部电化学材料不尽相同,使得这一方法几乎很难适应于不同品牌的蓄电池;另一类则是基于系统辨识与参数估计建模的方法,这类方法通常把VRLA 蓄电池视为一个黑箱来处理,通过卡尔曼预测、神经网络、模糊算法等信号处理方法以实现蓄电池剩余容量的预报,这类结合了智能算法的处理方法已逐步成为解决这一问题的研究新趋势[3]。为解决式(1)中蓄电池最大放电量Q 的测量问题,学者引入了蓄电池荷电状态(State of Charge ,SOC )这一电池性能参量,其定义如下:

00

()d SOC()SOC()100%t

t

I t t Q ττη

=+×∫ (2)

式中,0SOC()t 是荷电状态的初始值;Q 0则是蓄电池的额定容量;η 为蓄电池库仑效率,介于[0,1]之间;另外电流I 在充电时为正,放电时则为负。

式(2)表明,通过对电池电流进行积分估计SOC 是可行的。但是应用这一方法也存在如下两个问题:①荷电状态的初始值0SOC()t 是很难在线估计的,尤其是在蓄电池性能劣化的情况下;②一旦瞬时放电电流值波动较大时,积分计算误差也是不可忽略的。

研究结果表明,VRLA 蓄电池开路电压V o 与蓄电池荷电状态SOC()t 满足一定的线性关系[4]

o 10SOC()V t αα=+ (3)

因此,通过测量电池开路电压可以估计出电池的SOC ,进而测算出电池的SOH ,但是蓄电池的开路电压很难在线测量得到[5]。要解决这一问题,引入了系统辨识的方法,通过测量其他电路参数来实现。

在随后的篇幅中,提出了一种在线预测蓄电池

剩余容量及电池劣化故障的诊断模型,该模型建立在利用卡尔曼预测方法对蓄电池经典电化学模型进行典型变量分析子空间建模的基础上,把支持向量机(Support Vector Machine, SVM )方法引入到电池劣化故障初期的数据分析过程中,可有效解决劣化过程引入的非线性近似问题,然后将典型变量分析子空间模型的卡尔曼预测与SVM 新息预测相结合预测出因蓄电池故障过程初期的非线性劣化趋势,在提高蓄电池容量预测准确率的基础上,实现对蓄电池健康状况的辨识。

2 VRLA 蓄电池等效模型与卡尔曼预测

随着VRLA 蓄电池的使用时间不断增加,电池内部变化加剧,如极板硫酸化、电解液密度下降等现象,一般设备无法检测到蓄电池内部的变化,只能通过检测蓄电池的外部数据,如电压、电流、温度、内阻等参量间接辨识蓄电池的健康状况。依据蓄电池内部电化学反应程度与外部观测量之间的定性关系,建立一个利用状态变量方程组描述的VRLA 蓄电池动态系统模型将有助于电池剩余容量的精确预测,这一动态模型也将是辨识蓄电池劣化故障这一非线性过程的模型基础。 2.1 蓄电池等效模型

目前,常用的电池模型有热力学模型、耦合模型、电化学模型和性能模型这四种,前三种模型的建立需对电池的电化学机理有很深刻的研究,且相对复杂,考虑因素很多,无法实际适用于蓄电池的在线监控中。相对而言,电池性能模型仅仅通过某种关系描述电池工作时的外特性,简单易用、结构多样,能普遍适用于VRLA 蓄电池的在线监控管理[6-7]。

本文所采用电池的性能模型利用的是一种低阶等效电路模型,即把蓄电池的电容归结为两部分:储能电容与分布电容。前者主要决定了蓄电池的存储电荷能力,后者则是综合考虑了各种分布寄生电容的影响。图1是这一模型的等效电路图,为方便讨论起见,暂不考虑蓄电池劣化因素造成的模型误差。V o 为电池的开路输出电压,电池的储能电容及电池内部两极板间的分布电容分别用C b 与C s 表示。另外R t 表示电池欧姆内阻,R s 为蓄电池内部极化分布电阻,该电阻与电池内部离子浓度及极板电流密度有关,R e 为电池主体内阻,可用以模拟电池的自放电特性。电池储能电容与分布电容上的电压分别用V b 与V s 表示。

170

电 工 技 术 学 报 2011年11月

图1 蓄电池等效电路图

Fig.1 Equivalent circuit of a VRLA battery

假设I b 、I s 与I 分别表示两个支路与主电路上流过的电流,由此可得状态方程式为(证明见附录)

b b e s

b e s b s s s e s s e s o o 3,13,311

d 0()

()d d 110d ()()

d 0

d V C R R C R R t V V V t C R R C R R V V A A t ?????

??

??++?

??????

?????=?

+??????++????????????????

?

??

?

s b e

s e s e s 3,1()()R C R R R I C R R B ????

+??????+????

????

(4)

式中

2

s s

3,12

2

b e e s s e s s

e

b e s s e s ()()()()R R A C R R R C R R R R C R R C R R =?

+

+

+++++

s 3,3b e e s s e s 1

()()

R A C R R R C R R =?

++ 2s s t

3,12

b e e s s e s 2

s e s s e s ()

()()()t e s

R R R B C R R R C R R R R R C R R C R R =

?

+

+++

++

至此,可得蓄电池充放电过程的状态方程,简记为

b b s s o o d d d d d d V t V V V I t V V t ????

????

????

=+???????????????

?

A B (5)

要使观测方程输出仅仅是变量V o ,令C = (0 0 1),可方便地得到相应的模型状态输出方程。 状态方程 d ()()()()d t t t t t

=++x Ax Bu w (6) 测量方程

()()()t t t =+y Cx v (7)

式中,w (t ) 是零均值的系统噪声;v (t ) 是零均值的

测量噪声。

2.2 卡尔曼预测在劣化电池状态预报中存在的问题

卡尔曼预测方法是由一系列数学公式递归描述,它提供了一种高效的计算方法来估计过程的状态,并使估计均方误差最小[8]。依据信号状态空间模型,利用前一时刻的估计值与现时刻的观测值来更新对状态变量的估计,求出现在时刻的估计值是卡尔曼预测算法的基本思想。

首先,将式(6)与式(7)所示的模型离散化处理,得到等效差分方程为

(1)()()()

(1)(1)()

k k k k k k k +=++??

+=++?x Ax Bu w y Cx v (8) 式中,()~(0,)k N Q w 与()~(0,)k N R v 。

由于蓄电池系统充放电过程属于不完全可逆的电化学反应过程,随着电池充放电次数的不断增加,蓄电池内部电化学因素的变化导致蓄电池性能出现劣化趋势,这属于一种不可预知的系统故障。通常蓄电池性能劣化是一个缓变的过程,即劣化发生后,

过程按一定的趋势轨迹缓慢变化到达一个新的稳定

状态。

考虑到蓄电池性能劣化对系统的影响,必须对式(8)进行非线性修正,才能真正符合蓄电池性能的实际变化情况。假设劣化时的非线性系统模型为

(1)((),(),())

(1)((),())k f k k k k h k k δ+=??

+=?

x x u y x u (9) 式中,()k δ为蓄电池劣化引起的模型故障,正常情况下()0k δ=。将上式在M ()k x 附近展开,得

(1)()()()

(1)(1)()k A k B k k k C k k αβ+=++??

+=++?

x x u y x (10) 式中,α(k ) 表示状态方程中的劣化故障项和近似展

开过程的高次项,()k β则表示输出方程中的劣化故障项与高次项。根据式(10),对模型进行基本卡尔曼预测处理 1//T

1//T T 111/1/1/1

1/111/1/111/??()???()()k k k k k k k k k k k k k k k k k k k k k k k k k k k

y ++?+++++++++++++=+??=+??=+??=+???=??x Ax Bu P AP A Q

K P C CP C R x x K Cx P I K C P (11)

第26卷第11期 李 昌等 结合支持向量机的卡尔曼预测算法在VRLA 蓄电池状态监测中的应用 171

式中,由于预测新息()k ε=11/?k k k y ++?Cx

与()k β相关,在多步预测算法中,考虑到未来时刻的输出是未知的,基本卡尔曼预测将失去修正功能退化为基本的迭代,因此必须对卡尔曼预报方法进行适当的处理,以适应蓄电池的劣化过程引起的系统模型的非线性变化。

3 基于SVM 新息的卡尔曼预测

针对蓄电池劣化过程采用基本卡尔曼预测中所存在的问题,提出一种基于SVM 模型的卡尔曼预测方法,利用SVM 时间序列预测的新息值作为未来时刻的卡尔曼预测新息,使得卡尔曼预测方法具备了针对蓄电池劣化故障的状态方程修正功能。 3.1 基于SVM 的时间序列预测

支持向量机是统计学习理论的重要组成部分,它主要采用支持向量分类(Support Vector Classifer ,

SVC )算法和支持向量回归(Support Vector Regression ,SVR )算法[9-10]。SVR 又可细分为线性回归和非线性回归,非线性回归提供了一种独立于维数的控制模型复杂性的方法,利用定义在特征空间的惩罚超平面作为决策面,使得模型的复杂性问

题在高维空间中得到解决。

SVM 有效克服神经网络的过学习和维数灾问题。算法不但能解决小样本、高维数、局部最优等实际难题,同时具备了很强泛化能力。

利用支持向量机进行时间序列预测的关键是拟合出测量变量的时序关系,将过去时刻测量值构成的矢量()k x =((),(1,,(1)))x k x k x k p ??+L 作为输入,未来时刻的测量值(1)x k +作为输出,基于SVR 建 立了(1)x k + 关于()k x 的时序映射关系:p f R R →,

p 为平滑因子[9]。为了更有效的拟合蓄电池劣化过程,本文在选择输入函数时把交流法测出的蓄电池内阻、浮充电压及实时温度这些影响蓄电池SOH 的因素逐一作为SVM 的输入,进一步提高了算法的有效性。根据n 个测量数据构造支持向量机输入输出学习样本

X =()(1)(1)p p n ????+?????????x x x M =()

(1)(1)(1)()(2)(1)(2)()x p x p x x p x p x x n x n x n p ???

?

?+??

??

?

?

?????

L L M M M L Y =(1)(2)()p p n +????+????????

x x x M 通过在线训练求解后得到非线性预测函数

()((1))

x k f x k =?

1

*()((),(1))n i i i p

a a K x i x k b

?==

??+∑

(12)

式中,αi 为Lagrange 乘子;*i a 为其最优解;

((),(1))K i k ?x x 为核函数;b 为偏置。

根据式(10)所示的预测函数计算单步预测值

?(1)(())x

k f k +=x 1

*()((),())n i i i p

a a K x i x k

b ?==

?+∑ (13)

将预测值?(1)x

k +作为下一步预测的已知条件,构造输入矢量

?(1)((1),(),(1),,(2))k x

k x k x k x k p +=+??+x L 然后,套用式(13)可得未来2步的预报值?(2)x

k +,后续数据量的获取过程可依次类推。

3.2 基于SVM 新息更新的SOC 预测与蓄电池劣化

卡尔曼预测

基于SVM 新息更新的卡尔曼检测用于蓄电池

SOC 预测及劣化趋势预报的基本思路是:首先利用前期测量过程所得的数据建立新息的SVM 时序模型,然后将卡尔曼预测与SVM 新息预测相结合,在得到蓄电池剩余容量SOC 的同时,

辨识出非线性劣化趋势。系统的预测过程可分为如下两个主要步骤。

(1)预测:根据蓄电池状态空间模型预测出未来时刻的状态和输出

**

*11/??(1)()()

?(1)(1)?(1)k k k k k k y

k k k y ε++?+=+??+=+??+=???

x Ax Bu Cx Cx (14) 然后利用式(14)所表示的SVM 时间序列模型预测未来时刻的新息

(1)((),(1),,(1))k f k k k p εεεε+=??+%L (15)

(2)修正:利用新息修正输出和状态

**

*

??(1)(1)(1)??(1)(1)(1)

k k k k k K k εε?+=+++??+=+++??y

y x x %% (16) 通过式(15)所得SVM 时间序列预测的新息

值(1)k ε

+% 作为未来时刻的卡尔曼预测新息,使得卡尔曼预测具备了模型劣化修正功能。

172

电 工 技 术 学 报 2011年11月

4 模型应用与实验结果分析

本算法是在蓄电池专家诊断模型基础上进行的,该专家系统结合了电压、电流采集、内阻在线测试等蓄电池监控手段,可实现对蓄电池的全面监护。专家系统的监护模块适用于通信机房、移动基站及变电站等需要对蓄电池组进行监控维护的场所。验证本算法的数据值均取自于该蓄电池专家诊断模型的数据库,将本文所提的算法嵌入后台管理计算系统中,可进行数据测量。在模型测试实验中,采用式(1)所示的蓄电池健康状态(SOH )来衡量蓄电池的劣化程度[4]

,实验测量数据表明,当SOH 的值低于某阈值时,蓄电池基本处于失效状态,该阈值因蓄电池的品牌、容量而不同。本次实验测量对象选取了具有不同SOH 值的4个LSE 系列GFM —

200E 型蓄电池(实测值为100%、72%、 67%、53%),在25℃恒温条件下,对电池分别进行恒压限流(0.1C 10电流,限压2.25V )充放电实验。

记蓄电池荷电量数值0

0()d t

t

Q I Q ττ=+∫,将式

(2)代入式(3)中,可得

o 10V K Q K =+ (17)

式中,K 1与K 0均为未知常数,记录下不同劣化状态的4组蓄电池在充电过程用SVM-KF 算法估计所得V o 值与Q 值,可得到如图2所示的蓄电池荷电量数值Q 与V o 的近似关系,

实验结果验证了式(17)所示的线线关系,所得曲线表明该线段的斜率与电池寿命状态SOH 直接相关,

显然斜率越小所对应的蓄电池健康状态越差,这为利用V o 估计SOH 及SOC 提供了方便。

图2 不同SOH 的蓄电池充电过程V o 与Q 值卡尔曼

估计对比关系图

Fig.2 Estimated relationgship between V o and Q with

different SOH through SVM-KF method

利用本文提出的SVM-KF 估计算法对蓄电池长期工作数据记录的分析处理,得到了这4组蓄电池的

SOH 的估计值,结果如表所示,估计跟踪曲线见图4。

表 电池SOH 值的卡尔曼SVM 估计结果 Tab. Results of SVM-KF estimation for battery’s SOH

序号

实测SOH 值(%)

充电阶段估计值

(%)

放电阶段估计值

(%)

1 100 98.1 97

2 86 85.2 84.

3 3 7

4 75.8 72.3 4 53

52.3

51.6

表与图4表明,在充电或放电过程中,SVM-KF 估计所得SOH 值能较精确地收敛到实际值。以表中第3组蓄电池的充、

放电过程为例,记录下SVM-KF 算法动态跟踪结果来说明本方法的实际效果,测试结果如图3所示。

图3 充/放电过程蓄电池SOH 与SOC 的卡尔曼估计 Fig.3 Estimation of the SOH and SOC of a VRLA battery

during charging and discharging processes

首先,利用安时放电法实测出蓄电池的SOC 值作为真实参考值,根据式(1)测算出该蓄电池的实际值为74%,

然后利用SVM-KF 算法动态跟踪处理蓄电池充、放电历史记录数据,跟踪画出算法估计所得SOC 与SOH 动态变化曲线,对比充、放电动态曲线可以发现,充电时SOH 估计值收敛于75.8%,放电时SOH 估计值收敛于72.3%,2%以内的预测误差精度表明该算法是可有效应用于电源系统的蓄电池劣化过程辨识的;由于卡尔曼预测算法的初始

化过程,放电测试结果表明,在放电初始阶段利用本方法所得SOC 估计值存在较大的误差,

但是利用持续跟踪过程后期出现的线性部分数据,估计值是能精确近似真实值的。其他不同SOH 的蓄电池充放电过程的算法跟踪结果如图4所示。

第26卷第11期李昌等结合支持向量机的卡尔曼预测算法在VRLA蓄电池状态监测中的应用

173

图4 SOH值分别为100%, 86%, 74%与53% 4个蓄电池在充/放电过程中SOH与SOC的卡尔曼估计跟踪图

Fig.4 Estimation of the SOH and SOC of four VRLA batteries for known SOH=100%, 86%, 74% and 53% during charging(left) and discharging(right) 测试结果充分表明了本方法可有效估计处于不同劣化状态下的SOC与SOH值, 利用SVM-KF估计所得SOH用于蓄电池系统中劣化过程实时监控过程是可行的。

5结论

本文将SVM算法应用于卡尔曼预测中的新息

更新过程,导出了VRLA蓄电池的等效电路模型的系统状态方程,在此基础上提出了一种基于SVM 新息更新的卡尔曼预测算法,并将其应用于VRLA 蓄电池容量预测和性能劣化分检过程,解决了阀控式铅酸蓄电池在性能劣化时的系统方程的动态修正问题。这对研制满足实用要求的高精度蓄电池状态监测系统提供了理论参考。如何将这一方法扩展应用到其他新型蓄电池的状态监测过程是一个值得进一步深入研究的问题。

附录

证明:假设I b、I s与I分别表示两个支路与主电路上流过的电流,依据图1,由基尔霍夫电压定律可得

o t b e b

V IR I R V

=++

o t s s s

V IR I R V

=++

根据b s

I I I

=+,可得

b e s s s b

()

I R R IR V V

+=+?

又因为

b

b b

d

d

V

I C

t

=

可得

b b s s

b e s b e s b e s

d

d()()()

V V V IR

t C R R C R R C R R

=?++

+++

(1)类似的可得

s s b s

s e s s e s s e s d

d()()()

V V V IR

t C R R C R R C R R

=?++

+++

(2)由此可得以电压、电流为变量的状态方程

s b

b e s b e s b e s

b

s

s e

s e s s e s s e s

11

d

()()() d

d11

()()

d()

R V

C R R C R R C R R

V

t I

V

V R

C R R C R R

t C R R

????

???

????

??+++

??????

??=+

??????

????

???????

+++

??????

(3)输出电压V o可由下式给出

b

s e e s

o t

s

e s e s e s

V

R R R R

V R I

V

R R R R R R

????

??

=++

????

??

+++

??

????

(4)考虑到采样时间间隔极短,电流大小可基本保持不变,即

d

d

I

t

≈,则有

o s e

b

b e s s e s

d

d()()

V R R

V

t C R R C R R

??

=?++

??

++

??

??

174

电 工 技 术 学 报 2011年11月

c

22b e s s e s ()()s e

R R V C R R C R R ???+?++????

22s e

22b e s s e s ()()R R I C R R C R R ??+??++????

由此可得状态方程式为

b

b e s b e s b s s s e s s e s o o 3,13,3s b e

s e s e

s 3,111d 0()()d 11d 0()()

d d 0d ()()V C R R C R R t V V V C R R C R R t V V A A t

R C R R R I

C R R B ??

???

??

??++?

???????????=?+??????++????????????????

???

?

????

+??????+????

????

其中

2

s s

s

3,12

2

2

b e e s s e s b e s e

2

s e s ()()()()

R R R A C R R R C R R C R R R C R R =?

+

+

+

++++

s 3,3b e e s s e s 1

()()

R A C R R R C R R =?

++

2

s s t t e s

3,1

22

b e e s s e s s e s s e s ()()()()R R R R R R B C R R R C R R C R R C R R =?++

++++ 至此,可得蓄电池充放电过程的状态方程,简记为

b

b s s o o d d d d d d V t V V V I

t V V t

????

????

????=+????

????????????A B

参考文献

[1] Guo W X, Shu D. Study on the structure and property

of lead tellurium alloy as the positive grid of lead- acid batteries[J]. Journal of Alloys and Compounds,

2009, 475(1-2): 102-109.

[2] 桂长清, 柳瑞华. 蓄电池内阻与容量的关系[J]. 通

信电源技术, 2011, 28 (1): 32-34.

Gui Changqing, Liu Ruihua, Relations between internal resistance and capacity for batleries[J]. Telecom Power Technology, 2011, 28 (1): 32-34. [3] Gould C R, Bingham C M, Stone D A. New battery

model and state-of-health determination through subspace parameter estimation and state-observer techniques[J]. IEEE Transactions on Vehicular Technology, 2009, 58(8): 3905-3916.

[4] Kellaway M J, Jennings P, Stone D. Early results

from a systems approach to improving the performance and life-time of lead acid batteries[J]. Journal of Power Sources, 2003, 111(6): 110-117. [5] Coleman M, Lee C K, Hurley W G. State of health

determination: two pulse load test for a VRLA battery[C]. Proceedings of the IEEE Power Electronics Specialists Conference, 2006: 1-6.

[6] Kaiser, Rudi. Optimized battery-management system

to improve storage lifetime in renewable energy systems[J]. Journal of Power Sources, 2007, 168(1):

58-65.

[7] Jossen, Andrea. Fundamentals of battery dynamics[J].

Journal of Power Sources, 2006, 154(2): 530-538.

[8] Xiong K, Zhang H Y, Chan C W. Performance evaluation of UKF-based nonlinear filtering[J]. Automatica, 2006, 42(2): 261-270.

[9] Haykin S. Adaptive filter theory[M]. 4th ed.

Prentice-Hall, Inc., 2002.

[10] Vapnik V. Statistical learning theory[M]. Willey, N Y,

1998.

作者简介

李 昌 男,1974年生,讲师,硕士,主要从事智能信号处理算法与通信系统仿真的研究工作。

罗国阳 男,1973年生,高级工程师,主要从事基于网络控制的动力与环境监控技术的跟踪研究及智能电器设备的设计与优化。

卡尔曼滤波算法总结

Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; } 首先是卡尔曼滤波的5个方程: -=--+(1)先验估计 X k k AX k k Bu k (|1)(1|1)() -=--+(2)协方差矩阵的预测(|1)(1|1)' P k k AP k k A Q

实验2分类预测模型_支持向量机

实验2分类预测模型——支持向量机SVM 一、 实验目的 1. 了解和掌握支持向量机的基本原理。 2. 熟悉一些基本的建模仿真软件(比如SPSS 、Matlab 等)的操作和使用。 3. 通过仿真实验,进一步理解和掌握支持向量机的运行机制,以及其运用的场景,特别是 在分类和预测中的应用。 二、 实验环境 PC 机一台,SPSS 、Matlab 等软件平台。 三、 理论分析 1. SVM 的基本思想 支持向量机(Support Vector Machine, SVM ),是Vapnik 等人根据统计学习理论中结构风险最小化原则提出的。SVM 能够尽量提高学习机的推广能力,即使由有限数据集得到的判别函数,其对独立的测试集仍能够得到较小的误差。此外,支持向量机是一个凸二次优化问题,能够保证找到的极值解就是全局最优解。这希尔特点使支持向量机成为一种优秀的基于机器学习的算法。 SVM 是从线性可分情况下的最优分类面发展而来的,其基本思想可用图1所示的二维情况说明。 图1最优分类面示意图 图1中,空心点和实心点代表两类数据样本,H 为分类线,H1、H2分别为过各类中离分类线最近的数据样本且平行于分类线的直线,他们之间的距离叫做分类间隔(margin )。所谓最优分类线,就是要求分类线不但能将两类正确分开,使训练错误率为0,而且还要使分类间隔最大。前者保证分类风险最小;后者(即:分类间隔最大)使推广性的界中的置信范围最小,从而时真实风险最小。推广到高维空间,最优分类线就成为了最优分类面。 2. 核函数 ω

支持向量机的成功源于两项关键技术:利用SVM 原则设计具有最大间隔的最优分类面;在高维特征空间中设计前述的最有分类面,利用核函数的技巧得到输入空间中的非线性学习算法。其中,第二项技术就是核函数方法,就是当前一个非常活跃的研究领域。核函数方法就是用非线性变换 Φ 将n 维矢量空间中的随机矢量x 映射到高维特征空间,在高维特征空间中设计线性学习算法,若其中各坐标分量间相互作用仅限于内积,则不需要非线性变换 Φ 的具体形式,只要用满足Mercer 条件的核函数替换线性算法中的内积,就能得到原输入空间中对应的非线性算法。 常用的满足Mercer 条件的核函数有多项式函数、径向基函数和Sigmoid 函数等,选用不同的核函数可构造不同的支持向量机。在实践中,核的选择并未导致结果准确率的很大差别。 3. SVM 的两个重要应用:分类与回归 分类和回归是实际应用中比较重要的两类方法。SVM 分类的思想来源于统计学习理论,其基本思想是构造一个超平面作为分类判别平面,使两类数据样本之间的间隔最大。SVM 分类问题可细分为线性可分、近似线性可分及非线性可分三种情况。SVM 训练和分类过程如图2所示。 图2 SVM 训练和分类过程 SVM 回归问题与分类问题有些相似,给定的数据样本集合为 x i ,y i ,…, x n ,y n 。其中, x i x i ∈R,i =1,2,3…n 。与分类问题不同,这里的 y i 可取任意实数。回归问题就是给定一个新的输入样本x ,根据给定的数据样本推断他所对应的输出y 是多少。如图3-1所示,“×”表示给定数据集中的样本点,回归所要寻找的函数 f x 所对应的曲线。同分类器算法的思路一样,回归算法需要定义一个损失函数,该函数可以忽略真实值某个上下范围内的误差,这种类型的函数也就是 ε 不敏感损失函数。变量ξ度量了训练点上误差的代价,在 ε 不敏感区内误差为0。损失函数的解以函数最小化为特征,使用 ε 不敏感损失函数就有这个优势,以确保全局最小解的存在和可靠泛化界的优化。图3-2显示了具有ε 不敏感带的回归函数。 o x y 图3-1 回归问题几何示意图 o x y 图3-2 回归函数的不敏感地

支持向量机数据分类预测

支持向量机数据分类预测 一、题目——意大利葡萄酒种类识别 Wine数据来源为UCI数据库,记录同一区域三种品种葡萄酒的化学成分,数据有178个样本,每个样本含有13个特征分量。50%做为训练集,50%做为测试集。 二、模型建立 模型的建立首先需要从原始数据里把训练集和测试集提取出来,然后进行一定的预处理,必要时进行特征提取,之后用训练集对SVM进行训练,再用得到的模型来预测试集的分类。 三、Matlab实现 3.1 选定训练集和测试集 在178个样本集中,将每个类分成两组,重新组合数据,一部分作为训练集,一部分作为测试集。 % 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量 load chapter12_wine.mat; % 选定训练集和测试集 % 将第一类的1-30,第二类的60-95,第三类的131-153做为训练集 train_wine = [wine(1:30,:);wine(60:95,:);wine(131:153,:)]; % 相应的训练集的标签也要分离出来 train_wine_labels = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)]; % 将第一类的31-59,第二类的96-130,第三类的154-178做为测试集 test_wine = [wine(31:59,:);wine(96:130,:);wine(154:178,:)]; % 相应的测试集的标签也要分离出来 test_wine_labels = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)]; 3.2数据预处理 对数据进行归一化: %% 数据预处理 % 数据预处理,将训练集和测试集归一化到[0,1]区间 [mtrain,ntrain] = size(train_wine); [mtest,ntest] = size(test_wine); dataset = [train_wine;test_wine]; % mapminmax为MATLAB自带的归一化函数 [dataset_scale,ps] = mapminmax(dataset',0,1); dataset_scale = dataset_scale';

基于机器学习的股票分析与预测模型研究

金融观察?一 基于机器学习的股票分析与预测模型研究① 姚雨琪 摘一要:近年来?随着全球经济与股市的快速发展?股票投资成为人们最常用的理财方式之一?本文研究的主要目标是利用机器学习技术?应用Python编程语言构建股票预测模型?对我国股票市场进行分析与预测?采用SVM与DTW构建股票市场的分析和预测模型?并通过Python编程进行算法实现? 本文对获取到的股票数据进行简单策略分析?选取盘中策略作为之后模型评估的基准线?分别选取上证指数二鸿达兴业股票二鼎汉股票数据利用已构建的支持向量机和时间动态扭曲模型在Python平台上进行预测分析?结果表明?对于上证指数而言?支持向量机预测下逆向策略更优?对于鸿达兴业股票和鼎汉股票而言?支持向量机预测下正向策略更优?基于时间动态扭曲算法的预测方法对于特定的股票有较高的精度和可信度?研究结论表明将机器学习运用于股票分析与预测可以提高股票价格信息预测的效率?保证对海量数据的处理效率?机器学习过程可以不断进行优化模型?使得预测的可信度和精度不断提高?机器学习技术在股票分析方面有很高的研究价值? 关键词:机器学习?股票预测?Python?SVM?DTW 中图分类号:F830.91一一一一一一文献标识码:A一一一一一一文章编号:1008-4428(2019)02-0123-02 一一一二引言 国外股票市场的股票分析预测开始得很早?研究者们将各种数学理论二数据挖掘技术等应用到股票分析软件中?并通过对历史交易数据的研究?从而得到股票的走势规律?近年来?由于现实中工作与研究的需要?机器学习的研究与应用在国内外越来越重视?机器学习可以在运用过程中依据新的数据不断学习优化?完善预测模型?将机器学习应用于股票市场的预测?从股票的历史数据中挖掘出隐藏在数据中的重要信息?这样既能够为股民们对股价预测研究提供理论支撑?又能够为公司的领导层提供决策支持?基于此?本文选择机器学习在股票分析中的应用作为研究方向?在机器学习及股票分析相关理论基础上?使用Python开发工具?并分别运用支持向量回归及时间动态扭曲进行预测? 二二相关技术与理论 (一)机器学习 机器学习是融合多领域技术的交叉学科?主要包括概率论与数理统计二微积分二线性代数二算法设计等多门学科?通过计算机相关技术自动 学习 实现人工智能?(二)股票分析方法 1.基本面分析 基本面分析指的是在分析股票市场供应和需求关系的相关因素(如宏观经济二政策导向二财务状况以及经营环境等)基础上确定股票的实际价格?从而预测股票价格的趋势?2.技术面分析 技术面分析指的是对股票图样趋势来分析和研究?来判断价格的走势? (三)基于Python的经典机器学习模型 1.支持向量机(SVM) 该模型最初用于分类?其最终目标是引入回归估计?建立回归估计函数G(x)?其中回归值与目标值之间的差值小于μ?同时保证该函数的VC维度最小?线性或非线性函数G(x)的回归问题可以转化为二次规划问题?并且获得的最优解是唯一的? 2.动态时间扭曲(DTW) 这是衡量时间序列之间的相似性的方法?并可以用在语音识别领域以判断两段声音是否表达了同一个意思?三二股票预测模型的构建 (一)确定初始指标 1.基于支持向量机确定指标 施燕杰(2005)利用支持向量机进行股票分析与预测?在多次反复尝试基础上提出了一系列的指标作为预测模型的输入向量?该指标能够有效地预测未来股价波动情况?本文在结合自身研究的基础上?对以上施燕杰提出的指标进行改进?在原有的指标基础上添加7日平均开盘价和7日平均收盘价?去除了成交额保留了成交量?最终建立如表1所示的20个初选指标? 表1一初选指标 变量X1X2X3X4X5X6X7X8X9X10含义 今日 开盘价 昨日 开盘价 前日 开盘价 7日平均 开盘价 今日 最高价 昨日 最高价 前日 最高价 7日平均 最高价 今日 最低价 昨日 最低价变量X11X12X13X14X15X16X17X18X19X20含义 前日 最低价 7日平均 最低价 今日 收盘价 昨日 收盘价 前日 收盘价 7日平均 收盘价 今日 成交量 昨日 成交量 前日 成交量 7日平均 成交量一一本文主要是进行股票分析与预测?因此在综合考虑各个 价格指标的基础上?本文选择选定时间段的下一日收盘价作为模型的输出向量? 2.基于动态时间扭曲确定指标 根据往常研究经验?我们将时间序列数据分成不同的期间?每个期间长度为5日?以每个时间段相邻每日收盘价涨跌率变化趋势为初始指标?选择时间序列期间下一日的收盘价与期间内最后一日收盘价涨跌率作为模型的输出向量?(二)选择样本 1.实验对象 本文在分别在主板市场二中小板市场和创业板市场中采取随机抽样的方法各随机选择一只股票数据作为研究对象?分别是上证指数二鸿达兴业股票二鼎汉股票? 2.样本规模 我们选取了2011年至2017年间上证指数1550条数据?2015年至2017年的鸿达兴业股票532条数据二鼎汉股票572 321 ①基金项目:江西财经大学第十三届科研课题立项?编号xskt18345?

几种卡尔曼滤波算法理论

自适应卡尔曼滤波 卡尔曼滤波发散的原因 如果卡尔曼滤波是稳定的,随着滤波的推进,卡尔曼滤波估计的精度应该越来越高,滤波误差方差阵也应趋于稳定值或有界值。但在实际应用中,随着量测值数目的增加,由于估计误差的均值和估计误差协方差可能越来越大,使滤波逐渐失去准确估计的作用,这种现象称为卡尔曼滤波发散。 引起滤波器发散的主要原因有两点: (1)描述系统动力学特性的数学模型和噪声估计模型不准确,不能直接真实地反映物理过程,使得模型与获得的量测值不匹配而导致滤波发散。这种由于模型建立过于粗糙或失真所引起的发散称为滤波发散。 (2)由于卡尔曼滤波是递推过程,随着滤波步数的增加,舍入误差将逐渐积累。如果计算机字长不够长,这种积累误差很有可能使估计误差方差阵失去非负定性甚至失去对称性,使滤波增益矩阵逐渐失去合适的加权作用而导致发散。这种由于计算舍入误差所引起的发散称为计算发散。 针对上述卡尔曼滤波发散的原因,目前已经出现了几种有效抑制滤波发散的方法,常用的有衰减记忆滤波、限定记忆滤波、扩充状态滤波、有限下界滤波、平方根滤波、和自适应滤波等。这些方法本质上都是以牺牲滤波器的最优性为代价来抑制滤波发散,也就是说,多数都是次优滤波方法。 自适应滤波 在很多实际系统中,系统过程噪声方差矩阵Q和量测误差方差阵R事先是不知道的,有时甚至连状态转移矩阵 或量测矩阵H也不能确切建立。如果所建立的模型与实际模型不符可能回引起滤波发散。自适应滤波就是这样一种具有抑制滤波发散作用的滤波方法。在滤波过程中,自适应滤波一方面利用量测值修正预测值,同时也对未知的或不确切的系统模型参数和噪声统计参数进行估计修正。自适应滤波的方法很多,包括贝叶斯法、极大似然法、相关法与协方差匹配法,其中最基本也是最重要的是相关法,而相关法可分为输出相关法和新息相关法。

卡尔曼滤波算法(C--C++两种实现代码)

卡尔曼滤波算法实现代码 C++实现代码如下: ============================kalman.h================= =============== // kalman.h: interface for the kalman class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__IN CLUDED_) #define AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__INCLU DED_ #if _MSC_VER > 1000 #pragma once #endif// _MSC_VER > 1000 #include #include "cv.h" class kalman { public: void init_kalman(int x,int xv,int y,int yv); CvKalman* cvkalman; CvMat* state; CvMat* process_noise; CvMat* measurement; const CvMat* prediction; CvPoint2D32f get_predict(float x, float y);

kalman(int x=0,int xv=0,int y=0,int yv=0); //virtual ~kalman(); }; #endif// !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C 0__INCLUDED_) ============================kalman.cpp=============== ================= #include "kalman.h" #include /* tester de printer toutes les valeurs des vecteurs*/ /* tester de changer les matrices du noises */ /* replace state by cvkalman->state_post ??? */ CvRandState rng; const double T = 0.1; kalman::kalman(int x,int xv,int y,int yv) { cvkalman = cvCreateKalman( 4, 4, 0 ); state = cvCreateMat( 4, 1, CV_32FC1 ); process_noise = cvCreateMat( 4, 1, CV_32FC1 ); measurement = cvCreateMat( 4, 1, CV_32FC1 ); int code = -1;

卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码 卡尔曼滤波算法实现代码(C,C++分别实现) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.doczj.com/doc/e818930365.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就

卡尔曼滤波算法总结

卡尔曼滤波算法总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2015.12.12 void Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; }

首先是卡尔曼滤波的5个方程: (|1)(1|1)() X k k AX k k Bu k -=--+(1)先验估计 (|1)(1|1)'P k k AP k k A Q -=--+(2)协方差矩阵的预测 ()(|1)'/(|1)')Kg k P k k H HP k k H R =--+(3)计算卡尔曼增益 (|)(|1)()(()(|1))X k k X k k Kg k Z k HX k k =-+--(4)进行修正 5个式子比较抽象,现在直接用实例来说: 一、卡尔曼滤波第一个式子 对于角度来说,我们认为此时的角度可以近似认为是上一时刻的角度值加上上一时刻陀螺仪测得的角加速度值乘以时间,因为d dt θω=?,角度微分等于时间的微分乘以角速度。但是陀螺仪有个静态漂移(而且还是变化的),静态漂移就是静止了没有角速度然后陀螺仪也会输出一个值,这个值肯定是没有意义的,计算时要把它减去。 由此我们得到了当前角度的预测值Angle Angle=Angle+(Gyro - Q_bias) * dt; 其中等号左边Angle 为此时的角度,等号右边Angle 为上一时刻的角度,Gyro 为陀螺仪测的角速度的值,dt 是两次滤波之间的时间间隔,我们的运行周期是4ms 或者6ms 。 同时 Q_bias 也是一个变化的量。 但是就预测来说认为现在的漂移跟上一时刻是相同的,即 Q_bias=Q_bias 将上面两个式子写成矩阵的形式 1_0 1_0 Angle dt Angle dt Q bias Q bia o s Gyr -= + 得到上式,这个式子对应于卡尔曼滤波的第一个式子 (|1)(1|1)() X k k AX k k Bu k -=--+ (|)(|1) P k k I Kg k H P k k =--(())(5)更新协方差阵

支持向量机在股票分析中的应用

1、问题的背景股票市场具有高收益与高风险并存的特性,人们一直都希望能够掌握其运行规律,并进行分析与预测。但是由于股票市场受到很多市场因素和非市场的影响,而且这些因素之间又有相互作用,因此要想建立一个模型来描述其内部相互作用的机理是非常困难的。从而这也成为证券分析研究领域的一个难题。股票价格的变化是非线性和时变的,支持向量机在股票分析中的应用 杨明海 信阳师范学院数学科学学院 464000 因此这些时间序列数据都是带有噪声的不稳定随机数据,从而使得用传统的统计方法来研究股票市场的运行规律已经不尽如人意。随着计算机科学的发展,把机器学习方法用在金融工程领域已经取得了很大的进展[1]。 当前很多模型的建立都要假定股票价 格序列具有某些非线性特征,这些假设或多或少的带有一些主观性。对于这类数据的预测很多研究者采用神经网络等方法来 做,但神经网络方法有着难以克服的一些 缺点,其网络结构需要事先指定或应用启 发式算法在训练过程中修正,这些启发式算法很难保证网络结构是最优的。另外神经网络易过学习和陷入局部最优的缺点也极大地限制其在实际中的应用。而支持向量机(SVM )它克服了神经网络的一些缺 点,如过学习,维数灾难,易陷入局部最优 等。而且支持向量机在实现金融时间序列 的预测[2]方面已有了一些探索性的研究,并在应用中取得了不错的表现。 2、支持向量机 20世纪60年代末,V a p n i k 和 Cervonenkis 建立了现代意义上的统计学习 理论[3],即是目前人们所称的V C 维理 论。1979年,在统计学习理论的VC 维理论 和结构风险最小化(SRM)准则的基础上, Vapnik 等人提出了一种新的机器学习算法 ——支持向量机(SVM)方法。支持向量机 方法根据有限样本的信息在模型的复杂性 (基于VC 维,即对特定训练集的训练精度)和学习能力(即由训练出的机器对测试数 据的识别能力)之间寻求最佳折衷,期望获 得最好的推广能力。大量的研究表明,作为 一种解决模式识别问题和非线性函数的回 归估计、预测等问题的新技术,SVM 无论 在模型拟合效果还是模型推广能力方面都 表现出了良好的性质。因此,它成为目前机 器学习领域的一个热门研究课题。当前对 SVM 的研究集中在训练算法的设计和应用 上。 支持向量机可以归结为解决一个二次规划问题(Quadratic Programming, QP ) [4]: 给定输入空间中训练样本:(1) SVM 是要得到下面的决策函数: (2)其中k(x i ,x j )是核函数,是每个样本对应的Lagrange 乘子,b 是阈值,是下面QP 问题的解:其中(核函数矩阵)是一个N ×N 的半正定矩阵,C 是正则化参数。 由于其坚实的理论基础,良好的泛化性能,简洁的数学形式,直观的几何解释 等特点,它在许多实际问题的应用中取得 了成功。本文用支持向量机方法对中国A 股市场深沪两市的部分部分股票进行分类 研究。 3、数值计算结果及分析3.1 实验数据由股票分析软件广发证券(至强版)下载了深沪股市几个交易日的数据,预处理如下: DATA1:选取2009年1月6号的1296只股票,以量比,换手率,内外比为因子,将涨幅大于一个百分点的股票归为+1类,跌幅大于一个百分点的归为-1类。将数据随机化后,选取1000个进行训练,296个进行测试。DATA2:选取2008年12月29号沪深两市共1192只股票,以每笔换手率,涨速,量比,总换手率,内外比,振幅为因子,将涨幅大于1.5个百分点的股票归

支持向量机(SVM)在作物需水预测中的应用研究综述

第卷第期农业水土工程研究进展课程论文V ol. Supp. . 2015年11月Paper of agricultural water and soil engineering progress subject Nov.2015 1 支持向量机(SVM)在作物需水预测中的应用研究综述 (1.中国农业大学水利与土木工程学院,北京,100083) 摘要:水资源的合理配置对于社会经济的发展具有重要意义。而在农业水资源的优化配置中常常需要提供精确的作物需水信息才能接下来进行水量的优化配置。支持向量机是基于统计学习理论的新型机器学习方法,因为其出色的学习性能,已经成为当前机器学习界的研究热点。但是目前对支持向量机的研究与应用大多集中在分类这一功能上,而在农业水资源配置中的应用又大多集中于预测径流量,本文系统介绍了支持向量机的理论与一些应用,并对支持向量机在作物需水预测的应用进行了展望。 关键词:作物需水预测;统计学习理论;支持向量机; 中图分类号:S16 文献标志码:A 文章编号: 0引言 作物的需水预测是农业水资源优化配置的前提和基础之一。但目前在解决数学模型中需要输入有预期的预测精度的数据时还是会遇到困难。例如,当大量的用水者的用水需求作为优化模型的输入时,预测精度太低时优化结果可能会出现偏差。此外,不确定性也存在于水的需求中,水需求受到一些影响因子和系统组成的影响(即人类活动,社会发展,可持续性要求以及政策法规),这不仅在不确定性因子间相互作用过程中使得问题更为复杂,也使得决策者在进行水资源分配过程中的风险增加。所以,准确的预测对水资源的需求对制定有效的水资源系统相关规划很重要。而提高需水量预测精度一直是国内外学术界研究难点和热点。 支持向量机(Support V ector Machine,SVM)是根据统计学理论提出的一种新的通用学习方法,该方法采用结构风险最小化准则(Structural Risk Minimization Principle),求解二次型寻优问题,从理论上寻求全局最优解,较好地兼顾了神经网络和灰色模型的优点[1][2],克服了人工神经网络结构依赖设计者经验的缺点,具有对未来样本的较好的泛化性能,较好解决了高维数、局部极小等问题[3]。目前,SVM已成功的应用于分类、函数逼近和时间序列预测等方面,并在水科学领域中取得了一些成果,Liong[4]已将SVM应用于水文预报,周秀平等[5]已将SVM应用于径流预测,王景雷等[6]亦已将SVM应用于地下水位预报。而需水预测问题本身也可以看作是一种对需水量及其影响因子间的复杂的非线性函数关系的逼近问题,但将SVM应用于作物需水预测的研究尚处于起步阶段。本文简要介绍支持向量机并对其研究进展进行综述,最后对未来使用支持向量机预测作物需水量进行展望。 收稿日期:修订日期:1支持向量机 1.1支持向量机国内外研究现状 自 1970 年以来,V apnik[1,2]等人发展了一种新的学习机——支持向量机。与现有的学习机包括神经网络,模糊学习机,遗传算法,人工智能等相比,它具有许多的优点:坚实的理论基础和较好的推广能力、强大的非线性处理能力和高维处理能力。因此这种学习方法有着出色的学习性能,并在许多领域已得到成功应用,如人脸检测、手写体数字识别、文本自动分类、非线性回归建模与预测、优化控制数据压缩及时间序列预测等。 1998年,Alex J. Smola[7]系统地介绍了支持向量机回归问题的基本概念和求解算法。Drucher[8]将支持向量机回归模型同基于特征空间的回归树和岭回归的集成回归技术bagging做了比较;Alessandro verri[9]将支持向量机回归模型同支持向量机分类模型和禁忌搜索(basic pursuit denoising)作了比较,并且给出了贝叶斯解释。通过分析得出了如下结论:支持向量机回归模型由于不依赖于输入空间的维数,所以在高维中显示出了其优越性。为了简化支持向量机,降低其复杂性,已有了一些研究成果。比如,Burges[10]提出根据给定的支持向量机生成缩减的样本集,从而在给定的精度下简化支持向量机,但生成缩减样本集的过程也是一个优化过程,计算比较复杂;1998年Scholkopf[11]等人在目标函数中增加了参数v以控制支持向量的数目,称为v-SVR,证明了参数v与支持向量数目及误差之间的关系,但支持向量数目的减少是以增大误差为代价的。Suykens等人[12]1999年提出的最小二乘支持向量机(LS-SVM)算法具有很高的学习效率,对大规模数据可采用共轭梯度法求解;田盛丰[13]等人提出了LS-SVM与序贯最优化算法(SMO)的混合算法。 1.2支持向量机在水资源领域研究现状

Kalman滤波算法

Kalman 滤波算法 姓名:刘金强 专业:控制理论与控制工程 学号:2007255 ◆实验目的: (1)、掌握klman 滤波实现的原理和方法 (2)、掌握状态向量预测公式的实现过程 (3)、了解Riccati 差分方程实现的过程和新息的基本性质和过程的计算 ◆实验要求: 问题: F=[a1,a2,a3],其中a1=[1.0 0 0]的转置,a2=[0.3 1.0 0]的转置,a3=[0.1 0.2 0.4]的转置,x(0)=[3,-1,2]的转置;C=[b1,b2,b3],其中b1=[0.3 0.5]的转置,b2=[1,0.4]的转置,b3=[0.8 -0.7]的转置;V1(n)=[0 0 n1(n)sin(0.1n)]的转置,V2(n)=[n2(n) n3(n)];n1(n)为均值为零,方差为1的均匀分布白噪声;n2(n),n3(n)为均值为0,方差为0.1的均匀分布白噪声,n1(n),n2(n),n3(n)相互独立,试用卡尔曼滤波器算法估计x^(n). ◆实验原理: 初始条件: 1?(1)x =E{x(1)} K(1,0)=E{[x(1)- (1)x ][x(1)- (1)H x ]},其中(1)x =E{x(1)} 输入观测向量过程: 观测向量序列={y(1),…………y(n)} 已知参数: 状态转移矩阵F(n+1,n) 观测矩阵C(n) 过程噪声向量的相关矩阵1()Q n 观测噪声向量的相关矩阵2()Q n 计算:n=1,2,3,………………. G(n)=F(n+1,n)K(n,n+1) ()H C n 12[()(,1)()()]H C n K n n C n Q n --+ Kalman 滤波器是一种线性的离散时间有限维系统。Kalman 滤波器的估计性能是:它使滤波后的状态估计误差的相关矩阵P(n)的迹最小化。这意味着,kalman 滤波器是状态向量x(n)的线性最小方差估计。 ◆实验结果: ◆程序代码: (1)主程序

时间序列分析方法 第3章 kalman滤波

第十三章 卡尔曼滤波 在本章中,我们介绍一种被称为卡尔曼滤波的十分有用的工具。卡尔曼滤波的基本思想是将动态系统表示成为一种称为状态空间表示的特殊情形。卡尔曼滤波是对系统线性投影进行序列更新的算法。除了一般的优点以外,这种算法对计算确切的有限样本预测、计算Gauss ARMA 模型的确切似然函数、估计具有时变参数的自回归模型等,都提供了重要方法。 §13.1 动态系统的状态空间表示 我们已经介绍过一些随机过程的动态表示方法,下面我们在以前的假设基础上,继续分析动态系统的表示方法。 13.1.1 继续使用的假设 假设t y 表示时刻t 观测到的n 维随机向量,一类非常丰富的描述t y 动态性的模型可以利用一些可能无法观测的被称为状态向量(state vector)的r 维向量t ξ表示,因此表示t y 动态性的状态空间表示(state-space representation)由下列方程系统给出: 11+++=t t t v ξF ξ 状态方程(state model) (13.1) t t t w ξH x A y t +'+'= 量测方程(observation model) (13.2) 这里F ,A '和H '分别是阶数为r r ?,k n ?和r n ?的参数矩阵,t x 是1?k 的外生或者前定变量。方程(13.1)被称为状态方程(state model),方程(13.2)被称为量测方程(observation model),1?r 维向量t v 和1?n 维向量t w 都是向量白噪声,满足: ? ??≠=='τττt t E t ,,)(0Q v v (13.3) ? ??≠=='τττt t E t ,,)(0R w w (13.4) 这里Q 和R 是r r ?和n n ?阶矩阵。假设扰动项t v 和t w 对于所有阶滞后都是不相关的,即对所有t 和τ,有: 0w v =')(τ t E (13.5) t x 是外生或者前定变量的假定意味着,在除了包含在121,,,y y y --t t 内的信息以外,t x 没有为s t +ξ和s t +w ( ,2,1,0=s )提供任何新的信息。例如,t x 可以包括t y 的滞后值,也可以包括与τξ和τw (任意τ)不相关的变量。 方程系统中方程(13.1)至方程(13.5)可以表示有限观测值的序列},,,{21T y y y ,这时需要状态向量初始值1ξ。假设1ξ与t v 和t w 的任何实现都不相关: 0ξv =')(1 t E ,对任意T t ,,2,1 = (13.6) 0ξw =')(1 t E ,对任意T t ,,2,1 = (13.7) 状态方程(13.1)表明,t ξ可以表示成为},,,,{321t v v v ξ 的线性函数: 1122221ξF v F v F v F v ξ----+++++=t t t t t t ,T t ,,3,2 = (13.8) 因此,方程(13.6)和方程(13.3)意味着t v 与所有ξ的滞后值都是不相关的: 0ξv =')(τ t E ,1,,2,1 --=t t τ (13.9) 类似地,可以得到: 0ξw =')(τ t E ,T ,,2,1 =τ (13.10)

基于支持向量机回归模型的海量数据预测

2007,43(5)ComputerEngineeringandApplications计算机工程与应用 1问题的提出 航空公司在客舱服务部逐步实行“费用包干”政策,即:综合各方面的因素,总公司每年给客舱服务部一定额度的经费,由客舱服务部提供客舱服务,而客舱服务产生的所有费用,由客舱服务部在“费用包干额度”中自行支配。新的政策既给客舱服务部的管理带来了机遇,同时也带来了很大的挑战。通过“费用包干”政策的实施,公司希望能够充分调用客舱服务部的积极性和主动性,进一步改进管理手段,促进新的现代化管理机制的形成。 为了进行合理的分配,必须首先搞清楚部门的各项成本、成本构成、成本之间的相互关系。本文首先对成本组成进行分析,然后用回归模型和支持向量机预测模型对未来的成本进行预测[1-3],并对预测结果的评价和选取情况进行了分析。 2问题的分析 由于客舱服务部的特殊性,“费用包干”政策的一项重要内容就集中在小时费的重新分配问题上,因为作为客舱乘务员的主要组成部分—— —“老合同”员工的基本工资、年龄工资以及一些补贴都有相应的政策对应,属于相对固定的部分,至少目前还不是调整的最好时机。乘务员的小时费收入则是根据各自的飞行小时来确定的变动收入,是当前可以灵活调整的部分。实际上,对于绝大多数员工来说,小时费是其主要的收入部分,因此,用于反映乘务人员劳动强度的小时费就必然地成为改革的重要部分。 现在知道飞行小时和客万公里可能和未来的成本支出有关系,在当前的数据库中有以往的飞行小时(月)数据以及客万公里数据,并且同时知道各月的支出成本,现在希望预测在知道未来计划飞行小时和市场部门希望达到的客万公里的情况下的成本支出。 根据我们对问题的了解,可以先建立这个部门的成本层次模型,搞清楚部门的各项成本、成本构成、成本之间的相互关系。这样,可以对部门成本支出建立一个层次模型:人力资源成本、单独预算成本、管理成本,这三个部分又可以分别继续分层 次细分,如图1所示。 基于支持向量机回归模型的海量数据预测 郭水霞1,王一夫1,陈安2 GUOShui-xia1,WANGYi-fu1,CHENAn2 1.湖南师范大学数学与计算机科学学院,长沙410081 2.中国科学院科技政策与管理科学研究所,北京100080 1.CollegeofMath.andComputer,HunanNormalUniversity,Changsha410081,China 2.InstituteofPolicyandManagement,ChineseAcademyofSciences,Beijing100080,China E-mail:guoshuixia@sina.com GUOShui-xia,WANGYi-fu,CHENAn.Predictiononhugedatabaseontheregressionmodelofsupportvectormachine.ComputerEngineeringandApplications,2007,43(5):12-14. Abstract:Asanimportantmethodandtechnique,predictionhasbeenwidelyappliedinmanyareas.Withtheincreasingamountofdata,predictionfromhugedatabasebecomesmoreandmoreimportant.Basedonthebasicprincipleofvectormachineandim-plementarithmetic,apredictionsysteminfrastructureonanaircompanyisproposedinthispaper.Lastly,therulesofevaluationandselectionofthepredictionmodelsarediscussed. Keywords:prediction;datamining;supportvectormachine;regressionmodel 摘要:预测是很多行业都需要的一项方法和技术,随着数据积累的越来越多,基于海量数据的预测越来越重要,在介绍支持向量机基本原理和实现算法的基础上,给出了航空服务成本预测模型,最后对预测结果的评价和选取情况进行了分析。 关键词:预测;数据挖掘;支持向量机;回归模型 文章编号:1002-8331(2007)05-0012-03文献标识码:A中图分类号:TP18 基金项目:国家自然科学基金(theNationalNaturalScienceFoundationofChinaunderGrantNo.10571051);湖南省教育厅资助科研课题(theResearchProjectofDepartmentofEducationofHunanProvince,ChinaunderGrantNo.06C523)。 作者简介:郭水霞(1975-),女,博士生,讲师,主要研究领域为统计分析;王一夫(1971-),男,博士生,副教授,主要研究领域为计算机应用技术,软件工程技术;陈安(1970-),男,副研究员,主要研究领域为数据挖掘与决策分析。 12

什么是卡尔曼滤波器——基础理解

1.什么是卡尔曼滤波器 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。卡尔曼是一个人的名字。 卡尔曼全名Rudolf Emil Kalman,1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文 《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。 简单来说,卡尔曼滤波器是一个 “optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。(所谓高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。 高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。) 好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。 假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平

相关主题
文本预览
相关文档 最新文档