1.一种基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,所述方法包括以下步骤:
步骤一:建立电网的一般线性模型,
步骤二:虚拟攻击获得样本,
步骤三:观察值获取,
步骤四:使用ε贪婪策略得到t时刻检测器动作at:
步骤五:使用sarsa算法进行训练,
步骤六:重复步骤一到步骤五直到到达阶段最大检测时间t,或
步骤七:重复步骤一到步骤六直到将总样本数e用尽,得到完整qd表与qs表;
步骤八:检测,判断系统是否受到直接虚假数据注入攻击。
2.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,
步骤一:建立电网的一般线性模型:
xt=axt-1+vt(1)
yt=hxt+wt(2)
其中xt=[x1,t,…,xn,t,…,xn,t]为t时刻系统状态,xn,t表示为t时刻第n个节点上的相角,n表示系统的总状态数;t时刻测量值表示为yt=[y1,t,…,ym,t,…,ym,t],ym,t表示为t时刻第m个测量仪表的检测值,m表示总测量仪表值;
3.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,
步骤二:虚拟攻击获得样本:对于直接攻击可以使用式(3)获得受攻击的测量值,对于隐匿攻击可以使用式(4)获得受攻击的测量值,
式中at表示t时刻直接攻击的攻击向量,hct表示隐匿攻击的攻击向量,由于h不会随着时间改变,因此使用ct表示隐匿攻击攻击向量,at与ct在样本训练中已知,在实际检测中未知,τ为系统受到攻击时间,
4.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,
步骤三:观察值获取:计算测量值yt与其估计值
5.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,
步骤四:使用ε贪婪策略得到t时刻检测器动作at:将系统划分为两个状态,分别为sn系统未受到攻击与sa系统受到攻击,将检测器动作也分为两个状态as为算法认为系统受到攻击发出警报,ac表示算法认为系统未受到攻击不发出警报,在t时刻得到直接攻击检测观察值
ε=max(ε-e-1,εmin)(5)
式中e为当且已经进行使用的样本值,εmin为人为设置的最小ε值。
6.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,
步骤五:使用sarsa算法进行训练,使用式(4)更新q表,
式中含有上角标i的参数表示用于检测i类型攻击的参数,i=n或s,即当i=n时表示该参数用于检测直接攻击,当i=s表示该参数用于检测隐匿攻击,qi为检测i类型攻击所需要的q表,
式中r0与b为预先确定的超前警报回报值与滞后警报回报值系数,
7.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,步骤六:重复步骤一到步骤五直到到达阶段最大检测时间t,或
8.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,步骤七:重复步骤一到步骤六直到将总样本数e用尽,得到完整qd表与qs表。
9.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,步骤八:在检测时,使用步骤一到步骤三得到观察值
10.根据权利要求1所述的基于强化学习的智能电网虚假数据注入攻击检测方法,其特征在于,所述步骤三通过以下子步骤来实现:
(3.1)设置阈值:根据不同的电网结构分别设置直接虚假数据注入攻击阈值
(3.2)获得检测值:从各个检测仪表获得t时刻检测值yt,调用t-1时刻检测值yt-1;
(3.3)实用卡尔曼滤波估计检测值:使用式(9)与式(10)所示的最小二乘算法得到t时刻状态估计值
式中
(3.4)计算偏差模方值:使用式(12)和(13)分别计算t时刻测量值与估计值的偏差模方值
(3.5)使用阈值分割法获得即时观察值:由
由于阈值分割方法一致,因此依旧使用上角标i代替上角标n和上角标s,即式(14)中i可以同时为n或s;
(3.6)使用滑窗法获得观察值:令t-1时刻直接虚假数据注入攻击观察值