线性二次型最优控制器LQR设计原理以及matlab实现

这次我们分以下几部分来讲解LQR及其应用:

线性二次型最优控制器概述
连续系统线性二次型最优控制
离散系统线性二次型最优控制
线性二次型Gauss最优控制

应用经典控制理论设计控制系统,能够解决很多简单、确定系统的实际设计问题。但是对于诸多新型而复杂的控制系统,例如多输入多输出系统与阶次较高的系统,往往得不到满意的结果。这时就需要有在状态空间模型下建立的最优控制策略。

最优控制是现代控制理论的核心。所谓最优控制,就是在一定条件下,在完成所要求的控制任务时,使系统的某种性能指标具有最优值。根据系统不同的用途,可提出各种不用的性能指标。最优控制的设计,就是选择最优控制,以使某一种性能指标为最小。

线性二次型最优控制设计是基于状态空间技术来设计一个优化的动态控制器。系统模型是用状态空间形式给出的线性系统,其目标函数是状态和控制输入的二次型函数。二次型问题就是在线性系统约束条件下选择控制输入使二次型目标函数达到最小。

线性二次型最优控制一般包括两个方面:线性二次型最优控制问题(LQ问题),具有状态反馈的线性最优控制系统;线性二次型Gauss最优控制问题,一般是针对具体系统噪声和量测噪声的系统,用卡尔曼滤波器观测系统状态。

  • 连续系统线性二次型最优控制
    这部分的原理有很多文献,我推荐一个大家了解一下,我会把链接上传在最后。
  • 连续系统二次型最优控制的MATLAB函数
    在MATLAB工具箱中,提供了求解连续系统二次型最优控制的函数:lqr()、 lqr2()、 lqry()。其调用格式为:
    [ K,S,E] = lqr(A,B,Q,R,N)

其中,A为系统的状态矩阵;B为系统的输出矩阵;Q为给定的半正定实对称常数矩阵;R为给定的正定实对称常数矩阵;N代表更一般化性能指标中交叉乘积项的加权矩阵;K为最优反馈增益矩阵;S为对应Riccati方程的唯一正定解P(若矩阵A-BK是稳定矩阵,则总有正定解P存在);E为矩阵A-BK的特征值。

A,B,Q,R大家都应该很清楚,或者通过文献去了解一下,就知道什么意思了。这里的N很少用,就如上文解释的: 这个是一个交叉乘积,意思是是状态和输入的乘积,这一项因素就是耦合状态和输入两部分而产生的cost, 一般情况下我们也不会使用。

此外,上述问题要有解,必须满足三个条件:
(1) (A,B)是稳定的;stable
(2) R>0且Q-N*inverse®*transpose(N)≥0;
(3)(Q-NR-1NT,A-BR-1NT)在虚轴上是能观的。observable
当上述条件不满足时,则二次型最优控制无解,函数会显示警告信号。这个会线性理论中给出的结论是相同的。

  • 离散系统线性二次型最优控制

同样,离散系统的原理也很相似,参见我给出的文献了解原理

  • 线性二次型Gauss最优控制

考虑系统随机输入噪声与随机量测噪声的线性二次型的最优控制叫做线性二次Gauss(LQG)最优控制。这是一种输出反馈控制,对解决线性二次型最优控制问题更具有实用性。

根据LQG问题的分离原理,典型的线性二次型Gauss最优控制的解可以分解为下面两个问题:

  • LQ最优状态反馈控制问题;
  • 带有扰动的状态估计问题。

设计LQG控制器的一般步骤如下。
(1)根据二次型的性能指标J,寻求最优状态反馈增益矩阵K。
(2)设计一个卡尔曼滤波器来估计系统状态。
(3)构建LQG控制器。
下面介绍Kalman滤波器和LQG控制器设计的MATLAB实现。

  • Kalman滤波器:
    在实际应用中,若系统存在随机扰动,通常系统的状态需要由状态方程Kalman滤波器的形式给出。Kalman滤波器就是最优观测器,能够抑制或滤掉噪声对系统的干扰和影响。利用Kalman滤波器对系统进行最优控制是非常有效的。在MATLAB的工具箱中提供Kalman()函数来求解系统的Kalman滤波器。

  • LQG最优控制器的MATLAB实现
    我们已经知道,LQG最优控制器是由系统的最优反馈增益K和Kalman滤波器构成:

线性二次型最优控制器LQR设计原理以及matlab实现_第1张图片
在系统最优反馈K和Kalman滤波器设计已经完成的情况下,可借助MATLAB工具箱函数reg()来实现LQG最优控制。函数调用格式为:

rlqg=reg(sys,K,L)

其中,sys为系统状态空间模型,K为用函数lqr()等设计的最优反馈增益,L为滤波器反馈增益,rlqg为LQG调节器。

参考文献
https://download.csdn.net/download/gophae/11831909

你可能感兴趣的:(LQR控制,最优控制,Matlab)