我正在尝试做的事情
- 我正在尝试通过组合线性二次调节器(LQR)和卡尔曼滤波器来创建一个 LQG 控制器来控制给定系统。
我被困在哪里
我分别找到了两者,但不确定如何在 MATLAB 中组合它们。这是系统和 LQR 解决方案:
我能够分别创建卡尔曼滤波器和 LQR,但我不知道如何组合 LQR 以将卡尔曼滤波器状态估计作为其输入。
Akal = Afull;
Bkal = [B1, B2];
Ckal = Cfull;
Dkal = [0 0];
sys_kal = ss(Akal,Bkal,Ckal,Dkal);
[KEST,L,P] = kalman(sys_kal,E_d, E_n, 0)
[K,S,e] = lqr(Afull,B1,Q,r);
当我使用卡尔曼函数时,这size(KEST)
给了我:
State-space model with 11 outputs, 2 inputs, and 10 states.
我希望我U
使用新的 SS 系统给出的估计KEST
。KEST
提供输出的估计值(y
,维度 1),以及所有 10 个状态的估计值(X
,维度 10)。我可以使用 LQR 和 Kalman 函数编写/绘制出我希望创建的闭环控制路径,但我被困在这一点上,因为我不知道如何通过 MATLAB 实现它。我也不确定语法。
我搜索了 MATLAB 示例,但没有找到任何可以告诉我如何组合我找到的内容的示例。我知道这KEST
是一个状态空间模型,但我不知道如何使用它或选择单个输出。
我希望得到帮助
如果我使用
bode(KEST)
,它会为我提供所有 11 个输出的 BODE 图。我不确定如何只选择KEST
.我想拥有
U = -K*X_est
,但目前我只知道 的价值K
。我不知道如何X_est
从我的KEST
状态空间系统中获取一个。