1. 状态观测器分类

在现代控制理论中,控制系统的基本结构和经典控制理论一样,仍然是由受控对象和反馈控制器两部分构成的闭环系统。不过在经典理论中习惯于采用输出反馈,而在现代控制理论中则更多地采用状态反馈。由于状态反馈能提供更丰富的状态信息和可供选择的自由度,因而使系统容易获得更为优异的性能。

1.1 基于状态反馈的控制器设计

状态反馈是将系统的每一个状态变量乘以相应的反馈系数,然后反馈到输入端与参与输入相加形成控制律,作为受控系统的控制输入。图1是一个多输入—多输出系统状态反馈的基本结构。

图1  多输入多输出系统状态反馈结构图

系统状态方程如下:

                                                      (1)

式中;。若,则受控系统简化为:

                                                        (2)

简记为

状态线性反馈控制律

                                                                 (3)

其中, 维参考输入, 维状态反馈系数阵或状态反馈增益阵。对单输入系统,维行向量。

将(3)式代入(1)式整理可得状态反馈闭环系统的状态空间表达式如下:

                                             (4)

,则

                                               (5)

简记为

闭环系统的传递函数矩阵为

                                         (6)

比较开环系统与闭环系统可见,状态反馈阵的引入,并不增加系统的维数,但可通过的选择自由地改变闭环系统的特征值,从而使系统获得所要求的性能。

1.2 基于输出反馈的控制器设计

输出反馈是采用输出矢量构成线性反馈律。在经典控制理论中主要讨论这种反馈形式。图2示出多输入—多输出系统输出反馈的基本结构。

图2  多输入多输出系统输出反馈结构图

系统状态方程如下:

                                                         (7)

输出线性反馈控制律为

                                                          (8)

式中,维输出反馈增益阵。对单输出系统,维列向量。闭环系统状态空间表达式可由式(7)代入(8)得:

                                          (9)

整理得 :

                                 (10)

再把式(10)代入式(7)求得

                      (11)

,则

                                                          (12)

简记。由式(12)可见,通过选择输出反馈增益阵也可以改变闭环系统的特征值,从而改变系统的控制特性。

输出反馈系统的传递函数矩阵为

                                   (13)

若受控系统的传递函数阵为

                                                (14)

存在下列关系

                                         (15)

或者

                                         (16)

比较上述两种基本形式的反馈可以看出,输出反馈中的与状态反馈中的相当。但由于,所以可供选择的自由度远比小,因而输出反馈只能相当于一部分状态反馈。只有当时,才能等同于全状态反馈。因此,在不增加补偿器的条件下,输出反馈的效果显然不如状态反馈系统好。但输出反馈在技术实现上的方便性则是其突出优点。

2. 基于观测器的控制器

系统模型

                                                       (17)

假定系统是能控、能观的。使得闭环系统极点为的状态反馈控制律是。若系统状态不能直接测量,可以利用龙伯格观测器来估计系统的状态。

                   (18)

进而用来替代原来的控制。

代入(18)式,可得利用状态估计值的反馈控制器如下:

                   (19)

基于观测器的输出反馈控制系统结构图3所示:

图3  基于观测器的状态反馈控制系统结构

由图3可知,系统增加了积分器,闭环系统是2n 阶的。

(1)若选择为闭环系统状态,则系统状态方程

                                                          (20)

                                                        (21)

写成矩阵向量形式:

                                                    (22)

定义误差向量:,则

                                   (23)

其特征多项式为

           (24)

(2)若选择为闭环系统状态,则系统状态方程

                                                        (25)

其特征多项式为

   (26)

分离性原理 闭环系统的极点是极点配置单独设计产生的极点和由观测器单独设计产生的极点两部分组成。

3. 设计实例

系统状态空间模型的系数矩阵:

,    ,      

已知系统状态不能直接测量,试设计控制器,使得闭环系统渐近稳定。

控制器一:输出反馈控制器

输出反馈控制器:

系统闭环矩阵:

                                           (27)

特征多项式:

结论:无论k取什么值,无法将两个闭环极点配置在左半开复平面。

控制器二:状态反馈控制器

第1步: 判断系统能控性和能观性

% 系统矩阵
A = [0 1; -1,0];
B = [1;0];
C = [1 0];% 判断系统是否完全能控
E_con = ctrb(A,B);           % 求解能控性矩阵
E_val_con = rank(E_con);     % 根据能控性矩阵是否满秩判断能控性E_obs = obsv(A,C);           % 求解能观性矩阵
E_val_obs = rank(E_obs);     % 根据能观性矩阵是否满秩判断能观性

根据上述结果可知,系统完全能控、能观。

第二步:设计状态反馈控制器

闭环矩阵:

                                                (28)

特征多项式:

结论:选取,则闭环极点

控制器三:基于观测器的状态反馈控制器

控制器二是在系统状态可测的情况下求得的,如果系统状态不可测,则需要设计相应状态观测器。假设观测器的两个极点为均为-2,则根据极点配置方法,可得观测器增益矩阵,则观测器模型可写为:

                                                     (29)

根据分离性原理,由以上分别得到的状态反馈和观测器增益矩阵可构造基于观测器的输出反馈控制器。

                                                                       (30)

系统的动态特性

                 (31)

检验系统的稳定性,对象和误差的初始条件

    ,

利用MATLAB实现的代码如下:

1. 求观测器增益系数L和控制器增益系数K

clc
clear all
% 系统矩阵
A = [0 1; -1,0];
B = [1;0];
C = [1 0];
D = 0;x0 = [1;0];  % 初值
e0 = [0.5;0];G=ss(A,B,C,D);%判断系统是否完全能控
E_con = ctrb(A,B);           % 求解能控性矩阵
E_val_con = rank(E_con);     % 根据能控性矩阵是否满秩判断能控性
E_obs = obsv(A,C);           % 求解能观性矩阵
E_val_obs = rank(E_obs);     % 根据能观性矩阵是否满秩判断能观性p_L = [-2;-2];    % 观测器期望极点
L = (acker(A',C',p_L))';  % 观测器增益系数L
p_K = [-0.5+1.32i;-0.5-1.32i]; % 系统期望极点
K = place(A,B,p_K);  % 状态反馈增益系数Kfprintf('观测器增益系数 L=\n')
disp(L);
fprintf('控制器增益系数 K=\n')
disp(K);

2. main.m

clc
clear allx0 = [1;0;0.5;0];
[t,x] = ode45(@gcq,[0,10],x0);
figure;
hold off;
plot(t,x(:,1),'r-');
hold on;
plot(t,x(:,3),'b-');figure;
plot(t,x(:,2),'r-');
hold on;
plot(t,x(:,4),'b-');

3. gcq.m

function dx = gcq(t,x)
%u = sin(t);
K = [1,-1];
u = -K*[x(3);x(4)];
y = x(1);dx(1) = x(2) + u;
dx(2) = -x(1);dx(3) = -4*x(3) + x(4) + u + 4*y;
dx(4) = -4*x(3) + 3*y;dx = dx';

系统曲线如下:

故障诊断5——状态观测器和输出观测器相关推荐

  1. 全维观测器matlab,全维状态观测器详解.ppt

    全维状态观测器 xp座机电话号码8 状态重构和状态观测器 状态重构即状态观测器的提出,主要是为了解决状态反馈在性能上的不可替代性和在物理上的不能实现性的矛盾. (1)不可替代性:先前各节中极点配置,镇 ...

  2. 滑膜观测器物理意义_什么是 滑模观测器

    展开全部 滑模观测器,也称为状态重构32313133353236313431303231363533e59b9ee7ad9431333431363638器.它是一类动态系统,是指根据系统的外部变量(输 ...

  3. 永磁同步电机(PMSM)无传感器控制基于滑膜观测器Matlab/Simulink仿真分析

    文章目录 前言 一.状态观测器 二.滑膜状态观测器 2.1.滑膜观测器的原理 2.2.传统的滑膜观测器 2.3.改进的滑膜观测器 三.Matlab/Simulink仿真分析 3.1.仿真电路分析 3. ...

  4. 了解卡尔曼滤波器1--状态观测器

    在本文中,我们将讨状态观测器.这个概念将有助于解释卡尔曼滤波器是什么以及它是如何工作的. 让我们从一个例子开始.这是小蒂米, 你想知道他的心情以及他现在的感受.然而,没有直接的方法能测量他的心情.所以 ...

  5. 小猫爪:PMSM之FOC控制08-状态观测器的引入

    小猫爪:PMSM之FOC控制08-状态观测器的引入 1 前言 2 状态观测器的原理 2 状态观测器的完善 END 1 前言   在前面已经实现了电机的双闭环了,不过唯一美中不足的就是需要使用传感器去获 ...

  6. 降维状态观测器的直观理解与仿真

    例题出自郑大钟<线性系统理论>第二版课后题6.20.课本上只会堆公式并没有解释为什么要这样做,我结合这个例子直观解释一下降维状态观测器的设计过程和原因. x˙=[−1−2−20−1110− ...

  7. 线性系统理论——状态观测器状态反馈

    在学习现代控制理论的时候,想必大家都学过状态观测器这个东西.状态观测器的作用就是在实际控制系统某些地方不方便或者不能加传感器的时候,对系统的各部分状态做一个估计,这个估计一般是通过系统输出推导后得到的 ...

  8. 基于MATLAB的交流电动机调速系统仿真

    1 绪论 课题研究背景及目的 1.1.1 研究背景 直流调速系统的主要优点在于调速范围广.静差率小.稳定性好以及具有良好的动态性能.在相当长时期内,高性能的调速系统几乎都是直流调速系统.尽管如此,直流 ...

  9. 汽车悬挂系统的现代控制分析(现代控制理论课程小论文)

    目录 0.摘要 4 1. 建立模型 5 1.1. 物理系统分析 5 1.2. 数学模型 5 1.3. 计算机仿真 8 2. 能控能观性判别 10 2.1. 能控能观性定义 10 2.2. 判别方法 1 ...

最新文章

  1. D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)
  2. 链接3: SQL语句教程
  3. 二叉树节点数据结构-练习 5 二叉树的建立 遍历
  4. python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法
  5. [Silverlight]TextBlock控件全攻略
  6. oracle biee
  7. java实现分布式redis锁_使用redis实现分布式锁
  8. MarkDown的介绍
  9. 字符串的规范使用(二)
  10. python读取Excel实例详细教程
  11. python3.6字典有序_为什么Python 3.6以后字典有序并且效率更高?
  12. XCODE---个人常用快捷键整理
  13. 0x80070035找不到网络路径_ln -s 创建软链接时的路径问题
  14. gperftools安装使用_记一次使用gperftools优化线上程序
  15. TCP 粘包、半包 Netty 全搞定
  16. Git:切换分支时,无法切换到分支
  17. 注意,Windows7只能安装Python 3.8以下的版本
  18. Matlab之正态拟合直方图绘制函数histfit
  19. 奇葩报错之返回值为 -1073741515 (0xc0000135) ‘未找到依赖 dll‘
  20. 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...

热门文章

  1. QIIME 2教程. 21进化树q2-phylogeny(2020.11)
  2. 计算机组成原理78h是什么,计算机组成原理
  3. Golang学习--TOML配置处理
  4. react的路由切换动画
  5. vue-cli3+cubeUI快速搭建项目
  6. flutter如何实现删除线效果
  7. 做技术的,因为年龄和颈椎问题,想逐渐脱离码农状态,大家对30-35岁职业规划有什么好的建议? - 知乎...
  8. Unity 物品模型旋转展示
  9. 超级码力在线编程大赛初赛 第3场
  10. 树和森林(森林的部分已经看不懂了)