收藏 分销(赏)

学位论文—基于卡尔曼滤波器的cstr控制器的设计论文.doc

上传人:可**** 文档编号:9897621 上传时间:2025-04-12 格式:DOC 页数:28 大小:1.10MB
下载 相关 举报
学位论文—基于卡尔曼滤波器的cstr控制器的设计论文.doc_第1页
第1页 / 共28页
学位论文—基于卡尔曼滤波器的cstr控制器的设计论文.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述
东北电力大学本科毕业设计论文 本科毕业设计论文 基于卡尔曼滤波器的CSTR控制器的设计 学 生 姓 名: 周景龙 班 级: 电技061 学 号: 0601030115 指 导 教 师: 张虹 所 在 单 位: 电气工程学院 答 辩 日 期: 年 月 日 II 东北电力大学本科毕业设计论文 摘 要 连续搅拌反应釜(Continuous Stirred Tank Reactor, CSTR)是连续流动反应器,或简称全混流反应器,是化工工业生产过程中必不可少的生产工具,其设计状况的好坏直接影响生产质量和效率。所以,对CSTR反应器的建模与设计也就变得非常的重要。 在实际过程中,CSTR经常受到外部和内部因素的影响,如反应物浓度变化、副反应、温度和外扰等,并且CSTR的化学反应过程是一个非线性、时变、有纯滞后的过程,对这类系统难以建立精确的数学模型。我们可以把反应物浓度变化、副反应、温度以及外扰等看作是模型中的不确定性问题来处理。对这些的不确定性问题的正确处理,才会有助于我们建立精确的数学模型,进而实现系统的建模和仿真。我们的首要问题就是实现对反应物的浓度变化、反应温度和冷却温度等系统的状态值的精确预测估计,下面的问题才可游刃而解。因此,研究连续搅拌反应釜的预测估计方法有非常重要的意义。 本文提出了一种基于卡尔曼滤波的CSTR控制器的设计,通过由浅入深、循序渐进的方式,我们完成了基于卡尔曼滤波的CSTR控制器的设计仿真,由此证明了卡尔曼滤波的广泛的实用性,经过对基于卡尔曼滤波CSTR控制器的预测估计的状态值与实际值作比较,我们可以看到经过短暂的时间后估计的状态值能够实时跟踪上实际的状态值,预测估计的效果很是明显。而且再经过状态反馈后,CSTR系统的阶跃响应调节时间变短,响应速度加快,能快速达到稳定状态且无明显超调,因此基于卡尔曼滤波的CSTR控制器可以达到理想的性能。 关键词: CSTR控制器;非线性;卡尔曼滤波;状态反馈控制器 Abstract Continuous Stirred Tank Reactor (CSTR) proves its continuous flow reactor or mixed flow the reactor. It is an indispensable tool in the chemical industrial production process, whose design conditions will have a direct impact on production quality and efficiency. So, the design and modeling on CSTR reactor becomes very important. In the actual CSTR process, often affected by external and internal factors, such as reaction temperature, concentration, and etc., and CSTR process of chemical reaction is a nonlinear time-varying, having pure lag, the process of this kind of system, to build an accurate mathematical model is very difficult. We can put the reactant concentration, temperature side effects and perturbation, regard as the model of the uncertainty problem to deal with. The correct treatment of the uncertainty of these problems will help us establish accurate mathematical model, and then realize the system modeling and simulation. Our primary problem is to realize the precise estimation and prediction of changes of the value of the system status such as reactant concentration, reaction temperature and the cooling temperature. The following problem can only be resolved there and then. Therefore, the study of continuous stirrer tanks forecast estimation method is of important significance. This paper puts forward a method of CSTR controller design based on kalman filtering. Through a gradual way, we completed CSTR controller design and simulation based on kalman filter, which proved the broad practicability of kalman filter. Comparing the predicted and estimated values based on kalman filter with the real values of CSTR controller status, we can find after a short time later estimated values of the status can real-time tracking on the actual value. So, the effect of prediction is very obvious. And then after the state feedback, the CSTR system step response time become short, response speed is faster and response can achieve steady state quickly with no obvious overshoot. Therefore CSTR controller based on kalman filter can achieve ideal performance. Keywords: CSTR controller; Nonlinear; Kalman filter; State feedback controller 目 录 摘 要 2 ABSTRACT 3 第1章 绪 论 5 1.1 课题背景及研究的意义 5 1.2 本文的研究内容 5 第2章 CSTR非线性系统 6 2.1 CSTR非线性系统的物理描述 6 第3章 MATLAB/SIMULINK简介[3] 9 3.1 MATLAB简介 9 3.2 SIMULINK简介 9 第4章 CSTR系统的状态反馈控制器设计 10 4.1 CSTR非线性系统的线性化 10 4.1.1 泰勒展开的介绍[13] 11 4.1.2 非线性微分方程的线性化[13] 设非线性状态空间表达式的形式: 11 4.2 状态反馈控制器的设计 13 4.2.1 状态反馈的原理[17] 13 4.3 状态反馈控制器的实现 15 4.3.1 系统可控性分析[11] 15 第5章 卡尔曼滤波器的设计与实现 16 5.1 卡尔曼滤波器的设计 16 5.1.1 问题的提出[6] 16 5.1.2 卡尔曼滤波的描述[5] 17 5.1.3 卡尔曼滤波器的算法[5] 18 5.2 针对CSTR系统设计卡尔曼滤波器 19 5.2.1 CSTR系统的离散化[10] 19 5.2.3 针对CSTR系统的卡尔曼滤波模型建立及仿真结果 20 5.3 基于卡尔曼滤波的状态反馈控制器设计 23 结 论 26 致 谢 27 参考文献 28 第1章 绪 论 1.1 课题背景及研究的意义 连续搅拌反应釜(Continuous Stirred Tank Reactor, CSTR)是连续流动反应器,或简称全混流反应器,是化工工业生产过程中必不可少的生产工具,其操作状况的好坏直接影响生产质量和效率。为保证连续搅拌反应釜内部的反应正常进行,需要通过控制其内部的工艺参数,如温度、压力、浓度等稳定。连续搅拌反应釜内部的控制质量将会直接影响到生产的效益和质量指标,因此设计的任务就是在保证系统稳定的条件下,通过优化操作条件和方法,改善产品的质量,提高产品的数量。 在实际过程中,CSTR经常受到外部和内部因素的影响,如反应物浓度变化、副反应、温度和外扰等,并且CSTR的化学反应过程是一个非线性、时变、有纯滞后的过程,对这类系统难以建立精确的数学模型。 1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,卡尔曼滤波器由一系列递归数学公式描述。它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。 本文介绍了卡尔曼滤波的基本理论,并且提出了一种基于卡尔曼滤波的CSTR控制器的设计,有效解决了CSTR系统的预测估计。基于卡尔曼滤波器的算法和模型的建立较为精确地实现了CSTR系统状态的估计,进而使操作者制定出合理的控制方案,提高生产效益和质量指标。 1.2 本文的研究内容 为了提高CSTR控制器的控制性能,获得良好的社会经济效益和高品质的产品,因此,CSTR非线性系统状态的预测估计显得也就格外的重要,基于此,在本文我们主要研究了: 1.介绍了连续搅拌反应釜的结构及工作原理,并在此基础上,根据能量守恒定律有一系列的非线性微分方程建立了该CSTR系统的理想动态特性; 2.假设系统的所有状态都可实时准确地测量,基于此假设条件,将CSTR非线性系统进行线性化处理,进而设计CSTR系统的状态反馈控制器; 3.介绍了卡尔曼滤波器的原理及算法的实现,针对状态不可测的情况下设计卡尔曼滤波,通过实时测量的反应温度和冷却温度来估计各组分的浓度值,根据估计出的状态值来设计CSTR系统的状态反馈控制器。 第2章 CSTR非线性系统 2.1 CSTR非线性系统的物理描述 连续搅拌反应釜(Continuous Stirred Tank Reactor,简称CSTR)是化工生产的常用设备,是一种复杂的非线性化学反应器系统。图2-1所示为一带冷却套的连续搅拌反应釜[12]。 图 2-1连续搅拌反应釜 其化学反应是由环戊二烯(cyclopentadience,组分A)生成主产品环戊烯(cyclopentenol,组分B)和副产品二环戊二烯(dicyclopentadience,组分D),以及由环戊烯(cyclopentanol,组分B)继续反应生成的副产品环戊酮 (cyclopentanediol,组分C)。化学反应方程如下: ABC , 2AD 在此反应中假设物料的混合是完全的,反应器被持续冷却,且流出物料的体积流量等于进入物料的体积流量。同时为不失一般性,假定反应釜中发生的是一级不可逆放热反应。基于能量守衡定律,该CSTR的理想动态特性可以由以下非线性微分方程描述[14]: (1) 上述非线性方程中和分别表示物质A和B的浓度,和分别为反应温度和冷却温度。为了建立状态空间模型,取、、、作为系统的四个状态,取物料进给率和冷却套中的散热量为系统的控制输入。控制输入是在一定范围内变化的: , (2) 反应器的进给料来自上一设备,其温度和浓度是波动的,作为外部的干扰。 反应速度依赖于反应温度和并且遵循准则: 为了获得组分B的最大产出率确定系统的稳态工作点如下: 该CSTR系统的物理和化学参数如下表2-1所列: 表2-1 CSTR的稳态参数[13] 参数意义 参数 对应值 的反应时间常数 (1.287 0.04) 的反应时间常数 (1.287 0.04) 的反应时间常数 (9.0430.27). 的反应激活能量 -9758.3 的反应激活能量 -9758.3 的反应激活能量 -8560 的反应热 (4.22.36) 的反应热 -(11.01.92) 的反应热 -(41.851.41) 液体密度 (0.93424.0) 质量定压热容 (3.100.04) 冷却套的传热系数 (4032120) 冷却套的面积 0.215 反应器的体积 0.01 冷却液质量 5.0 冷却液的热容 (2.00.05) 第3章 MATLAB/Simulink简介[3] 3.1 MATLAB简介 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。 和其他程序设计语言比较MATLAB具有以下优势[3]: (1) 简洁高效性:MATLAB程序设计语言集成度高,语句简洁。程序可靠性高,易于维护。可以在很大程度上提高解决问题的效率和水平。 (2) 科学运算功能:以矩阵为基本单位,可以直接用于矩阵运算。另外,最优化问题、数值微积分问题、微分方程数值解问题、数据处理问题等都能直接用MATLAB语言求解。 (3) 绘图功能:MATLAB语言可以用直观的语句将实验数据或计算结果用图形的方式显示出来,并可以将以往难以显示出来的隐函数直接用曲线画出来。 (4) 庞大的工具箱和仿真模块:MATLAB是控制界通用的计算机语言在应用数学及控制领域几乎所有的研究方向均有自己的工具箱,而且由领域内知名专家编写,可信度比较高。 (5) 强大的动态系统仿真功能:Simulink所提供的面向框图的仿真及概念性仿真功能,使得用户能够容易的建立复杂系统模型准确地对其进行仿真。 (6) 实用的程序接口和发布平台; (7) 应用软件开发(包括用户界面)。 3.2 Simulink简介 Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。从某种意义上讲,凡是能够用数学方式描述的系统,都可用Simulink建模。当然,针对特定的系统,应该权衡Simulink的易用性和方便性,以选择是否用Simulink建模仿真。 Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。 Simulink具有以下特点: (1) 丰富的可扩充的预定义模块库; (2) 交互式的图形编辑器来组合和管理直观的模块图; (3) 以设计功能的层次性来分割模型,实现对复杂设计的管理; (4) 通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码; (5) 提供API用于与其他仿真程序的连接或与手写代码集成; (6) 使用定步长或变步长运行仿真; (7) 图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为; 利用Simulink描述框图模型是十分简单和直观的,不需要输入任何程序就可以用图形化的方法直接建立起系统的模型,并通过Simulink环境中的菜单直接启动系统的仿真过程,并将结果在示波器上显示出来,所以利用Simulink工具,能在很大程度上方便系统仿真。 第4章 CSTR系统的状态反馈控制器设计 假定CSTR系统的所有状态,即物质A的浓度、物质B的浓度、反应温度和冷却温度都是可以实时准确测量,在此基础上对CSTR系统进行设计状态反馈控制器。状态反馈控制器的设计要求系统是线性化的系统,因此本章首先将CSTR的非线性系统进行线性化处理,然后设计了状态反馈控制器。 4.1 CSTR非线性系统的线性化 线性化的基本方法是:将非线性函数在平衡状态或参考轨迹附近展开成泰勒级数,只保留线性项从而将非线性模型线性化。而被忽略的泰勒级数的高阶项必须足够小,因此这种方法又称为小信号分析(或小扰动)理论[13]。 4.1.1 泰勒展开的介绍[13] 设系统的输入输出特性 (3) 将非线性方程(3-1)在工作点附近展开成泰勒级数[7]: (4) 忽略其高次幂项 或 (5) 写成线性模型的习惯表示形式: 4.1.2 非线性微分方程的线性化[13] 设非线性状态空间表达式的形式: 将非线性向量函数在参考状态轨迹附近展开成泰勒级数: (6) 和 为非线性状态方程在参考轨迹处的雅可比(Jacobi)矩阵,从而导出非线性控制系统在参考轨迹附近的线性化状态方程为: (7) 当可控时,对于某些不太严重的非本质非线性特性,用上述的泰勒近似方法进行分析和设计,在工作点的某一邻域,大体是正确的,所产生的误差往往为工程上所接受。对于本文的CSTR非线性系统利用以上的方法进行线性化,在MATLAB中通过编程实现。利用“jacobian”命令实现。再将各状态进行无量纲化,无量纲变量如下[6]: 最后得到的线性化无量纲化的系统如下: (8) 其中, 4.2 状态反馈控制器的设计 4.2.1 状态反馈的原理[17] 最优控制理论主要是依据庞德里亚金的极大值原理,通过对性能指标的优化寻找可以使目标极小的控制器。线性二次型(LQ-Linear Quadratic)是指系统的状态方程是线性的,性能指标函数是对象状态变量和控制输入变量的二次型函数。二次型最优控制问题就是在线性系统的约束条件下,选择控制输入使得二次型目标函数达到最小。其最终目标是为系统设计线性二次型调节器,简称LQR(Linear Quadratic Regulator) [9]。 线性二次型最优控制方法是20世纪60年代发展起来的一种普遍采用的最优控制系统设计方法。在工程实际中应用线性二次型最优控制是非常普遍的。这是因为,二次型性能指标有较为明确的物理概念;而且采用二次型性能指标在数学处理上比较简单,甚至能得到解析形式表达的线性反馈规律,可以实现状态的线性反馈。 线性二次型控制理论是状态反馈系统设计的一种重要工具,它为多变量反馈系统的设计提供了一种有效的分析方法,可以适应于时变系统,能够处理扰动信号和测量噪声问题,并可以处理有限和无限时间区间。 状态调节器是指采用状态反馈,使状态向量的各分量迅速趋近于零,而不消耗很多能量的系统。考虑系统被控对象的状态空间方程为: (9) 其中,x为n维状态向量,u为r维控制向量,且不受约束,A(t)为维矩阵,B(t)为维矩阵。寻找一个状态反馈控制率,即确定最优控制矩阵K,使得系统下面的性能指标为最小: (10) 式中Q(t)为对称半正定矩阵;R(t)为对称正定矩阵;F为对称半正定矩阵。在式(10)中,积分号下的第一项,即,表示要求x的过渡过程为最快。但是如果只有这一项是不行的,因为使x的过渡过程为最快的方法是使控制输入量u为无穷大。所以有积分号下的第二项,即,表示对控制能量的能量损耗限制。Q(t)和R(t)分别是对状态变量和输入向量的加权矩阵,它们确定了误差和能量损耗的相对重要性。因此,可以看出式(10)的二次型性能指标的物理意义是:在整个事件区间,特别是终值时刻上状态变量尽量接近于零而又不消耗过大的控制能量。 由线性二次型调节器控制的闭环系统,其动态响应性能直接与加权矩阵Q和R的选取相关,只要选择合适,就能获得良好的控制效果。但由于两者存在相互制约的关系,所以确定最优形式的Q和R以获得全局最优控制仍然是个难题,目前多采用反复试凑的办法。 实际上,加权矩阵Q和R的优化是控制能量和控制性能之间在满足某种最优意义下的折衷,也就是具有侧重于哪一方面的问题。若希望提高控制的快速响应特性,则可以增大Q中相应元素的权重;若希望有效地抑制控制量的幅值及其引起的能量消耗,则可以提高R中相应元素的权重。这就要求对加权矩阵Q和R作统一考虑。 综上所述,具有二次型函数的最优控制问题,实际上就是在于用不大的控制能量来实现较小的误差控制,以在能量和误差两方面实现综合最优控制。 要使性能指标为最小,则可构造一个哈密顿(Hanilton)函数 (11) 由最大值原理,对时不变系统,得到最优控制为: (12) 式中,矩阵P(t)为微分Riccatti方程: (13) 的解。 如果令终止时间,则相应的二次型性能指标变为: (14) 可得到的最优控制为: (15) 式中,常数矩阵P为代数Piccatti方程: (16) 的解。 MATLAB提供了专门的函数指令lqr来求解连续时间Riccati方程,并能确定最佳反馈增益矩阵。现在设计过程中主要任务就是选择合适的加权矩阵Q和R,使得设计的控制器能满足系统的指标要求。式(12)和(15)中给出的线性控制矩阵K为最优控制矩阵,可见,最优控制可以表示成状态变量x的线性函数,借助于状态变量的线性反馈就能实现闭环最优控制,这在工程实践中是很理想的。状态调节器最优控制框图如图3-1所示。 图4-1 系统的控制框图 4.3 状态反馈控制器的实现 4.3.1 系统可控性分析[11] 对于连续时间系统: (17) 系统状态完全可控的条件为:当且仅当向量组,,…,是线性无关的,或维矩阵的秩为。 系统的输出可控性的条件为:当且仅当矩阵的秩等于输出向量的维数。 应用以上原理对系统进行可控性分析,进过雅克比线性化后系统的系数矩阵如下: 在MATLAB中直接利用计算可控性矩阵的ctrb命令计算,程序如下: clc; clear; A=[-0.0108,0,-0.0392,0; 0.008,-0.008,0.0293,0; 0.0006,0.0002,-0.0098,0.0085; 0,0,0..244,-0.0241]; B=[0.0148,0;--0.0039,0;0.0033,0;0,-0.0003]; C=[0,0,1,0;0,0,0,1]; D=0; sys=ss(A,B,C,D); disp('Check the controllability of the system') C0=ctrb(sys); unco=length(A)-rank(C0); if unco~=0 disp('The system is uncontrollable.'); else disp('The system is controllable.'); end 计算结果如下: >>Check the controllability of the system The system is controllable. 可以看到,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量y的维数,所以系统可控,因此可以对系统进行控制器的设计,使系统稳定。 第5章 卡尔曼滤波器的设计与实现 一般来说,基于状态反馈的控制策略的实现都要求知道当前的系统状态信息。在CSTR系统中,关注的主要是各组份的浓度。然而,就现存的工艺条件来讲,测量并及时获得浓度的值是很困难的。而相对来说,温度的测量要容易的多。因此本章主要针对状态不可测的情况设计卡尔曼滤波,通过实时测量反应温度和冷却温度来估计各组份的浓度值,从而基于估计出的状态值设计状态反馈控制器。[17] 5.1 卡尔曼滤波器的设计 5.1.1 问题的提出 当一个系统能观测时,系统的状态可由系统的输入和输出的观测量直接或间接获得。但当系统或观测量受到随机干扰时,由观测量得到的状态精度会受到很大的影响,需要用状态估计的方法。实际的系统中,许多干扰信号是随机的信号,没有确定的变化规律,也无法给出确定的时间或空间函数。这些随机干扰不能简单地利用物理装置或者常规的低通、带通滤波器滤除,需要用新的基于估计理论的方法去估计所需的测量值或状态值。1960年美国学者卡尔曼和布西提出来考虑被估计量和观测值统计特性的最优递推滤波方法,又称为卡尔曼滤波。这种方法既适用于平稳随机过程,又适用于非平稳随机过程,因此得到了广泛的应用。卡尔曼滤波算法是一种由计算机实现的实时递推算法,实质上是一种最优估计方法[6]。 5.1.2 卡尔曼滤波的描述 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。关于这种滤波器的论文由Swerling(1958),Kalman (1960)与Kalman and Bucy(1961)发表《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)[7]。 卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量(英文:measurement)中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,对物体位置的,包含噪声的观察序列预测出物体的坐标位置及速度。在很多工程应用(雷达,计算机视觉)中都可以找到它的身影同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要话题。比如,在雷达中,人们感兴趣的是跟踪目标,但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)要理解卡尔曼滤波器,它的5条公式是其核心内容。结合现代的计算机技术,通过简单的编程就可以实现[9]。 利用下面的例子来探索5条公式: 假设要研究的对象是一个房间的温度。根据经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设用一分钟来做时间单位)。经验不是100%可信得,可能会有上下偏差几度。把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。也把这些偏差看成是高斯白噪声。 现在对于某一分钟有两个有关于该房间的温度值:根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面用这两个值结合他们各自的噪声来估算出房间的实际温度值。 假如要估算时刻的实际温度值。首先要根据时刻的温度值,来预测时刻的温度。因为假定温度是恒定的,所以得到时刻的温度预测值是跟时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果时刻估算出的最优温度值的偏差是3,预测值得不确定度是4度,它们平方相加再开方,就是5)。然后,从温度计那里得到时刻的温度值,假设是25度,同时该值的偏差是4度。 由于用来估算时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少,是用上一时刻的估算值来确定还是用温度计来确定,在这里用它们的协方差(covariance)来判断。因为 (18) 所以=0.78,可以估算出时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。 现在经得到时刻的最优温度值了,下一步就是要进入时刻,进行新的最优估算。在进入时刻之前,还要算出时刻那个最优值(24.56度)的偏差。算法如下:((1-)*5^2)^0.5=2.35。这里的5就是上面的时刻预测的23度温度值的偏差,得出的2.35就是进入时刻以后时刻估算出的最优温度值的偏差(对应于上面的3)。 就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。它运行的很快,而且它只保留了上一时刻的covariance。就是卡尔曼增益(Kalman Gain),其值随时间而改变[8]。 5.1.3 卡尔曼滤波器的算法[5] 首先,引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述[12]: (19) 再加上系统的测量值: (20) 上两式子中,是时刻的系统状态,是时刻对系统的控制量。和是系统参数,对于多模型系统,和为矩阵。是时刻的测量值,是测量系统的参数,对于多测量系统,为矩阵。和分别表示过程和测量的噪声,它们被假设成高斯白噪声(White Gaussian Noise),其协方差分别是,(假设,不随系统状态变化而变化)。 对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面结合它们的covariances来估算系统的最优化输出。 首先利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是,根据系统的模型,可以基于系统的上一状态而预测出现在状态: (21) 式(21)中,是利用上一状态预测的结果,是上一状态最优的结果,为现在状态的控制量,如果没有控制量,它可以为0。 用P表示对应于的covariance: (22) 式(22)中,是对应的covariance,是对应的covariance,表示A的转置矩阵,是系统过程的covariance。式子(21)和(22)就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。 现在有了现在状态的预测结果,然后再收集现在状态的测量值。结合预测值和测量值,我们得到现在状态的最优化估算值: (23) 其中为卡尔曼增益(Kalman Gain): (24) 由以上的公式得到状态下最优的估算值。但是为了要令卡尔曼滤波器不断的运行下去直到系统过程结束,还要更新状态下的协方差: (25) 其中为单位矩阵。当系统进入状态时,就是式子(22)中的。这样,算法就可以自回归的运算下去。 由以上五个公式,通过MATLAB编程,很容易就实现了卡尔曼滤波。 5.2 针对CSTR系统设计卡尔曼滤波器 5.2.1 CSTR系统的离散化[10] 为了采用离散线性卡尔曼滤波,取离散时间为15s将线性化无量纲化后的连续系统进行离散化。离散化程序如下: xs=[2.1402 1.0903 114.1911 112.9060 14.19/3600 -1113.5/3600 5.1 104.9]; [A,B1,B2]=cstr_linearize(xs); lianlqr; C1=[0 0 1 0;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服