このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba
金宝app®gydF4y2Baモデルでは,gydF4y2Ba“代数ループ”gydF4y2Baは,信号ループがループ内の直達ブロックによってのみ存在しているときに発生します。gydF4y2Ba"直達"gydF4y2Baとは,金宝app仿真软件で現在のタイムステップで出力を計算するためには,そのブロックの入力信号の値が必要であることを意味します。このような信号ループでは,同じタイムステップ内においてブロックの出力と入力の間に循環依存関係が生じます。その結果,各タイムスステップで解を求める必要のある代数方程式が生成され,シミュレーションの計算コストが高まります。gydF4y2Ba
直達入力をもつブロックには,いくつかの例があります。gydF4y2Ba
状态方程gydF4y2BaD行列係数が非ゼロの場合gydF4y2Ba
转移FcngydF4y2Ba,分子と分母が同じ次数の場合gydF4y2Ba
Zero-PolegydF4y2Ba,ブロックが極の数と同じだけの零点をもつ場合gydF4y2Ba
"非直達"gydF4y2Baブロックの場合は,状態変数が維持されます。2つの例として,gydF4y2Ba积分器gydF4y2BaとgydF4y2Ba单位延迟gydF4y2Baがあります。gydF4y2Ba
ヒントgydF4y2Ba
ブロックに直達があるかどうかを判断するには,ブロックのリファレンスページのgydF4y2Ba[特性]gydF4y2Baセクションを参照します。gydF4y2Ba
次の図は,代数ループの例を示しています。gydF4y2Ba总和gydF4y2Baブロックは,最初の入力uからxgydF4y2Ba一个gydF4y2Baを引いた値に等しくなるように制約されている代数変数xgydF4y2Ba一个gydF4y2Ba(たとえば,gydF4y2BaxgydF4y2Ba一个gydF4y2Ba= u - xgydF4y2Ba一个gydF4y2Ba)です。gydF4y2Ba
この単純ループの解はgydF4y2BaxgydF4y2Ba一个gydF4y2Ba= u / 2gydF4y2Baです。gydF4y2Ba
金宝app仿真软件には,gydF4y2Ba“常微分方程式(ODE)”gydF4y2Baのシミュレーションに使用する一連の数値ソルバーが含まれています。常微分方程式は次のように表現される連立方程式です。gydF4y2Ba
ここでxは状態ベクトルで,tは独立時間変数です。gydF4y2Ba
連立方程式には,状態ベクトルの微分係数ではなく,独立変数と状態ベクトルに関する追加の制約を含むものがあります。このような方程式をgydF4y2Ba“微分代数方程式(DAE)”gydF4y2Baと呼びます。gydF4y2Ba
"代数"gydF4y2Baは微分係数を含まない方程式を意味します。工学で使用されるDAEは,以下のような半陽的な形式で表現できます。gydF4y2Ba
ここで,gydF4y2Ba
fgydF4y2BaとgydF4y2BaggydF4y2Baはベクトル関数の場合があります。gydF4y2Ba
最初の方程式は微分方程式です。gydF4y2Ba
2番目の方程式は代数方程式です。gydF4y2Ba
微分方程式の変数のベクトルはgydF4y2BaxgydF4y2Baです。gydF4y2Ba
代数方程式の変数のベクトルはgydF4y2BaxgydF4y2Ba一个gydF4y2Baです。gydF4y2Ba
金宝app仿真软件モデルでは,代数ループは代数制約です。代数ループをもつモデルは微分代数方程式を定義します。金宝app仿真软件は颂歌ソルバーの各ステップで代数方程式(代数ループ)をxgydF4y2Ba一个gydF4y2Baに関して数値的に解きます。gydF4y2Ba
この図のgydF4y2BaモデルgydF4y2Baは,この半陽的な方程式系と等価です。gydF4y2Ba
ODEソルバーの各ステップでは,gydF4y2Ba の微分係数を計算する前に,代数ループソルバーでxgydF4y2Ba一个gydF4y2Baに関する代数制約を解かなければなりません。gydF4y2Ba
代数制約:gydF4y2Ba
物理的なシステムのモデル化で発生します。多くの場合,質量とエネルギーの保存などの保存法則に関係して発生します。gydF4y2Ba
モデルに特定の座標系を選択すると発生します。gydF4y2Ba
動的システムにおいてシステム応答に設計制約を課すことができます。gydF4y2Ba
Simscape™を使用して,物理ネットワークとしての機械,電気,油圧、その他の物理領域にまたがるシステムをモデル化します。Simscapeは,モデルの動作を特徴付けるDAEを作成します。ソフトウェアは,これらの方程式をモデルの他の部分と統合してから,DAEを直接解きます。金宝app仿真软件は異なる物理領域のコンポーネントの変数を同時に解いて,代数ループの問題を回避します。gydF4y2Ba
原子子系统または模型ブロックによって仿真软件が代数ループを検出する設定に金宝appなっているときは,サブシステムの内容に入力から出力への直達が含まれていない場合であっても,gydF4y2Ba“疑似代数ループ”が発生します。原子子系统を作成するときは,すべての尺寸ブロックは直達となるため,代数ループが発生します。gydF4y2Ba
まず,含められたモデルで考えてみましょう。このモデルの表すプラントのシンプルな比例制御は,次の式で表されます。gydF4y2Ba
これは,次のような状態空間形式で書き直すことができます。gydF4y2Ba
この方程式は,代数変数も直達ももたず,代数ループももちません。gydF4y2Ba
以下の手順に従って,モデルを変更します。gydF4y2Ba
サブシステムに控制器ブロックと植物ブロックを含めます。gydF4y2Ba
子系统ダイアログボックスで,gydF4y2Ba(原子サブシステムとして扱う)gydF4y2Baを選択してサブシステムを原子にします。gydF4y2Ba
[モデルコンフィギュレーションパラメーター]のgydF4y2Ba[診断]gydF4y2Baペインで,gydF4y2Ba(代数ループ]gydF4y2Baパラメーターを[gydF4y2Ba错误gydF4y2Ba
]に設定します。gydF4y2Ba
このモデルをシミュレーションすると,原子子系统内のパスは直達ではありませんが,サブシステムが直達であるために,代数ループが発生します。シミュレーションは代数ループエラーで停止します。gydF4y2Ba
モデルに代数ループが含まれている場合,金宝app仿真软件は各タイムステップで非線形ソルバーを使って代数ループの解を求めます。ソルバーは反復処理を実行し,その代数制約の解がある場合はそれを決定します。その結果,代数ループをもつモデルは,もたないモデルよりも実行が遅くなります。gydF4y2Ba
金宝app仿真软件は,狗腿信頼領域アルゴリズムを使用して,代数ループの解を求めます。使われる許容誤差は,颂歌ソルバーgydF4y2BaReltolgydF4y2Ba
とgydF4y2BaAbstolgydF4y2Ba
より小さくなります。これは,金宝app仿真软件が“明示的颂歌メソッド”を使って,インデックスが1の微分代数方程式(DAE)を解くためです。gydF4y2Ba
代数ループソルバーが機能するには,gydF4y2Ba
ループソルバーによってループを切断してループを解くことができるブロックが1つ存在していなければなりません。gydF4y2Ba
モデルは実数の倍精度信号でなければなりません。gydF4y2Ba
基本となっている代数制約は平滑化関数でなければならない。gydF4y2Ba
たとえば,モデルに2つの入力(1つは加算,もう1つは減算)をもつ总和ブロックがあるとします。总和ブロックの出力を入力の 1 つに接続した場合、すべてのブロックが直達を含んでいる代数ループが形成されます。
总和ブロックは入力が不明であれば出力を計算できません。金宝app仿真软件は代数ループを検出し,ソルバーは反復ループを使用して解を求めます。总和ブロックの例では,次のようにして正しい解が計算されます。gydF4y2Ba
xgydF4y2Ba一个gydF4y2Ba(t) = u(t) / 2gydF4y2Ba | (1)gydF4y2Ba |
代数ループソルバーは勾配に基づいた検索方法を使用します。この方法では,代数ループに対応する代数制約について連続の1次導関数が必要になります。その結果,代数ループに不連続性が含まれる場合には,代数ループソルバーが失敗する可能性があります。gydF4y2Ba
詳細については,gydF4y2Ba用MATLAB和Simulink求解Index-1 DAEs金宝appgydF4y2Baを参照してください。gydF4y2Ba[gydF4y2Ba1gydF4y2Ba]gydF4y2Ba
金宝app仿真软件代数ループソルバーは次の2つのアルゴリズムのいずれかを使って代数ループの解を求めます。gydF4y2Ba
信頼領域法gydF4y2Ba
ライン探索法gydF4y2Ba
既定では,金宝app仿真软件が最適な代数ループソルバーを選択し,シミュレーション中にこの2つの方法を切り替える場合があります。モデルの自動代数ループソルバーの選択を明示的に有効にするには,MATLABgydF4y2Ba®gydF4y2Baコマンドラインで次を入力します。gydF4y2Ba
set_param (model_name“AlgebraicLoopSolver”、“汽车”);gydF4y2Ba
信頼領域法アルゴリズムに切り替えるには,MATLABコマンドラインで次のように入力します。gydF4y2Ba
set_param (model_name ' AlgebraicLoopSolver ', ' TrustRegion ');gydF4y2Ba
代数ループソルバーが信頼領域アルゴリズムで代数ループの解を見つけることができない場合,他のアルゴリズムを使ってモデルのシミュレーションを試すことができます。gydF4y2Ba
ライン探索法アルゴリズムに切り替えるには,MATLABコマンドラインで次のように入力します。gydF4y2Ba
set_param (model_name ' AlgebraicLoopSolver ', ' LineSearch ');gydF4y2Ba
詳細については,以下を参照してください。gydF4y2Ba
ShampineとReicheltのgydF4y2Banleqn。mコードgydF4y2Ba
MINPACK-1的用户指南gydF4y2BaのFortranプログラムHYBRD1gydF4y2Ba[gydF4y2Ba2gydF4y2Ba]gydF4y2Ba
『gydF4y2Ba非线性代数方程的数值方法gydF4y2Ba“の鲍威尔の”一个Fortran子例程在非线性方程求解系统”gydF4y2Ba[gydF4y2Ba3.gydF4y2Ba]gydF4y2Ba
非線形最小化に対する信頼領域法gydF4y2Ba(优化工具箱)gydF4y2Ba.gydF4y2Ba
ライン探索法gydF4y2Ba(优化工具箱)gydF4y2Ba.gydF4y2Ba
代数ループの解を求める処理は反復処理です。金宝app仿真软件の代数ループソルバーは代数ループが一定値に収束しなければ解くことができません。ループが収束しない,または収束が遅過ぎる場合は,シミュレーションはエラーを出して終了します。gydF4y2Ba
代数ループソルバーは次の項目を含む代数ループを解くことはできません。gydF4y2Ba
離散値の出力をもつブロックgydF4y2Ba
倍精度以外の出力または複素数の出力をもつブロックgydF4y2Ba
不连续gydF4y2Ba
StateflowgydF4y2Ba®gydF4y2BaチャートgydF4y2Ba
モデルに代数ループが含まれている場合。gydF4y2Ba
モデルのコードを生成できません。gydF4y2Ba
金宝app仿真软件代数ループソルバーが代数ループを解けない場合があります。gydF4y2Ba
金宝app仿真软件が代数ループを解こうとする間,シミュレーションの速度が低下する可能性があります。gydF4y2Ba
ほとんどのモデルでは,代数ループソルバーは最初のタイムステップで多くのリソースを計算に費やします。後続のタイムステップでは,良好なxgydF4y2Ba一个gydF4y2Baの開始点を前のタイムステップから利用できるので,仿金宝app真软件ソルバーは短時間で解を出します。gydF4y2Ba
ソルバーの比較gydF4y2Ba|gydF4y2Baゼロクロッシング検出gydF4y2Ba|gydF4y2Ba代数约束gydF4y2Ba|gydF4y2Ba描述符状态gydF4y2Ba
[gydF4y2Ba1gydF4y2Ba]gydF4y2Ba香品,劳伦斯·F, m·w·雷切特和j·a·基尔赞卡"在MATLAB和Simulink中求解Index-1 DAEs。金宝appgydF4y2Ba暹罗。gydF4y2Ba研究概述,第三,1999年,pp.538 - 552。gydF4y2Ba
[gydF4y2Ba2gydF4y2Ba]gydF4y2Ba更多,j,狗屁Garbow, K.E.Hillstrom。gydF4y2BaMINPACK-1的用户指南gydF4y2Ba.阿贡,IL:阿贡国家实验室,1980。gydF4y2Ba
[gydF4y2Ba3.gydF4y2Ba]gydF4y2BaRabinowitz,菲利普。gydF4y2Ba非线性代数方程的数值方法gydF4y2BaGordon和Breach Science Publishers, 1970年。gydF4y2Ba