如何选择LQR

252次浏览(过去30天)
cmcm
cmcm 2013年2月8日
回答: Fatma Yoruk2020年11月21日
大家好,我正在尝试使用LQR控制器,我模拟我的系统,有我的A和B矩阵,在m-file中使用主题,并使用LQR函数来控制这个系统…有没有办法知道什么是正确的Q和R的值?但我尝试很多值结果给我2积极的价值观,这是错误的,所有的值都必须负根据Q和r的选择所以有什么方法让我知道什么是正确的价值观为他们而不是尝试和错误?请帮助
4评论
何塞·阿尔梅达
何塞·阿尔梅达 2015年6月20日
你能参考一些文献吗?谢谢你!

登录评论。

接受的答案

沙Prasanna
沙Prasanna 2013年2月9日
LQR总是返回一个稳定的反馈增益。
是否有1或2个特征值总是正的?
你的系统很可能有一个无法控制的模式。正如Azzi提到的,你必须尝试不同的权重,选择Q和R是一部分科学。
如果您可以为您的工厂提供状态空间(A,B,C,D),这将是有用的。
8的评论
cmcm
cmcm 2013年2月9日
非常感谢你的笔记……我没有注意到那个标志,这是我的一个错误。我所有的问题是关于符号:)再次感谢

登录评论。

更多的答案(3)

Azzi Abdelmalek
Azzi Abdelmalek 2013年2月8日
编辑:Azzi Abdelmalek 2013年2月8日
没有系统的方法来选择Q和r,你可以从这里开始
Q =眼睛(n)% n:状态数
R =眼睛(m)% m:输入个数
在闭环中模拟你的系统,然后尝试调整你的加权系数Q和r。你只需要知道,加权参数越大,加权信号越小。
你还必须知道,如果你想正确地控制你的系统,你将需要插入积分器
5个评论
cmcm
cmcm 2013年2月9日
好的,对不起,我会寄的

登录评论。


cmcm
cmcm 2013年2月9日
编辑:Azzi Abdelmalek 2013年2月9日
清晰的所有
胃肠道= 1;
%初始条件
一个= 2.9975;
b1 = 0.034025;
b2 = 0.034025;
b3 = 0.5606;
b4 = b3;
Am =[0 1 0 0 0 0;
00 -a 0 0000 0;
0 0 0 1 0 0;
0 0 0 0 0 0;
0 0 0 0 0 1.0;
0 0 0 0 0];
Bm =[0 0;
0 0;
0 0;
b3 b4;
0 0;
b1 b2);
Cm=[1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0];
=[0 0;0 0;0 0];
Ai =我;
人工智能(7,5)= 1;
人工智能(8 - 1)= 1;
人工智能(8、8)= 0;
Bi = Bm;
Bi (8, 2) = 0;
有限公司= ctrb (Ai, Bi);
排名(有限公司)
unc =长度(Ai)排名(有限公司)
Q = diag([0 0.05 00 2 1 1 0.001]);
R = 50*diag([1 1]);
K = lqr(Ai, Bi, Q, R);
disp (' '
disp (计算LQR控制器增益元素
K
eig (Ai + Bi * K)
CMD_RATE_LIMIT = 45.0 * pi / 180;
4评论
Azzi Abdelmalek
Azzi Abdelmalek 2013年2月9日
Shahad,解释一下你想控制什么。你的推荐信是什么?你不能用2个输入控制3个输出,除非你想让它们趋向于0。

登录评论。


Fatma Yoruk
Fatma Yoruk 2020年11月21日
有一些优化方法可以找到最佳Q和R,从而实现您想要的性能。大多数文献采用遗传算法或粒子群算法来求解。然而,也有一些与下降算法的比较。因此,与其反复尝试,不如尝试开发一些基于优化的算法。

下载188bet金宝搏

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!