我想做的是
我被困在那里
我发现这两个分别,但我不知道如何结合在MATLAB中。这是系统和LQR解决方案:

我能够分别创建Kalman滤波器和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个输出的预兆图。我不知道如何选择KEST的单个输出。U = -K*X_est,但目前我只知道K的价值。我不知道如何从我的X_est状态空间系统获得一个KEST。发布于 2018-03-26 05:16:25
您要查找的是一个名为lqgreg的命令:
rlqg = lqgreg(kest,k)还要确保kest输出是10个状态,并且y(输出)不包括在估计中。
为了更好地理解它: LQR是一个状态反馈,所以控制用一个最佳k增益反馈所有的状态。K的大小等于系统模型的状态。
通常LQR的问题是很少测量所有的状态。这里来了卡尔曼滤波,并帮助估计所有的状态,从测量的输出和已知的输入。请注意,kalman滤波器可以用于许多其他事情,但是在这里,kalman滤波器的唯一作用是为状态反馈创建状态估计,因此它应该只估计系统状态。
如果您需要知道您的系统输出(用于绘图或其他任何事情),从状态估计和输入(Cx + Du)计算是非常容易的,但是您可以为输出估计创建另一个kalman滤波器。在微控制器或其他低容量环境中运行时,这个后期的解决方案是不可接受的,因为您是重复的,基本上是相同的算法。
https://stackoverflow.com/questions/49474403
复制相似问题