DynamicSystems[EquilibriumPoint] - 制約を満たすシステムの局所平衡点を求める
|
使い方
|
|
EquilibriumPoint(eqs, u, opts)
|
|
パラメータ
|
|
eqs
|
-
|
equation、expression、あるいは方程式か式の set または list。式 expr を指定した場合、方程式 と解釈されます。
|
u
|
-
|
list または set;入力変数
|
opts
|
-
|
(オプション) option = value 形式の方程式;EquilibriumPoint コマンドのオプションを指定します。
|
|
|
|
|
説明
|
|
•
|
EquilibriumPoint コマンドは、制約(constraints オプションで指定されている場合)を満たす eqs の平衡点を見つけます。そして、平衡点における状態変数、状態変数の導関数、入力、出力のそれぞれの値を指定する 4 つの方程式のリストを返します。
|
•
|
システムの平衡点とは、状態の導関数がゼロになる点です。EquilibriumPoint コマンドは局所検索を実行し、initialpoint パラメータで指定されたか、あるいは、無作為に選択された初期点に最も近い平衡点を返します。
|
•
|
EquilibriumPoint コマンドが導関数がゼロになる点を求められない場合、導関数が最小になる点を返します。最適な constraints パラメータを使用して、ゼロ以外の値を導関数に指定することも可能です。
|
|
|
オプション
|
|
•
|
constraints = equations および inequalities のリストまたは集合
|
平衡点において満たさなければならない、状態に課された制約、状態の導関数、入力、または、システムの出力
•
|
evaluationlimit = posint
|
評価関数の最大計算回数を設定します。デフォルトは 100。
システム内に存在するユーザ定義による関数の数。各関数は [名前、入力引数型リスト、出力型、Maple プロシージャ] の形式のリストで記述されます。
•
|
initialpoint = equations のリストまたは集合
|
平衡点の局所検索を開始すべき状態入力空間の動作点。EquilibriumPoint は initialpoint に最も近い平衡点を返します。
|
状態および入力の一部のみが initialpoint で指定されている場合、EquilibriumPoint コマンドは、指定されたもの以外の状態および入力をゼロに設定します。
|
|
initialpoint が与えられていない場合、EquilibriumPoint コマンドは無作為に初期点を選択します。
|
与えられた方程式を簡単化する必要がある(true)か、その必要がない(false)かを指定します。デフォルトは true です。
|
|
互換性
|
|
•
|
evaluationlimit オプションは Maple 15 より導入されました。
|
|
|
例
|
|
>
|
sys1 := [diff(x[1](t), t) = x[2](t)^2 - 4, diff(x[2](t), t) = x[1](t) - 1 + u(t), y(t) = x[1](t)+x[2](t)];
|
| (6.1) |
>
|
EquilibriumPoint(sys1, [u(t)], constraints = [x[1](t) > 0], initialpoint = [u(t) = 0, x[1](t) = 2, x[2](t) = 4]);
|
| (6.2) |
>
|
sys2 := {piecewise(x[1](t)<0, x[1](t), x[2](t) + x[1](t)^2) * piecewise(u(t)<0, cos(y(t)), sin(y(t))) = sin(x[1](t)^2) + 5 * y(t) + diff(x[1](t), t, t), y(t) - x[1](t)^2 + u(t)*x[1](t), diff(x[2](t), t) = f(x[1](t), u(t))};
user_function := [
f,
[float, float],
float,
proc(x, y)
local d1, d2;
d1 := cos(x)+x^2;
d2 := y*d1 + y^2;
return d1*x+d2*y- exp(d1);
end proc
];
|
| (6.3) |
>
|
EquilibriumPoint(sys2, [u(t)], functions = [user_function], initialpoint = [x[1](t) = 1, x[2](t) = 1, u(t) = 1]);
|
| (6.4) |
|
|