线性二次高斯 (LQG) 设计
线性二次高斯 (LQG) 控制是一种现代状态空间方法,用于设计具有积分动作的最佳动态调节器和伺服控制器(也称为设定点跟踪器)。此方法允许您权衡调节/跟踪器性能和控制力度,并考虑过程扰动和测量噪声。
要设计 LQG 调节器和设定点跟踪器,请执行以下步骤:
构造 LQ 最优增益。
构造卡尔曼滤波器(状态估计器)。
通过连接 LQ 最优增益和卡尔曼滤波器构建 LQG 设计。
有关使用 LQG 设计创建 LQG 调节器的详细信息,请参阅用于调节的线性二次高斯 (LQG) 设计。
有关使用 LQG 设计创建 LQG 伺服控制器的详细信息,请参阅具有积分动作的伺服控制器的线性二次高斯 (LQG) 设计。
上述主题主要讲述连续时间情形。有关离散时间 LQG 设计的信息,请参阅 dlqr
和 kalman
参考页。
用于调节的线性二次高斯 (LQG) 设计
您可以设计一个 LQG 调节器,用于在以下模型中将输出 y 调节为接近零的值。
此模型中的被控对象受到了w 扰动(过程噪声)并由控制 u 驱动。该调节器依靠含噪测量值 y 来生成这些控制。被控对象状态和测量方程采用以下形式
w 和 v 在模型中都被当作白噪声。
注意
LQG 设计需要被控对象的状态空间模型。您可以使用 ss
将其他模型格式转换为状态空间。
要设计 LQG 调节器,可以使用下表中所示的设计方法。
设计 LQG 调节器使用的方法 | 使用以下命令 |
---|---|
一步到位的快速设计方法,需满足以下条件:
| lqg |
一种更灵活的三步设计方法,允许您指定:
| 有关详细信息,请参阅
|
构造调节的最优状态反馈增益
您可以从以下元素构造 LQ 最优增益:
状态空间系统矩阵
加权矩阵
Q
、R
和N
,它们定义调节性能(x(t) 到达零的速度)和控制力度之间的权衡。
要构造最优增益,请键入以下命令:
K= lqr(A,B,Q,R,N)
此命令计算最优增益矩阵 K
,对于该矩阵,状态反馈律 最小化以下连续时间的二次代价函数:
本软件通过求解代数黎卡提方程来计算增益矩阵 K。
有关构造 LQ 最优增益的信息,包括软件在离散时间情形下最小化的代价函数,请参阅 lqr
参考页。
构造卡尔曼状态估计器
LQG 调节和伺服控制需要卡尔曼状态估计器,因为没有全状态测量就无法实现 LQ 最优状态反馈。
您构造的状态估计 使得 对于输出反馈问题保持最优。您需要基于以下元素构造卡尔曼状态估计器增益:
状态空间被控对象模型
sys
噪声协方差数据
Qn
、Rn
和Nn
下图显示
Qn
、Rn
和Nn
所需的维度。如果Nn
为 0,可以将其省略。Qn、Rn 和 Nn 所需的维度
注意
对于调节和伺服控制,可以按同样的方式构造卡尔曼状态估计器。
要构造卡尔曼状态估计器,请键入以下命令:
[kest,L,P] = kalman(sys,Qn,Rn,Nn);
该命令使用以下被控对象方程计算卡尔曼状态估计器 kest
:
其中 w 和 v 在建模时被当作白噪声。L
是卡尔曼增益,P
是协方差矩阵。
本软件使用卡尔曼滤波器生成以下状态估计:
其中使用输入 u(控制)和 y(测量)。噪声协方差数据
通过代数黎卡提方程确定卡尔曼增益 L。
卡尔曼滤波器是处理高斯白噪声的最优估计器。具体来说,它能够最小化估计误差的渐近协方差
:
(估计误差 的渐进协方差)。
构建 LQG 调节器
要构建 LQG 调节器,请通过键入以下命令连接卡尔曼滤波器 kest
和 LQ 最优增益 K
:
regulator = lqgreg(kest, K);
该调节器具有以下状态空间方程:
有关构建 LQG 调节器的详细信息,请参阅 lqgreg
和 LQG Regulation: Rolling Mill Case Study。
具有积分动作的伺服控制器的线性二次高斯 (LQG) 设计
您可以为以下模型设计具有积分动作的伺服控制器:
您设计的伺服控制器需确保输出 y 跟踪参考命令 r,同时拒绝过程扰动 w 和测量噪声 v。
上图中的被控对象受到了 w 的扰动并由控制 u 驱动。伺服控制器依靠含噪测量值 y 来生成这些控制。被控对象状态和测量方程的形式如下
w 和 v 在模型中都被当作白噪声。
注意
LQG 设计需要被控对象的状态空间模型。您可以使用 ss
将其他模型格式转换为状态空间。
要设计 LQG 伺服控制器,您可以使用下表所示的设计方法。
设计 LQG 伺服控制器使用的方法 | 使用以下命令 |
---|---|
一步到位的快速设计方法,需满足以下条件:
| lqg |
一种更灵活的三步设计方法,允许您指定:
| 有关详细信息,请参阅
|
构造伺服控制的最优状态反馈增益
您可以基于以下各项构造 LQ 最优增益:
状态空间被控对象模型
sys
加权矩阵
Q
、R
和N
,它们定义跟踪器性能和控制力度之间的权衡
要构造最优增益,请键入以下命令:
K= lqi(sys,Q,R,N)
此命令计算最优增益矩阵 K
,对于该矩阵,状态反馈律 最小化以下连续时间的二次代价函数:
本软件通过求解代数黎卡提方程来计算增益矩阵 K。
有关构造 LQ 最优增益的信息,包括软件在离散时间情形下最小化的代价函数,请参阅 lqi
参考页。
构造卡尔曼状态估计器
LQG 调节和伺服控制需要卡尔曼状态估计器,因为没有全状态测量就无法实现 LQ 最优状态反馈。
您构造的状态估计 使得 对于输出反馈问题保持最优。您需要基于以下元素构造卡尔曼状态估计器增益:
状态空间被控对象模型
sys
噪声协方差数据
Qn
、Rn
和Nn
下图显示
Qn
、Rn
和Nn
所需的维度。如果Nn
为 0,可以将其省略。Qn、Rn 和 Nn 所需的维度
注意
对于调节和伺服控制,可以按同样的方式构造卡尔曼状态估计器。
要构造卡尔曼状态估计器,请键入以下命令:
[kest,L,P] = kalman(sys,Qn,Rn,Nn);
该命令使用以下被控对象方程计算卡尔曼状态估计器 kest
:
其中 w 和 v 在建模时被当作白噪声。L
是卡尔曼增益,P
是协方差矩阵。
本软件使用卡尔曼滤波器生成以下状态估计:
其中使用输入 u(控制)和 y(测量)。噪声协方差数据
通过代数黎卡提方程确定卡尔曼增益 L。
卡尔曼滤波器是处理高斯白噪声的最优估计器。具体来说,它能够最小化估计误差的渐近协方差
:
(估计误差 的渐进协方差)。
构建 LQG 伺服控制器
要构建一个二自由度 LQG 伺服控制器,请通过键入以下命令连接卡尔曼滤波器 kest
和 LQ 最优增益 K
:
servocontroller = lqgtrack(kest, K);
该伺服控制器具有以下状态空间方程:
有关构建 LQG 伺服控制器的详细信息,包括如何构建单自由度 LQG 伺服控制器,请参阅 lqgtrack
参考页。
另请参阅
lqg
| lqr
| kalman
| lqgtrack
| lqi
| lqgreg