卡尔曼滤波器在s7-300系列plc中的实现方法

文档序号:6305443阅读:2389来源:国知局
卡尔曼滤波器在s7-300系列plc中的实现方法
【专利摘要】本发明公开了一种卡尔曼滤波器在S7-300系列PLC中的实现方法。在S7-300系列PLC系统中定义16个数据块,其中的14个数据块和卡尔曼滤波器迭代算式中的各个矩阵变量一一对应,余下两个数据块用于矩阵运算的暂存。将卡尔曼滤波器迭代算式中若干变量的存取操作转化为S7-300系列PLC系统对应数据块中变量的存取操作。使用PLC系统的指令系统,直接实现矩阵的加减运算、乘法运算、逆运算和卡尔曼滤波器迭代算式。卡尔曼滤波器的计算时间相对确定,且实际应用中的每个采样周期多为单次迭代,通过合理设置PLC系统的警戒定时器,扩充的卡尔曼滤波器功能不会影响PLC系统的正常扫描功能,并为其高级应用提供了新的手段。
【专利说明】卡尔曼滤波器在S7-300系列PLC中的实现方法
【技术领域】
[0001]本发明属于自动化【技术领域】,涉及卡尔曼滤波器在S7-300系列PLC中的实现方法。
【背景技术】
[0002]可编程序控制器(PLC),工业控制微机(主要是IPC)、集散控制系统(DCS) /现场总线控制系统(FCS)和智能控制仪表,是工业自动化领域常用的四大类控制装置。其中,PLC凭借其高可靠性和易用性,在工业自动化工程中的应用最为广泛。大中型PLC主要用于复杂生产线控制、顺序控制、批量控制和流程工业控制。在众多的大中型PLC系统中,西门子的S7-300或S7-400系列PLC凭借其良好的体系结构、网络功能、集成技术和技术支持,已成为我国广泛应用的大中型PLC系统之一。
[0003]卡尔曼(Kalman)于1960年提出了一种滤波和预报算法,即卡尔曼滤波器,该算法提供了一种高效可计算的方法来估计过程的状态,并使估计值均方误差最小,现已广泛应用于机器人导航、过程控制、数据融合、雷达系统、导弹追踪等,用于解决参数估计、状态预报和工业过程故障诊断等问题。
[0004]当前广泛使用的PLC系统按照IEC61131-3国际标准提供编程语言和指令系统,各PLC系统厂家尚未提供卡尔曼滤波器模块或指令库。卡尔曼滤波器涉及到复杂的矩阵运算,当今的研究或应用多采用基于PC的Matlab平台或C语言平台。现有技术必须先从PLC系统等控制设备中获取观测数据,接着通过PC机的Matlab平台,完成卡尔曼滤波器的复杂计算,最后将计算结果形成控制量再回传到PLC,由PLC系统实现工业过程的控制。现有技术需要周而复始地从PLC系统获取数据和传输优化信息到PLC系统,需要借助于通信网络和PC平台,协同完成先进控制系统中的状态估计或优化控制等。
[0005]现有技术方案需要PC系统和PLC系统之间周而复始地交换数据,需要配备PC机、Windows平台、Matlab平台和通彳目网络。网络故障,尤其是固有存在的网络时延都将影响卡尔曼滤波器的应用效果。此外,工业环境的高要求也对PC平台的运行环境提出了挑战,增加的PC平台还会导致系统的成本的增加。
[0006]因此,如何直接在PLC系统中实现卡尔曼滤波器是自动化工程界一直追求的目标。

【发明内容】

[0007]本发明提供了卡尔曼滤波器在S7-300系列PLC中的实现方法,解决了目前卡尔曼滤波器在PLC中实现的方法复杂的问题。
[0008]借助于西门子S7-300系列PLC中的数据块,将卡尔曼滤波器矩阵之间的各类存取和运算,转换为数据块之间各个元素的存取和运算,使用西门子S7-300系列PLC的指令系统实现矩阵的加、减、乘和逆运算,再依据卡尔曼滤波器的迭代算式和S7-300系列PLC提供的模块程序设计方法,按步骤在PLC中实现卡尔曼滤波器。[0009]本发明采用的技术方案为将卡尔曼滤波器迭代算式中若干矩阵变量的存取操作转化为S7-300系列PLC系统对应数据块中变量的存取操作,并在PLC系统中实现了矩阵的加减运算、乘法运算和逆运算。
[0010]进一步,卡尔曼滤波器在S7-300系列PLC中的实现方法的步骤为:
[0011]步骤1:定义数据块DBl~DB14,存放卡尔曼滤波器算式中的变量;DB1~DB6分别存放卡尔曼滤波器迭代算式中的矩阵变量X (k)、Φ (k)、H (k)、y (k)、ω (k)和V (k),数据
块DB7存放状态估计值向量—IJ-,DB8存放状态一步预测值向量f,
DB9存放滤波增益矩阵K (k),DBlO存放估计误差的协方差矩阵P (k-1,k-1),DBll存放协方差矩阵的一步预测值P (k, k-1),DB12存放Q,DB13存放R,DB14存放单位矩阵I ;
[0012]步骤2:计算卡尔曼滤波器的一步预测值,分别从数据块DB7和DB2中取出
X(k-\,k-\)m Φ (k),按下式计算卡尔曼滤波器的一步预测值— I):
[0013]
【权利要求】
1.卡尔曼滤波器在S7-300系列PLC中的实现方法,其特征在于:将卡尔曼滤波器迭代算式中若干矩阵变量的存取操作转化为S7-300系列PLC系统对应数据块中变量的存取操作,并在PLC系统中实现了矩阵的加减运算、乘法运算和逆运算。
2.按照权利要求1所述卡尔曼滤波器在S7-300系列PLC中的实现方法,其特征在于: 步骤1:定义数据块DBl~DB14,存放卡尔曼滤波器算式中的变量;DB1~DB6分别存放卡尔曼滤波器迭代算式中的矩阵变量X (k)、Φ (k)、H (k)、y (k)、ω (k)和v(k),数据块DB7存放状态估计值向量文认-1,灸-1),DB8存放状态一步预测值向量灸-1),DB9存放滤波增益矩阵K (k),DBlO存放估计误差的协方差矩阵P (k-1,k-1),DB11存放协方差矩阵的一步预测值P (k, k-1),DB12存放Q,DB13存放R,DB14存放单位矩阵I ;步骤2:计算卡尔曼滤波器的一步预测值,分别从数据块DB7和DB2中取出X{k-\免-1)和ΦΟΟ,按下式计算卡尔曼滤波器的一步预测值
【文档编号】G05B19/05GK104009735SQ201410230791
【公开日】2014年8月27日 申请日期:2014年5月28日 优先权日:2014年5月28日
【发明者】胡文金, 叶文, 汤毅, 刘显荣, 李太福, 徐承爱 申请人:重庆科技学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1