ControllableModelQ[sys]
ControllableModelQ[{sys,sub}]
如果子系统 sub 可控,生成 True.
ControllableModelQ
ControllableModelQ[sys]
ControllableModelQ[{sys,sub}]
如果子系统 sub 可控,生成 True.
更多信息和选项
- ControllableModelQ 也被称作可到达的模型.
- 如果对于任意初始状态
和任意最终状态
,存在某个控制输入能在有限时间内驱动状态从
到
,则称该状态空间模型是可控的. - 系统 sys 可以是一个标准或描述符 StateSpaceModel 或 AffineStateSpaceModel.
- 可以指定下列子系统 sub: » »
-
All 整个系统 "Fast" 快变子系统 "Slow" 慢变子系统 {λ1,…} 具有本征模
的子系统 - "Fast" 和 "Slow" 子系统主要应用于 KroneckerModelDecomposition 中所介绍的描述符状态空间模型.
- 本征模 λi 在 JordanModelDecomposition 中有介绍.
- ControllableModelQ 接受具有以下设置的 Method 选项:
-
Automatic 自动选择适当的测试 "Distribution" 使用可控性分布的秩 "Gramian" 使用可控性格拉姆矩阵的秩或正的确定性 "Matrix" 使用可控性矩阵的秩 "PBH" 使用 Popov–Belevitch–Hautus 秩测试
范例
打开所有单元 关闭所有单元基本范例 (2)
ControllableModelQ[StateSpaceModel[{{{Subscript[a, 1], 0}, {0, Subscript[a, 2]}},
{{Subscript[b, 1]}, {Subscript[b, 2]}}, {{1, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{Subscript[a, 1], 0}, {0, Subscript[a, 2]}},
{{Subscript[b, 1]}, {0}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]范围 (6)
ControllableModelQ[StateSpaceModel[{{{-5., -2.}, {6., 2.}}, {{1.}, {-1.}}, {{1., 1.}}, {{0.}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{-5, -2}, {6, 2}}, {{1}, {-1}}, {{1, 1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{0, (-p)*z}, {1, -p - z}},
{{z}, {1}}, {{0, 1}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{-1, 0}, {0, -3}}, {{1, 0}, {0, 1}}, {{1, -2}}, {{0, 2}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{0, 1}, {-0.4, -1}}, {{0}, {1}}, {{0.68, 1.7}}, {{0}}}, SamplingPeriod -> 0.1,
SystemsModelLabels -> None]]ssm = StateSpaceModel[{{{-1, 0, 1}, {-2, 2, 2}, {0, 0, 0}}, {{0}, {1}, {1}}, {{4, 0, -3}}, {{0}},
{{-2, 2, 2}, {0, 0, 0}, {1, 2, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];ControllableModelQ[ssm]{ControllableModelQ[{ssm, "Slow"}], ControllableModelQ[{ssm, "Fast"}]}ssm = StateSpaceModel[{{{-28, 40, 50}, {2, -6, -4}, {-15, 24, 27}}, {{-8}, {1}, {-5}}, {{1, -4, 0}},
{{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];modes = Eigenvalues[First[Normal[ssm]]]Table[{λ, ControllableModelQ[{ssm, λ}]}, {λ, modes}]JordanModelDecomposition[ssm]//Last检验 AffineStateSpaceModel 的可控性:
ControllableModelQ[AffineStateSpaceModel[{{Subscript[x, 2], 0}, {{0}, {Subscript[x, 1]}}},
{Subscript[x, 1], Subscript[x, 2]}, Automatic, {Automatic, Automatic},
Automatic, SamplingPeriod -> None]]ControllableModelQ[AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 2]},
{{Subscript[x, 1]}, {1}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, Automatic, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None, SystemsModelLabels -> {None, {}, None}]]ControllableModelQ[AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 2]},
{{Subscript[x, 1]}, {1}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None]]选项 (7)
Method (7)
ssm = StateSpaceModel[{{{-1, 4}, {2, 3}}, {{1}, {0}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];ControllableModelQ[ssm, Method -> "Matrix"]如果 ControllabilityMatrix 满秩,则系统是可控的:
cm = ControllabilityMatrix[ssm];MatrixRank[cm]ssm = StateSpaceModel[{{{0, 1., 0}, {0, 0, 1.}, {-1., -3., -5.}}, {{0}, {0}, {1.}}, {{1., 0, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];ControllableModelQ[ssm, Method -> "Gramian"]如果 ControllabilityGramian 满秩,则系统是可控的:
cg = ControllabilityGramian[ssm];MatrixRank[cg]PositiveDefiniteMatrixQ[cg]ssm = StateSpaceModel[{{{-0.8, 0.2}, {-0.2, 0}}, {{0.5}, {0.01}}, {{1, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];ControllableModelQ[ssm, Method -> "PBH"]{a, b} = Normal[ssm][[{1, 2}]];MatrixRank /@ Table[ArrayFlatten[{{λ IdentityMatrix[2] - a, b}}], {λ, Eigenvalues[a]}]ControllableModelQ[AffineStateSpaceModel[{{0, Subscript[x, 1]}, {{1 + Subscript[x, 1]},
{0}}}, {Subscript[x, 1], Subscript[x, 2]}, Automatic,
{Automatic, Automatic}, Automatic, SamplingPeriod -> None], Method -> "Distribution"]Table[ControllableModelQ[AffineStateSpaceModel[{{Subscript[x, 1] + Subscript[x, 2],
-Subscript[x, 1]}, {{1}, {0}}}, {Subscript[x, 1],
Subscript[x, 2]}, {Subscript[, 1]}, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None], Method -> m], {m, {"Matrix", "Distribution"}}]asys = AffineStateSpaceModel[{{Subscript[x, 1] + Subscript[x, 2],
(-Subscript[x, 1])*Subscript[x, 2]},
{{Subscript[x, 2]}, {1}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None];lsys = StateSpaceModel[asys];{ControllableModelQ[asys], ControllableModelQ[lsys]}对于线性化系统,输入线性系统的矩阵检验使用 "Matrix" 方法:
ControllableModelQ[asys, Method -> "Matrix"]asys = AffineStateSpaceModel[{{-14*Subscript[x, 3], 0, -19*Subscript[x, 3]},
{{Subscript[x, 1] + 2*Subscript[x, 2] +
4*Subscript[x, 3]}, {2*Subscript[x, 2]},
{3*Subscript[x, 3]}}}, {Subscript[x, 1], Subscript[x, 2],
Subscript[x, 3]}, Automatic, {Automatic, Automatic, Automatic}, Automatic,
SamplingPeriod -> None];ControllableModelQ[asys, Method -> {"Distribution", "DriftVectorField" -> True}]ControllableModelQ[asys]应用 (5)
ControllableModelQ[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[k, 3])/Subscript[m, 2], 0,
Subscript[k, 3]/Subscript[m, 2], 0}, {0, 0, 0, 0, 0, 1},
{0, 0, Subscript[k, 3]/Subscript[m, 3], 0,
-Subscript[k, 3]/Subscript[m, 3], 0}},
{{0}, {0}, {0}, {0}, {0}, {Subscript[m, 3]^(-1)}},
{{1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}}, {{0}, {0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]
ssm = StateSpaceModel[{{{-𝒞^(-1)/Subscript[R, 1], 0},
{0, (-L^(-1))*Subscript[R, 2]}},
{{1/(𝒞*Subscript[R, 1])}, {L^(-1)}}},
SamplingPeriod -> None, SystemsModelLabels -> None];ControllableModelQ[ssm]ControllableModelQ[ssm /. L -> Subscript[R, 1] Subscript[R, 2]𝒞]asys = AffineStateSpaceModel[{{0, 0, 0}, {{Cos[θ], 0}, {Sin[θ], 0}, {0, 1}}},
{x, y, θ}, Automatic, {Automatic, Automatic, Automatic},
Automatic, SamplingPeriod -> None];{ControllableModelQ[asys], ControllableModelQ[StateSpaceModel@asys]}
veh = AffineStateSpaceModel[{{0, 0, 0, 0}, {{Cos[θ + ϕ], 0},
{Sin[θ + ϕ], 0}, {Sin[θ], 0}, {0, 1}}},
{x, y, ϕ, θ}, Automatic,
{Automatic, Automatic, Automatic, Automatic}, Automatic, SamplingPeriod -> None];{ControllableModelQ[veh], ControllableModelQ[StateSpaceModel@veh]}sat[j1_, j2_, j3_] := AffineStateSpaceModel[{{((j2 - j3)*Subscript[ω, 2]*
Subscript[ω, 3])/j1,
((-j1 + j3)*Subscript[ω, 1]*
Subscript[ω, 3])/j2,
((j1 - j2)*Subscript[ω, 1]*
Subscript[ω, 2])/j3}, {{j1^(-1), 0, 0},
{0, j2^(-1), 0}, {0, 0, j3^(-1)}}},
{Subscript[ω, 1], Subscript[ω, 2], Subscript[ω, 3]},
{Subscript[τ, 1], Subscript[τ, 2], Subscript[τ, 3]},
{Automatic, Automatic, Automatic}, Automatic, SamplingPeriod -> None]controllableQ[j1_, j2_, j3_] := Table[{i, ControllableModelQ[SystemsModelExtract[sat[j1, j2, j3], i]]}, {i, Subsets[Range[3], {1, 3}]}]grid[res_, color_] := Grid[res, Background -> {None, {{color, None}}}, Frame -> True]Grid[controllableQ[Subscript[J, 1], Subscript[J, 2], Subscript[J, 3]], Frame -> All]如果
,带有促动器1和2或带有任意一个促动器的系统是不可控的:
Grid[controllableQ[Subscript[J, 1], Subscript[J, 1], Subscript[J, 3]], Frame -> All]Grid[controllableQ[Subscript[J, 1], Subscript[J, 1], Subscript[J, 1]], Frame -> All]属性和关系 (7)
ControllableModelQ[StateSpaceModel[{{{Subscript[λ, 1], 0}, {0, Subscript[λ, 2]}},
{{Subscript[b, 1]}, {Subscript[b, 2]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]ControllableModelQ[StateSpaceModel[{{{Subscript[λ, 1], 0}, {0, Subscript[λ, 2]}},
{{0}, {Subscript[b, 2]}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]如果
, 第一个状态无法直接控制,但可以从第二个状态间接控制:
ControllableModelQ[StateSpaceModel[{{{Subscript[λ, 1], 1}, {0, Subscript[λ, 1]}},
{{0}, {Subscript[b, 2]}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]如果
,第二个状态无法直接控制,也不能从第一个状态间接控制:
ControllableModelQ[StateSpaceModel[{{{Subscript[λ, 1], 1}, {0, Subscript[λ, 1]}},
{{Subscript[b, 1]}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]使用 JordanModelDecomposition 计算上面的典型状态空间表示:
ssm = StateSpaceModel[{{{4, 1}, {-1, 2}}, {{-6}, {3}}, {{-4, -2}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];JordanModelDecomposition[ssm]//LastTable[{λ, ControllableModelQ[{ssm, λ}]}, {λ, {3}}]对于描述符系统,KroneckerModelDecomposition 是对角形式的推广:
ssm = StateSpaceModel[{{{-5, -1, -3}, {-3, 1, -3}, {-6, -2, -2}}, {{2}, {1}, {2}}, {{1, 1, 1}}, {{0}},
{{3, 1, 2}, {4, 0, 2}, {1, 1, 1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];kssm = Last[KroneckerModelDecomposition[ssm]]SystemsModelExtract[kssm, All, All, {1, 2}]ControllableModelQ[{ssm, "Slow"}]SystemsModelExtract[kssm, All, All, {3}]ControllableModelQ[{ssm, "Fast"}]如果 StateSpaceModel 的描述符矩阵是满秩的,则没有快变子系统:
ssm = StateSpaceModel[{{{-2, -2}, {8, 12}}, {{1}, {2}}, {{1, 1}}, {{0}}, {{1, 1}, {2, 3}}},
SamplingPeriod -> None, SystemsModelLabels -> None];{ControllableModelQ[ssm], ControllableModelQ[{ssm, All}], ControllableModelQ[{ssm, "Slow"}]}在非奇异 StateSpaceTransform 下,可控性是不变的:
ssm = StateSpaceModel[{{{Subscript[λ, 1], 1}, {0, Subscript[λ, 1]}},
{{Subscript[b, 1]}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];p = Array[Subscript[t, ##]&, {2, 2}];ControllableModelQ /@ {ssm, StateSpaceTransform[ssm, p]}ssm = StateSpaceModel[{{{3, 0}, {5, -2}}, {{-1}, {0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];ControllableModelQ[ssm]使用 StateFeedbackGains 计算状态反馈:
κ = StateFeedbackGains[ssm, {-4, -5}]SystemsModelStateFeedbackConnect[ssm, κ];ControllableModelQ[%]可控性并不意味着它是输出可控 (OutputControllableModelQ):
ssm = StateSpaceModel[{{{-1.75, 0.5}, {0.375, -1.25}}, {{0}, {4}}, {{0.125, 0.25}, {0.25, 0.5}},
{{0}, {0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];{ControllableModelQ[ssm], OutputControllableModelQ[ssm]}ssm = StateSpaceModel[{{{-1, 0, 0}, {0, -2, 0}, {0, 0, -4}}, {{1}, {0}, {-1}}, {{1, 0, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];{ControllableModelQ[ssm], OutputControllableModelQ[ssm]}可能存在的问题 (2)
ssm = StateSpaceModel[{{{-5/2, -1, -1/4}, {3/4, 1/2, -3/8}, {-6, -8, 0}}, {{0}, {1/2}, {6}},
{{1/4, 3/2, -1/8}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];Table[ControllableModelQ[ssm, Method -> m], {m, {"Gramian", "Matrix", "PBH"}}]
Eigenvalues@First@Normal@ssmasys = AffineStateSpaceModel[{{Subscript[x, 2]^2, 0}, {{0}, {Subscript[x, 1]}}},
{Subscript[x, 1], Subscript[x, 2]}, Automatic, {Automatic, Automatic},
Automatic, SamplingPeriod -> None];ControllableModelQ[asys]ic = RandomReal[{-2, 2}, 2];u[t_] := Interpolation[Transpose[{Range[0, 1, 0.1], RandomReal[{-1, 1}, 11]}], t]Table[StateResponse[{asys, ic}, u[t], {t, 0, 1}], {10}];ParametricPlot[%, {t, 0, 1}, PlotRange -> All, AspectRatio -> 1 / GoldenRatio]文本
Wolfram Research (2010),ControllableModelQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ControllableModelQ.html (更新于 2014 年).
CMS
Wolfram 语言. 2010. "ControllableModelQ." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/ControllableModelQ.html.
APA
Wolfram 语言. (2010). ControllableModelQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ControllableModelQ.html 年
BibTeX
@misc{reference.wolfram_2026_controllablemodelq, author="Wolfram Research", title="{ControllableModelQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/ControllableModelQ.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_controllablemodelq, organization={Wolfram Research}, title={ControllableModelQ}, year={2014}, url={https://reference.wolfram.com/language/ref/ControllableModelQ.html}, note=[Accessed: 10-September-2026]}