このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
reduceRedundancies
余分な方程式および変数の排除による 1 階微分代数方程式系の単純化
説明
例
冗長な方程式の削除による DAE 系の簡約化
4 状態変数の 5 つの微分代数方程式 (DAE) 系を 2 状態変数の 2 つの方程式系に単純化します。
4 つの状態変数 x1(t)
、x2(t)
、x3(t)
および x4(t)
について次の 5 つの DAE から成る系を作成します。また、この系にはシンボリック パラメーター a1
、a2
、a3
、a4
、b
、c
、ならびに状態変数ではない関数 f(t)
が含まれます。
syms x1(t) x2(t) x3(t) x4(t) a1 a2 a3 a4 b c f(t) eqs = [a1*diff(x1(t),t)+a2*diff(x2(t),t) == b*x4(t), a3*diff(x2(t),t)+a4*diff(x3(t),t) == c*x4(t), x1(t) == 2*x2(t), x4(t) == f(t), f(t) == sin(t)]; vars = [x1(t),x2(t),x3(t),x4(t)];
reduceRedundancies
を使用して余分な方程式と対応する状態変数を排除します。
[newEqs,newVars] = reduceRedundancies(eqs,vars)
newEqs =
newVars =
状態変数の入力順序の指定
状態変数の入力順序を指定して、DAE の排除時に返される変数を選択します。
4 つの状態変数 V_ac(t)
、V1(t)
、V2(t)
、および I(t)
について 4 つの DAE 系を作成します。また、系にはシンボリック パラメーター L
、R
および V0
が含まれます。
syms V_ac(t) V1(t) V2(t) I(t) L R V0 eqs = [V_ac(t) == V1(t) + V2(t), V1(t) == I(t)*R, V2(t) == L*diff(I(t),t), V_ac(t) == V0*cos(t)]
eqs =
vars = [V_ac(t),I(t),V1(t),V2(t)]
vars =
reduceRedundancies
を使用して、冗長な方程式と変数を排除します。reduceRedundancies
は、ベクトル vars
の状態変数を維持して最初の要素から開始するように優先順位付けします。
[newEqs,newVars] = reduceRedundancies(eqs,vars)
newEqs =
newVars =
ここで、reduceRedundancies
は変数 I(t)
について簡約化された方程式を返します。
DAE を簡約化する複数の方法が存在する場合、状態変数の異なる入力順序を指定して、返される変数を選択します。状態変数の異なる順序が含まれる別のベクトルを指定します。DAE を再度排除します。
vars2 = [V_ac(t),V1(t),V2(t),I(t)]
vars2 =
[newEqs,newVars] = reduceRedundancies(eqs,vars2)
newEqs =
newVars =
ここで、reduceRedundancies
は状態変数 V1(t)
について簡約化された方程式を返します。
排除された方程式に関する情報の取得
reduceRedundancies
を呼び出すときに 3 つの出力引数を宣言して、方程式系を単純化し、排除された方程式に関する情報を返します。
4 つの状態変数 x1(t)
、x2(t)
、x3(t)
および x4(t)
について次の 5 つの微分代数方程式 (DAE) から成る系を作成します。また、この系にはシンボリック パラメーター a1
、a2
、a3
、a4
、b
、c
、ならびに状態変数ではない関数 f(t)
が含まれます。
syms x1(t) x2(t) x3(t) x4(t) a1 a2 a3 a4 b c f(t) eqs = [a1*diff(x1(t),t)+a2*diff(x2(t),t) == b*x4(t), a3*diff(x2(t),t)+a4*diff(x3(t),t) == c*x4(t), x1(t) == 2*x2(t), x4(t) == f(t), f(t) == sin(t)]; vars = [x1(t),x2(t),x3(t),x4(t)];
reduceRedundancies
を 3 つの出力引数と共に呼び出します。
[newEqs,newVars,R] = reduceRedundancies(eqs,vars)
newEqs =
newVars =
R = struct with fields:
solvedEquations: [2x1 sym]
constantVariables: [x4(t) f(t)]
replacedVariables: [x2(t) x1(t)/2]
otherEquations: f(t) - sin(t)
関数 reduceRedundancies
は、排除された方程式に関する情報を R
に返します。ここで、R
は構造体配列で、4 つのフィールドをもちます。
solvedEquations
フィールドには、reduceRedundancies
によって排除される方程式が含まれます。排除された方程式には、newEqs
に現れない vars
の状態変数が含まれます。排除された各方程式の右辺はゼロに等しくなります。
R1 = R.solvedEquations
R1 =
constantVariables
フィールドには 2 列の行列が含まれます。1 列目には reduceRedundancies
が定数値で置き換えた、vars
の状態変数が含まれます。2 列目には対応する定数値が含まれます。
R2 = R.constantVariables
R2 =
replacedVariables
フィールドには 2 列の行列が含まれます。1 列目には reduceRedundancies
が他の変数による式で置き換えた、vars
の状態変数が含まれます。2 列目には排除された変数に対応する値が含まれます。
R3 = R.replacedVariables
R3 =
otherEquations
フィールドには状態変数 vars
を 1 つも含まない eqs
の方程式が含まれます。
R4 = R.otherEquations
R4 =
入力引数
eqs
— 1 階 DAE 系
シンボリック方程式のベクトル | シンボリック式のベクトル
1 階 DAE 系。シンボリック方程式または式のベクトルとして指定します。
関係演算子 ==
によって、シンボリック方程式を定義します。eqs
の要素を右辺のないシンボリック式として指定した場合、右辺がゼロに等しいシンボリック方程式が仮定されます。
vars
— 状態変数
シンボリック関数のベクトル | シンボリック関数呼び出しのベクトル
状態変数。x(t)
など、シンボリックな関数または関数呼び出しのベクトルとして指定します。
状態変数の入力順序によって、簡約化されたどの変数が返されるかが決まります。DAE を簡約化する複数の方法が存在する場合、reduceRedundancies
は vars
の状態変数を維持して最初の要素から開始するように優先順位付けします。
例: [x(t),z(t),y(t)]
出力引数
newEqs
— 1 階 DAE 系
シンボリック式の列ベクトル
1 階 DAE の系。シンボリック式の列ベクトルとして返されます。newEqs
の各要素は右辺がゼロに等しい方程式を表します。
newVars
— 簡約された一連の変数
シンボリック関数呼び出しの列ベクトル
簡約された一連の変数。シンボリック関数呼び出しの列ベクトルとして返されます。
R
— 排除された変数の情報
構造体配列
排除された変数の情報。4 つのフィールドが含まれる構造体配列として返されます。この情報へのアクセスには以下を使用します。
R.solvedEquations
。reduceRedundancies
がnewEqs
に現れない状態変数の置き換えに使用したすべての方程式のシンボリック列ベクトルを返します。R.constantVariables
。次の 2 つの列をもつ行列を返します。1 列目には、排除されて定数値に置き換えられた、ベクトルvars
の元の状態変数が含まれます。2 列目には対応する定数値が含まれます。R.replacedVariables
。次の 2 つの列をもつ行列を返します。1 列目には、排除され他の変数に置き換えられた、ベクトルvars
の元の状態関数が含まれます。2 列目には排除された変数に対応する値が含まれます。R.otherEquations
。元の方程式eqs
で入力変数vars
のいずれも含まないものすべてを含む列ベクトルを返します。
バージョン履歴
R2014b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)