CarlemanLinearize[sys,spec]
非線形状態空間モデル sys を spec に従ってCarleman線形化する.
CarlemanLinearize
CarlemanLinearize[sys,spec]
非線形状態空間モデル sys を spec に従ってCarleman線形化する.
詳細
- CarlemanLinearizeは,sys が埋め込まれた無限次数の系を近似する.
- 入力線形系についての結果は双一次,つまり,状態と入力の両方が線形である.通常は,状態のみが線形である.
- spec の可能な値
-
k 近似次数 {{e1,…,en}} 埋込み変換の単項式 {…,{z1,…,zn}} 新たな状態変数 {…,z,order} 単項式順序 - order の可能な設定値は,MonomialListにおけるものと同じである.
- CarlemanLinearizeは,さまざまな特性の抽出に使うことができるLinearizingTransformationDataオブジェクトを返す.
- 使用可能な特性
-
"EmbeddingTransformation" {z1->e1,…,zn->en} "TransformedSystem" 変換された系の近似 {"OriginalSystemController",κ} もとの系 sys の制御器 {"OriginalSystemEstimator",ℓ} もとの系 sys の推定器 {"ClosedLoopSystem",κ} sys の制御器がある閉ループ系
例題
すべて開く すべて閉じる例 (1)
𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{E^x}, {{1 + x^2}}, {x}, {{0}}},
{x}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 3]tsys = 𝒞ℒ["TransformedSystem"]κ = StateFeedbackGains[StateSpaceModel[tsys], {-0.5, -1 + I, -1 - I}]csys = 𝒞ℒ[{"ClosedLoopSystem", κ}]OutputResponse[csys, 1, {t, 0, 20}];
Plot[%, {t, 0, 1}, PlotRange -> All]スコープ (10)
基本的な用法 (6)
𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 4]𝒞ℒ["TransformedSystem"]SystemsModelLinearity[%]𝒞ℒ["EmbeddingTransformation"]𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], {4, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4]}}]𝒞ℒ[{"TransformedSystem", "EmbeddingTransformation"}]𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], {{x, x^2, x^4, x^7}, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4]}}]𝒞ℒ[{"TransformedSystem", "EmbeddingTransformation"}]𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], {4, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4]}, "Lexicographic"}]𝒞ℒ[{"TransformedSystem", "EmbeddingTransformation"}]CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 4, "TransformedSystem"]CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 4, {"TransformedSystem", "EmbeddingTransformation"}]𝒞ℒ = CarlemanLinearize[NonlinearStateSpaceModel[{{u + u^2 + x^2},
{x}}, {x}, {u}, {Automatic}, Automatic,
SamplingPeriod -> None], {4, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4]}}]𝒞ℒ["TransformedSystem"]SystemsModelLinearity[%]特性 (4)
CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 4, "Properties"]𝒞ℒ = CarlemanLinearize[AffineStateSpaceModel[{{x^2}, {{1}}, {x}, {{0}}}, {x},
Automatic, {Automatic}, Automatic, SamplingPeriod -> None], 4];𝒞ℒ["EmbeddingTransformation"]𝒞ℒ["TransformedSystem"]asys = AffineStateSpaceModel[{{x + x^2}, {{1}}, {x}, {{0}}},
{{x, -1}}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None];𝒞ℒ = CarlemanLinearize[asys, {4, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4]}}]変換された系のテイラー(Taylor)線形化に基づいて制御器を設計する:
κ = StateFeedbackGains[StateSpaceModel@𝒞ℒ["TransformedSystem"], {-0.5, -1, -2 + I, -2 - I}]csys = 𝒞ℒ[{"ClosedLoopSystem", κ}]//Simplifyor = OutputResponse[{csys, -2}, 0, {t, 0, 5}];
Show[p = Plot[or, {t, 0, 5}, PlotRange -> All], PlotRange -> {{0, 0.5}, All}]𝒞ℒ[{"OriginalSystemController", κ}]Plot[𝒞ℒ[{"OriginalSystemController", κ}] /. x -> or, {t, 0, 0.5}, PlotRange -> All]csys1 = SystemsModelStateFeedbackConnect[asys, StateFeedbackGains[StateSpaceModel[asys], {-3}]]or1 = OutputResponse[{csys1, -2}, 0, {t, 0, 5}];
p1 = Plot[or1, {t, 0, 5}, PlotRange -> All, PlotStyle -> Dashed]Show[p, p1]asys = AffineStateSpaceModel[{{-2*x + x^2 - y + y^2,
x^2 - 2*y}, {{1}, {1}}, {x}, {{0}}},
{{x, -1}, {y, -1}}, Automatic, {Automatic}, Automatic,
SamplingPeriod -> None];𝒞ℒ = CarlemanLinearize[asys, {2, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3], Subscript[z, 4], Subscript[z, 5]}}]ℓ = EstimatorGains[StateSpaceModel@𝒞ℒ["TransformedSystem"], {-3, -4, -5, -6 + 2 I, -6 - 2I}]estim = 𝒞ℒ[{"OriginalSystemEstimator", ℓ}]or = OutputResponse[{asys, {-0.2, 0.1}}, 0, {t, 0, 5}];res1 = OutputResponse[SystemsModelDelete[estim, None, 3], Join[{0}, or], {t, 0, 5}];Plot[res1, {t, 0, 5}, PlotRange -> All]res = StateResponse[{asys, {-0.2, 0.1}}, 0, {t, 0, 5}];Plot[Evaluate@Flatten@{res, res1}, {t, 0, 5}, PlotRange -> All, PlotLegends -> {"State 1", "State 2", "Estimated State 1", "Estimated State 2"}]アプリケーション (2)
Carleman線形化に基づいてHIV-1感染の治療を設計する.パラメータは,健康なセルの崩壊率
および 生成率
,感染率係数
,ウイルスの崩壊率
である:»
pars = {d -> 0.02, s -> 10, θ -> 0.001, μ -> 0.24};状態は,健康なセル
および遊離ウイルス
のレベルであり,入力は投薬量である:
asys = AffineStateSpaceModel[{{s - d*Subscript[x, 1] -
θ*Subscript[x, 1]*Subscript[x, 2],
(-μ)*Subscript[x, 2] + θ*Subscript[x, 1]*
Subscript[x, 2]},
{{θ*Subscript[x, 1]*Subscript[x, 2]},
{(-θ)*Subscript[x, 1]*Subscript[x, 2]}}},
{{Subscript[x, 1], (s - r*μ)/d},
{Subscript[x, 2], r}},
{{u, (s*θ - d*μ -
r*θ*μ)/(θ*
(s - r*μ))}}, {Automatic, Automatic}, Automatic,
SamplingPeriod -> None] /. parssr = StateResponse[asys /. r -> 10, 0.2, {t, 0, 20}];
Table[Plot[sr, {t, 0, 20}], {sr, sr}]𝒞ℒ = CarlemanLinearize[asys /. r -> 10, {{Subscript[x, 1], Subscript[x, 2], Subscript[x, 1]Subscript[x, 2]}}]ssm = StateSpaceModel[𝒞ℒ["TransformedSystem"]];κ = LQRegulatorGains[ssm, {DiagonalMatrix[{0.1, 50, 25}], {{3000}}}]csys = 𝒞ℒ[{"ClosedLoopSystem", κ}]//Simplifysr = StateResponse[{csys, {370, 14}}, 0, {t, 0, 600}];
Table[Plot[sr, {t, 0, 600}], {sr, sr}]-𝒞ℒ[{"OriginalSystemController", κ}];
Plot[% /. Thread[{Subscript[x, 1], Subscript[x, 2]} -> sr], {t, 0, 600}]Carleman線形化を使って推定器を設計し,連続撹拌層反応器(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};sys = AffineStateSpaceModel[{aa, bb, cc}, {Subscript[x, 1], Subscript[x, 2]}] /. pars𝒞ℒ = CarlemanLinearize[sys, 4]𝒞ℒ["TransformedSystem"]EstimatorGains[StateSpaceModel[%], -Range[1, 14]//N];estim = 𝒞ℒ[{"OriginalSystemEstimator", %}]𝒸 = StateResponse[{sys, {0.5, 3}}, 1, {t, 0, 7}][[1]];
Plot[𝒸, {t, 0, 7}, PlotRange -> All]ℴ = OutputResponse[{sys, {0.5, 3}}, 1, {t, 0, 7}];
𝒸ℯ = OutputResponse[estim, Join[{1}, ℴ], {t, 0, 7}][[1]];Plot[{𝒸, 𝒸ℯ}, {t, 0, 7}, PlotLegends -> {"Actual", "Estimated"}, PlotRange -> All]特性と関係 (1)
assm = AffineStateSpaceModel[
{{ω, (g*m*(m + M)*
Sin[θ])/(l*m^2 + l*m*
M - l*m^2*Cos[θ]^2) -
(l*m^2*ω^2*Cos[θ]*Sin[θ])/
(l*m^2 + l*m*M -
l*m^2*Cos[θ]^2), v,
(l^2*m^2*ω^2*Sin[θ])/
(l*m^2 + l*m*M -
l*m^2*Cos[θ]^2) -
(g*l*m^2*Cos[θ]*Sin[θ])/
(l*m^2 + l*m*M -
l*m^2*Cos[θ]^2)},
{{0}, {(-m)*(Cos[θ]/(l*m^2 +
l*m*M - l*m^2*
Cos[θ]^2))}, {0},
{l*(m/(l*m^2 +
l*m*M - l*m^2*
Cos[θ]^2))}}, {θ, x}, {{0}, {0}}},
{θ, ω, x, v}, {{F, 0}},
{θ, x}, Automatic, SamplingPeriod -> None];CarlemanLinearize[assm, 1, "TransformedSystem"]StateSpaceModel[assm]関連するガイド
-
▪
- 非線形制御系
テキスト
Wolfram Research (2014), CarlemanLinearize, Wolfram言語関数, https://reference.wolfram.com/language/ref/CarlemanLinearize.html.
CMS
Wolfram Language. 2014. "CarlemanLinearize." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CarlemanLinearize.html.
APA
Wolfram Language. (2014). CarlemanLinearize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CarlemanLinearize.html
BibTeX
@misc{reference.wolfram_2026_carlemanlinearize, author="Wolfram Research", title="{CarlemanLinearize}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/CarlemanLinearize.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_carlemanlinearize, organization={Wolfram Research}, title={CarlemanLinearize}, year={2014}, url={https://reference.wolfram.com/language/ref/CarlemanLinearize.html}, note=[Accessed: 10-September-2026]}