AsymptoticOutputTracker[sys,{f1,…},{p1,…}]
给出导致仿射系统 sys 的输出跟踪参考信号 fi 的状态反馈控制律,其中衰减度为 pj.
AsymptoticOutputTracker[{sys,{out1,…},{in1,…}},…]
指定所用的输出 outi 和控制输入 inj.
AsymptoticOutputTracker
AsymptoticOutputTracker[sys,{f1,…},{p1,…}]
给出导致仿射系统 sys 的输出跟踪参考信号 fi 的状态反馈控制律,其中衰减度为 pj.
AsymptoticOutputTracker[{sys,{out1,…},{in1,…}},…]
指定所用的输出 outi 和控制输入 inj.
更多信息和选项
- 系统 sys 可以是 StateSpaceModel 或 AffineStateSpaceModel.
- 参考信号 fi 应该是一个单变量的纯函数.
- 衰减度 pi 对应于闭环系统的极点位置,并且极点个数 pi 由 Total[SystemsModelVectorRelativeOrders[sys]] 给出.
- 输出 {out1,…} 和输入 {in1,…} 为部分指定,并在默认时取 All.
- 输出和参考信号的数量必须相同.
- AsymptoticOutputTracker 基于 FeedbackLinearize,任何残留动态对于有效结果必须是稳定的. »
范例
打开所有单元 关闭所有单元基本范例 (1)
ssm = StateSpaceModel[{{{-3}}, {{1}}, {{1}}, {{0}}}, {{x[t], 2}}, Automatic,
Automatic, t, SamplingPeriod -> None, SystemsModelLabels -> None];
ref = Sin[t];fb = AsymptoticOutputTracker[ssm, ref, {-5}]csys = SystemsModelStateFeedbackConnect[ssm, fb]y = OutputResponse[csys, {0}, {t, 0, 8}];Plot[{y, ref}, {t, 0, 8}, PlotLegends -> {"output", "reference"}]范围 (4)
assm = AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] +
Subscript[x, 2]}, {{0}, {1 + Subscript[x, 1]}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 1},
{Subscript[x, 2], 0}}, Automatic, {Automatic}, t,
SamplingPeriod -> None];ref = Piecewise[{{1, 0 ≤ t ≤ 5}, {2, 5 < t ≤ 10}, {1, 10 < t ≤ 15}}, 0];Plot[ref, {t, 0, 20}, PlotStyle -> Thick]fb = AsymptoticOutputTracker[assm, ref, {-3, -4}]csys = SystemsModelStateFeedbackConnect[assm, fb];
y = OutputResponse[csys /. Indeterminate -> 0, {0}, {t, 0, 20}];Plot[y, {t, 0, 20}, PlotRange -> All, AxesOrigin -> {0, 0}]pts = Thread[{Range[0, 50, 5], RandomReal[{-10, 10}, 11]}];ref = Interpolation@pts;
Plot[ref[t], {t, 0, 50}]assm = AffineStateSpaceModel[{{Subscript[x, 1] + Subscript[x, 2],
Subscript[x, 1] - 2*Subscript[x, 2] -
Subscript[x, 1]*Subscript[x, 3],
Subscript[x, 1] + Subscript[x, 1]*Subscript[x, 2] -
4*Subscript[x, 3]}, {{0}, {1}, {0}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
Automatic, {Automatic}, t, SamplingPeriod -> None];fb = AsymptoticOutputTracker[assm, ref[t], {-4 + I, -4 - I}];csys = SystemsModelStateFeedbackConnect[assm, fb];
y = OutputResponse[csys, {0}, {t, 0, 50}];Plot[y, {t, 0, 50}, Epilog -> {PointSize[Medium], Point[pts]}]ssm = StateSpaceModel[{{{-1, 0}, {0, -2}}, {{1, 2}, {1, -1}}, {{1, 2}}, {{0, 0}}},
{{Subscript[x, 1][t], -1},
{Subscript[x, 2][t], 1}},
{Subscript[u, 1][t], Subscript[u, 2][t]},
Automatic, t, SamplingPeriod -> None, SystemsModelLabels -> None];
ref = Sin[t];fb1 = AsymptoticOutputTracker[ssm, ref, {-5, -8}]fb2 = AsymptoticOutputTracker[{ssm, All, 2}, ref, {-5, -8}]csys1 = SystemsModelStateFeedbackConnect[ssm, fb1]csys2 = SystemsModelStateFeedbackConnect[ssm, fb2, All, {2}]y1 = OutputResponse[csys1, {0}, {t, 0, 12}];
y2 = OutputResponse[csys2, {0}, {t, 0, 12}];Plot[{y1, y2}, {t, 0, 12}]ssm = StateSpaceModel[{{{0, 1, 0, 0}, {-2, -3, 0, 0}, {0, 0, 0, 1}, {0, 0, -2, -3}},
{{0, 0}, {1, 0}, {0, 0}, {0, 1}}, {{2, 1, 2, 2}, {1, 1, 2, 1}}, {{0, 0}, {0, 0}}}];
outs = {1};
inps = {2};ref = Sin[t];
fb = AsymptoticOutputTracker[{ssm, {1}, {2}}, ref, {-10, -11}]csys = SystemsModelStateFeedbackConnect[ssm, fb, All, {2}]or = OutputResponse[csys, {0, 0}, {t, 0, 10}][[1]]Plot[{or, ref}, {t, 0, 10}]应用 (3)
设计一个柔性接头的控制器,使其在一端承受负载的同时,跟踪指定的轨迹:»
pars = {Subscript[J, m] -> 0.4, k -> 100, Subscript[J, l] -> 1, M -> 1.5, g -> 9.8, L -> 0.4};assm = AffineStateSpaceModel[{Subscript[J, l] Subscript[θ, l]''[t] + M g L Sin[Subscript[θ, l][t]] + k(Subscript[θ, l][t] - Subscript[θ, m][t]) == 0, Subscript[J, m] Subscript[θ, m]''[t] - k(Subscript[θ, l][t] - Subscript[θ, m][t]) == τ[t]}, {Subscript[θ, l][t], Subscript[θ, l]'[t], Subscript[θ, m][t], Subscript[θ, m]'[t]}, τ[t], {Subscript[θ, l][t]}, t]traj = 5 ° + -3 ° t^2 / 5 + 1° t^3 / 25;
Plot[traj, {t, 0, 10}]{Plot[Evaluate@D[traj, t], {t, 0, 10}], Plot[Evaluate@D[traj, {t, 2}], {t, 0, 10}]}cinps = AsymptoticOutputTracker[assm, #, {-7 + 2I, -7 - 2 I, -9, -10}]& /@ {traj, -15 °}//Flatten;csys = SystemsModelStateFeedbackConnect[assm, {Piecewise[{{cinps[[1]], 0 ≤ t ≤ 10}}, cinps[[2]]]}];OutputResponse[{csys /. pars, {5 °, 0, 0, 0}}, {0}, {t, 0, 15}];Plot[Evaluate@{traj, %}, {t, 0, 15}]计算步进电机将负荷在0.1秒内沿一阶系统轨迹放置在1°位置的控制律. 电机模型:»
pars = {Subscript[K, m] -> 2 / 10, R -> 45 / 100, L -> 2 / 1000, J -> 65 / 10000, Subscript[n, p] -> 30, B -> 10 / 10000};asys = AffineStateSpaceModel[
{{(Sin[Subscript[n, p]*θ[t]]*
Subscript[K, m]*Subscript[n, p]*
ω[t] - R*Subscript[i, a][
t])/L,
((-Cos[Subscript[n, p]*θ[t]])*
Subscript[K, m]*Subscript[n, p]*
ω[t] - R*Subscript[i, b][
t])/L, ω[t],
((-B)*ω[t] +
Cos[Subscript[n, p]*θ[t]]*
Subscript[K, m]*Subscript[n, p]*
Subscript[i, a][t] -
Sin[Subscript[n, p]*θ[t]]*
Subscript[K, m]*Subscript[n, p]*
Subscript[i, b][t])/J},
{{L^(-1), 0}, {0, L^(-1)}, {0, 0}, {0, 0}},
{θ[t]}, {{0, 0}}},
{{Subscript[i, a][t], 0},
{Subscript[i, b][t], 0},
{θ[t], 0}, {ω[t], 0}},
{{vsa[t], 0}, {vsb[t], 0}}, {Automatic},
t, SamplingPeriod -> None] /. pars;ref = OutputResponse[TransferFunctionModel[{{{1}}, 1 + s/100}, s], UnitStep[t], {t, 0, 0.1}];
Plot[ref, {t, 0, 0.1}, PlotRange -> All]Short[fb = AsymptoticOutputTracker[asys, ref, {-300, -500, -600}]]SystemsModelStateFeedbackConnect[asys, fb];Plot[Evaluate@OutputResponse[%, {0, 0}, {t, 0, 0.1}], {t, 0, 0.1}, PlotRange -> All]糖酵解-糖原分解(glycolytic-glycogenolytic)途径,其中代谢产物
、
和
的速率作为被控变量,
、
、
和
均保持恒定. 设计一个反馈律,使得代谢产物
、
和
的值保持在 0.2,0.5和0.4:»
constants = {Subscript[x, 6][t] -> 3, Subscript[x, 7][t] -> 40, Subscript[x, 9][t] -> 2.86, Subscript[x, 10][t] -> 4};asys = AffineStateSpaceModel[{{0.07788 Subscript[x, 4][t]^0.66 Subscript[x, 6][t] - (1.0627 Subscript[x, 1][t]^1.53 Subscript[x, 7][t]/Subscript[x, 2][t]^0.59), -(0.00079 Subscript[x, 2][t]^3.97 Subscript[x, 8][t]/Subscript[x, 3][t]^3.06) + (0.585 Subscript[x, 1][t]^0.95 Subscript[x, 5][t]^0.32 Subscript[x, 7][t]^0.62 Subscript[x, 10][t]^0.38/Subscript[x, 2][t]^0.41), (0.00079 Subscript[x, 2][t]^3.97 Subscript[x, 8][t]/Subscript[x, 3][t]^3.06) - 1.0588 Subscript[x, 3][t]^0.3 Subscript[x, 9][t], 0, 0, 0}, {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {Subscript[x, 1][t], Subscript[x, 2][t], Subscript[x, 3][t]}, {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}}, {{Subscript[x, 1][t], 0.067}, {Subscript[x, 2][t], 0.465}, {Subscript[x, 3][t], 0.15}, {Subscript[x, 4][t], 10}, {Subscript[x, 5][t], 5}, {Subscript[x, 8][t], 136}}, Automatic, {Automatic, Automatic, Automatic}, t, SamplingPeriod -> None] /. constants;fb = AsymptoticOutputTracker[asys, {0.2, 0.5, 0.4}, {-0.5 + I, -0.5 - I, -1 + I , -1 - I, -2, -2.5}];csys = SystemsModelStateFeedbackConnect[asys, fb];
Plot[Evaluate@OutputResponse[csys, {0, 0, 0}, {t, 0, 7}], {t, 0, 7}]fb /. Thread[{Subscript[x, 1][t], Subscript[x, 2][t], Subscript[x, 3][t], Subscript[x, 4][t], Subscript[x, 5][t], Subscript[x, 8][t]} -> StateResponse[csys, {0, 0, 0}, {t, 0, 7}]];GraphicsRow[Table[Plot[i, {t, 0, 7}, PlotRange -> All, ImageSize -> 145], {i, %}]]属性和关系 (2)
assm = AffineStateSpaceModel[{{-Subscript[x, 1][t],
-Subscript[x, 2][t] + Subscript[x, 2][t]^2,
0}, {{1 + Subscript[x, 1][t]}, {1}, {1}},
{Subscript[x, 3][t]}, {{0}}},
{Subscript[x, 1][t], Subscript[x, 2][t],
Subscript[x, 3][t]}, {u[t]}, {Automatic},
t, SamplingPeriod -> None];Total@SystemsModelVectorRelativeOrders[assm]AsymptoticOutputTracker[assm, Sin[t], {-2}]assm = AffineStateSpaceModel[{{Subscript[x, 2][t] +
Subscript[x, 2][t]^2, Subscript[x, 3][t] -
Subscript[x, 1][t]*Subscript[x, 4][t] +
Subscript[x, 4][t]*Subscript[x, 5][t],
Subscript[x, 2][t]*Subscript[x, 4][t] +
Subscript[x, 1][t]*Subscript[x, 5][t] -
Subscript[x, 5][t]^2, Subscript[x, 5][t],
Subscript[x, 2][t]^2},
{{0, 1}, {0, 0}, {Cos[Subscript[x, 1][t] -
Subscript[x, 5][t]], 1}, {0, 0}, {0, 1}},
{Subscript[x, 1][t] - Subscript[x, 5][t],
Subscript[x, 4][t]}, {{0, 0}, {0, 0}}},
{{Subscript[x, 1][t], 0.1},
{Subscript[x, 2][t], 0.3},
{Subscript[x, 3][t], 0}, {Subscript[x, 4][t],
0.4}, {Subscript[x, 5][t], 1}},
{Subscript[, 1][t], Subscript[, 2][t]}, {Automatic, Automatic},
t, SamplingPeriod -> None];SystemsModelVectorRelativeOrders[assm]ref = {Sin[t], Cos[t]};
fb = AsymptoticOutputTracker[assm, ref, {-2, -3, -4, -10, -12}]or = OutputResponse[SystemsModelStateFeedbackConnect[assm, fb], {0, 0}, {t, 0, 3}];Plot[{or, ref}, {t, 0, 3}, PlotLegends -> {"output 1", "output 2", "ref 1", "ref 2"}]可能存在的问题 (1)
asys = AffineStateSpaceModel[{{Subscript[x, 1] - Subscript[x, 2],
Subscript[x, 1] - Subscript[x, 2],
3*Subscript[x, 2] + Subscript[x, 3] +
(Subscript[x, 1] + Subscript[x, 2] + Subscript[x, 3])^
2}, {{0}, {-1 - Subscript[x, 1]*Subscript[x, 2]},
{1 + Subscript[x, 1]*Subscript[x, 2]}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]}, {v}, {Automatic},
Automatic, SamplingPeriod -> None];fb = AsymptoticOutputTracker[asys, 0.1, {-1.5, -0.5}]SystemsModelStateFeedbackConnect[asys, fb];StateResponse[%, 0, {t, 0, 15}];FeedbackLinearize[asys, Automatic, "ResidualSystem"];Eigenvalues@First@Normal@StateSpaceModel@%相关指南
-
▪
- 非线性控制系统
文本
Wolfram Research (2014),AsymptoticOutputTracker,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AsymptoticOutputTracker.html.
CMS
Wolfram 语言. 2014. "AsymptoticOutputTracker." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/AsymptoticOutputTracker.html.
APA
Wolfram 语言. (2014). AsymptoticOutputTracker. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AsymptoticOutputTracker.html 年
BibTeX
@misc{reference.wolfram_2026_asymptoticoutputtracker, author="Wolfram Research", title="{AsymptoticOutputTracker}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/AsymptoticOutputTracker.html}", note=[Accessed: 17-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_asymptoticoutputtracker, organization={Wolfram Research}, title={AsymptoticOutputTracker}, year={2014}, url={https://reference.wolfram.com/language/ref/AsymptoticOutputTracker.html}, note=[Accessed: 17-August-2026]}