ControllableDecomposition[sys]
产生状态空间系统 sys 的可控制子系统.
ControllableDecomposition[sys,{z1,…}]
指定新状态变量 zi.
ControllableDecomposition
ControllableDecomposition[sys]
产生状态空间系统 sys 的可控制子系统.
ControllableDecomposition[sys,{z1,…}]
指定新状态变量 zi.
更多信息和选项
- ControllableDecomposition 给出 {p,csys},其中 p 是变换而 csys 是可控制子系统.
- 系统 sys 可以是一个标准或者描述符 StateSpaceModel 或 AffineStateSpaceModel.
- 可控制子系统由 StateSpaceTransform[sys,p] 给出.
- ControllableDecomposition 接受 Method 选项. 可以指定下列设置:
-
Automatic 自动选择方法 "Matrix" 使用可控性矩阵 "Distribution" 使用可控性分布
范例
打开所有单元 关闭所有单元基本范例 (1)
ControllableDecomposition[StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0}, {Subscript[b, 1]},
{Subscript[b, 2]}}, {{Subscript[c, 1], Subscript[c, 2],
Subscript[c, 3]}}, {{Subscript[d, 11]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]范围 (4)
ControllableDecomposition[StateSpaceModel[{{{-1, -2}, {3, -4}}, {{1}, {-1}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]ControllableDecomposition[StateSpaceModel[{{{-3, 0, 0}, {0, -4, 0}, {0, 0, -7}}, {{1}, {-1}, {0}}, {{1, 0, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]ControllableDecomposition[StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0, 0}, {Subscript[b, 1], 0},
{0, Subscript[b, 2]}}, {{0, Subscript[c, 1], 0},
{0, 0, Subscript[c, 3]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}},
{{Subscript[e, 1], 0, 0}, {0, Subscript[e, 2], 0}, {0, 0, 0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]asys = AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1],
Subscript[x, 1]}, {{1}, {1 + Subscript[x, 1]}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]}, {{Subscript[, 1], 0}},
{Automatic}, Automatic, SamplingPeriod -> None];ControllableDecomposition[asys]ControllableDecomposition[asys, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3]}]应用 (7)
线性系统 (4)
ssm = StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0, 0}, {Subscript[b, 1], 0},
{0, Subscript[b, 2]}}, {{Subscript[c, 1], 0, 0},
{0, 0, Subscript[c, 3]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];ControllableDecomposition 仅挑选出可控子系统:
{p, cssm} = ControllableDecomposition[ssm];cssmpo = NullSpace[p];
StateSpaceTransform[ssm, ArrayFlatten[{{p, po}}]]{p, cssm} = ControllableDecomposition[StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0, 0}, {Subscript[b, 1], 0},
{0, Subscript[b, 2]}}, {{Subscript[c, 1], 0, 0},
{0, 0, Subscript[c, 3]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]];Dimensions[p]//Last找到以下系统的可控子空间,并解释能在系统中发生的可能状态轨迹:
ssm = StateSpaceModel[{{{1, -1, -3}, {-3, -1, 3}, {5, -1, -7}}, {{0}, {0}, {-1}}, {{1, -1, -1}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];ControllableModelQ[ssm]{p, csys} = ControllableDecomposition[ssm];cspace = ParametricPlot3D[p.{u, v}, {u, -1.25, 1.25}, {v, -1, 1}, Mesh -> None, PlotStyle -> Opacity[0.3]]x0 = Flatten[Table[p.{u, v}, {u, -0.8, 0.8, 0.3}, {v, -0.8, 0.8, 0.3}], 1];
sr = Table[StateResponse[{ssm, x}, Sin[2t], {t, 0, 10}], {x, x0}];Show[ParametricPlot3D[Evaluate[sr], {t, 0, 10}], cspace]w = First@NullSpace[p]; (* Orthogonal direction to cspace *)
x0 = Flatten[Table[p.{u, v} - w, {u, -0.8, 0.8, 0.3}, {v, -0.8, 0.8, 0.3}], 1];
sr = Table[StateResponse[{ssm, x}, Sin[2t], {t, 0, 10}], {x, x0}];Show[ParametricPlot3D[Evaluate[sr], {t, 0, 10}], cspace]通过构建可控子系统的控制器,为一个不是完全可控的系统设计一个控制器:
由于施加的力仅作用于第一个质量
上,第二个质量
是不可控的:
pars = {Subscript[k, 1] -> 75, Subscript[k, 2] -> 100, Subscript[m, 1] -> 1, Subscript[m, 2] -> 0.5};ssm = StateSpaceModel[{{{0, 1, 0, 0, 0, 0},
{-(Subscript[k, 1] + Subscript[k, 2])/Subscript[m, 1], 0,
Subscript[k, 2]/Subscript[m, 1], 0, 0, 0}, {0, 0, 0, 1, 0, 0},
{Subscript[k, 2]/Subscript[m, 2], 0,
-Subscript[k, 2]/Subscript[m, 2], 0, 0, 0}, {0, 0, 0, 0, 0, 1},
{0, 0, 0, 0, -Subscript[k, 2]/Subscript[m, 2], 0}},
{{0}, {Subscript[m, 1]^(-1)}, {0}, {0}, {0}, {0}},
{{1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}}, {{0}, {0}}},
{{Subscript[y, 2][t], 0}, Subscript[, 1],
{Subscript[x, 1][t], 0}, Subscript[, 2],
{Subscript[x, 2][t], 0}, Subscript[, 3]},
{{F[t], 0}}, {Subscript[x, 1][t],
Subscript[x, 2][t]}, t, SamplingPeriod -> None,
SystemsModelLabels -> None] /. pars;ControllableModelQ[ssm]{p, csys} = ControllableDecomposition[ssm];κc = StateFeedbackGains[csys, {-1, -2, -3 + I, -3 - I}]κ = κc.pclsys = SystemsModelStateFeedbackConnect[ssm, κ];Plot[Evaluate[StateResponse[{clsys, {0, 0, 0.1, 0, 0.1, 0}}, 0, {t, 0, 7}]], {t, 0, 7}]Eigenvalues[First[Normal[clsys]]]Select[Eigenvalues[First[Normal[ssm]]], !ControllableModelQ[{ssm, #}]&]反射系统 (3)
assm = AffineStateSpaceModel[{{1, 0, Subscript[x, 2]}, {{1}, {Subscript[x, 2]},
{Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{Subscript[, 1]}, {Automatic}, Automatic, SamplingPeriod -> None];ControllableDecomposition 仅挑选出可控的子系统:
{{p1, p2}, csys} = ControllableDecomposition[assm];csysStateSpaceTransform[assm, {p1, Flatten[p2]}]assm = AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1],
Subscript[x, 1]}, {{1}, {1 + Subscript[x, 1]}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]}, {{Subscript[, 1], 0}},
{Automatic}, Automatic, SamplingPeriod -> None];ControllableModelQ[assm]{{Subscript[p, 1], Subscript[p, 2]}, cssm} = ControllableDecomposition[assm];cssmLength[First[Subscript[p, 2]]]可控分解给出了可达子空间和子系统. 这可以被用于可视化系统从一个子空间到另一个子空间的运动:
asys = AffineStateSpaceModel[{{1, 0, Subscript[x, 2]}, {{1}, {Subscript[x, 2]},
{Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{Subscript[, 1]}, {Automatic}, Automatic, SamplingPeriod -> None];{{Subscript[p, 1], {Subscript[p, 21], Subscript[p, 22]}}, csys} = ControllableDecomposition[asys];rspace[{x1_, x2_, x3_}] := Last /@ Subscript[p, 22] /. {Subscript[x, 1] -> x1, Subscript[x, 2] -> x2, Subscript[x, 3] -> x3}rspace[{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]c = 0.2;rspace0 = ContourPlot3D[Evaluate[rspace[{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}] == c], {Subscript[x, 1], 1, 5}, {Subscript[x, 2], 0, 5.5}, {Subscript[x, 3], -7, 7}, Mesh -> None, ContourStyle -> Opacity[0.3]]Subscript[x, 10] = Range[1.5, 3, 0.05];Flatten[Subscript[x, 2] /. Solve[Thread[Last /@ Subscript[p, 22] == c], Subscript[x, 2]] /. Subscript[x, 1] -> Subscript[x, 10]];Subscript[x, 0] = Thread[{Subscript[x, 10], %, RandomReal[{-1.5, 6.5}, Length@Subscript[x, 10]]}];Short[Subscript[x, 0], 2]所有这些初始点均在完全相同的终表面结束,因为该运动是不可控的:
sr = Table[StateResponse[{asys, x}, 0, {t, 0, 1}], {x, Subscript[x, 0]}];Subscript[x, f] = rspace /@ sr /. t -> 1;Differences[%]//Choprspace1 = ContourPlot3D[Evaluate[rspace[{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}] == Subscript[x, f][[1, 1]]], {Subscript[x, 1], 1, 5}, {Subscript[x, 2], 0.5, 5}, {Subscript[x, 3], -10, 10}, Mesh -> None, ContourStyle -> Opacity[0.3]];Show[rspace0, ParametricPlot3D[Evaluate[sr], {t, 0, 1}], rspace1, PlotRange -> All]属性和关系 (2)
变换矩阵 p 使用 StateSpaceTransform 选择可控子系统:
ssm = StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0, 0}, {Subscript[b, 1], 0},
{0, Subscript[b, 2]}}, {{Subscript[c, 1], 0, 0},
{0, 0, Subscript[c, 3]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];{p, csys} = ControllableDecomposition[ssm];
tsys = StateSpaceTransform[ssm, {p, p}];{csys, tsys}assm = AffineStateSpaceModel[{{-Subscript[x, 4], 0, -Subscript[x, 1],
Subscript[x, 2]}, {{1}, {0}, {1 + Subscript[x, 2]}, {0}},
{Subscript[x, 1], Subscript[x, 2]}, {{0}, {0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3],
Subscript[x, 4]}, {Subscript[, 1]}, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None];{p, csys} = ControllableDecomposition[assm];
tsys = StateSpaceTransform[assm, p];{csys, tsys}文本
Wolfram Research (2010),ControllableDecomposition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ControllableDecomposition.html (更新于 2014 年).
CMS
Wolfram 语言. 2010. "ControllableDecomposition." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/ControllableDecomposition.html.
APA
Wolfram 语言. (2010). ControllableDecomposition. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ControllableDecomposition.html 年
BibTeX
@misc{reference.wolfram_2026_controllabledecomposition, author="Wolfram Research", title="{ControllableDecomposition}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/ControllableDecomposition.html}", note=[Accessed: 14-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_controllabledecomposition, organization={Wolfram Research}, title={ControllableDecomposition}, year={2014}, url={https://reference.wolfram.com/language/ref/ControllableDecomposition.html}, note=[Accessed: 14-October-2026]}