主要内容

lqg

线性二次高斯(LQG)设计

语法

reg=lqg(系统、QXU、QWV)
reg=lqg(系统、QXU、QWV、QI)
reg=lqg(系统、QXU、QWV、QI、1dof)
reg=lqg(系统,QXU,QWV,QI,'2dof')
reg=lqg(___;,'current')
[reg,info]=lqg

描述

reg=lqg(系统、QXU、QWV)计算最优线性二次高斯(LQG)调节器规则给出了状态空间模型系统设备的配置和权重矩阵QXUQWV.动态调节器规则使用测量值Y产生控制信号U规定Y在零值附近。使用正反馈将此调节器连接到设备输出Y.

LQG调节器使成本函数最小化

J = E { τ 1. τ 0 τ [ x T , U T ] Q x U [ x U ] D T }

以植物方程为准

D x / D T = A. x + B U + W Y = C x + D U + v

工艺噪音在哪里W测量噪声v是具有协方差的高斯白噪声:

E ( [ W v ] [ W ' v ' ] ) = Q W v

reg=lqg(系统、QXU、QWV、QI)使用设定点命令R和测量Y生成控制信号U.规则采取整体行动确保Y跟踪命令R.

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

J = E { τ 1. τ 0 τ ( [ x T , U T ] Q x U [ x U ] + x T Q x ) D T }

哪里x是跟踪误差的积分R-Y.对于MIMO系统,R,Yx长度必须相同。

reg=lqg(系统、QXU、QWV、QI、1dof)计算一个单自由度伺服控制器,该控制器E=R-Y而不是[R;Y]作为输入。

reg=lqg(系统,QXU,QWV,QI,'2dof')相当于LQG(系统、QXU、QWV、QI)并产生如前所示的两自由度伺服控制器。

reg=lqg(___;,'current')使用“当前”Kalman估计器,该估计器使用x[N|N]作为计算离散系统LQG调节器时的状态估计。

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

例子

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

这个例子展示了如何为以下系统设计一个线性二次高斯(LQG)调节器、一个单自由度LQG伺服控制器和一个两自由度LQG伺服控制器。

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

D x D T = A. x + B U + W Y = C x + D U + v

哪里

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 ]

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

Q 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=[0110;0101;1000];B=[0.31;01;-0.30.9];C=[1.91.31];D=[0.53-0.61];sys=ss(A,B,C,D);

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

    nx=3;%国家数目ny=1;%产出数量Qn=[4 2 0;2 1 0;0 0 1];Rn=0.7;R=[1 0;0 2]QXU=blkdiag(0.1*眼(nx),R);QWV=blkdiag(Qn,Rn);QI=眼(ny);

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

    KLQG=lqg(系统、QXU、QWV)
    此命令返回以下LQG调节器:
    A=x1_e x2_e x3_e x1_e-6.212-3.814-4.136 x2_e-4.038-3.196-1.791 x3-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 x3-0.000820.0303 u2-0.7147-0.7115-0.711 u2 u2组:连续输入-输出时间组:2个测量组:1个信道名称:u2个信道组。

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

    KLQG1=lqg(系统、QXU、QWV、QI、,“1dof”)
    此命令返回以下LQG伺服控制器:
    4.891 0.891 0.18 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0组:名称通道错误1输出组:名称通道nels控制1,2连续时间模型。

  5. 键入以下命令,形成两自由度LQG伺服控制器:

    KLQG2=lqg(系统、QXU、QWV、QI、,“2自由度”)
    此命令返回以下LQG伺服控制器:
    4.891 0.891 0.18 8 8 8 8 8 8 8 0.0 0 0 0.7684 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 u2 0 0 0输入组:名称通道设定值1 Measu重新命名2个输出组:名称通道控制1,2个连续时间模型。

提示

算法

控制器方程为:

  • 连续时间:

    D x E = A. x E + B U + L ( Y C x E D U ) U = K x x E K x

  • 对于离散时间:

    x [ N + 1. | N ] = A. 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 M x + K W M W ) Y N N [ N ]

      Y N N [ N ] = Y [ N ] C x [ N | N 1. ] D U [ N ]

在这里

  • A.,B,CD是LQG调节器的状态空间矩阵,规则.

  • x是跟踪误差的积分R-Y.

  • Kx,KW,K,L,MxMW控制器和估计器增益矩阵是否返回信息.

在R2006a之前引入