LQOutputRegulatorGains[sspec,wts]
为使用权重 wts 最小化输出代价函数的系统规范 sspec 给出状态反馈增益.
LQOutputRegulatorGains[…,"prop"]
给出属性 "prop" 的值.
LQOutputRegulatorGains
LQOutputRegulatorGains[sspec,wts]
为使用权重 wts 最小化输出代价函数的系统规范 sspec 给出状态反馈增益.
LQOutputRegulatorGains[…,"prop"]
给出属性 "prop" 的值.
更多信息和选项
- LQOutputRegulatorGains 也被称为线性二次型输出调节器、线性二次型输出控制器或最优控制器.
- LQOutputRegulatorGains 通常用于稳定一个系统或提升其性能.
- 控制器通常由状态反馈
给出,其中
是计算出的增益矩阵. - sys 的输入 u 由反馈输入 uf 和可能会有的其他输入 ue 组成.
- sys 的输出 y 由经调节的输出 yr 和可能会有的其他输出组成.
- 系统规范 sspec 是系统 sys 和 uf 及 yr 规范一起组成的.
- LQOutputRegulatorGains 使用经调节的输出 yr 和线性系统 sys 的反馈输入 uf 的权重 q、r 和 p 来最小化二次型代价函数:
-

连续时间系统 
离散时间系统 - LQ 设计可用于 StateSpaceModel 指定的线性系统:
-

连续时间系统 
离散时间系统 - 然后,可用
计算所得的反馈增益矩阵: -


连续时间系统 

离散时间系统 - 矩阵 xr 是 Riccati 方程的解:
-

连续时间系统 
离散时间系统 - 子矩阵 bf、cr 和 drf 对应反馈输入 uf 和经调节输出 yr.
- 权重 wts 可有如下形式:
-
{q,r} 没有交叉耦合的代价函数 {q,r,p} 有交叉耦合矩阵 p 的代价函数 - 系统规范 sspec 可有如下形式:
-
StateSpaceModel[…] 线性控制输入和线性状态 AffineStateSpaceModel[…] 线性控制输入和非线性状态 NonlinearStateSpaceModel[…] 非线性控制输入和非线性状态 SystemModel[…] 通用系统模型 <|…|> 以 Association 形式给出的具体系统规范 - 具体系统规范可以有如下密钥:
-
"InputModel" sys 模型中的任意一个 "FeedbackInputs" All 反馈输入 uf "RegulatedOutputs" All 经调节的输出 yr - 输入和输出有下列形式:
-
{num1,…,numn} StateSpaceModel、AffineStateSpaceModel 和 NonlinearStateSpaceModel 使用的有编号的输入或输出 numi {name1,…,namen} SystemModel 使用的有名输入或输出 namei All 使用所有的输入或输出 - 对于非线性系统诸如 AffineStateSpaceModel、NonlinearStateSpaceModel 和 SystemModel,系统会围着其储存工作点进行线性化.
- LQOutputRegulatorGains[…,"Data"] 返回可使用形式 cd["prop"] 来提取 SystemsModelControllerData 对象 cd.
- LQOutputRegulatorGains[…,"prop"] 可用于直接给出 cd["prop"] 的值.
- "prop" 的可能值包括:
-
"ClosedLoopPoles" 线性化 "ClosedLoopSystem" 的极点 "ClosedLoopSystem" ue 和
作为输入且 y 作为输出的系统 csys{"ClosedLoopSystem", cspec} 对闭环系统形式的具体控制 "ControllerModel"
和 x 作为输入且 uf 作为输出的模型 cm"Design" 控制器设计的类型 "DesignModel" 设计使用的模型 "FeedbackGains" 增益矩阵 κ 或其等价物 "FeedbackGainsModel" x 作为输入且
作为输出的模型 gm"FeedbackInputs" 用于反馈的 sys 的输入 uf "InputModel" 输入模型 sys "InputCount" sys 的输入 u 的数量 "OpenLoopPoles" "DesignModel" 的极点 "OutputCount" sys 的输出 y 的数量 "RegulatedOutputs" sys 的经调节的输出 yr "SamplingPeriod" sys 的取样周期 "StateCount" sys 的状态 x 的数量 - cspec 的可能密钥包括:
-
"InputModel" csys 中的输入模型 "Merge" 是否合并 csys "ModelName" csys 的名称
反馈增益模型 gm、控制器模型 cm,和闭环系统 csys 的图示.
[image]范例
打开所有单元 关闭所有单元基本范例 (2)
LQOutputRegulatorGains[StateSpaceModel[{{{0, 1, 0}, {0, -0.01, 0.3}, {0, -0.003, -10}}, {{0, 0}, {0, -1}, {0.1, 0}},
{{1, 0, 0}, {0, 1, 0}}, {{1, 0}, {0, 1}}}, SamplingPeriod -> None, SystemsModelLabels -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (| | |
| --- | --- |
| 0.1 | 0 |
| 0 | 0.1 |)}]//MatrixFormLQOutputRegulatorGains[StateSpaceModel[{{{-0.05156, -0.05877}, {0.01503, -0.005887}}, {{0}, {-0.03384}},
{{1.1, -0.5}, {-0.7, 1}}, {{0.1}, {0.2}}}, SamplingPeriod -> 0.1, SystemsModelLabels -> None], {(| | |
| -- | --- |
| 10 | 0 |
| 0 | 0.1 |), {{1}}}]范围 (27)
基本用法 (8)
ssm = StateSpaceModel[{{{-10}}, {{1}}, {{1}}, {{1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];κ = LQOutputRegulatorGains[ssm, {{{1}}, {{1}}}]SystemsModelStateFeedbackConnect[ssm, κ]//Simplifyssm = StateSpaceModel[{{{10}}, {{1}}, {{1}}, {{1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];κ = LQOutputRegulatorGains[ssm, {{{1}}, {{1}}}]SystemsModelStateFeedbackConnect[ssm, κ]//Simplifyssm = StateSpaceModel[{{{0, 0, -0.1}, {1., 0., -1.08}, {0., 1., -0.9}}, {{1}, {1}, {0}},
{{0, 1, 1}, {0, 0, 1}}, {{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];κ = LQOutputRegulatorGains[ssm, {(| | |
| - | - |
| 1 | 0 |
| 0 | 2 |), (0.5)}]Dimensions[κ]{SystemsModelDimensions[ssm][[1]], SystemsModelOrder[ssm]}ssm = StateSpaceModel[{{{0, 0, -0.1, 0}, {1., 0., -1.08, 0.1}, {0., 1., -0.9, -1}, {0, 1, 0, 0}},
{{1, 0}, {0, 1}, {0, 0}, {0, 0}}, {{1, 0, 0, 1}, {0, 1, 0, 1}, {0, 0, 1, 1}},
{{0, 0}, {0, 0}, {0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];MatrixForm[κ1 = LQOutputRegulatorGains[ssm, {(| | | |
| - | - | -- |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 10 |), (| | |
| - | - |
| 1 | 0 |
| 0 | 5 |)}]]MatrixForm[κ2 = LQOutputRegulatorGains[ssm, {(| | | |
| - | - | -- |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 10 |), (| | |
| - | - |
| 5 | 0 |
| 0 | 1 |)}]]Norm /@ κ1
Norm /@ κ2ssm = StateSpaceModel[{{{0, 0, -0.1}, {1., 0., -1.08}, {0., 1., -0.9}}, {{1, 1}, {1, 0}, {0, 0}},
{{1, 0, 1}}, {{0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];LQOutputRegulatorGains[ssm, {(1), (| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (0.1 0.1)}]//MatrixFormssm = StateSpaceModel[{{{0, 1., 0.}, {0, 0., 1.}, {-0.1, -1.08, -0.9}}, {{0}, {0}, {1}},
{{1, 1, 0}, {1, 0, 0}}, {{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];wts = {(1), (5)};LQOutputRegulatorGains[<|"InputModel" -> ssm, "RegulatedOutputs" -> 1|>, wts]LQOutputRegulatorGains[<|"InputModel" -> ssm, "RegulatedOutputs" -> 2|>, wts]ssm = StateSpaceModel[{{{0, 0, -0.1}, {1., 0., -1.08}, {0., 1., -0.9}}, {{1, 1}, {1, 0}, {0, 0}},
{{1, 0, 1}}, {{0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];wts = {(1), (5)};LQOutputRegulatorGains[<|"InputModel" -> ssm, "FeedbackInputs" -> 1|>, wts]LQOutputRegulatorGains[<|"InputModel" -> ssm, "FeedbackInputs" -> 2|>, wts]nssm = NonlinearStateSpaceModel[{{u + x + x^2},
{-1 + x}}, {{x, 1}}, {{u, -2}}, {Automatic}, Automatic,
SamplingPeriod -> None];LQOutputRegulatorGains[nssm, {{{10}}, {{1}}}]LQOutputRegulatorGains[StateSpaceModel[nssm], {{{10}}, {{1}}}]受控对象模型 (6)
连续时间 StateSpaceModel:
LQOutputRegulatorGains[StateSpaceModel[{{{0, 1.}, {-1, -1.6}}, {{0}, {1}}, {{1, 1}, {0, 1}}, {{0}, {0}}},
SamplingPeriod -> None, SystemsModelLabels -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}]离散时间 StateSpaceModel:
LQOutputRegulatorGains[StateSpaceModel[{{{0, 1.}, {0.020000000000000004, 0.1}}, {{0}, {1}}, {{1, 1}, {0, 1}}, {{0}, {0}}},
SamplingPeriod -> τ, SystemsModelLabels -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}]描述符 StateSpaceModel:
LQOutputRegulatorGains[StateSpaceModel[{{{-6, -4}, {-6, -5}}, {{1}, {1}}, {{1, 1}, {0, 1}}, {{0}, {0}}, {{1, 1}, {0, 1}}},
{{x1[t], 0}, {x2[t], 0}},
{{u[t], 0}}, Automatic, t, SamplingPeriod -> None,
SystemsModelLabels -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1.0)}]LQOutputRegulatorGains[AffineStateSpaceModel[{{Sin[Subscript[x, 1]] + Subscript[x, 2],
-Subscript[x, 1] - Subscript[x, 2]},
{{Subscript[x, 1]}, {1}},
{Subscript[x, 1] - Subscript[x, 2], Subscript[x, 2]},
{{0}, {0}}}, {Subscript[x, 1], Subscript[x, 2]}, {{u, 0}},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1.0)}]LQOutputRegulatorGains[NonlinearStateSpaceModel[
{{Subscript[x, 2] + Subscript[x, 1]*Subscript[x, 2],
u + Subscript[x, 1]},
{Subscript[x, 1] - Subscript[x, 2], Subscript[x, 2]}},
{Subscript[x, 1], Subscript[x, 2]}, {u},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1.0)}]sm = CreateSystemModel[{x''[t] + x'[t] + x[t] == u[t], y1[t] == x[t], y2[t] == x'[t]}, t, {"u"∈"Modelica.Blocks.Interfaces.RealInput", {"y1", "y2"}∈"Modelica.Blocks.Interfaces.RealOutput"}];LQOutputRegulatorGains[sm, {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}]属性 (10)
LQOutputRegulatorGains 默认返回反馈增益:
ssm = StateSpaceModel[{{{0, 1}, {-1, -2}}, {{0}, {1}}, {{1, 1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];wts = {(1.0), (1.0)};LQOutputRegulatorGains[ssm, wts]% == LQOutputRegulatorGains[ssm, wts, "FeedbackGains"]κ = LQOutputRegulatorGains[NonlinearStateSpaceModel[
{{-Subscript[x, 1] + u*Subscript[x, 1] +
Subscript[x, 2]/E^Subscript[x, 1],
E^Subscript[x, 2] - Subscript[x, 1]},
{u + Subscript[x, 1], Subscript[x, 2]}},
{{Subscript[x, 1], 1}, {Subscript[x, 2], 0}}, {{u, 1.}},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}]{κ0, κ1} = {κ /. {Subscript[x, _] -> 0}, D[κ, {{Subscript[x, 1], Subscript[x, 2]}}]}LQOutputRegulatorGains[StateSpaceModel[{{{0, 1}, {-1, -2}}, {{0}, {1}}, {{1, 1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], {(1.0), (1.0)}, "FeedbackGainsModel"]LQOutputRegulatorGains[NonlinearStateSpaceModel[{{Subscript[x, 2], -2/3 + u -
Subscript[x, 1]/3 - Subscript[x, 2]/2},
{Subscript[x, 1] + Subscript[x, 2]}},
{{Subscript[x, 1], 1}, {Subscript[x, 2], 0}}, {{u, 1.}},
{Automatic}, Automatic, SamplingPeriod -> None], {(1.0), (1.0)}, "FeedbackGainsModel"]//ChopLQOutputRegulatorGains[StateSpaceModel[{{{0., 1.}, {-0.05, -0.9}}, {{0}, {1}}, {{1, 1}, {0, 1}}, {{0}, {0}}},
{Subscript[x, 1], Subscript[x, 2]}, {{f, 0}},
SamplingPeriod -> None, SystemsModelLabels -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}, "ClosedLoopSystem"]assm = AffineStateSpaceModel[{{Subscript[x, 2], -0.05*Subscript[x, 1] -
0.9*Subscript[x, 2]^2}, {{0}, {1}},
{Subscript[x, 1] + Subscript[x, 2], Subscript[x, 2]},
{{0}, {0}}}, {Subscript[x, 1], Subscript[x, 2]}, {{f, 0}},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None];
wts = {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)};LQOutputRegulatorGains[assm, wts, "ClosedLoopPoles"]assm = AffineStateSpaceModel[{{Subscript[x, 2], -0.05*Subscript[x, 1] -
0.9*Subscript[x, 2]^2}, {{0}, {1}},
{Subscript[x, 1] + Subscript[x, 2], Subscript[x, 2]},
{{0}, {0}}}, {Subscript[x, 1], Subscript[x, 2]}, {{f, 0}},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None];
wts = {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)};dmodel = LQOutputRegulatorGains[assm, wts, "DesignModel"]LQOutputRegulatorGains[dmodel, wts]
LQOutputRegulatorGains[assm, wts]LQOutputRegulatorGains[AffineStateSpaceModel[{{Subscript[x, 2], -0.05*Subscript[x, 1] -
0.9*Subscript[x, 2]^2}, {{0}, {1}},
{Subscript[x, 1] + Subscript[x, 2], Subscript[x, 2]},
{{0}, {0}}}, {Subscript[x, 1], Subscript[x, 2]}, {{f, 0}},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None], {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}, "Design"]Dataset[Table[{prop, LQOutputRegulatorGains[IconizedObject[«sys»], IconizedObject[«wts»], prop]}, {prop, IconizedObject[«props»]}]]𝒸𝒹 = LQOutputRegulatorGains[IconizedObject[«sys»], IconizedObject[«wts»], "Data"]𝒸𝒹["Properties"]𝒸𝒹["ClosedLoopPoles"]闭环系统 (3)
assm = AffineStateSpaceModel[{{Subscript[x, 1] - Subscript[x, 1]^2 -
Subscript[x, 2], Subscript[x, 1]}, {{0}, {1}},
{Subscript[x, 1] + Subscript[x, 2]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None];csys1 = LQOutputRegulatorGains[assm, {(1.0), (1.0)}, "ClosedLoopSystem"]csys2 = LQRegulatorGains[assm, {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1.0)}, {"ClosedLoopSystem", <|"InputModel" -> AffineStateSpaceModel[{{Subscript[x, 1] - Subscript[x, 2],
Subscript[x, 1]}, {{0}, {1}},
{Subscript[x, 1] + Subscript[x, 2]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None]|>}]Table[OutputResponse[{sys, {0.5, 1}}, 0, {t, 0, 7}], {sys, {csys1, csys2}}];
Plot[%, {t, 0, 7}, PlotLegends -> {"Nonlinear", "Linear"}, PlotRange -> All]sys = <|"InputModel" -> StateSpaceModel[{{{0., 1.}, {-0.05, -0.9}}, {{0, 0}, {1, 1}}, {{1, 1}}, {{0, 0}}},
{Subscript[x, 1], Subscript[x, 2]},
{{d, 0}, {f, 0}}, SamplingPeriod -> None,
SystemsModelLabels -> {{Subscript[u, e],
Subscript[u, f]}}], "FeedbackInputs" -> 2|>;wts = {(1.0), (1.0)};LQOutputRegulatorGains[sys, wts, "ClosedLoopSystem"]
LQOutputRegulatorGains[sys, wts, {"ClosedLoopSystem", <|"Merge" -> False|>}]SystemsModelMerge[%]LQOutputRegulatorGains[sys, wts, {"ClosedLoopSystem", <|"Merge" -> True|>}]sm = CreateSystemModel["MassSpringDamper", {m x''[t] + c x'[t] + k x[t] == u[t], y1[t] == x[t], y2[t] == x'[t]}, t, {"u"∈"Modelica.Blocks.Interfaces.RealInput", {"y1", "y2"}∈"Modelica.Blocks.Interfaces.RealOutput"}, <|"ParameterValues" -> {m -> 10, c -> 10^2, k -> 10^3}|>];csysName = "MassSpringDamperWithStateFeedback";csys = LQOutputRegulatorGains[sm, {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (1)}, {"ClosedLoopSystem", <|"ModelName" -> csysName|>}]csys["ModelName"]SystemModelSimulate[csysName, {"y1", "y2"}, 2, <|"Inputs" -> {"u" -> UnitStep}|>]SystemModelPlot[%, All, PlotRange -> All]应用 (2)
aircraftM = StateSpaceModel[{{{0.4158, 1.025, -0.00267, -0.00011106, -0.08021, 0},
{-5.5, -0.8302, -0.06549, -0.0039, -5.115, 0.809}, {0, 0, 0, 1, 0, 0},
{-1040, 78.35, -34.83, -0.6214, -865.6, -631}, {0, 0, 0, 0, -75, 0}, {0, 0, 0, 0, 0, -100}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {75, 0}, {0, 100}}, {{1, 0, 0, 0, 2, 0}, {0, 1, 0, 0, 0, 0}},
{{0, 0}, {0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];k = LQOutputRegulatorGains[aircraftM, {(| | |
| ------ | - |
| 0.0001 | 0 |
| 0 | 1 |), (| | |
| - | - |
| 1 | 0 |
| 0 | 1 |)}]aircraftMCL = SystemsModelStateFeedbackConnect[aircraftM, k];or = OutputResponse[{aircraftMCL, {0, 0.1, 0, 0, 0, 0}}, {0, 0}, {t, 0, 6}];Plot[or, {t, 0, 6}, PlotRange -> All, PlotLegends -> {Subscript[y, 1], Subscript[y, 2]}]fb = -k.StateResponse[{aircraftMCL, {0, 0.1, 0, 0, 0, 0}}, {0, 0}, {t, 6}];Plot[fb, {t, 0, 6}, PlotRange -> All, PlotLegends -> {Subscript[u, 1], Subscript[u, 2]}]circuit = StateSpaceModel[{{{0, 0, 0, 1}, {0, 0, 1, 0}, {-1, 1, 0, 0}, {1, 0, 10, 10}},
{{0}, {0}, {0}, {-1}}, {{0, 0.1, 0, 0}}, {{0}}, {{0.1, 0, 0, 0}, {0, 0.2, 0, 0},
{0, 0, -0.01, 0}, {0, 0, 0, 0}}}, Automatic, SamplingPeriod -> None, SystemsModelLabels -> None];openloopresponse = OutputResponse[circuit, Sin[6 2 Pi t], {t, 0, 1}];
Plot[openloopresponse, {t, 0, 1}, PlotRange -> All]k = LQOutputRegulatorGains[circuit, {{{1}}, {{1}}}];
clssm = SystemsModelStateFeedbackConnect[circuit, k]closedloopresponse = OutputResponse[clssm, Sin[6 2 Pi t], {t, 0, 1}];
Plot[closedloopresponse, {t, 0, 1}, PlotRange -> All]属性和关系 (3)
等价的输出调节器增益可以使用 LQRegulatorGains 计算:
{a, b, c, d} = {(| | | |
| -- | -- | -- |
| -2 | 0 | 1 |
| 0 | -1 | 0 |
| -3 | -4 | -2 |), (| | |
| - | - |
| 0 | 1 |
| 0 | 0 |
| 1 | 0 |), (| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 1 | 0 |), (| | |
| - | - |
| 1 | 0 |
| 0 | 2 |)};{q, r, p} = {(| | |
| --- | --- |
| 100 | 0. |
| 0 | 0.1 |), (| | |
| -- | - |
| 10 | 0 |
| 0 | 1 |), (| | |
| - | - |
| 1 | 0 |
| 0 | 1 |)};ssm = StateSpaceModel[{a, b, c, d}];LQRegulatorGains[ssm, {c.q.c, r + d.q.d + d.p + p.d, c.q.d + c.p}]LQOutputRegulatorGains 给出相同的结果:
LQOutputRegulatorGains[ssm, {q, r, p}] - %通过求解内置 Riccati 方程,计算 LQ 输出调节器增益:
{a, b, c, d} = {(| | | | | |
| - | -------- | ------- | - | ------- |
| 0 | -0.01156 | -0.1711 | 0 | 0 |
| 0 | -0.1419 | 0.1711 | 0 | 0 |
| 0 | -0.00875 | -1.102 | 0 | 0 |
| 0 | -0.00128 | -0.1489 | 0 | 0.00013 |
| 0 | 0.0605 | 0.1489 | 0 | -0.0591 |), (| | | |
| ----- | ------- | ------- |
| 0 | -0.143 | 0 |
| 0 | 0 | 0 |
| 0.392 | 0 | 0 |
| 0 | 0.108 | -0.0592 |
| 0 | -0.0486 | 0 |), (| | | | | |
| - | - | - | - | - |
| 1 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 |), (| | | |
| - | - | - |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 0 | 0 | 1 |)};{q, r, p} = {(| | | |
| ---- | --- | -- |
| 1000 | 0 | 0 |
| 0 | 100 | 0 |
| 0 | 0 | 10 |), (| | | |
| - | - | -- |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 10 |), (| | | |
| --- | - | - |
| 100 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |)};With[{q = c.q.c, r = r + d.q.d + d.p + p.d, p = c.q.d + c.p}, Inverse[r].(b.RiccatiSolve[{a, b}, {q, r, p}] + p)]LQOutputRegulatorGains 给出相同的结果:
LQOutputRegulatorGains[StateSpaceModel[{a, b, c, d}], {q, r, p}] - %//Chop利用 DiscreteRiccatiSolve 计算离散时间系统的增益:
{a, b, c, d} = {(| | | | | |
| - | -------- | ------- | - | ------- |
| 1 | -0.01866 | -0.134 | 0 | 0 |
| 0 | 0.7516 | 0.1144 | 0 | 0 |
| 0 | -0.0059 | 0.1097 | 0 | 0 |
| 0 | -0.0009 | -0.1203 | 1 | 0.00025 |
| 0 | 0.0978 | 0.1206 | 0 | 0.8885 |), (| | | |
| ------- | ------- | ------- |
| -0.0732 | -0.286 | 0 |
| 0.0652 | 0 | 0 |
| 0.3162 | 0 | 0 |
| -0.0632 | 0.216 | -0.1184 |
| 0.0634 | -0.0917 | 0 |), (| | | | | |
| - | - | - | - | - |
| 1 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 |), (| | | |
| - | - | - |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 0 | 0 | 1 |)};{q, r, p} = {(| | | |
| ---- | --- | -- |
| 1000 | 0 | 0 |
| 0 | 100 | 0 |
| 0 | 0 | 10 |), (| | | |
| - | - | -- |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 10 |), (| | | |
| --- | - | - |
| 100 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |)};With[{q = c.q.c, r = r + d.q.d + d.p + p.d, p = c.q.d + c.p}, With[{x = DiscreteRiccatiSolve[{a, b}, {q, r, p}]}, Inverse[b.x.b + r].(b.x.a + p)]]LQOutputRegulatorGains 给出相同的结果:
LQOutputRegulatorGains[StateSpaceModel[{a, b, c, d}, SamplingPeriod -> τ], {q, r, p}] - %//Chop相关指南
文本
Wolfram Research (2010),LQOutputRegulatorGains,Wolfram 语言函数,https://reference.wolfram.com/language/ref/LQOutputRegulatorGains.html (更新于 2021 年).
CMS
Wolfram 语言. 2010. "LQOutputRegulatorGains." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/LQOutputRegulatorGains.html.
APA
Wolfram 语言. (2010). LQOutputRegulatorGains. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/LQOutputRegulatorGains.html 年
BibTeX
@misc{reference.wolfram_2026_lqoutputregulatorgains, author="Wolfram Research", title="{LQOutputRegulatorGains}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/LQOutputRegulatorGains.html}", note=[Accessed: 04-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_lqoutputregulatorgains, organization={Wolfram Research}, title={LQOutputRegulatorGains}, year={2021}, url={https://reference.wolfram.com/language/ref/LQOutputRegulatorGains.html}, note=[Accessed: 04-November-2026]}