KroneckerModelDecomposition[ssm]
ディスクリプタ状態空間モデル ssm のクロネッカー(Kronecker)分解を与える.
KroneckerModelDecomposition
KroneckerModelDecomposition[ssm]
ディスクリプタ状態空間モデル ssm のクロネッカー(Kronecker)分解を与える.
詳細とオプション
- クロネッカー分解はワイエルシュトラス(Weierstrass)分解としても知られている.
- 結果はリスト{{p,q},kssm}である.ただし,p および q は変換行列であり,kssm は ssm のクロネッカー形である.
- 分解はディスクリプタ状態空間モデルを高速部分系と低速部分系に分離する.
- 低速部分系は,状態方程式がある標準状態空間モデルと同じ形式である.
-

連続時間 
離散時間 - 高速部分系は次の e2がベキ零である状態方程式で支配されている.
-

連続時間 
離散時間 - クロネッカー形式の系の出力
-

連続時間 
離散時間 - 行列 a1および e2は両方ともジョルダン(Jordan)形式であると解釈される.
- StateSpaceTransform[ssm,{p,q}]の形式は
および
を持つStateSpaceModel[{
,
,
,
,
}]である.ただし,
および a2は次元が低速および高速の部分系の恒等行列であり,
はベキ零行列である.
例題
すべて開く すべて閉じる例 (1)
スコープ (4)
KroneckerModelDecomposition[StateSpaceModel[{{{0, 1, 0, 0}, {1, 0, 0, 0}, {-1, 0, 0, 1}, {0, -1, 2, -1}},
{{0}, {0}, {0}, {-1}}, {{0, 0, 1, 0}}, {{0}}, {{1, 0, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 0},
{0, 0, 0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]KroneckerModelDecomposition[StateSpaceModel[{{{0.1, -0.125}, {0.125, 0.25}}, {{0.5}, {-0.5}}, {{2, -2}}, {{0}},
{{1, 1}, {0, 0}}}, SamplingPeriod -> 0.5, SystemsModelLabels -> None]]KroneckerModelDecomposition[StateSpaceModel[{x1[t] == x2[t] + 3u[t], x2[t] == 1 / 2 x1[t]}, {x1[t], x2[t]}, {u[t]}, x2[t], t]]KroneckerModelDecomposition[StateSpaceModel[{{{1, 0, 2}, {2, -1, 0}, {0, 6, 6}}, {{0}, {1}, {1}}, {{5, 0, 1}}, {{0}},
{{2, -1, 0}, {0, 0, 0}, {0, 1, 1}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]アプリケーション (2)
KroneckerModelDecompositionは速い部分系と遅い部分系を分離する:
ssm = StateSpaceModel[{{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 0, 1}, {0, 0, -5, 6}}, {{0}, {1}, {0}, {1}},
{{-1, 3, -9, 3}}, {{0}}, {{0, 1, 0, 0}, {0, 0, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
kssm = Last[KroneckerModelDecomposition[ssm]]ディスクリプタ行列の対角上にある1の数は遅い状態の数を与える:
e = Normal[kssm][[5]];
nslow = Total[Diagonal[e]]SystemsModelExtractおよびSystemsModelDeleteを使って遅い系と速い系を分離する:
e = Normal[kssm][[5]];
nslow = Total[Diagonal[e]]{SystemsModelExtract[kssm, All, All, 1 ;; nslow],
SystemsModelDelete[kssm, None, None, 1 ;; nslow]}ss = StateSpaceModel[{L i'[t] == Subscript[v, l][t], Subscript[v, c]'[t] == 1 / C i[t], R i[t] == Subscript[v, r][t],
Subscript[v, l][t] + Subscript[v, c][t] + Subscript[v, r][t] == Subscript[v, s][t]}, {i[t], Subscript[v, l][t], Subscript[v, c][t], Subscript[v, r][t]}, {Subscript[v, s][t]}, {i[t]}, t]Simplify@Last[KroneckerModelDecomposition[ss]]特性と関係 (6)
ssm = StateSpaceModel[{{{2, 2, -1}, {-1, 0, 0}, {-1, 0, 1}}, {{-1}, {0}, {1}}, {{0, 0, 1}}, {{0}},
{{0, -1, 3}, {0, 0, -1}, {0, 0, -1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];
kssm = Last[KroneckerModelDecomposition[ssm]]{SystemsModelOrder[ssm], SystemsModelOrder[kssm]}{ControllableModelQ[ssm], ControllableModelQ[kssm]}{ObservableModelQ[ssm], ObservableModelQ[kssm]}{TransferFunctionModel[ssm], TransferFunctionModel[kssm]}Last@KroneckerModelDecomposition[StateSpaceModel[{{{-2., 1, 3}, {1, 0, -1}, {2, 0, 1}}, {{1}, {-1}, {0}}, {{1, 0, 0}}, {{0}},
{{1, 0, 3}, {2, 4, 1}, {-1., 0, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]特異ディスクリプタ状態空間モデルのクロネッカー分解を求める:
ssm = StateSpaceModel[{{{1, 3, 0}, {2, -1, 1}, {6, 0, 6}}, {{0}, {1}, {1}}, {{8, -6, 6}}, {{0}},
{{2, -1, 1}, {0, 0, 0}, {1, 0, 1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];
{{p, q}, kssm} = Chop@KroneckerModelDecomposition[ssm];行列のペア{p,q}はもとの系とクロネッカー形式を関連付ける:
Chop@{kssm, StateSpaceTransform[ssm, {p, q}]}Chop@{ssm, StateSpaceTransform[kssm, Inverse /@ {p, q}]}遅い部分系と速い部分系で伝達関数の適切な部分と適切ではない部分をモデル化する:
{proper, improper} = {TransferFunctionModel[{{{1}}, 3 + s}, s], TransferFunctionModel[{{{(1 + s)*(2 + s)}}, 1}, s]};StateSpaceModel /@ {proper, improper}Last[KroneckerModelDecomposition@StateSpaceModel[SystemsModelParallelConnect[proper, improper]]]ssm = StateSpaceModel[{{{-2, -6, 1}, {0, 4, -2}, {-15, 0, 5}}, {{0}, {1/2}, {-1/2}}, {{7, 2, -2}}, {{0}},
{{1, 2, 0}, {0, -2, 1}, {3, 0, -1}}}, SamplingPeriod -> None, SystemsModelLabels -> None];
{a, e} = Normal[ssm][[{1, -1}]];Last@KroneckerModelDecomposition[ssm]Last[JordanDecomposition[Inverse[e].a]]//MatrixForm速い部分系のディスクリプタ行列はすべての零固有値を含むジョルダン形である:
ssm = StateSpaceModel[{{{-2, -3, 0}, {0, 4, -5}, {-6, 3, 5}}, {{1}, {-3/2}, {1/2}}, {{1, 0, 2}}, {{0}},
{{0, 1, 0}, {0, 0, 0}, {0, 3, 0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];
{a, e} = Normal[ssm][[{1, -1}]];Last@KroneckerModelDecomposition[ssm]Last[JordanDecomposition[e.Inverse[a]]]//MatrixForm関連するガイド
-
▪
- ディスクリプタ制御系 ▪
- 状態空間モデルの解析
テキスト
Wolfram Research (2012), KroneckerModelDecomposition, Wolfram言語関数, https://reference.wolfram.com/language/ref/KroneckerModelDecomposition.html.
CMS
Wolfram Language. 2012. "KroneckerModelDecomposition." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/KroneckerModelDecomposition.html.
APA
Wolfram Language. (2012). KroneckerModelDecomposition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/KroneckerModelDecomposition.html
BibTeX
@misc{reference.wolfram_2026_kroneckermodeldecomposition, author="Wolfram Research", title="{KroneckerModelDecomposition}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/KroneckerModelDecomposition.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_kroneckermodeldecomposition, organization={Wolfram Research}, title={KroneckerModelDecomposition}, year={2012}, url={https://reference.wolfram.com/language/ref/KroneckerModelDecomposition.html}, note=[Accessed: 02-November-2026]}