当前位置: 首页 > news >正文

simulink降维观测器设计_现代控制理论线性系统入门(九)设计状态观测器

2fd521a10980759f27438d63e08ee205.png

上一章传送门:

善道:线性系统控制入门(八)最优控制——LQR控制器​zhuanlan.zhihu.com
089888e97e6d23e044f9b9b75000223a.png

到目前为止,对于状态反馈控制器设计方法都是基于状态变量全是已知的。然而在很多情况下,这是不可能抑或是技术上有很大难度。那么对于那些未知的状态变量,如何才能借助仅有的可测的输出变量以及已知的输入变量来求得?这就是状态观测器的思想的由来。现在依然基于线性时不变的MIMO系统来设计状态观测器。

(9.1)

其中状态变量

,输入变量
,被测得的输入变量
,动态矩阵
,控制矩阵
,测量矩阵

9.1平凡观测器

使用受控对象本来的模型模拟受控对象(Simulation des Streckenmodells)是估计状态变量的最简单的方式。用于模拟的模型是

(9.2)

是对实际状态变量的估计变量,直接这样设计一个观测器,称为平凡观测器(trivialer Beobachter),或者被称为模拟器(Simulator)。而模拟器究竟能模拟到什么程度,可以用观测误差
来衡量。它能展示实际状态值和模拟器估计值之间的误差。

自然估计误差

也会满足微分方程

(9.3)

估计误差的动态显然是由原本系统决定的,如果原本系统渐近稳定,那么误差动态也是渐近稳定的。此外,如果估计误差的衰减行为或者说是误差动态在稳定的系统里也不受影响。也就是说,如果直接使用平凡观测器并不能消去估计误差,主要的原因就是平凡观测器并没有使用输出变量

的测量值,所以没法被影响。

9.2 完全Luenberger观测器

在平凡观测器的基础上,有改良过的所谓的Luenberger观测器。

它包含模拟器和修正器两部分。

(9.4)

e66fd8a99486332d9f29bfdcc649a7c6.png
图9.1 Luenberger观测器框图

Luenberger观测器有一个用输出向量误差

来权衡以及修正观测器估计值,而观测器增益矩阵
就是这个修正权重。继续考察新的误差微分方程

(9.5)

这是一个和前面设计状态反馈控制器类似的齐次微分方程,为了让估计误差在

时收敛于零,只需要选择合适的观测器增益矩阵
,使得合成误差动态矩阵
的特征值都处在左半平面,即合成的误差动态是渐近稳定的。

而这个新的Luenberger增益

就似乎和之前的Kalman增益
类似。观察它们

(9.6)

显然,

就对应了原系统的对偶系统使用了状态反馈控制器设计后的
。对偶系统为

(9.7)

对偶系统的反馈控制律为

(9.8)

之后可以如法炮制,类比反馈控制器来设计MIMO系统的Luenberger观测器的反馈增益。

由于MIMO系统复杂且耦合度高,这里只先讨论使用Ackermann公式来设计SISO的观测器的增益的情况。即这样的SISO系统

(9.9)

待设计的观测器模型为

(9.10)

它的误差动态方程为

(9.11)

因为对偶系统具有以下性质

(9.12)

于是仿照原来Ackermann公式,会有

(9.13)

其中

自变量为
特征多项式

所以转置之后,观测器增益为

(9.14)

定理9.1 对SISO系统的状态观测器使用的Ackermann公式
当系统完全能观时,估计误差动态矩阵
的特征值可以通过Luenberger增益任意自由配置。反馈增益向量为

(9.15)

其中
是能观矩阵逆矩阵的最后一行,而系数
为期望特征多项式
的系数。

设计观测器的特征值时,为了尽快让模拟器的状态估计值逼近实际值,而不再有观测估计误差,应该尽可能让观测器的特征值的实部绝对值设计的大一点,至少误差衰减速度要比系统动态矩阵的主导特征值要更快。

测量噪声的影响

理论上来说,观测器误差动态的特征值可以设置得任意远,因为没有像设计状态反馈控制器一样得输入阈值限制。但是实际中却总会出现很多测量噪声

直接影响到测量值。

(9.16)

如果把测量噪声再考虑进来,那么估计误差的动态为

(9.17)

所以如果让观测器增益的特征值设计过大,导致增益矩阵

过大,由于非齐次方程动态无法收敛到零,增益矩阵
对测量误差
反而有放大作用。

9.3 分离原理

到目前为止,控制器和观测器的设计都是分开单独设计的。当两者同时设计时,会怎么样呢?

考察线性时不变系统

(9.18)

以及对应的状态观测器

(9.19)

以及基于状态估计值

的状态反馈控制律

(9.20)

因为之前的反馈控制增益

以及观测增益
都是分开设计,现在合并在一起设计的话,就要考虑它们组合在一起后的闭环系统动态矩阵的稳定性。

于是需要考察扩展状态

以及扩展状态方程

(9.21)

扩展状态方程同时考虑了系统状态变量以及估计误差变量的动态,而参考输入信号

可以实现对闭环系统的导引。

91fa25c91c7be84dad71e2e87a8a2f9d.png
图9.2 状态控制器和观测器的组合

最后合成的总系统扩展动态矩阵

的特征值为

(9.22)

所以系统的合成动态矩阵的特征值分别为独立的反馈控制增益

以及观测增益
两部分各自的特征值多项式乘积。这就是所谓的分离原理(Separationsprinzip),也就是说系统的状态反馈控制器和状态观测器可以分别独立设计再最后合成。
定理 9.2 分离原理
式(9.1)系统如果完全能观能控。那么合成后的闭环系统的合成的特征值多项式
为状态控制器的特征多项式
和观测器的特征多项式
的乘积

(9.23)

当联合设计观测器和反馈控制器时,观测器增益后新动态特征值不是

比较,而是和
的特征值比较。总的设计可以遵循以下流程:

1) 检验受控系统的能观性和能控性

2) 设计状态反馈控制律

3) 借助

的特征值来确定观测器极点

4) 计算检验观测器增益

。比如借助对偶系统设计控制器时,如果选择LQR设计观测器,那应该之后借助观测器特征值来检验从3)中的预给值是否满足设计要求。

9.4 干扰信号的处理(扰动观测器)

在前文提到过对外界干扰信号的处理手段,一种是建立扰动变量串接补偿项,另一种是使用PI控制器。这两种手段都是基于扰动项是满足这样的线性形式

(9.24)

来对系统作用的,其中扰动

,扰动输入矩阵
。然而很多情况下可能不是恒定的扰动,但是如果能够知道干扰信号的信息对于设计扰动变量串联补偿项是很有用。有几种比较常见的扰动信号类型:恒定扰动信号,周期扰动信号以及衰减扰动信号。

恒定扰动信号

比如库仑摩擦力,扰动模型为

(9.25)

7deb916ff7b3249ba211a37ccafb9123.png
图9.3 恒定扰动信号

周期扰动信号

比如恒定频率的扰动,扰动模型为

(9.26)

6511f98f362a6ce9d6065b6c7c745796.png
图9.4 周期扰动信号

衰减扰动信号

比如反应器里的化学反应动态,扰动模型为

(9.27)

01ce9fcd5f3791b2cbb7db73d2460a23.png
图9.5 衰减扰动信号

而当扰动信号是不可测的时候,就无法直接设计扰动变量串联补偿项,而这时候就可以使用扰动变量观测器来估计输入的干扰信号。不过这样就必须先知道扰动的类型。这样才能建立起扰动变量模型

(9.28)

从而能够联合原系统动态方程得到增广的模型

(9.29)

可以仿照之前联合设计观测器控制器时,也对这样的联合系统使用Luenberger观测器。这样估计扰动变量

就可以得到补偿后的控制律

(9.30)

a7660dcebd6b7b3b90e888f17e967a87.png
图9.6 增广的误差模型

9.5 降维观测器

完整的Luenberger观测器会估计全部的状态变量,不过会有一些状态变量,它们本身是能通过对输出变量的测量以及一些状态变量之间线性组合的关系,知晓部分的状态变量信息。比如只有一维的标量系统

(9.31)

显然可以直接从输出方程知道唯一的状态变量

的全部信息,对于高维数的状态方程,也可以通过输出方程来获得状态变量的信息,对于一个MIMO的系统

(9.32)

其中状态变量

,输入变量
,系统动态矩阵
,控制输入矩阵
,而测量矩阵
,但是
。接下来我们可以把状态变量分割成通过
能观测到的状态变量,以及不能的部分,通过可逆变换矩阵
坐标变换,得到的新的状态变量坐标

(9.33)

其中

对应了不能观测部分的状态变量的变换关系。所以有变换

(9.34)

其中

其中有矩阵块

,
,
,
。这种表示方法下的系统坐标被称为传感器坐标(Sensorkoordinaten),因为实际用到的传感器能测量的值就是其新状态变量的值。因为
,现在再使用一个观测器增益
来构造新的状态变量

(9.35)

对其求导,得到新的状态方程

(9.36)

因为

都一直已知,可以把这两者一同视作输入,而未知的状态变量
可以设计一个平凡观测器来模拟并观测

(9.37)

所以新坐标的观测误差

可以用下面的误差动态来描述

(9.38)

而我们也能直接获得不可直接观测的状态变量

(9.39)

定理9.3 降维Luenberger观测器
当系统的测量矩阵
满足
,其完全能观。那么就可以在传感器坐标下,使用减少维数的降维观测器,式(9.37)以及式(9.39)来观测并重构剩下未知的状态变量
。其中会用到降维的观测器增益
来任意配置观测误差的动态特性。

借助估计状态变量

以及测量输出值
可以在可逆坐标变换矩阵帮助下,求得原坐标下所有状态变量。

(9.40)

类比MIMO系统的控制器设计观测器增益也可以通过对测量误差预给的特征多项式,来不唯一地确定观测器误差动态。在SISO系统中

观测器增益
就能通过特征多项式系数比较,唯一确定了。

降维观测器最大的意义体现在,可以用更少的传感器去读取一些状态变量或者输出测量变量的实时信息,节省了开销,提高了观测器的效率。

例9 降维观测器的设计

考虑之前的线性化以后的倒立摆模型,小车位置

以及摆动角
。原来的状态方程为

(9.41)

原有的状态变量为

。为了降低观测维度,重新排列坐标顺序,假设小车的位置以及倒立摆的摆角两个状态量都能测量,则新的传感器坐标下有
,
, 有新的状态方程

(9.42)

省去一些直接可读变量以后,所需的观测器是只有二阶的降维观测器。观测器增益

需要选择

(9.43)

比如期望的特征值只需满足

,即

(9.44)

所以最终的降维观测器为

(9.45)

本章粗略讨论了一下在控制器设计过程中出现的观测器的作用以及设计方法,下一章要讨论输出信号如何跟踪输入信号。

下一章传送门:

善道:线性系统控制入门(十)轨迹追踪反馈控制​zhuanlan.zhihu.com
089888e97e6d23e044f9b9b75000223a.png

参考文献:

[1]Regelungstechnik B (Zustandsraummethoden) (WS 2019), Prof. Dr.-Ing. Knut Graichen

Lehrstuhl für Regelungstechnik, Friedrich-Alexander-Universität Erlangen-Nürnberg

相关文章:

  • java nio中,HeapByteBuffer与DirectByteBuffer的区别
  • excel找到对应数据的列指标_python数据分析——医院销售数据实战案例
  • 二维数组元素的地址
  • 大话2烧法助手_大话西游2说出你自己的服务器名称,看看有没有一起玩耍的小伙伴...
  • 运行项目时报Server Tomcat v8.0 Server at localhost failed to start.
  • web安全
  • python 元组_python学习04-2:元组
  • python-day27--hashlib模块-摘要算法
  • 简述python执行原理_Python解释执行原理分析
  • 关于javascript 的reduce方法
  • python合法标识符_python合法标识符要求是什么
  • 不会英语学python_不会英语能不能学编程
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • 不同的电脑打印预览不同怎么解决_华为笔记本电脑怎么样?Matebook 14与Matebook 13的有哪些不同...
  • python 相对路径导入_从Python中的相对路径导入
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Apache的基本使用
  • extract-text-webpack-plugin用法
  • Facebook AccountKit 接入的坑点
  • gitlab-ci配置详解(一)
  • Gradle 5.0 正式版发布
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • js算法-归并排序(merge_sort)
  • React-Native - 收藏集 - 掘金
  • redis学习笔记(三):列表、集合、有序集合
  • SpringBoot几种定时任务的实现方式
  • windows下使用nginx调试简介
  • 关于for循环的简单归纳
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 简析gRPC client 连接管理
  • 将回调地狱按在地上摩擦的Promise
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 实战|智能家居行业移动应用性能分析
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 数据结构java版之冒泡排序及优化
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​低代码平台的核心价值与优势
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • $jQuery 重写Alert样式方法
  • (12)Hive调优——count distinct去重优化
  • (Python第六天)文件处理
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十) 初识 Docker file
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)模仿学习-完成后台管理页面查询
  • (学习日记)2024.01.09
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .mysql secret在哪_MySQL如何使用索引
  • .NET : 在VS2008中计算代码度量值