1.一种基于改进的自适应卡尔曼滤波的偏差攻击的估计方法,其特征在于,所述方法包括以下步骤:
步骤1,查看网络化控制系统正常运行时的数据,同时确定服务器端与客户端的IP地址;编写Lua脚本,监听目标信道:攻击者主机接入系统的局域网中,在Linux系统中编写Lua脚本,设置相应的过滤规则,设置处理截获数据包的程序,此处只观察系统的输入输出数据,只需显示数据即可,最后执行脚本;
步骤2,通过系统辨识方法获取增益矩阵:已知数据的传输格式情况下,对获取的数据进行预处理,通过系统辨识方法,得到各个数据在系统中的权重,即获取增益矩阵K;
步骤3,编写篡改数据脚本:在上述的监听Lua脚本中继续添加数据处理内容,针对目标数据,实施偏差攻击,即在目标数据的基础上添加一个较小的非零常数,具体形式如下:其中,y是系统正常运行时传输的数据,δ为较小的非零常数,t为实验时间,T是注入攻击的时刻,Lua语言中的数值计算或数据类型转换会影响字符串的长度,需编写相应的处理函数,保证长度不变;然后,执行篡改数据的脚本;
步骤4,采用改进的自适应卡尔曼滤波估计攻击注入的偏差值;改进的自适应卡尔曼滤波步骤如下:
4.1对于离散的线性时变系统,其中, 表示系统的状态; 表示系统的控制量输入; 表示系统的量测; 是不相关的高斯白噪声,其协方差矩阵为Φ(k)θ代表了执行器故障,由已知的矩阵序列 和一个常量参数向量 组成,此例中,Φ(k)=‑B(k)diag(u(k));
4.2自适应卡尔曼滤波由初始步骤和递推步骤组成,如下:
4.2.1初始化协方差矩阵和辅助变量:其中, 为预测状态误差协方差矩阵; 是辅助变量; 为注入攻击的估计值; 为状态向量的最优估计;Ip为p阶单位矩阵;
4.2.2递推步骤如下:
4.2.2.1首先,计算新息
4.2.2.2通过经典的卡尔曼滤波器,计算状态估计方程的协方差矩阵和卡尔曼增益:其中, 为新息协方差矩阵; 为状态估计增益矩阵,即卡尔曼增益;
4.2.2.3通过遗忘因子λ以及 这三个辅助变量计算参数估计增益矩阵
4.2.2.4计算参数估计 以及状态估计
4.3进一步地,由于在实际应用系统中,无法得知具体的过程噪声Q和量测噪声R,但是,上述的自适应卡尔曼滤波要求模型参数和噪声的先验知识,所以具有一定的局限性,而改进的自适应卡尔曼滤波是基于新息自适应估计,对观测噪声模型进行估计和修正;如下:
4.3.1若系统噪声和量测噪声服从不相关的高斯分布且新息序列满足各态遍历性时,可根据新息序列的滑动平均获得新息协方差的极大似然估计其中,i0=k‑M+1,M为滑动窗口的采样宽度,将 代替式中的Σ;
4.3.2基于新息协方差估计的滤波增益计算公式为