主要内容gydF4y2Ba

等方面gydF4y2Ba

线性二次型调节器(LQR)设计gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BaKgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba,gydF4y2BaPgydF4y2Ba[qh]gydF4y2BasysgydF4y2Ba,gydF4y2Ba问gydF4y2Ba,gydF4y2BaRgydF4y2Ba,gydF4y2BaNgydF4y2Ba)gydF4y2Ba计算最优增益矩阵gydF4y2BaKgydF4y2Ba,解决方案gydF4y2Ba年代gydF4y2Ba相关的代数Riccati方程,以及闭环极点gydF4y2BaPgydF4y2Ba对于连续时间或离散时间状态空间模型gydF4y2BasysgydF4y2Ba。gydF4y2Ba问gydF4y2Ba和gydF4y2BaRgydF4y2Ba分别是状态和输入的权重矩阵。交叉项矩阵gydF4y2BaNgydF4y2Ba省略时设置为零。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BaKgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba,gydF4y2BaPgydF4y2Ba[qh]gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2Ba问gydF4y2Ba,gydF4y2BaRgydF4y2Ba,gydF4y2BaNgydF4y2Ba)gydF4y2Ba计算最优增益矩阵gydF4y2BaKgydF4y2Ba,解决方案gydF4y2Ba年代gydF4y2Ba相关的代数Riccati方程和闭环极点gydF4y2BaPgydF4y2Ba使用连续时间状态空间矩阵gydF4y2Ba一个gydF4y2Ba和gydF4y2BaBgydF4y2Ba。这种语法只对连续时间模型有效。对于离散时间模型,使用gydF4y2BadlqrgydF4y2Ba。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

pendulumModelCart.matgydF4y2Ba包含小车上倒立摆的状态空间模型,其中输出是小车的位移gydF4y2BaxgydF4y2Ba摆锤角度gydF4y2Ba θgydF4y2Ba 。控制输入gydF4y2BaugydF4y2Ba是作用在小车上的水平力。gydF4y2Ba

[gydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba xgydF4y2Ba ¨gydF4y2Ba θgydF4y2Ba ˙gydF4y2Ba θgydF4y2Ba ¨gydF4y2Ba ]gydF4y2Ba =gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba -gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 1gydF4y2Ba 3.gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba -gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 5gydF4y2Ba 3.gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba xgydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba θgydF4y2Ba θgydF4y2Ba ˙gydF4y2Ba ]gydF4y2Ba +gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 0gydF4y2Ba 5gydF4y2Ba ]gydF4y2Ba ugydF4y2Ba ygydF4y2Ba =gydF4y2Ba [gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba xgydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba θgydF4y2Ba θgydF4y2Ba ˙gydF4y2Ba ]gydF4y2Ba +gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba ugydF4y2Ba

首先,加载状态空间模型gydF4y2BasysgydF4y2Ba到工作空间。gydF4y2Ba

负载(gydF4y2Ba“pendulumCartModel.mat”gydF4y2Ba,gydF4y2Ba“sys”gydF4y2Ba)gydF4y2Ba

因为输出是gydF4y2BaxgydF4y2Ba和gydF4y2Ba θgydF4y2Ba ,并且只有一个输入,用Bryson法则来确定gydF4y2Ba问gydF4y2Ba和gydF4y2BaRgydF4y2Ba。gydF4y2Ba

Q = [1,0,0,0;gydF4y2Ba…gydF4y2Ba0, 0, 0, 0;gydF4y2Ba…gydF4y2Ba0, 0, 1, 0;gydF4y2Ba…gydF4y2Ba0, 0, 0, 0);R = 1;gydF4y2Ba

求增益矩阵gydF4y2BaKgydF4y2Ba使用gydF4y2Ba等方面gydF4y2Ba。自gydF4y2BaNgydF4y2Ba未指定,gydF4y2Ba等方面gydF4y2Ba集gydF4y2BaNgydF4y2Ba为0。gydF4y2Ba

[K,S,P] = lqr(S, Q,R)gydF4y2Ba
K =gydF4y2Ba1×4gydF4y2Ba-1.0000 -1.7559 16.9145 3.2274gydF4y2Ba
S =gydF4y2Ba4×4gydF4y2Ba1.5346 1.2127 -3.2274 -0.6851 1.2127 1.5321 -4.5626 -0.9640 -3.2274 -4.5626 26.5487 5.2079 -0.6851 -0.9640 5.2079 1.0311gydF4y2Ba
P =gydF4y2Ba4×1复杂gydF4y2Ba-0.8684 + 0.8523i - 0.8523i -5.4941 + 0.4564i -5.4941 - 0.4564igydF4y2Ba

尽管Bryson规则通常提供令人满意的结果,但它通常只是基于设计需求调整闭环系统响应的试错迭代设计过程的起点。gydF4y2Ba

aircraftPitchModel.matgydF4y2Ba包含飞机的状态空间矩阵,其中输入为升降舵偏转角gydF4y2Ba δgydF4y2Ba 输出是飞机俯仰角gydF4y2Ba θgydF4y2Ba 。gydF4y2Ba

[gydF4y2Ba αgydF4y2Ba ˙gydF4y2Ba 问gydF4y2Ba ˙gydF4y2Ba θgydF4y2Ba ˙gydF4y2Ba ]gydF4y2Ba =gydF4y2Ba [gydF4y2Ba -gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 3.gydF4y2Ba 1gydF4y2Ba 3.gydF4y2Ba 5gydF4y2Ba 6gydF4y2Ba 。gydF4y2Ba 7gydF4y2Ba 0gydF4y2Ba -gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba 3.gydF4y2Ba 9gydF4y2Ba -gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 4gydF4y2Ba 2gydF4y2Ba 6gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 5gydF4y2Ba 6gydF4y2Ba 。gydF4y2Ba 7gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba αgydF4y2Ba 问gydF4y2Ba θgydF4y2Ba ]gydF4y2Ba +gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 2gydF4y2Ba 3.gydF4y2Ba 2gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 0gydF4y2Ba 3.gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba δgydF4y2Ba ]gydF4y2Ba ygydF4y2Ba =gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba αgydF4y2Ba 问gydF4y2Ba θgydF4y2Ba ]gydF4y2Ba +gydF4y2Ba [gydF4y2Ba 0gydF4y2Ba ]gydF4y2Ba [gydF4y2Ba δgydF4y2Ba ]gydF4y2Ba

对于0.2弧度的步长参考,考虑以下设计标准:gydF4y2Ba

  • 上升时间小于2秒gydF4y2Ba

  • 沉降时间小于10秒gydF4y2Ba

  • 稳态误差小于2%gydF4y2Ba

将模型数据加载到工作区。gydF4y2Ba

负载(gydF4y2Ba“aircraftPitchModel.mat”gydF4y2Ba)gydF4y2Ba

定义状态成本加权矩阵gydF4y2Ba问gydF4y2Ba和控制加权矩阵gydF4y2BaRgydF4y2Ba。通常,您可以使用Bryson规则来定义初始加权矩阵gydF4y2Ba问gydF4y2Ba和gydF4y2BaRgydF4y2Ba。对于本例,考虑输出向量gydF4y2BaCgydF4y2Ba矩阵的比例因子是2gydF4y2Ba问gydF4y2Ba并选择gydF4y2BaRgydF4y2Ba为1。gydF4y2BaRgydF4y2Ba是一个标量,因为系统只有一个输入。gydF4y2Ba

R = 1gydF4y2Ba
R = 1gydF4y2Ba
Q1 = 2* c '* cgydF4y2Ba
Q1 =gydF4y2Ba3×3gydF4y2Ba0 0 0 0 0 0 0 2gydF4y2Ba

计算增益矩阵使用gydF4y2Ba等方面gydF4y2Ba。gydF4y2Ba

[K1,S1,P1] = lqr(A,B,Q1,R);gydF4y2Ba

用生成的增益矩阵检查闭环阶跃响应gydF4y2BaK1gydF4y2Ba。gydF4y2Ba

* * * * * * * * * * * * * * * * * * *;步骤(sys1)gydF4y2Ba

图包含一个轴对象。axes对象包含line类型的对象。该节点表示sys1。gydF4y2Ba

由于此响应不符合设计目标,将比例因子增加到25,计算增益矩阵gydF4y2BaK2gydF4y2Ba,并检查增益矩阵的闭环阶跃响应gydF4y2BaK2gydF4y2Ba。gydF4y2Ba

Q2 = 25* c '* cgydF4y2Ba
Q2 =gydF4y2Ba3×3gydF4y2Ba0 0 0 0 0 0 0gydF4y2Ba
[K2,S2,P2] = lqr(A,B,Q2,R);* (A-B,B,C,D);步骤(sys2)gydF4y2Ba

图包含一个轴对象。axes对象包含line类型的对象。该节点表示sys2。gydF4y2Ba

在闭环阶跃响应图中,上升时间、稳定时间和稳态误差满足设计目标。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

动态系统模型,指定为gydF4y2Ba党卫军gydF4y2Ba模型对象。gydF4y2Ba

状态矩阵,指定为angydF4y2BangydF4y2Ba——- - - - - -gydF4y2BangydF4y2Ba矩阵,gydF4y2BangydF4y2Ba是状态数。gydF4y2Ba

输入到状态矩阵,指定为angydF4y2BangydF4y2Ba——- - - - - -gydF4y2Ba米gydF4y2Ba输入到状态矩阵,其中gydF4y2Ba米gydF4y2Ba是输入的个数。gydF4y2Ba

状态成本加权矩阵,指定为angydF4y2BangydF4y2Ba——- - - - - -gydF4y2BangydF4y2Ba矩阵,gydF4y2BangydF4y2Ba是状态数。可以使用Bryson规则来设置的初始值gydF4y2Ba问gydF4y2Ba由:gydF4y2Ba

问gydF4y2Ba 我gydF4y2Ba ,gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba 的最大可接受值gydF4y2Ba (gydF4y2Ba egydF4y2Ba rgydF4y2Ba rgydF4y2Ba ogydF4y2Ba rgydF4y2Ba 年代gydF4y2Ba tgydF4y2Ba 一个gydF4y2Ba tgydF4y2Ba egydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba 我gydF4y2Ba ∈gydF4y2Ba {gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba …gydF4y2Ba ,gydF4y2Ba ngydF4y2Ba }gydF4y2Ba 问gydF4y2Ba =gydF4y2Ba [gydF4y2Ba 问gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba ⋯gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 问gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ⋯gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ⋱gydF4y2Ba ⋮gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ⋯gydF4y2Ba 问gydF4y2Ba ngydF4y2Ba ,gydF4y2Ba ngydF4y2Ba ]gydF4y2Ba

在这里,gydF4y2BangydF4y2Ba是状态数。gydF4y2Ba

输入成本加权矩阵,指定为标量或大小相同的矩阵gydF4y2BaD会gydF4y2Ba。在这里,gydF4y2BaDgydF4y2Ba是馈通状态空间矩阵。可以使用Bryson规则来设置的初始值gydF4y2BaRgydF4y2Ba由:gydF4y2Ba

RgydF4y2Ba jgydF4y2Ba ,gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba 的最大可接受值gydF4y2Ba (gydF4y2Ba egydF4y2Ba rgydF4y2Ba rgydF4y2Ba ogydF4y2Ba rgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba pgydF4y2Ba ugydF4y2Ba tgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba jgydF4y2Ba ∈gydF4y2Ba {gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba …gydF4y2Ba ,gydF4y2Ba 米gydF4y2Ba }gydF4y2Ba RgydF4y2Ba =gydF4y2Ba [gydF4y2Ba RgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba ⋯gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba RgydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ⋯gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ⋱gydF4y2Ba ⋮gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba ⋯gydF4y2Ba RgydF4y2Ba 米gydF4y2Ba ,gydF4y2Ba 米gydF4y2Ba ]gydF4y2Ba

在这里,gydF4y2Ba米gydF4y2Ba是输入的个数。gydF4y2Ba

可选的交叉项矩阵,指定为矩阵。如果gydF4y2BaNgydF4y2Ba,则gydF4y2Ba等方面gydF4y2Ba集gydF4y2BaNgydF4y2Ba默认为0。gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

闭环系统的最优增益,作为大小的行向量返回gydF4y2BangydF4y2Ba,在那里gydF4y2BangydF4y2Ba是状态数。gydF4y2Ba

相关代数里卡第方程的解,返回为gydF4y2BangydF4y2Ba——- - - - - -gydF4y2BangydF4y2Ba矩阵,gydF4y2BangydF4y2Ba是状态数。换句话说,gydF4y2Ba年代gydF4y2Ba与状态空间矩阵的维数相同吗gydF4y2Ba一个gydF4y2Ba。有关更多信息,请参见gydF4y2BaicaregydF4y2Ba和gydF4y2BaidaregydF4y2Ba。gydF4y2Ba

闭环系统的极点,作为大小的列向量返回gydF4y2BangydF4y2Ba,在那里gydF4y2BangydF4y2Ba是状态数。gydF4y2Ba

限制gydF4y2Ba

输入数据必须满足以下条件:gydF4y2Ba

  • 这一对gydF4y2Ba一个gydF4y2Ba和gydF4y2BaBgydF4y2Ba必须是稳定的。gydF4y2Ba

  • (Q, N, N’,R)gydF4y2Ba必须是非负定的。gydF4y2Ba

  • R > 0gydF4y2Ba和gydF4y2Ba 问gydF4y2Ba −gydF4y2Ba NgydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba TgydF4y2Ba ≥gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba

  • (gydF4y2Ba 问gydF4y2Ba −gydF4y2Ba NgydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba TgydF4y2Ba ,gydF4y2Ba 一个gydF4y2Ba −gydF4y2Ba BgydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba TgydF4y2Ba )gydF4y2Ba 在虚轴(或离散时间的单位圆)上没有不可观测模式。gydF4y2Ba

提示gydF4y2Ba

  • 等方面gydF4y2Ba金宝app支持非奇异的描述符模型gydF4y2BaEgydF4y2Ba。输出gydF4y2Ba年代gydF4y2Ba的gydF4y2Ba等方面gydF4y2Ba为等效显式状态空间模型的代数Riccati方程的解:gydF4y2Ba

    dgydF4y2Ba xgydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba EgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba +gydF4y2Ba EgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba BgydF4y2Ba ugydF4y2Ba

算法gydF4y2Ba

对于连续时间系统,gydF4y2Ba等方面gydF4y2Ba计算状态反馈控制gydF4y2Ba ugydF4y2Ba =gydF4y2Ba −gydF4y2Ba KgydF4y2Ba xgydF4y2Ba 使二次代价函数最小化gydF4y2Ba

JgydF4y2Ba (gydF4y2Ba ugydF4y2Ba )gydF4y2Ba =gydF4y2Ba ∫gydF4y2Ba 0gydF4y2Ba ∞gydF4y2Ba (gydF4y2Ba xgydF4y2Ba TgydF4y2Ba 问gydF4y2Ba xgydF4y2Ba +gydF4y2Ba ugydF4y2Ba TgydF4y2Ba RgydF4y2Ba ugydF4y2Ba +gydF4y2Ba 2gydF4y2Ba xgydF4y2Ba TgydF4y2Ba NgydF4y2Ba ugydF4y2Ba )gydF4y2Ba dgydF4y2Ba tgydF4y2Ba

受系统动力学的影响gydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba =gydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba +gydF4y2Ba BgydF4y2Ba ugydF4y2Ba 。gydF4y2Ba

除了状态反馈增益gydF4y2BaKgydF4y2Ba,gydF4y2Ba等方面gydF4y2Ba返回解决方案gydF4y2Ba年代gydF4y2Ba相关的代数里卡第方程gydF4y2Ba

一个gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba +gydF4y2Ba 年代gydF4y2Ba 一个gydF4y2Ba −gydF4y2Ba (gydF4y2Ba 年代gydF4y2Ba BgydF4y2Ba +gydF4y2Ba NgydF4y2Ba )gydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba BgydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba +gydF4y2Ba NgydF4y2Ba TgydF4y2Ba )gydF4y2Ba +gydF4y2Ba 问gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba

和闭环极点gydF4y2Ba PgydF4y2Ba =gydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 一个gydF4y2Ba −gydF4y2Ba BgydF4y2Ba KgydF4y2Ba )gydF4y2Ba 。增益矩阵gydF4y2BaKgydF4y2Ba来源于gydF4y2Ba年代gydF4y2Ba使用gydF4y2Ba

KgydF4y2Ba =gydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba BgydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba +gydF4y2Ba NgydF4y2Ba TgydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

对于离散时间系统,gydF4y2Ba等方面gydF4y2Ba计算状态反馈控制gydF4y2Ba ugydF4y2Ba ngydF4y2Ba =gydF4y2Ba −gydF4y2Ba KgydF4y2Ba xgydF4y2Ba ngydF4y2Ba ,最大限度地减少gydF4y2Ba

JgydF4y2Ba =gydF4y2Ba ∑gydF4y2Ba ngydF4y2Ba =gydF4y2Ba 0gydF4y2Ba ∞gydF4y2Ba {gydF4y2Ba xgydF4y2Ba TgydF4y2Ba 问gydF4y2Ba xgydF4y2Ba +gydF4y2Ba ugydF4y2Ba TgydF4y2Ba RgydF4y2Ba ugydF4y2Ba +gydF4y2Ba 2gydF4y2Ba xgydF4y2Ba TgydF4y2Ba NgydF4y2Ba ugydF4y2Ba }gydF4y2Ba

受系统动力学的影响gydF4y2Ba xgydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba ngydF4y2Ba +gydF4y2Ba BgydF4y2Ba ugydF4y2Ba ngydF4y2Ba 。gydF4y2Ba

在所有情况下,当你省略交叉项矩阵gydF4y2BaNgydF4y2Ba,gydF4y2Ba等方面gydF4y2Ba集gydF4y2BaNgydF4y2Ba为0。gydF4y2Ba

版本历史gydF4y2Ba

R2006a之前引入gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba