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调节器使代价函数最小化
以植物方程为准
过程噪声w测量噪声v为具有协方差的高斯白噪声:
reg = lqg(sys,QXU,QWV,QI)
使用setpoint命令r和测量y以产生控制信号u.注册
有积分作用保证吗y跟踪命令r.
LQG伺服控制器使成本函数最小化
在哪里x我是跟踪误差的积分吗r-y.对于MIMO系统,r,y,x我长度必须相同。
reg = lqg(sys,QXU,QWV,QI,'1dof')
计算一个单自由度伺服控制器e=r-y而不是[r;y作为输入。
reg = lqg(sys,QXU,QWV,QI,'2dof')
等于LQG (sys、QXU QWV气)
并产生了先前所示的二自由度伺服控制器。
Reg = lqg(___,'current')
使用“电流”卡尔曼估计,它使用x[n|n]作为计算离散时间系统LQG调节器时的状态估计。
[reg,info] = lqg(___)
返回结构中的控制器和估计器增益矩阵信息
对于任何前面的语法。例如,您可以使用控制器和估计增益以观察者的形式实现控制器。有关更多信息,请参见算法.
例子
线性-二次-高斯(LQG)调节器与伺服控制器设计
本例展示了如何针对以下系统设计线性二次高斯(LQG)调节器、一自由度LQG伺服控制器和二自由度LQG伺服控制器。
该植物有三种状态(x),两个控制输入(u),三个随机输入(w),一个输出(y),输出的测量噪声(v),以及以下状态和测量方程。
在哪里
系统有如下噪声协方差数据:
对于监管机构,使用以下成本函数来定义监管绩效和控制努力之间的权衡:
对于伺服控制器,使用以下成本函数来定义跟踪器性能和控制努力之间的权衡:
为本系统设计LQG控制器:
在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);
通过输入以下命令定义噪声协方差数据和权重矩阵:
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);
通过输入以下命令形成LQG调节器:
KLQG = lqg(sys,QXU,QWV)
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连续时间模型。
输入以下命令形成单自由度LQG伺服控制器:
KLQG1 = lqg(sys,QXU,QWV,QI,1景深的)
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连续时间模型。
输入以下命令形成二自由度LQG伺服控制器:
KLQG2 = lqg(sys,QXU,QWV,QI,2自由度的)
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的连续时间模型。
提示
lqg
可用于连续和离散时间装置。在离散时间中,lqg
使用x[n|n - 1作为默认的状态估计。使用x[n|n]作为状态估计并计算最优LQG控制器,使用“当前”
输入参数。有关状态估计器的详细信息,请参见卡尔曼
.当您希望在设计调节器时具有更大的灵活性时,您可以使用
等方面
,卡尔曼
,lqgreg
命令。当你想要设计伺服控制器更灵活时,你可以使用lqi
,卡尔曼
,lqgtrack
命令。有关使用这些命令以及如何决定何时使用它们的更多信息,请参见线性-二次-高斯(LQG)调节设计而且积分动作伺服控制器的线性-二次-高斯(LQG)设计.
算法
控制器方程为:
对于连续时间:
对于离散时间:
延迟估计量:
目前估计量:
在这里,
一个,B,C,D为LQG调节器的状态空间矩阵,
注册
.x我是跟踪误差的积分吗r-y.
Kx,Kw,K我,l,米x,米w是否返回控制器和估计器增益矩阵
信息
.
版本历史
R2006a之前介绍过