MPC学习笔记1:基于状态空间模型的预测控制(2)
基于估计的无约束预测控制
1.引言
基本上这两个部分都是在线性理论的框架下,利用状态空间法来建模、求解控制律。状态空间模型在理论分析上具有很强的优越性,但实际应用中能直接准确且经济地获取系统状态并不容易。有些状态,尤其是温度(如火箭喷口温度等)只能间接估计,因此我们可以使用状态观测器来重构一个易于实现的系统来模拟原系统的状态。
具体的做法是,先利用原系统可以测量的变量,如系统可测输入输出,使得在一定条件下满足估计的状态与原状态渐进等价,随后利用观测器重构的系统设计控制律。

观测器收敛条件
在设计观测器的时候,首先要判断是否存在观测器。这里以全维观测器为例,观测器重构系统与原系统维度相同。设系统可测量输出为:

设计如下估计器:

若估计器的矩阵对(A,Cm)可测,即全部不能观阵型稳定,则状态观测器存在,可以通过设计L矩阵使(A-LCm)渐进稳定来达到观测器收敛条件。进一步,若(A,Cm)能观,即全部模态在输出端可测,还可以通过设计L任意配置(A-LCm)的极点来控制估计误差的衰减速度,道理和任意配置系统极点设计状态反馈控制器是一样的,两个问题是对偶关系。
2.算法设计
基于估计的算法和原算法基本相同,只是能利用的只有测量值ym和估计值。在预测过程中,用估计值作为预测系统未来状态的起点:

得到的预测方程、控制律均与之前相同:



Ep用到的是估计值,估计值是由测量值代入估计器公式得到。而估计的状态又带入Yp与参考R做平方差形成MSE误差当作待优化值,因此一定要保证L的设计良好才可以实现算法。

3.闭环系统分析
仅对稳定性进行分析,其余包括抗干扰性能和无静差跟踪性能与无约束预测控制相同。
考虑可测和不可测误差,被控系统如下:

这里已经将Δu(k)带入,注意这里是原系统,我们用由估计器设计出来的控制律作用到了原系统上(估计器只是为了模拟原系统行为来获得原来很难获得的状态)。而且,在引入了估计器之后,系统变得更加复杂了,基于估计设计的控制律能否控制原系统,新的系统能否稳定都是需要分析的。

将ym(k)=Cmx(k)和控制律带入估计器:


现在重新定义带状态观测器系统的状态向量:

则:

新的系统矩阵为:

为了满足控制系统设计的基本要求,即名义渐进稳定。我们必须设计控制器让一个标称系统在控制输入的作用下渐进稳定。标称系统(也叫名义系统)是没有任何外部扰动和模型失配的理想系统,与名义稳定相对的是鲁棒稳定。要达到名义稳定需要让这个新的系统矩阵的所有特征根的模长小于一。我们需要验证这个无约束MPC闭环系统是否满足分离原理。
我们希望能将系统满足分离原理,这样意味着闭环系统的极点由原系统在控制律作用下的极点和估计器的极点组成,状态观测器(估计器)的引入对原系统在控制律作用下的极点不影响,这样就可以分别独立设计两个系统的极点。只要两个子系统的极点都达到稳定要求,整合起来的新系统也满足稳定要求。
按道理来讲,基于观测器反馈控制的线性系统是满足分离原理的。之前我们得到的MPC控制律也可以看作一种状态反馈控制律,现在来验证一下是否真的满足分离原理。为此,我们希望找到一个代数等价的系统,这个系统的系统矩阵是个广义上三角矩阵,且对角线上的元素正好分别是原系统在控制律作用下的系统矩阵(参考上一篇结果)和观测器的系统矩阵(A-LCm)。
我们知道,系统的状态变量是人为选择的,一个系统可以定义不同状态。同一个系统可以有很多基于状态空间描述的数学模型。但对于一个系统,不同的状态之间有着明确的数学变换关系,即非奇异线性变换关系:
存在一个可逆矩阵P,满足x1 = Px2。
因为状态需要完全表征系统动力学行为,所以不同的状态却包含相同的系统信息,自然满足线性变换的关系。反过来利用这个性质,我们可以将已知状态变换成其他状态,从而得到系统新的数学描述,即新的状态空间方程。我们称这样新旧两种系统(其实是系统描述)是代数等价的。两个代数等价系统的系统参数矩阵满足这样的变换关系:
A2 = PA1P-1 B2 = PB1 C2=C1P-1 D2 = D1 , P为适当阶的可逆矩阵。
两个代数等价的系统具有很多共有属性,除了能控、能观性之外,我们需要用到的就是代数等价系统具有相同的特征多项式和极点。为此,我们定义这样的P矩阵,对由基于估计的MPC算法得到的系统矩阵进行代数等价变形:

对原系统做相似变换:

上式中的A - BuKmpc(Sx + ICc ) 是状态全部可以测量时预测控制闭环系统的稳定性判定矩阵而A - LCm 是状态估计器的稳定性判定矩阵.因此, 基于估计的预测控制闭环系统的极点由状态全部可测时的控制器极点和状态估计器的极点组成.也就是说, 对无约束MPC 闭环系统来说, 分离原理成立, 状态反馈和估计器可以独设计.因此, 我们可以得到结论:基于估计的无约束MPC 闭环系统名义渐近稳定, 当且仅当状态反馈MPC 稳定和状态估计器稳定。
MPC学习笔记1:基于状态空间模型的预测控制(2)的更多相关文章
- MPC学习笔记1:基于状态空间模型的预测控制(1)
MPC调节器 1.给定一个由状态空间法描述的离散系统: MPC控制器与其他线性二次调节器(LQR)的区别就在于其可以很好的将系统动态约束纳入考虑. 采样周期Ts控制了算法的效率,太大会错过很多系统运行 ...
- ArcGIS案例学习笔记-批量裁剪地理模型
ArcGIS案例学习笔记-批量裁剪地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:空间数据的批量裁剪 优点:1.批量裁剪:任意多个目标数据,去裁剪任意 ...
- Java学习笔记之---单例模型
Java学习笔记之---单例模型 单例模型分为:饿汉式,懒汉式 (一)要点 1.某个类只能有一个实例 2.必须自行创建实例 3.必须自行向整个系统提供这个实例 (二)实现 1.只提供私有的构造方法 2 ...
- WebGL three.js学习笔记 加载外部模型以及Tween.js动画
WebGL three.js学习笔记 加载外部模型以及Tween.js动画 本文的程序实现了加载外部stl格式的模型,以及学习了如何把加载的模型变为一个粒子系统,并使用Tween.js对该粒子系统进行 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- ARMV8 datasheet学习笔记5:异常模型
1.前言 2.异常类型描述 见 ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST 一文 3. 异常处理路由对比 AArch32.AArch64架 ...
- Javascript MVC 学习笔记(一) 模型和数据
写在前面 近期在看<MVC的Javascript富应用开发>一书.本来是抱着一口气读完的想法去看的.结果才看了一点就傻眼了:太多不懂的地方了. 仅仅好看一点查一点,一点一点往下看吧,进度虽 ...
- 大数据学习笔记3 - 并行编程模型MapReduce
分布式并行编程用于解决大规模数据的高效处理问题.分布式程序运行在大规模计算机集群上,集群中计算机并行执行大规模数据处理任务,从而获得海量计算能力. MapReduce是一种并行编程模型,用于大规模数据 ...
- Django学习笔记(2)——模型,后台管理和视图的学习
一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...
随机推荐
- edgedb 内部pg 数据存储的探索 (一)基本环境搭建
edgedb 是基于pg 上的对象关系数据库,已经写过使用docker 运行的demo,为了探索内部的原理,做了一下尝试,开启pg 访问 后边会进一步的学习 环境准备 为了测试,使用yum 安装 安装 ...
- Reactor和Proactor
服务器编程框架 IO处理单元 :处理用户连接,读写网络数据:(单机) :作为接入服务器,实现负载均衡;(集群) 请求队列 :各个单元之间通信的抽象,通常被实现为池的一部分:一个单元通知另外一个单元,或 ...
- springmvc的dispatchservlet初始化
初始化做的事情,处理下controller的映射关系 https://blog.csdn.net/qq_38410730/article/details/79426673
- security cookie 机制(2)--- 初始化___security_cookie
在 cookie 检查中,必定先要取出初始的 cookie 值: 0011392E A1 14 70 11 00 mov eax,dword ptr [___securit ...
- Spring配置从配置文件读取属性值
spring将properties文件读取后在配置文件中直接将对象的配置信息填充到bean中的变量里. 原本使用PropertyPlaceholderConfigurer类进行文件信息配置.Prope ...
- URLConnection(互联网)
一.urlconnection连接Servlet 1:> URL请求的类别: 分为二类,GET与POST请求.二者的区别在于: ...
- 使用Microsoft.Office.Interop.Excel.dll 文件来生成excel 文件
日常工作中经常需要将后台的数据导出成excel 格式,这里通过调用微软提供的类库来生成excel 文件. 具体是引用 了Microsoft.Office.Interop.Excel.dll 类库文件 ...
- nexus3.14.0版本linux环境安装、启动、搭建私库
本文介绍的是nexus3.14.0版本在linux环境下安装.启动.搭建私库. nexus3以上的版本太新了,网上很少介绍安装细节的.据了解和2.X版本有所不同了. 1.前提 linux机器上需先安装 ...
- c# 简单方便的连接oracle方式
通过nuget安装ManagedDataAccess (自动生成的config里面的配置都可以删掉) winform程序,拖出一个datagridview和button using Oracle.Ma ...
- 转载:揪出MySQL磁盘消耗迅猛的真凶
揪出MySQL磁盘消耗迅猛的真凶 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2:背景介绍 为了提升数据库资源利用率,一个实例中,在不互相影响,保证业务 ...