Main Content

线性二次高斯 (LQG) 设计

线性二次高斯 (LQG) 控制是一种现代状态空间方法,用于设计具有积分动作的最佳动态调节器和伺服控制器(也称为设定点跟踪器)。此方法允许您权衡调节/跟踪器性能和控制力度,并考虑过程扰动和测量噪声。

要设计 LQG 调节器和设定点跟踪器,请执行以下步骤:

  1. 构造 LQ 最优增益。

  2. 构造卡尔曼滤波器(状态估计器)。

  3. 通过连接 LQ 最优增益和卡尔曼滤波器构建 LQG 设计。

有关使用 LQG 设计创建 LQG 调节器的详细信息,请参阅用于调节的线性二次高斯 (LQG) 设计

有关使用 LQG 设计创建 LQG 伺服控制器的详细信息,请参阅具有积分动作的伺服控制器的线性二次高斯 (LQG) 设计

上述主题主要讲述连续时间情形。有关离散时间 LQG 设计的信息,请参阅 dlqrkalman 参考页。

用于调节的线性二次高斯 (LQG) 设计

您可以设计一个 LQG 调节器,用于在以下模型中将输出 y 调节为接近零的值。

此模型中的被控对象受到了w 扰动(过程噪声)并由控制 u 驱动。该调节器依靠含噪测量值 y 来生成这些控制。被控对象状态和测量方程采用以下形式

x˙=Ax+Bu+Gwy=Cx+Du+Hw+v

w 和 v 在模型中都被当作白噪声。

注意

LQG 设计需要被控对象的状态空间模型。您可以使用 ss 将其他模型格式转换为状态空间。

要设计 LQG 调节器,可以使用下表中所示的设计方法。

设计 LQG 调节器使用的方法使用以下命令

一步到位的快速设计方法,需满足以下条件:

  • 需要最优的 LQG 控制器,并且 E(wv') 或 H 为非零值。

  • 所有已知(确定性)输入均为控制输入,所有输出均为测得值。

  • 积分器状态的加权独立于被控对象的状态和控制输入。

lqg

一种更灵活的三步设计方法,允许您指定:

  • 任意 G 和 H。

  • 非控制的已知(确定性)输入和/或未测得的输出。

  • 积分器状态、被控对象状态和控制的灵活权重方案。

lqrkalmanlqgreg

有关详细信息,请参阅

构造调节的最优状态反馈增益

您可以从以下元素构造 LQ 最优增益:

  • 状态空间系统矩阵

  • 加权矩阵 QRN,它们定义调节性能(x(t) 到达零的速度)和控制力度之间的权衡。

要构造最优增益,请键入以下命令:

K= lqr(A,B,Q,R,N)

此命令计算最优增益矩阵 K,对于该矩阵,状态反馈律 u=Kx 最小化以下连续时间的二次代价函数:

J(u)=0{xTQx+2xTNu+uTRu}dt

本软件通过求解代数黎卡提方程来计算增益矩阵 K。

有关构造 LQ 最优增益的信息,包括软件在离散时间情形下最小化的代价函数,请参阅 lqr 参考页。

构造卡尔曼状态估计器

LQG 调节和伺服控制需要卡尔曼状态估计器,因为没有全状态测量就无法实现 LQ 最优状态反馈。

您构造的状态估计 x^ 使得 u=Kx^ 对于输出反馈问题保持最优。您需要基于以下元素构造卡尔曼状态估计器增益:

  • 状态空间被控对象模型 sys

  • 噪声协方差数据 QnRnNn

    下图显示 QnRnNn 所需的维度。如果 Nn 为 0,可以将其省略。

    Qn、Rn 和 Nn 所需的维度

注意

对于调节和伺服控制,可以按同样的方式构造卡尔曼状态估计器。

要构造卡尔曼状态估计器,请键入以下命令:

[kest,L,P] = kalman(sys,Qn,Rn,Nn);

该命令使用以下被控对象方程计算卡尔曼状态估计器 kest

x˙=Ax+Bu+Gwy=Cx+Du+Hw+v

其中 w 和 v 在建模时被当作白噪声。L 是卡尔曼增益,P 是协方差矩阵。

本软件使用卡尔曼滤波器生成以下状态估计:

ddtx^=Ax^+Bu+L(yCx^Du)

其中使用输入 u(控制)和 y(测量)。噪声协方差数据

E(wwT)=Qn,E(vvT)=Rn,E(wvT)=Nn

通过代数黎卡提方程确定卡尔曼增益 L。

卡尔曼滤波器是处理高斯白噪声的最优估计器。具体来说,它能够最小化估计误差的渐近协方差
    limtE((xx^)(xx^)T)

(估计误差 xx^ 的渐进协方差)。

有关详细信息,请参阅 kalman 参考页。有关卡尔曼滤波器实现的完整示例,请参阅卡尔曼滤波

构建 LQG 调节器

要构建 LQG 调节器,请通过键入以下命令连接卡尔曼滤波器 kest 和 LQ 最优增益 K

regulator = lqgreg(kest, K);
此命令将构建下图所示的 LQG 调节器。

该调节器具有以下状态空间方程:

ddtx^=[ALC(BLD)K]x^+Lyu=Kx^

有关构建 LQG 调节器的详细信息,请参阅 lqgregLQG Regulation: Rolling Mill Case Study

具有积分动作的伺服控制器的线性二次高斯 (LQG) 设计

您可以为以下模型设计具有积分动作的伺服控制器:

您设计的伺服控制器需确保输出 y 跟踪参考命令 r,同时拒绝过程扰动 w 和测量噪声 v。

上图中的被控对象受到了 w 的扰动并由控制 u 驱动。伺服控制器依靠含噪测量值 y 来生成这些控制。被控对象状态和测量方程的形式如下

x˙=Ax+Bu+Gwy=Cx+Du+Hw+v

w 和 v 在模型中都被当作白噪声。

注意

LQG 设计需要被控对象的状态空间模型。您可以使用 ss 将其他模型格式转换为状态空间。

要设计 LQG 伺服控制器,您可以使用下表所示的设计方法。

设计 LQG 伺服控制器使用的方法使用以下命令

一步到位的快速设计方法,需满足以下条件:

  • 需要最优的 LQG 控制器,并且 E(wv') 或 H 为非零值。

  • 所有已知(确定性)输入均为控制输入,所有输出均为测得值。

  • 积分器状态的加权独立于被控对象的状态和控制输入。

lqg

一种更灵活的三步设计方法,允许您指定:

  • 任意 G 和 H。

  • 非控制的已知(确定性)输入和/或未测得的输出。

  • 积分器状态、被控对象状态和控制的灵活权重方案。

lqikalmanlqgtrack

有关详细信息,请参阅

构造伺服控制的最优状态反馈增益

您可以基于以下各项构造 LQ 最优增益:

  • 状态空间被控对象模型 sys

  • 加权矩阵 QRN,它们定义跟踪器性能和控制力度之间的权衡

要构造最优增益,请键入以下命令:

K= lqi(sys,Q,R,N)

此命令计算最优增益矩阵 K,对于该矩阵,状态反馈律 u=Kz=K[x;xi] 最小化以下连续时间的二次代价函数:

J(u)=0{zTQz+uTRu+2zTNu}dt

本软件通过求解代数黎卡提方程来计算增益矩阵 K。

有关构造 LQ 最优增益的信息,包括软件在离散时间情形下最小化的代价函数,请参阅 lqi 参考页。

构造卡尔曼状态估计器

LQG 调节和伺服控制需要卡尔曼状态估计器,因为没有全状态测量就无法实现 LQ 最优状态反馈。

您构造的状态估计 x^ 使得 u=Kx^ 对于输出反馈问题保持最优。您需要基于以下元素构造卡尔曼状态估计器增益:

  • 状态空间被控对象模型 sys

  • 噪声协方差数据 QnRnNn

    下图显示 QnRnNn 所需的维度。如果 Nn 为 0,可以将其省略。

    Qn、Rn 和 Nn 所需的维度

注意

对于调节和伺服控制,可以按同样的方式构造卡尔曼状态估计器。

要构造卡尔曼状态估计器,请键入以下命令:

[kest,L,P] = kalman(sys,Qn,Rn,Nn);

该命令使用以下被控对象方程计算卡尔曼状态估计器 kest

x˙=Ax+Bu+Gwy=Cx+Du+Hw+v

其中 w 和 v 在建模时被当作白噪声。L 是卡尔曼增益,P 是协方差矩阵。

本软件使用卡尔曼滤波器生成以下状态估计:

ddtx^=Ax^+Bu+L(yCx^Du)

其中使用输入 u(控制)和 y(测量)。噪声协方差数据

E(wwT)=Qn,E(vvT)=Rn,E(wvT)=Nn

通过代数黎卡提方程确定卡尔曼增益 L。

卡尔曼滤波器是处理高斯白噪声的最优估计器。具体来说,它能够最小化估计误差的渐近协方差
    limtE((xx^)(xx^)T)

(估计误差 xx^ 的渐进协方差)。

有关详细信息,请参阅 kalman 参考页。有关卡尔曼滤波器实现的完整示例,请参阅卡尔曼滤波

构建 LQG 伺服控制器

要构建一个二自由度 LQG 伺服控制器,请通过键入以下命令连接卡尔曼滤波器 kest 和 LQ 最优增益 K

servocontroller = lqgtrack(kest, K);
此命令将构建下图所示的 LQG 伺服控制器。

该伺服控制器具有以下状态空间方程:

[x^˙x˙i]=[ABKxLC+LDKxBKi+LDKi00][x^xi]+[0LII][ry]u=[KxKi][x^xi]

有关构建 LQG 伺服控制器的详细信息,包括如何构建单自由度 LQG 伺服控制器,请参阅 lqgtrack 参考页。

另请参阅

| | | | |

相关主题