lqg公司

线性二次高斯(LQG)设计

句法

reg=lqg(系统,QXU,QWV)
REG = LQG(SYS,QXU,QWV,QI)
REG = LQG(SYS,QXU,QWV,QI, '1DOF')
REG = LQG(SYS,QXU,QWV,QI, '2DOF')
reg=lqg(“当前”)
[reg,info]=lqg(注册信息)

说明

reg=lqg(系统,QXU,QWV)计算最优线性二次高斯(LQG)调节器REG给定一个状态空间模型SYS工厂和加权矩阵QXUQWV. 动态调节器REG使用测量ÿ以产生控制信号ü调节ÿ围绕零值。使用正反馈到这个调节器连接到工厂产量ÿ

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

Ĵ = Ë { LIM τ 1 τ 0 τ [ X Ť ü Ť ] Q X ü [ X ü ] d Ť }

根据植物方程

d X / d Ť = 一个 X + ü + w ^ ÿ = C X + d ü + v

其中过程噪声w ^和测量噪声v是协方差高斯白噪声:

Ë [ w ^ v ] [ w ^ v ] = Q w ^ V

REG = LQG(SYS,QXU,QWV,QI)使用设定命令[R和测量ÿ以产生控制信号üREG具有整体行动,以确保ÿ跟踪命令[R

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

Ĵ = Ë { LIM τ 1 τ 0 τ [ X Ť ü Ť ] Q X ü [ X ü ] + X 一世 Ť Q 一世 X 一世 d Ť }

哪里X一世是跟踪误差的积分[R-ÿ。对于MIMO系统,[Rÿ,和X一世必须具有相同的长度。

REG = LQG(SYS,QXU,QWV,QI, '1DOF')计算一个一自由度伺服控制器Ë=[R-ÿ而不是 [[R;ÿ]作为输入。

REG = LQG(SYS,QXU,QWV,QI, '2DOF')相当于LQG(SYS,QXU,QWV,QI)并产生先前所示的两度的自由度伺服控制器。

reg=lqg(“当前”)使用“当前”卡尔曼估计,其用途X[ñ|ñ]作为状态估计计算一个LQG调节器,用于离散时间系统时。

[reg,info]=lqg(注册信息)返回结构中的控制器和估计器增益矩阵信息对于任何先前的语法。您可以使用控制器和估计收益,例如,实现观测形式控制器。欲了解更多信息,请参阅算法

实例

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

此示例示出了如何设计线性二次高斯(LQG)调节器,一程度的自由度LQG伺服控制器,以及用于以下系统的两度的自由度LQG伺服控制器。

工厂有三种状态(X),两个控制输入(ü),三个随机输入(w ^),一个输出(ÿ),测量噪声的输出(v),和下面的状态和测量方程式。

d X d Ť = 一个 X + ü + w ^ ÿ = C X + d ü + v

哪里

一个 = [ 0 1 0 0 0 1 1 0 0 ] = [ 0.3分 1 0 1 - 0.3分 0.9分 ] C = [ 1.9条 1.3款 1 ] d = [ 0.53 - 0.61分 ]

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

Q ñ = Ë w ^ w ^ Ť = [ 4 2 0 2 1 0 0 0 1 ] [R ñ = Ë v v Ť = 0.7分

对于调节器,使用下面的代价函数定义调节性能和控制力之间的权衡:

Ĵ ü = 0 0.1分 X Ť X + ü Ť [ 1 0 0 2 ] ü d Ť

伺服控制器,使用下面的成本函数来定义跟踪性能和控制的努力之间的折衷:

Ĵ ü = 0 0.1分 X Ť X + X 一世 2 + ü Ť [ 1 0 0 2 ] ü d Ť

要为此系统设计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 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(SYS,QXU,QWV)
    此命令返回以下LQG调节器:
    y1 u1 0 u2 0输入组:名称通道测量1输出组:名称通道控制1,2连续时间模型。

  4. 形成通过键入以下命令中的一个度的自由度LQG伺服控制器:

    KLQG1 = LQG(SYS,QXU,QWV,QI,'第1页'
    该命令返回以下LQG伺服控制器:
    26-5.068~-4.891 0.9018 X2YE-4.106-4.146-2.362 0.6762 X3Y-2.144 -2.141 0.4088 XI1 0 0 0 0 B 0=E1 X1IE -2.365 X2YE -1.432 X3YE -0.768 4XI1 1 C=X1YE X2YE X3YE X1 U1 -0.38 8-1 0.4173 -0.2481U2 -1.492 -1.38 8 -1.131 0.5869 D=E1 U1 0 U2 0输入组:名称通道错误输出组:名称a= x1xe x2ye x3ie x1 x1ye -7.6通道控制1,2连续时间模型。

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

    KLQG2=lqg(系统,QXU,QWV,QI,“二自由度”
    该命令返回以下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 = R1 Y1 x1_e 0 2.365 0 x2_e 1.432 x3_e 0 0.7684 XI1 1-1 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 = R1 Y1 U1 0 0 U2 0 0输入组:名称频道设定点1测量2输出组:名称频道控制1,2连续时间模型。

提示

算法

控制器方程是:

  • 对于连续时间:

    d X Ë = 一个 X Ë + ü + 大号 ÿ - C X Ë - d ü ü = - ķ X X Ë - ķ 一世 X 一世

  • 对于离散时间:

    X [ ñ + 1 | ñ ] = 一个 X [ ñ | ñ - 1 ] + ü [ ñ ] + 大号 ÿ [ ñ ] - C X [ ñ | ñ - 1 ] - d ü [ ñ ]

    • 延迟估计:

      ü [ ñ ] = - ķ X X [ ñ | ñ - 1 ] - ķ 一世 X 一世 [ ñ ]

    • 当前估计值:

      ü [ ñ ] = - ķ X X [ ñ | ñ ] - ķ 一世 X 一世 [ ñ ] - ķ w ^ w ^ [ ñ | ñ ] = - ķ X X [ ñ | ñ - 1 ] - ķ 一世 X 一世 [ ñ ] - ķ X 中号 X + ķ w ^ 中号 w ^ ÿ 一世 ñ ñ [ ñ ]

      ÿ 一世 ñ ñ [ ñ ] = ÿ [ ñ ] - C X [ ñ | ñ - 1 ] - d ü [ ñ ]

这里,

  • 一个C,和d是LQG调节器的状态空间矩阵,REG

  • X一世是跟踪误差的积分[R-ÿ

  • ķXķw ^ķ一世大号中号X,和中号w ^控制器和估计器增益矩阵是否返回信息

也可以看看

||||||

在R2006a之前引入