全状态反馈控制也可以被称作状态反馈控制,它是现代控制理论的一种控制方法,私信中部分小伙伴问道极点配置还有状态反馈是怎么回事,这里就写一篇文章来解决上述问题。介绍全状态反馈控制(FSFB)之前,根据自己的理解并结合参考文献来介绍一下科学家们为什么要设计FSFB来构造闭环控制,如有不对的地方欢迎纠正!


全状态反馈控制(FSFB)构造的意义

首先,线性系统的被控对象状态方程如下所示:

(1)

给一个结论:在第一个式子中,第一项

代表线性系统的动态特性,系统中的能量如何被存储及被转移取决于矩阵

,第二项

表示系统如何根据输入量进行响应。

因此当有了输入量后,学者们更关心的问题是如何提高系统的动态特性(也就是说如何快速的转移系统中的能量)。

那么证明一下结论中第一项

为什么可以代表系统的动态特性?

证明如下:

利用Laplace对Eq. (1)进行变换:

(2)

假设矩阵

为零矩阵,传递函数如下:
(3)

当满足下式时,系统的极点(Pole)可以被求出。

(4)

然而矩阵

特征根(Eigenvalues)求得方法如下:
(5)

对比Eqs.(4-5),不难发现,原来矩阵A特征根就是系统的极点!如果知道了系统的极点,就可以判断系统的稳定性,和收敛趋近状态及速度。

当系统的极点在s域中的位置如下所示,系统的状态变量变化形态可以从图中看出。

图参考油管中的视频,链接如下所示:

因此可以看出系统状态方程中的第一项

代表系统的动态特性,且矩阵
特征根为系统的极点,极点的位置可以反映出系统的稳定性,如果极点足够远,可以快速使系统收敛,但是能量也越大,且抗干扰能量下降。

全状态反馈控制(FSFB)

因此合理的配置极点可以使系统达到我们想要的结果,这里就需要引入FSFB,有了这个控制器,问题就迎刃而解了,我们可以通过FSFB这种方法来任意改变系统的极点位置。

FSFB有几种结构,三种结构如下所示:

图参考油管中的视频

三种方法都含有参考量

和参数
,为了便于理解,这里介绍一种比例参考型的FSFB:

根据上图中的结构,可以看出这种控制方式非常的简单,FSFB系统的控制率可以表示为如下所示:

(6)

通过代入Eq.(1)于Eq. (6),系统状态方程可以表示为如下:

(7)

因此可以看出系统的极点发生了改变,从A的特征根变为了矩阵

的特征根,而矩阵
可以通过人为的设计参数进行调整,因此可以达到理想的系统控制需求。

问题:那么如何调整系统的极点来满足系统的需求,或者是使系统达到最优的性能呢?

答:可以采用以下两种方法,即利用极点配置(Pole placement,本文重点介绍)的方法来获取参数K,或者可以利用线性二次型LQR(这里的LQR结合FSFB也是LQR最优控制的一种,在专栏中另一篇文章中讲述)来获取参数

极点配置:本质是放置这些极点到系统中想要的(理想的)位置来提高系统动态响应性能。

特别注意是的极点配置优于根轨迹方法,根轨迹是改变参数来改变极点沿着根轨迹的位置,不能够任意摆放极点位置;然而极点配置可以通过改变矩阵的参数来任意的改变改变极点的位置,因此配置起来更加地灵活。

这里我列举一个极点配置的例子来获取参数

极点配置的例子及Matlab仿真分析:

系统状态和输出方程如下所示:

(8)
(9)

Eqs. (8-9)的矩阵对应于Eq. (1)中的矩阵ABCD,因次根据Eq. (5),矩阵A的特征根为-2,1,其中1为正实数,因此系统不稳定。

利用极点配置,令矩阵

的参数为[k1,k2],则矩阵
可以表示如下:
(10)

根据Eq. (5),可以得到如下所示:

(11)

假设我们期望的极点分别为-2,-1,通过上述公式,可以获取矩阵

的参数为[2,1]。

Matlab源代码如下所示:

clcA=[0 1;2 -1];
B=[1;0];
C=[1 0];
D=0;sys=ss(A,B,C,D);%原状态方程
E=eig(A);%原系统的特征根
P=[-2 -1]; %理想的特征根
K=place(A,B,P);%极点配置获取参考KAc=A-B*K;%FSFB矩阵
Ec=eig(Ac);%FSFB系统的特征根
kr=2;%参数kr
sysc=ss(Ac,B*kr,C,D);%新状态方程
step(sysc);%给定输入信号为阶跃信号

当输入为阶跃信号,观察系统的响应为:

改变系统的带宽可以根据调节系统的极点来提高。

FSFB的缺陷

在上述形式的FSFB中,改变参数

可以提高系统的幅值使系统的输出和系统参考值保持一致,然而参数
会影响系统的稳态误差,详细推导如下:

根据比例参考型的FSFB结构,定义误差

(12)

假设矩阵

为零矩阵,根据传递函数Eq. (3)和Eq. (6),可以获得误差方程如下:
(13)

利用终值定理,可以得到:

(14)

因此比例参考型的FSFB的稳态误差为:

(15)

当输入信号为阶跃信号时(

),Eq.(15)可以变换为:
(16)

代入Eq.(3)于传递函数Eq. (16)中,得:

(17)

从式中可以看出,基于这种方法的FSFB系统算法简单且动态响应特性可控,但存在稳态误差,提高参数

会导致稳态误差进一步增大,为了解决这一问题,可以采用积分形式的FSFB(推导与上述推导类似,这里不做推导)。

参考资料包括以下内容,欢迎交流讨论:

https://en.wikipedia.org/wiki/Final_value_theorem​en.wikipedia.orghttps://www.youtube.com/watch?v=wEevt2a4SKI​www.youtube.comhttps://www.youtube.com/watch?v=wEevt2a4SKI​www.youtube.comhttps://www.youtube.com/watch?v=FXSpHy8LvmY​www.youtube.com

c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)相关推荐

  1. c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周三算法与数据结构专题的第12篇文章,动态规划之零一背包问题. 在之前的文章当中,我们一起探讨了二分.贪心.排序和搜索算法,今天我们来 ...

  2. 计算机excel表格相关考试视频,1189.5天通过职称计算机考试:Excel 2003中文电子表格(考点视频串讲+全真模拟).pdf...

    <<5天通过职称计算机考试:Excel 2003中文电子表格(考点视频 串讲+全真模拟)>> 猛点这里下载全部内容 目录: 第1章 Excel应用基础 考点1 Excel的启动 ...

  3. Python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程

    python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程 Python高级全栈开发实战老男孩课程,是可以帮助同学们从零基础开始到项目开发实战的全栈课程,内容非 ...

  4. c++ 多重背包状态转移方程_背包问题之零钱兑换

    读完本文,你可以去力扣拿下如下题目: 518.零钱兑换II ----------- 零钱兑换 2 是另一种典型背包问题的变体,我们前文已经讲了 经典动态规划:0-1 背包问题 和 背包问题变体:相等子 ...

  5. c++ 多重背包状态转移方程_【模板】各种背包问题amp;讲解

    [模板]各种背包问题&讲解  背包问题集合 一般来说,动态规划(DP)都是初学者最难闯过的一关,而在这里详细解说动态规划的一种经典题型:背包问题. 这里介绍的背包分为以下几种:01背包,完全背 ...

  6. 柴天佑pdf 自适应控制_串讲:控制理论:自适应控制(APC)

    自适应控制 (APC) 说道自适应控制(APC),也要追溯到5年前第一次接触,当时还只会应用下面的自适应律公式来求解,这里结合自己的一些想法来对自适应控制进行深入剖析,希望可以帮助到大家. APC的历 ...

  7. c++ 多重背包状态转移方程_【考前再叮嘱】陌生方程式书写

    点击上方蓝字  关注"爱学化学"今日分享                                  陌生方程式书写 作者|何佳欢 它来了,它真的来了,万众瞩目的期中考试正在 ...

  8. http状态码_一些常见的HTTP状态码

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 来源:Linux公社 链接 ...

  9. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

最新文章

  1. LabVIEW图像灰度测量(基础篇—7)
  2. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解
  3. java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
  4. JAVA环境指定xms512_【JAVA学习】java虚拟机内存配置,-Xss256m -Xms512m -Xmx800m -XX:MaxPermSize=512m...
  5. 最全元素水平垂直居中方法
  6. Quadtrees UVA - 297
  7. linux 使用apidoc 生成Restful web Api文档
  8. MATLAB r2016a 配置 VLFeat 库教程(超详细,一看必会)
  9. GoBatch简介 —— 一款基于go语言的企业级批处理框架(Golang下的SpringBatch)
  10. 2000W条数据的Oralce数据库SQL查询优化经验 - 机会总会留给有准备的人
  11. rectangle()函数与rect类详解
  12. switch游戏服务器设置
  13. 蒟蒻の算法题(~~完全不会~~的期望)01
  14. 加菲猫经典语录(中英文对照)
  15. 蓝牙笔记《蓝牙技术基础》
  16. 红木整装——成为现代装修行业中的新宠
  17. 学习笔记:Bulletproofs Frozen Heart
  18. 南京邮电大学操作系统实验五:Windows平台多进程共享内存通信
  19. 【Web编程实践课第二次作业】体育新闻世界
  20. 用jquery实现md5加密

热门文章

  1. Windows系统调用学习笔记(一)—— API函数调用过程
  2. CSS之Background-size:cover
  3. ACM入门之【最短路】
  4. vs2010的基础设置
  5. 【uni-app】深度作用选择器解决修改checkbox样式无效问题
  6. MySQL使用ALTER TABLE创建索引
  7. 如何将瀑布流里的图片加链接_「魔幻瀑布」180度全景接片+曝光合成!
  8. 【Java】 5.8 继承和组合
  9. Spring Boot版微信支付教程(视频 源码笔记)
  10. 一个基于Spring极度简单的Restful API工具