主要内容

lqg

线性二次高斯(LQG)设计

语法

reg = lqg(sys,QXU,QWV)
reg = lqg(sys,QXU,QWV,QI)
reg = lqg(sys,QXU,QWV,QI,'1dof')
reg = lqg(sys,QXU,QWV,QI,'2dof')
Reg = lqg(___,'current')
[reg,info] = lqg(___)

描述

reg = lqg(sys,QXU,QWV)计算最优线性-二次-高斯(LQG)调节器注册给定一个状态空间模型sys和权重矩阵的QXU而且QWV.动态调节器注册使用测量y产生控制信号u调节y在零值附近。使用正反馈将此调节器连接到工厂输出y

LQG调节器使代价函数最小化

J E lim τ 1 τ 0 τ x T u T x u x u d t }

以植物方程为准

d x / d t 一个 x + B u + w y C x + D u + v

过程噪声w测量噪声v为具有协方差的高斯白噪声:

E w v w v W V

reg = lqg(sys,QXU,QWV,QI)使用setpoint命令r和测量y以产生控制信号u注册有积分作用保证吗y跟踪命令r

LQG伺服控制器使成本函数最小化

J E lim τ 1 τ 0 τ x T u T x u x u + x T x d t }

在哪里x是跟踪误差的积分吗r-y.对于MIMO系统,ry,x长度必须相同。

reg = lqg(sys,QXU,QWV,QI,'1dof')计算一个单自由度伺服控制器er-y而不是[ry作为输入。

reg = lqg(sys,QXU,QWV,QI,'2dof')等于LQG (sys、QXU QWV气)并产生了先前所示的二自由度伺服控制器。

Reg = lqg(___,'current')使用“电流”卡尔曼估计,它使用xn|n]作为计算离散时间系统LQG调节器时的状态估计。

[reg,info] = lqg(___)返回结构中的控制器和估计器增益矩阵信息对于任何前面的语法。例如,您可以使用控制器和估计增益以观察者的形式实现控制器。有关更多信息,请参见算法

例子

线性-二次-高斯(LQG)调节器与伺服控制器设计

本例展示了如何针对以下系统设计线性二次高斯(LQG)调节器、一自由度LQG伺服控制器和二自由度LQG伺服控制器。

该植物有三种状态(x),两个控制输入(u),三个随机输入(w),一个输出(y),输出的测量噪声(v),以及以下状态和测量方程。

d x d t 一个 x + B u + w y C x + D u + v

在哪里

一个 0 1 0 0 0 1 1 0 0 B 0.3 1 0 1 0.3 0.9 C 1.9 1.3 1 D 0.53 0.61

系统有如下噪声协方差数据:

n E w w T 4 2 0 2 1 0 0 0 1 R n E v v T 0.7

对于监管机构,使用以下成本函数来定义监管绩效和控制努力之间的权衡:

J u 0 0.1 x T x + u T 1 0 0 2 u d t

对于伺服控制器,使用以下成本函数来定义跟踪器性能和控制努力之间的权衡:

J u 0 0.1 x T x + x 2 + u T 1 0 0 2 u d t

为本系统设计LQG控制器:

  1. 在MATLAB命令窗口中输入以下命令创建状态空间系统:

    A = [0 1 0;0 0 1;1 0 0];B = [0.3 1;0 1;-0.3 0.9];C = [1.9 1.3 1];D = [0.53 -0.61];sys = ss(A,B,C,D);

  2. 通过输入以下命令定义噪声协方差数据和权重矩阵:

    Nx = 3;%状态数Ny = 1;输出的百分比Qn = [4 2 0;2 10 0;0 0 1];Rn = 0.7;R = [1 0;0 2] QXU = blkdiag(0.1*eye(nx),R);QWV = blkdiag(Qn,Rn);QI =眼睛(ny);

  3. 通过输入以下命令形成LQG调节器:

    KLQG = lqg(sys,QXU,QWV)
    该命令返回以下LQG调节器:
    A = x1_e x2_e x3_e -6.212 -3.814 -4.136 x2_e -4.038 -3.196 -1.791 x3_e -1.418 -1.973 -1.766 B = y1 x1_e 2.365 x2_e 1.432 x3_e 0.7684 C = x1_e x2_e x3_e u1 -0.02904 0.0008272 0.0303 u2 -0.7147 -0.7115 -0.7132 D = y1 u1 0 u2 0输入组:Name Channels Measurement 1输出组:Name Channels Controls 1,2连续时间模型。

  4. 输入以下命令形成单自由度LQG伺服控制器:

    KLQG1 = lqg(sys,QXU,QWV,QI,1景深的
    该命令返回以下LQG伺服控制器:
    A = x1_e x2_e x3_e xi1 x1_e -7.626 -5.068 -4.891 0.9018 x2_e -5.108 -4.146 -2.362 0.6762 x3_e -2.121 -2.604 -2.141 0.4088 xi1 0 0 0 0 B = e1 x1_e -2.365 x2_e -1.432 x3_e -0.7684 xi1 C = x1_e x2_e x3_e xi1 u1 -0.5388 -0.4173 -0.2481 0.5578 u2 -1.492 -1.388 -1.131 0.5869 D = e1 u1 0 u2 0输入组:Name Channels Error 1输出组:Name Channels Controls 1,2连续时间模型。

  5. 输入以下命令形成二自由度LQG伺服控制器:

    KLQG2 = lqg(sys,QXU,QWV,QI,2自由度的
    该命令返回以下LQG伺服控制器:
    A = x1_e x2_e x3_eξ1 x1_e x3_e x2_e 0.9018 -7.626 -5.068 -4.891 -5.108 -4.146 -2.362 0.6762 -2.121 -2.604 -2.141 0.4088(ξ1 0 0 0 0 B = r1 y1 x1_e 0 2.365 1.432 x3_e x2_e 0 0 0.7684ξ1 1 1 C = x1_e x2_e x3_eξ1 u1 u2 -1.492 -1.388 -1.131 0.5578 -0.5388 -0.4173 -0.2481 0.5869 D = r1 y1 u1 0 0 u2 0 0输入组:名字渠道选点1测量2输出组:名字渠道控制1、2的连续时间模型。

提示

算法

控制器方程为:

  • 对于连续时间:

    d x e 一个 x e + B u + l y C x e D u u K x x e K x

  • 对于离散时间:

    x n + 1 | n 一个 x n | n 1 + B u n + l y n C x n | n 1 D u n

    • 延迟估计量:

      u n K x x n | n 1 K x n

    • 目前估计量:

      u n K x x n | n K x n K w w n | n K x x n | n 1 K x n K x x + K w w y n n n

      y n n n y n C x n | n 1 D u n

在这里,

  • 一个BC,D为LQG调节器的状态空间矩阵,注册

  • x是跟踪误差的积分吗r-y

  • KxKwKlx,w是否返回控制器和估计器增益矩阵信息

版本历史

R2006a之前介绍过