AffineStateSpaceModel[{a,b,c,d},x]
アフィン型の状態空間モデル
,
を表す.
系のモデル sys に対応するアフィン型の状態空間モデルを与える.
AffineStateSpaceModel[eqns,{{x1,x10},…},{{u1,u10},…},{g1,…},t]
出力 gi,独立変数 t である微分方程式 eqns の xi0における従属変数 xiと uj0における入力 ujについてのテイラー(Taylor)入力線形化で得られた状態空間モデルを与える.
AffineStateSpaceModel
AffineStateSpaceModel[{a,b,c,d},x]
アフィン型の状態空間モデル
,
を表す.
系のモデル sys に対応するアフィン型の状態空間モデルを与える.
AffineStateSpaceModel[eqns,{{x1,x10},…},{{u1,u10},…},{g1,…},t]
出力 gi,独立変数 t である微分方程式 eqns の xi0における従属変数 xiと uj0における入力 ujについてのテイラー(Taylor)入力線形化で得られた状態空間モデルを与える.
詳細とオプション
- AffineStateSpaceModelは,入力線形モデルとしても知られている.
- AffineStateSpaceModelは,制御入力がアフィン型で起るが,それでも高度な解析および制御設計を許容するような任意の系を表すことができる.
- 次の短縮入力形を使うことができる.
-
AffineStateSpaceModel[{a,b,c},x]
によって与えられる出力AffineStateSpaceModel[{a,b},x]
によって与えられる出力 - AffineStateSpaceModel[{a,b,…},x,u,y,t]は,入力変数 u,出力変数 y,独立変数 t を明示的に指定する.
- AffineStateSpaceModelでは,状態 x と入力 u の動作値を使うことができる.
- AffineStateSpaceModel[…,{{x1,x10},…},{{u1,u10},…},…]を使って系の動作値を示すことができる. »
- AffineStateSpaceModel[sys]では,次の系を変換することができる.
-
NonlinearStateSpaceModel 近似テイラー変換 StateSpaceModel 厳密変換 TransferFunctionModel 厳密変換 - 状態方程式
および出力方程式
を持つ常微分方程式系は,
において線形化される. - 入力線形化系は,状態
,入力
,出力
を持つ.状態方程式は
,出力方程式は
である.係数関数は
,
,
,
で与えられる.すべてが
で評価される. - 状態方程式
,出力方程式
を持つ微分代数方程式系は,
において線形化される. - 入力線形化系は,状態
,入力
,出力
を持つ.状態方程式は
,出力方程式は
である.係数関数は
,
,
,
,
で与えられる.すべてが
および
で評価される. - 状態および入力のより高次の導関数を含む微分方程式は,追加的な状態を導入することで,上記のケースに簡約される.
- 操作点 xi0および uj0がAutomaticである計算では,OutputResponse等の関数ではこれがゼロであると仮定され,ControllableModelQのような関数では,これがStateSpaceModelへの変換,あるいは一般的であると仮定される.
- AffineStateSpaceModel[…]["prop"]は,特性"prop"の値を与える.
- AffineStateSpaceModel[…]["Properties"]は,使用可能な特性のリストを与える.
- 次は,使用可能なオプションである.
-
Appearance Automatic モデルの外観 ExternalTypeSignature Automatic 埋め込まれたコードの変数型 SamplingPeriod Automatic サンプリング周期 SystemsModelLabels Automatic 変数のラベル - オプションAppearanceは,Automatic,"Detailed","Structured","Elided","Iconized"の値を取ることができる.
- AffineStateSpaceModelは,OutputResponseおよびSystemsModelSeriesConnectの関数で使うことができる.
例題
すべて開く すべて閉じる例 (1)
AffineStateSpaceModel[{{Subscript[x, 2], Subsuperscript[x, 1, 2] - Subscript[x, 2]}, {{0}, {1}}, {Subscript[x, 1]}}, {Subscript[x, 1], Subscript[x, 2]}]AffineStateSpaceModel[{Subscript[x, 1]'[t] == Subscript[x, 2][t], Subscript[x, 2]'[t] == Subscript[x, 1][t]^2 - Subscript[x, 2][t] + u[t]}, {Subscript[x, 1][t], Subscript[x, 2][t]}, u[t], Subscript[x, 1][t], t]Plot[OutputResponse[%, UnitStep[t], {t, 0, 3}]//Evaluate, {t, 0, 3}]スコープ (31)
基本的な用法 (5)
AffineStateSpaceModel[{{β, γ, -γ + Sin[α]}, {{0}, {0}, {1 - β}}, {α}}, {α, β, γ}]OutputResponse[%, UnitStep[t], {t, 0, 10}];
Plot[%, {t, 0, 10}]asys = AffineStateSpaceModel[{{Subscript[x, 2], -Subscript[x, 3], -Subscript[x, 1]}, {{1, 0}, {Subscript[x, 1], 0}, {0, Cos[Subscript[x, 2]]}}, Subscript[x, 1]}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]{ControllableModelQ[asys], ObservableModelQ[asys]}AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 3], -Subscript[x, 1] - Subsuperscript[x, 1, 2] Subscript[x, 2]}, {{0}, {0}, {1}}, {Subscript[x, 1], Subscript[x, 2]}}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]StateSpaceModelを得るためにテイラー線形化を用いる:
StateSpaceModel[%]AffineStateSpaceModel[{{Subscript[x, 2], -Sin[Subscript[x, 1]]}, {{0}, {1}}, {Subscript[x, 1]}}, {{Subscript[x, 1], 0.2}, {Subscript[x, 2], -0.1}}, u]StateResponse[%, UnitStep[t], {t, 0, 1}];
Plot[%, {t, 0, 1}]asys = AffineStateSpaceModel[{{Sin[Subscript[x, 2][t]]Subscript[x, 1][t], Subscript[x, 1][t]}, {{1}, {0}}, {Subscript[x, 1][t]}}, {{Subscript[x, 1][t], 0.2}, {Subscript[x, 2][t], -0.1}}, u[t], y[t], t]AsymptoticOutputTracker[asys, Sin[t], {-2, -4 - 2I, -4 + 2I}]csys = SystemsModelStateFeedbackConnect[asys, %]Plot[Evaluate@OutputResponse[csys, 0, {t, 0, 10}], {t, 0, 10}]系の変換 (6)
StateSpaceModelのアフィン表現:
AffineStateSpaceModel[lsys = StateSpaceModel[{{{-1, 0}, {0, 1}}, {{1, 0}, {0, 1}}, {{-1, 1}}, {{1, 0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]AffineStateSpaceModel[lsys, {Subscript[x, 1], Subscript[x, 2]}]TransferFunctionModelのアフィン表現:
AffineStateSpaceModel[TransferFunctionModel[{{{Subscript[ω, n]^2}},
s^2 + 2*s*ζ*Subscript[ω, n] +
Subscript[ω, n]^2}, s]]NonlinearStateSpaceModelのテイラー入力線形化:
AffineStateSpaceModel[NonlinearStateSpaceModel[
{{Sin[u] + Subscript[x, 1]*Subscript[x, 2],
Cos[u] - Subscript[x, 1]}, {Subscript[x, 1]}},
{Subscript[x, 1], Subscript[x, 2]}, {{u, 0}}, {Automatic},
Automatic, SamplingPeriod -> None]]AffineStateSpaceModel[{ x''[t] == -x'[t]^2 + y[t] + F[t], y'[t] == Sin[y[t]] - y[t]^3}, {x[t], x'[t], y[t]}, F[t], {x[t], y[t]}, t]AffineStateSpaceModel[x''[t] == Sin[x[t]] - 1 + Exp[-F[t]], x[t], F[t], x[t], t]アフィン型のモデルは厳密にNonlinearStateSpaceModelとして表現される:
NonlinearStateSpaceModel[AffineStateSpaceModel[{{Subscript[x, 2], -Subscript[x, 1] -
Subscript[x, 1]^2*Subscript[x, 2]}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2]}, {{u, 0}}, {Subscript[x, 1]}, Automatic,
SamplingPeriod -> None]]アフィン型のモデルは,線形モデルに変換される際に線形化される:
StateSpaceModel[AffineStateSpaceModel[{{Subscript[x, 2], -Subscript[x, 1] -
Subscript[x, 1]^2*Subscript[x, 2]}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2]}, {{u, 0}}, {Subscript[x, 1]}, Automatic,
SamplingPeriod -> None]]TransferFunctionModel[AffineStateSpaceModel[{{Subscript[x, 2], -Subscript[x, 1] -
Subscript[x, 1]^2*Subscript[x, 2]}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2]}, {{u, 0}}, {Subscript[x, 1]}, Automatic,
SamplingPeriod -> None]]モデル操作 (5)
{a, b, c} = {{Subscript[f, 1][Subscript[x, 1], Subscript[x, 2]], Subscript[f, 2][Subscript[x, 1], Subscript[x, 2]]}, {{Subscript[g, 1][Subscript[x, 1], Subscript[x, 2]]}, {Subscript[g, 2][Subscript[x, 1], Subscript[x, 2]]}}, h[Subscript[x, 1], Subscript[x, 2]]};AffineStateSpaceModel[{a, b, c}, {Subscript[x, 1], Subscript[x, 2]}]デフォルト c は恒等写像である(これはタイプセットではない):
AffineStateSpaceModel[{a, b}, {Subscript[x, 1], Subscript[x, 2]}]{a, b, c} = {{Subscript[f, 1][Subscript[x, 1], Subscript[x, 2]], Subscript[f, 2][Subscript[x, 1], Subscript[x, 2]]}, {{Subscript[g, 1][Subscript[x, 1], Subscript[x, 2]]}, {Subscript[g, 2][Subscript[x, 1], Subscript[x, 2]]}}, h[Subscript[x, 1], Subscript[x, 2]]};AffineStateSpaceModel[{a, b, c}, {{Subscript[x, 1], 0}, {Subscript[x, 2], 0}}]AffineStateSpaceModel[%, {{Subscript[x, 1], 0}, {Subscript[x, 2], π}}]{a, b, c} = {{Subscript[f, 1][Subscript[x, 1], Subscript[x, 2]], Subscript[f, 2][Subscript[x, 1], Subscript[x, 2]]}, {{Subscript[g, 1][Subscript[x, 1], Subscript[x, 2]]}, {Subscript[g, 2][Subscript[x, 1], Subscript[x, 2]]}}, h[Subscript[x, 1], Subscript[x, 2]]};AffineStateSpaceModel[{a, b, c}, {Subscript[x, 1], Subscript[x, 2]}, u, y]AffineStateSpaceModel[%, {Subscript[z, 1], Subscript[z, 2]}, v, w]新たな状態変数,入力変数,出力変数,および(デフォルトの)時間変数:
Rest[Normal[%]]Normalを使ってモデルの値の完全リスト
を得る:
AffineStateSpaceModel[{{Subscript[x, 2][t], Sin[Subscript[x, 2][t]] - Subscript[x, 1][t]}, {{0}, {-1}}, {Subscript[x, 1][t]}, {{0}}}, {Subscript[x, 1][t], Subscript[x, 2][t]},
{u[t]}, y[t], t]Normal[%]AffineStateSpaceModel@@(% /. {Subscript[x, 1] -> α, Subscript[x, 2] -> β})任意の変数が指定されていない場合は,デフォルトの記号が想定される:
AffineStateSpaceModel[{{Subscript[x, 2], -Subsuperscript[x, 1, 2] + Sin[Subscript[x, 2]]}, {{0}, {-1}}, {Subscript[x, 1]}, {{0}}}, {Subscript[x, 1], Subscript[x, 2]}]Normal[%]動作値 (10)
SystemsModelDeleteを使って削除された状態と入力は,それぞれの動作値に設定される:
assm = AffineStateSpaceModel[{{Subscript[a, 1][Subscript[x, 1],
Subscript[x, 2]], Subscript[a, 2][Subscript[x, 1],
Subscript[x, 2]]},
{{Subscript[b, 1][Subscript[x, 1], Subscript[x, 2]]},
{Subscript[b, 2][Subscript[x, 1], Subscript[x, 2]]}},
{Subscript[c, 1][Subscript[x, 1], Subscript[x, 2]]},
{{0}}}, {{Subscript[x, 1], Subscript[x, 10]},
{Subscript[x, 2], Subscript[x, 20]}}, Automatic, {Automatic},
Automatic, SamplingPeriod -> None];SystemsModelDelete[assm, None, None, 1]SystemsModelExtractによって抽出されなかった状態と入力も同様である:
SystemsModelExtract[assm, All, All, -1]StateSpaceTransformは,もとの状態の動作値が指定されている場合は,新たな状態の動作値を計算する:
StateSpaceTransform[AffineStateSpaceModel[{{a[x]}, {{b[x]}},
{c[x]}, {{0}}}, {{x, Subscript[x, 0]}},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], {{x -> p[z]}, {z -> q[x]}}]デフォルトで,シミュレーション関数は動作値を初期値と想定する:
assm = AffineStateSpaceModel[{{a*x}, {{b}},
{c*x}, {{0}}}, {{x, x0}}, {u},
{Automatic}, Automatic, SamplingPeriod -> None];StateResponse[assm, 1, t]OutputResponse[assm, 1, t]StateSpaceModelは動作値について線形化する:
StateSpaceModel[AffineStateSpaceModel[{{a*x}, {{b}},
{c*x}, {{0}}}, {{x, x0}}, {u},
{Automatic}, Automatic, SamplingPeriod -> None]]動作値はNonlinearStateSpaceModelへの変換に保存される:
NonlinearStateSpaceModel[AffineStateSpaceModel[{{a*x}, {{b}},
{c*x}, {{0}}}, {{x, x0}}, {u},
{Automatic}, Automatic, SamplingPeriod -> None]]FullInformationOutputRegulatorは,ゲイン
を計算するために動作値周辺で線形化を行う:
assm = AffineStateSpaceModel[{{w + (-1 + x)^2*x, 0}, {{1}, {0}},
{x}, {{0}}}, {{x, 1}, {w, -1}}, {u},
{Automatic}, Automatic, SamplingPeriod -> None];FullInformationOutputRegulator[assm, {"Poles", {p}}]StateSpaceModel[assm];StateFeedbackGains[SystemsModelExtract[%, All, All, 1], {p}]動作値
が与えられている場合は,ControllableModelQ は
から可制御性を検定する:
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]]ControllableModelQ[AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 2]},
{{Subscript[x, 1]}, {1}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None]]ControllableDecompositionも同様に動作する:
ControllableDecomposition[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]]ControllableDecomposition[AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 2]},
{{Subscript[x, 1]}, {1}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None]]動作値
が与えられている場合は,ObservableModelQ は
における可観測性を検定する:
ObservableModelQ[AffineStateSpaceModel[{{Subscript[x, 1]*Subscript[x, 2], 0}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None]]ObservableModelQ[AffineStateSpaceModel[{{Subscript[x, 1]*Subscript[x, 2], 0}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None]]ObservableDecompositionも同様な動作を示す:
ObservableDecomposition[AffineStateSpaceModel[{{Subscript[x, 1]*Subscript[x, 2], 0}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None]]ObservableDecomposition[AffineStateSpaceModel[{{Subscript[x, 1]*Subscript[x, 2], 0}, {{0}, {1}},
{Subscript[x, 1]}, {{0}}}, {Subscript[x, 1],
Subscript[x, 2]}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None]]FeedbackLinearizeは動作値において線形化する:
AffineStateSpaceModel[{{Subscript[x, 2], (Subscript[x, 2] * Subscript[x, 3]) / Subscript[x, 1], 0},
{{0}, {-1}, {1}}, {Subscript[x, 1]}, {{0}}}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{{u, 0}}, {Automatic}, Automatic, SamplingPeriod -> None]FeedbackLinearize[AffineStateSpaceModel[{{Subscript[x, 2],
(Subscript[x, 2]*Subscript[x, 3])/Subscript[x, 1], 0},
{{0}, {-1}, {1}}, {Subscript[x, 1]}, {{0}}},
{{Subscript[x, 1], 1}, {Subscript[x, 2], 0},
{Subscript[x, 3], 0}}, {{u, 0}}, {Automatic}, Automatic,
SamplingPeriod -> None]]デフォルトで,始点で線形化が行われるが,このことは場合によっては問題を生む:
FeedbackLinearize[AffineStateSpaceModel[{{Subscript[x, 2],
(Subscript[x, 2]*Subscript[x, 3])/Subscript[x, 1], 0},
{{0}, {-1}, {1}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{{u, 0}}, {Automatic}, Automatic, SamplingPeriod -> None]]%["ZeroDynamicsSystem"]特性 (5)
AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] -
Subscript[x, 1]*Subscript[x, 2]},
{{0}, {Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None]["Properties"]AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] -
Subscript[x, 1]*Subscript[x, 2]},
{{0}, {Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None]["StateEquations"]AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] -
Subscript[x, 1]*Subscript[x, 2]},
{{0}, {Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None][{"StateVector", "OutputExpressions"}]Associationとしての使用可能な全特性:
AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] -
Subscript[x, 1]*Subscript[x, 2]},
{{0}, {Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None]["PropertyAssociation"]Datasetとして:
AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] -
Subscript[x, 1]*Subscript[x, 2]},
{{0}, {Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {u}, {Automatic},
Automatic, SamplingPeriod -> None]["PropertyDataset"]一般化と拡張 (1)
オプション (4)
Appearance (2)
デフォルトで,外観はノートブック内の表示に適合するように選択される:
AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1] Subscript[x, 2]}, RandomInteger[{-10, 10}, {2, 70}]}, {Subscript[x, 1], Subscript[x, 2]}]AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1] Subscript[x, 2]}, RandomInteger[{-10, 10}, {2, 7}]}, {Subscript[x, 1], Subscript[x, 2]}]AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1] Subscript[x, 2]}, RandomInteger[{-10, 10}, {2, 70}]}, {Subscript[x, 1], Subscript[x, 2]}, Appearance -> "Iconized"]SystemsModelLabels (2)
aa = {Subscript[x, 2], (29 Sin[Subscript[x, 1]] - Subsuperscript[x, 2, 2] Cos[Subscript[x, 1]]Sin[Subscript[x, 1]]/3 - Cos[Subscript[x, 1]]^2), Subscript[x, 4], (Subsuperscript[x, 2, 2] Sin[Subscript[x, 1]] - 9.8 Cos[Subscript[x, 1]]Sin[Subscript[x, 1]]/3 - Cos[Subscript[x, 1]]^2)};
bb = (1/3 - Cos[Subscript[x, 1]]^2){{0}, {-Cos[Subscript[x, 1]]}, {0}, {1}};
cc = {Subscript[x, 1], Subscript[x, 3]};
xx = {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3], Subscript[x, 4]};AffineStateSpaceModel[{aa, bb, cc}, xx, SystemsModelLabels -> {"Force", {"Angle", "Cart position"}, {"Angle", "Ang. velocity", "Cart position", "Cart velocity"}}]AffineStateSpaceModel[AffineStateSpaceModel[{{Subscript[x, 2],
Subscript[x, 1]*(-1 + Subscript[x, 2]) -
Subscript[x, 2]}, {{0}, {1}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2]}, {{u, 0}}, {Automatic},
Automatic, SamplingPeriod -> None], SystemsModelLabels -> {Automatic, Automatic, {"Pos.", "Vel."}}]アプリケーション (18)
機械系 (9)
回転運動
(トルク = 慣性 x 角加速度)というニュートンの方程式からの振子をモデル化する:
eqns = τ[t] - m g L Sin[θ[t]] == m L^2θ''[t];この方程式は適用されるトルクの入力
についてアフィン方程式である:
AffineStateSpaceModel[eqns, θ[t], τ[t], θ[t], t]以下の球状振子を,そのラグランジュ方程式
と一般化座標
および
でモデル化する:
ℒ = (1/2) m L^2(Derivative[1][θ][t]^2 + Sin[θ[t]]^2 Derivative[1][ϕ][t]^2) + m g L Cos[θ[t]];eqns = Table[Subscript[∂, t]D[ℒ, q'[t]] - D[ℒ, q[t]] == Subscript[τ, q][t], {q, {θ, ϕ}}]この方程式はアフィン方程式でありAffineStateSpaceModelで厳密に表現される:
AffineStateSpaceModel[eqns, {ϕ[t], θ[t]}, {Subscript[τ, θ][t], Subscript[τ, ϕ][t]}, {ϕ[t], θ[t]}, t]二重振子を,そのハミルトン方程式
でモデル化する.ただし,
は一般化座標,
は一般化運動量であり,
はそのラグランジュ方程式である:
ℋ = (-2 g Cos[Subscript[θ, 1][t]] Subsuperscript[L, 1, 3] Subsuperscript[L, 2, 2] Subscript[m, 2] (Subscript[m, 1] + Subscript[m, 2]) (Subscript[m, 1] + Sin[Subscript[θ, 2][t]]^2 Subscript[m, 2]) + Subsuperscript[L, 2, 2] Subscript[m, 2] (Subscript[p, 1][t] - Subscript[p, 2][t])^2 - 2 Cos[Subscript[θ, 2][t]] Subscript[L, 1] Subscript[L, 2] Subscript[m, 2] (Subscript[p, 1][t] - Subscript[p, 2][t]) Subscript[p, 2][t] + Subsuperscript[L, 1, 2] (-2 g Cos[Subscript[θ, 1][t] + Subscript[θ, 2][t]] Subsuperscript[L, 2, 3] Subsuperscript[m, 2, 2] (Subscript[m, 1] + Sin[Subscript[θ, 2][t]]^2 Subscript[m, 2]) + (Subscript[m, 1] + Subscript[m, 2]) Subscript[p, 2][t]^2)) / (2 Subsuperscript[L, 1, 2] Subsuperscript[L, 2, 2] Subscript[m, 2] (Subscript[m, 1] + Sin[Subscript[θ, 2][t]]^2 Subscript[m, 2]));eqns1 = Table[D[Subscript[θ, i][t], t] == D[ℋ, Subscript[p, i][t]], {i, 2}];eqns2 = Table[Subscript[τ, i][t] - Subscript[p, i]'[t] == D[ℋ, Subscript[θ, i][t]], {i, 2}];pars = {Subscript[L, 1] -> 1, Subscript[L, 2] -> 1, Subscript[m, 1] -> 1, Subscript[m, 2] -> 1, g -> 9.8};AffineStateSpaceModel[Join[eqns1, eqns2], {Subscript[θ, 1][t], Subscript[θ, 2][t], Subscript[p, 1][t], Subscript[p, 2][t]}, {Subscript[τ, 1][t], Subscript[τ, 2][t]}, {Subscript[θ, 1][t], Subscript[θ, 2][t]}, t] /. pars//Simplify
pars = {l -> 1, m -> 0.2, M -> 0.3, g -> 9.8};eqns = {(M + m)x''[t] + m l Sin[θ[t]] θ'[t]^2 - m l Cos[θ[t]] θ''[t] == F[t], l θ''[t] - x''[t] Cos[θ[t]] - g Sin[θ[t]] == 0} /. pars;pend = AffineStateSpaceModel[eqns, {θ[t], x[t]}, {{F[t], 0}}, {θ[t], x[t]}, t]k = StateFeedbackGains[StateSpaceModel[pend], {-2, -3, -4, -5}]振子の初期角度40°で閉ループ系のパフォーマンスを評価する:
res = OutputResponse[{SystemsModelStateFeedbackConnect[pend, k], {40°, 0, 0, 0}}, 0, {t, 0, 4}];Plot[res, {t, 0, 4}, PlotRange -> All]梁の上でバランスを保っているボールをモデル化する.梁の角度
だけですべての内部状態が観察できるかどうかを求める:
eqns = {r''[t] + g Sin[θ[t]] - r[t] θ'[t]^2 == 0, (m r[t]^2 + J)θ''[t] + 2 m r[t]r'[t]θ'[t] + m g r[t] Cos[θ[t]] == τ[t]};AffineStateSpaceModel[eqns, {r[t], θ[t]}, τ[t], {θ[t]}, t]ObservableModelQ[%]制御入力を運転速度と操縦角度率として,自動車の運動学をモデル化する.自動車の横への動きは制御入力を組み合せることで制御可能であることを示す:
運転速度
,操縦角度率
が入力なので,このモデルにはダイナミクスはない:
a = {0, 0, 0, 0};
b = {{Cos[θ + ϕ], 0}, {Sin[θ + ϕ], 0}, {Sin[θ], 0}, {0, 1}};car = AffineStateSpaceModel[{a, b, {x, y}}, {x, y, ϕ, θ}]AffineStateSpaceModelは,自動車が全方向に可制御であることを示している:
ControllableModelQ[car]ControllableModelQ[StateSpaceModel[car]]inp = {Piecewise[{{1, 0 <= t <= 1}, {0, Inequality[1, Less, t, LessEqual, 2]},
{-1, Inequality[2, Less, t, LessEqual, 3]}}, 0], Piecewise[{{0, 0 <= t <= 1}, {1, Inequality[1, Less, t, LessEqual, 2]},
{0, Inequality[2, Less, t, LessEqual, 3]}, {-1, Inequality[3, Less, t, LessEqual, 4]}}, 0] };{Subscript[x, r], Subscript[y, r], Subscript[ϕ, r], Subscript[θ, r]} = StateResponse[car, inp, {t, 0, 5}];axle = With[{x = 0.3, y = -0.3, d1 = 0.15, d2 = 0.025, d3 = 0.04, d4 = 0.6}, Polygon[{{x, y}, {x - d1, y}, {x - d1, y - d2}, {x + d1 + d3, y - d2}, {x + d1 + d3, y}, {x + d3, y}, {x + d3, y + d4}, {x + d1 + d3, y + d4}, {x + d1 + d3, y + d2 + d4}, {x - d1, y + d2 + d4}, {x - d1, y + d4}, {x, y + d4}}]];Animate[
Evaluate[tfun = {RotationMatrix[Subscript[ϕ, r]], {Subscript[x, r], Subscript[y, r]}};Graphics[{Rotate[GeometricTransformation[axle, tfun], Subscript[θ, r]]}, PlotRange -> {{0, 1.75}, {-1.25, 0.5}}]], {t, 0, 5}, SaveDefinitions -> True, AnimationRunning -> False, AnimationRate -> 0.25]駆動力
,トルク
を入力として,橇の水平面における可制御性:
a = {ω, Cos[ϕ] v, Sin[ϕ] v, -(d m ω v/d^2 m + Subscript[J, zz]), d ω^2};
b = {{0, 0}, {0, 0}, {0, 0}, {(1/d^2 m + Subscript[J, zz]), 0}, {0, (1/m)}};sl = AffineStateSpaceModel[{a, b}, {ϕ, x, y, ω, v}]ControllableModelQ[StateSpaceModel@sl]Table[ControllableModelQ[SystemsModelExtract[sl, i]], {i, {1, 2}}]平面垂直離陸着陸 (PVTOL) 航空機のゼロダイナミクスを計算する:»
AffineStateSpaceModel[{m x''[t] == -Sin[θ[t]]T[t] + ϵ Cos[θ[t]] M[t], m y''[t] == Cos[θ[t]] T[t] + ϵ Sin[θ[t]] M[t] - m g, J θ''[t] == M[t]}, {x[t], y[t], θ[t]}, {T[t], M[t]}, {x[t], y[t]}, t]フィードバック線形化は,不安定な残差ダイナミクスを明らかにする:
FeedbackLinearize[%, {{Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4], Subscript[z, 5], Subscript[z, 6]}}, "ZeroDynamicsSystem"]Eigenvalues[First[Normal[StateSpaceModel[%]]]]asys = AffineStateSpaceModel[{{0, 0, 0}, {{1, 0}, {0, 1}, {-Subscript[x, 2], Subscript[x, 1]}}}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]アフィン系は可制御であるが,そのテイラー線形化はそうではない:
ControllableModelQ /@ {asys, StateSpaceModel[asys]}電気系 (4)
電機子電圧,界磁電圧,負荷トルクを入力として,別々に励起された直流モーターをモデル化し,線形近似の極における減衰の影響を見る:»
aa = {(-B ω + K Subscript[i, a] Subscript[i, f]/J), (-K ω Subscript[i, f] - Subscript[i, a] Subscript[R, a]/Subscript[L, a]), -(Subscript[i, f] Subscript[R, f]/Subscript[L, f])};
bb = {{0, 0, -(1/J)}, {(1/Subscript[L, a]), 0, 0}, {0, (1/Subscript[L, f]), 0}};
cc = {ω};
xx = {ω -> 50, Subscript[i, a] -> 33.49727, Subscript[i, f] -> 1.25383};
uu = {Subscript[e, a] -> 283.65, Subscript[e, f] -> 75.23, Subscript[T, L] -> 10};asys = AffineStateSpaceModel[{aa, bb, cc}, xx, uu]pars = {K -> 0.25, J -> 0.15, Subscript[L, a] -> 2, Subscript[R, a] -> 8, Subscript[L, f] -> 8, Subscript[R, f] -> 60};tfm = TransferFunctionModel[asys /. pars]//SimplifyFirst@TransferFunctionZeros[tfm]//QuietRootLocusPlot[SystemsModelExtract[tfm, 1], {B, 0, 1}, FeedbackType -> None, AspectRatio -> 1, PlotRange -> All]dq回転座標における誘導電動機をモデル化し,これを使って位相座標を出力として持つモデルを得る:»
a = {-(α + β)Subscript[i, ds] + (β/Subscript[L, s])Subscript[ϕ, ds] + (ω/σ Subscript[L, s])Subscript[ϕ, qs], -(α + β)Subscript[i, qs] - (ω/σ Subscript[L, s])Subscript[ϕ, ds] + (β/Subscript[L, s])Subscript[ϕ, qs], -α σ Subscript[L, s]Subscript[i, ds] + ω Subscript[ϕ, qs], -α σ Subscript[L, s]Subscript[i, qs] - ω Subscript[ϕ, ds]};
b = {{(1/σ Subscript[L, s]), 0, Subscript[i, qs]}, {0, (1/σ Subscript[L, s]), -Subscript[i, ds]}, {1, 0, Subscript[ϕ, qs]}, {0, 1, -Subscript[ϕ, ds]}};motor = AffineStateSpaceModel[{a, b}, {Subscript[i, ds], Subscript[i, qs], Subscript[ϕ, ds], Subscript[ϕ, qs]}]trans = Inverse[{{Cos[Subscript[n, r] θ], Sin[Subscript[n, r] θ]}, {-Sin[Subscript[n, r] θ], Cos[Subscript[n, r] θ]}}]//Simplify;
TransferFunctionModel[ArrayFlatten[{{trans, 0}, {0, trans}}]]SystemsModelSeriesConnect[motor, %]一般化された座標と擬似速度の関係を表す運動方程式およびポアンカレ(Poincaré)の方程式として得られる動的方程式使って,3位相シンクロナスモーターのモデルを組み立てる.入力は負荷トルク
,Blondel電圧
,巻線
である:»
u = {Subscript[T, L][t], Subscript[v, d][t], Subscript[v, q][t], Subscript[v, o][t], Subscript[v, f][t]}生成された座標は,ローターの角度,固定子の巻電荷,場の巻電荷である:
qq = {θ[t], Subscript[q, 1][t], Subscript[q, 2][t], Subscript[q, 3][t], Subscript[q, f][t]}擬似速度は角速度,Blondel電流,界磁電流として選ばれる:
p = {ω[t], Subscript[i, d][t], Subscript[i, q][t], Subscript[i, 0][t], Subscript[i, f][t]}V = {{1, 0, 0, 0, 0}, {0, Sqrt[(2/3)] Cos[θ[t]], -Sqrt[(2/3)] Sin[(π/6) - θ[t]], -Sqrt[(2/3)] Sin[(π/6) + θ[t]], 0}, {0, Sqrt[(2/3)] Sin[θ[t]], -Sqrt[(2/3)] Cos[(π/6) - θ[t]], Sqrt[(2/3)] Cos[(π/6) + θ[t]], 0}, {0, (1/Sqrt[3]), (1/Sqrt[3]), (1/Sqrt[3]), 0}, {0, 0, 0, 0, 1}};c[i_, j_, k_] := V[[i]].(D[V[[k]], {qq}].V[[j]] - D[V[[j]], {qq}].V[[k]])ℒ = (1/2)p.(| | | | | |
| - | ------------- | ------- | --------- | ------------- |
| J | 0 | 0 | 0 | 0 |
| 0 | L1 + L3 | 0 | 0 | Sqrt[(3/2)]L5 |
| 0 | 0 | L1 + L3 | 0 | 0 |
| 0 | 0 | 0 | L1 - 2 L3 | 0 |
| 0 | Sqrt[(3/2)]L5 | 0 | 0 | L4 |).p//Simplify一般化された力は
として計算される.ただし,
はLurのポテンシャル関数である:
𝒟 = (1/2)p.DiagonalMatrix[{0, r, r, r, Subscript[r, f]}].p + {-Subscript[T, L][t], Subscript[v, d][t], Subscript[v, q][t], Subscript[v, o][t], Subscript[v, f][t]}.p;𝒬 = D[𝒟, {p}]ラグランジュ
,構造係数
,一般化された力
から,ポアンカレの方程式
を組み立てる:
peqns = Thread[Table[D[D[ℒ, p[[kk]]], t] - Underoverscript[∑, ii = 1, 5]Underoverscript[∑, jj = 1, 5]c[ii, jj, kk]D[ℒ, p[[ii]]]p[[jj]], {kk, Range[5]}] == 𝒬]//FullSimplify運動方程式およびポアンカレの方程式からアフィンモデルを得ることができる:
AffineStateSpaceModel[Join[Thread[D[qq, t] == V.p], peqns], Join[qq, p], u, {}, t] /. Subscript[L, _] -> 1//FullSimplifyさまざまな非線形特性について,Chuaの回路のシミュレーションを行う:»
pars = {Subscript[𝒞, 1] -> (1/9), Subscript[𝒞, 2] -> 1, ℒ -> (1/7), ℛ -> (1/0.7)};chua[g_, v_] := AffineStateSpaceModel[{{(1/Subscript[𝒞, 1])((1/ℛ)(Subscript[𝒱, 2] - v) - g), (1/Subscript[𝒞, 2])((1/ℛ)(v - Subscript[𝒱, 2]) - 𝒾), (1/ℒ)Subscript[𝒱, 2]}, {{-1}, {0}, {0}}, {v, Subscript[𝒱, 2]}}, {v -> -0.2, Subscript[𝒱, 2] -> 0, 𝒾 -> 1}] /. parschua[g[Subscript[𝒱, 1]], Subscript[𝒱, 1]]resp[g_, v_] := (or = OutputResponse[chua[g, v], 0, {t, 0, 90}];
Tooltip[ParametricPlot[or, {t, 0, 90}, PlotRange -> All], Plot[g, {v, -5, 5}]]
)resp[Piecewise[{{0.9 - 0.55*(1 + v), v < -1}, {-0.9*v, -1 <= v <= 1}, {-0.9 - 0.15*(-1 + v), v > 1}}, 0], v]resp[Piecewise[{{0.7 - 0.15*(1 + v), v < -1}, {-0.7*v, -1 <= v <= 1}, {-0.7 - 0.15*(-1 + v), v > 1}}, 0], v]resp[-0.52v + 0.0006 v^3, v]resp[-0.5 v, v]化学系 (5)
連続発酵槽における化学反応について,アフィン型のモデルと線形モデルのシミュレーションを比較する:»
入力
,状態
,出力
(のモデルを指定する.これは生産性のモデルである:
a = With[{μ = Subscript[μ, 𝓂](1 - 𝓅 / Subscript[𝓅, 𝓂])𝓈 / (Subscript[𝓀, 𝓂] + 𝓈 + 𝓈^2 / Subscript[𝓀, 𝒾])}, {-𝒹 𝓍 + μ 𝓍, -𝒹 𝓈 - μ 𝓍 / Subscript[𝓎, 𝓍, 𝓈], -𝒹 𝓅 + (α μ + β) 𝓍}];
b = {{0}, {𝒹}, {0}};
c = {𝒹 𝓅};asys = AffineStateSpaceModel[{a, b, c}, {𝓍, 𝓈, 𝓅}]lsys = StateSpaceModel[asys]バイオマスと基質のある種の初期濃度から始めて,生産性のシミュレーションを行う:
pars = {Subscript[μ, 𝓂] -> 0.48, 𝒹 -> 0.15, Subscript[𝓎, 𝓍, 𝓈] -> 0.4, Subscript[𝓅, 𝓂] -> 50, Subscript[𝓀, 𝓂] -> 1.2, Subscript[𝓀, 𝒾] -> 22, α -> 2.2, β -> 0.2};Table[OutputResponse[{sys, {0.1, 0.5, 0}}, 0, {t, 0, 30}], {sys, {asys, lsys} /. pars}];このシミュレーションによると,非線形動作が線形化された動作と著しく異なることが分かる:
Plot[%, {t, 0, 30}, PlotLegends -> {"Affine response", "Linear response"}]周波数法を用い,非等温連続撹拌層反応器 (CSTR) 内の反応について,アフィンモデルと線形モデルを比較する:»
aa = With[{c = (1 - Subscript[x, 1])Exp[Subscript[x, 2] / (1 + Subscript[x, 2] / γ)]}, {-Subscript[x, 1] + Subscript[d, a] c, -Subscript[x, 2] + b Subscript[d, a]c - β Subscript[x, 2]}];
bb = {{0}, {β}};
cc = {Subscript[x, 2]};pars = {β -> 1, Subscript[d, a] -> 1, b -> 1, γ -> 1};asys = AffineStateSpaceModel[{aa, bb, cc}, {Subscript[x, 1], Subscript[x, 2]}] /. pars始点周囲のテイラー線形化でTransferFunctionModelを得る:
tfm = TransferFunctionModel[asys]BodePlotは,線形系の周波数応答を与える:
sfreq = Log10[1];BodePlot[tfm, Epilog -> {Line[{{sfreq, -40}, {sfreq, 0}}], Line[{{sfreq, -90}, {sfreq, 0}}]}]周波数1におけるゲインの減衰と位相遅れは,座標を読むことで得られる:
{Power[10, -4.1 / 20], 30 °}//Nlres = OutputResponse[tfm, Sin[t], {t, 0, 50}];
nlres = OutputResponse[asys, Sin[t], {t, 0, 50}];このプロットは,アフィン系にはそれほど減衰が見られないが,線形化された系による予想よりも位相遅れが大きいことを示している:
Plot[{Sin[t], lres, nlres}, {t, 0, 12}, PlotLegends -> {"Input", "Response of linear system", "Response of affine system"}]等温CSTR内の,反応
のゼロダイナミクスを得る:»
aa = {1 - Subscript[𝓍, 𝒜] - Subscript[𝒟𝒶, 𝒶1]Subscript[𝓍, 𝒜] + Subscript[𝒟𝒶, 𝒶2]Subsuperscript[𝓍, ℬ, 2], -Subscript[𝓍, ℬ] + Subscript[𝒟𝒶, 𝒶1]Subscript[𝓍, 𝒜] - Subscript[𝒟𝒶, 𝒶2]Subsuperscript[𝓍, ℬ, 2] - Subscript[𝒟𝒶, 𝒶3]Subsuperscript[𝓍, 𝒞, 2], -Subscript[𝓍, 𝒞] + Subscript[𝒟𝒶, 𝒶3]Subsuperscript[𝓍, ℬ, 2]};
bb = {{0}, {1}, {0}};
cc = {Subscript[𝓍, 𝒞]};asys = AffineStateSpaceModel[{aa, bb, cc}, {Subscript[𝓍, 𝒜], Subscript[𝓍, ℬ], Subscript[𝓍, 𝒞]}]SystemsModelVectorRelativeOrders[asys]FeedbackLinearize[asys, Automatic, "ZeroDynamicsSystem"]Eigenvalues@First@Normal@StateSpaceModel@%厳密な線形化を使い,シクロペンタノール合成過程
,
での
および
の濃度を制御する制御器を設計する.ただし,
はシクロペンタノール,
はジシクロペンタジエンである:»
pars = {𝓊 -> 0.2, Subscript[𝓀, 1] -> 0.05, Subscript[𝓀, 2] -> 0.01, Subscript[𝓀, 3] -> 0.025, Subscript[𝒸, 𝒜0] -> 0.3};aa = {-Subscript[𝓀, 1] Subscript[𝒸, 𝒜] - Subscript[𝓀, 3]Subsuperscript[𝒸, 𝒜, 2], Subscript[𝓀, 1]Subscript[𝒸, 𝒜] - Subscript[𝓀, 2]Subscript[𝒸, ℬ]};
bb = {{(Subscript[𝒸, 𝒜0] - Subscript[𝒸, 𝒜])}, {-Subscript[𝒸, ℬ]}};
cc = {Subscript[𝒸, ℬ]};Join[Thread[(aa + bb.{𝓊} /. pars) == 0], {Subscript[𝒸, 𝒜] > 0, Subscript[𝒸, ℬ] > 0}];sols = NSolve[%, {Subscript[𝒸, 𝒜], Subscript[𝒸, ℬ]}]asys = AffineStateSpaceModel[{aa, bb, cc} /. pars, sols[[1]], {𝓊 -> 0.2}]ℱ = FeedbackLinearize[asys, {{Subscript[z, 1], Subscript[z, 2]}, v}]Eigenvalues[First@Normal@StateSpaceModel@ℱ["ResidualSystem"]]κ = StateFeedbackGains[ℱ["LinearSystem"], {-5}]csys = ℱ[{"ClosedLoopSystem", κ}]OutputResponse[{csys, {0.09, 0.1}}, 0, {t, 0, 5}];
p1 = Plot[%, {t, 0, 5}, PlotRange -> {{0, 1.5}, All}]OutputResponse[{asys, {0.09, 0.1}}, 0, {t, 0, 5}];
Show[p1, Plot[%, {t, 0, 5}, PlotRange -> All, PlotStyle -> Dashed]]ガスメタルアーク溶接過程は,アフィン系でモデル化することができる.指定されたアーク長を保つことができるフィードバック法則を設計する:»
pars = {Subscript[k, 1] -> (3/10000), Subscript[k, 2] -> (7/10000), Subscript[v, e] -> 0.3, τ -> (7/100000)};asys = AffineStateSpaceModel[{{(-τ^(-1))*Subscript[x, 1][t],
-Subscript[v, e] + Subscript[k, 1]*
Subscript[x, 1][t] + Subscript[k, 2]*
Subscript[x, 1][t]^2*(Subscript[l, c] -
Subscript[x, 2][t])}, {{τ^(-1)}, {0}},
{Subscript[x, 2][t]}, {{0}}},
{Subscript[x, 1][t], Subscript[x, 2][t]},
Automatic, {Automatic}, t, SamplingPeriod -> None] /. pars;アーク長を1センチに保つようにAsymptoticOutputTrackerを使ってフィードバック法則を計算する:
fb = AsymptoticOutputTracker[asys, 0.01, {-15, -20}]//SimplifyRandomFunction[WhiteNoiseProcess[0.001], {0, 10}]["Paths"][[1]];
Subscript[l, c] = Interpolation[{#[[1]], #[[2]] + 0.02}& /@ %, t];Plot[Subscript[l, c], {t, 0, 10}]csys = SystemsModelStateFeedbackConnect[asys, fb];このシミュレーションは,追跡が保たれていることを示している:
Plot[OutputResponse[{csys, {200, 0.01}}, {0}, {t, 0, 10}]//Evaluate, {t, 0, 10}, PlotRange -> All, AxesOrigin -> {0, 0}]特性と関係 (4)
状態と入力の線形化でAffineStateSpaceModelをStateSpaceModelに変換する:
StateSpaceModel[AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] +
Subscript[x, 2]^2}, {{0}, {1 + Subscript[x, 2]}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, {{u, 0}}, {Automatic}, Automatic,
SamplingPeriod -> None]]AffineStateSpaceModel[%]入力の線形化でNonlinearStateSpaceModelをAffineStateSpaceModelに変換する:
AffineStateSpaceModel[NonlinearStateSpaceModel[{{Subscript[x, 2],
u^2 + Subscript[x, 1] + Subscript[x, 2]^2 +
u*(1 + Subscript[x, 2])}, {Subscript[x, 1]}},
{{Subscript[x, 1], 0}, {Subscript[x, 2], 0}}, {{u, 0}},
{Automatic}, Automatic, SamplingPeriod -> None]]NonlinearStateSpaceModel[%]状態と入力の線形化でTransferFunctionModelに変換する:
TransferFunctionModel[AffineStateSpaceModel[{{Subscript[x, 2], Subscript[x, 1] +
Subscript[x, 2]^2}, {{0}, {1 + Subscript[x, 2]}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, {{u, 0}}, {Automatic}, Automatic,
SamplingPeriod -> None], s]AffineStateSpaceModel[%]StateSpaceTransformはNonlinearStateSpaceModelを作ることがある:
sys = AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1]}, {{0}, {u}}}, {Subscript[x, 1], Subscript[x, 2]}, u]StateSpaceTransform[sys, {{1, 0}, {0, 1}}]考えられる問題 (1)
a = {Subscript[x, 1] Exp[Subscript[x, 3]], -Subscript[x, 1], Subscript[x, 1]Subscript[x, 2]};
b1 = {0, Subscript[x, 2], 1};b2 = {-1, 0, 1};AffineStateSpaceModel[{a, {b1, b2}, Subscript[x, 1]}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]Transposeを使ってそれらを列に並べる:
AffineStateSpaceModel[{a, Transpose[{b1, b2}], Subscript[x, 1]}, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]テキスト
Wolfram Research (2014), AffineStateSpaceModel, Wolfram言語関数, https://reference.wolfram.com/language/ref/AffineStateSpaceModel.html.
CMS
Wolfram Language. 2014. "AffineStateSpaceModel." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AffineStateSpaceModel.html.
APA
Wolfram Language. (2014). AffineStateSpaceModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AffineStateSpaceModel.html
BibTeX
@misc{reference.wolfram_2026_affinestatespacemodel, author="Wolfram Research", title="{AffineStateSpaceModel}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/AffineStateSpaceModel.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_affinestatespacemodel, organization={Wolfram Research}, title={AffineStateSpaceModel}, year={2014}, url={https://reference.wolfram.com/language/ref/AffineStateSpaceModel.html}, note=[Accessed: 07-September-2026]}