システムの剛性の判別
モデルの数値的剛性の判別は、リアルタイム シミュレーションで陰的固定ステップ ソルバーと陽的固定ステップ ソルバーのどちらを使用するかを決定するのに役立ちます。数値的剛性を判別するには、まずリアルタイム モデルの準備のワークフローを使用して、モデルの速度と精度を最適化します。次に、陽的固定ステップ ソルバーと陰的固定ステップ ソルバーの両方を使用して、モデルのシミュレーションを実行します。シミュレーション結果を比較して、ソルバーの動作を確認します。モデルが数値的にスティッフであれば、陽的ソルバーは通常、目的の解の周辺で小さな振動を示します。
陰的ソルバーは陽的ソルバーよりロバストですが、陽的ソルバーの方が高速です。数値的にスティッフなモデルでリアルタイム シミュレーションを実行する際にロバストな結果を得るには、陰的固定ステップ ソルバーを使用します。モデルがスティッフでない場合は、陽的ソルバーを使用してシミュレーション速度を最大化します。
この例では、空気圧モデルを可変ステップ ソルバーでシミュレートすることで、参照結果を得ます。また、陰的ソルバー、陽的固定ステップ グローバル Simulink® ソルバーの順に使用して、モデルを構成し、シミュレートします。その後、3 種類すべてのシミュレーションの結果を比較して、空気圧モデルが数値的にスティッフかどうかを判断します。
参照結果の取得
このモデルを開くには、MATLAB® コマンド プロンプトで次を入力します。
ssc_pneumatic_rts_reference
MATLAB パス上の書き込み可能なフォルダーに、モデルを
stiffness_model
として保存します。モデルをシミュレートします。
シミュレーション結果を新しい変数に割り当てます。
yRef = yout; tRef = tout;
可変ステップ シミュレーションの結果をプロットします。
h1 = figure; plot(tRef,yRef) h1Leg = legend({'Reference'}); title('Speed') xlabel('Time (s)') ylabel('Speed (rpm)')
陰的固定ステップ ソルバーを使用したシミュレーション
陰的ソルバー ode14x を使用して、モデルを固定ステップ シミュレーション用に構成します。コンフィギュレーション パラメーターの [ソルバー] ペインで、次のように設定します。
[タイプ] を
[固定ステップ]
に設定します。[ソルバー] を
[ode14x (外挿)]
に設定します。[追加オプション] で、[固定ステップ サイズ (基本サンプル時間)] を
1e-3
に設定します。[ニュートンの反復回数] を
1
に設定します。
[適用] をクリックします。
モデルをシミュレートします。
シミュレーション結果を新しい変数に割り当てます。
yOde14x = yout; tOde14x = tout;
関数
stairs
を使用して、陰的固定ステップ シミュレーションの結果をプロットし、シミュレーションの各ステップを実行する際にソルバーがどのように動作するかを確認します。h1 hold on stairs(tOde14x,yOde14x,'g--') h1Leg = legend({'Reference','Implicit Solver'});
結果は同じように見えます。
陽的固定ステップ ソルバーを使用したシミュレーション
陽的固定ステップ ソルバー ode5 を使用して、モデルを固定ステップ シミュレーション用に構成します。コンフィギュレーション パラメーターの [ソルバー] ペインで、次のように設定します。
[タイプ] を
[固定ステップ]
に設定します。[ソルバー] を
[ode5 (Dormand-Prince)]
に設定します。
[OK] をクリックします。
入力信号をフィルター処理して、陽的ソルバーに必要な入力微分を得ます。Simulink-PS Converter ブロックのダイアログ ボックスで、[フィルター処理と微分] を
[入力のフィルター処理、微分の算出]
に設定します。[OK] をクリックします。モデルをシミュレートします。
シミュレーション結果を新しい変数に割り当てます。
yOde5 = yout; tOde5 = tout;
関数
stairs
を使用して、陽的固定ステップ シミュレーションの結果をプロットします。h1 hold on stairs(tOde5,yOde5,'r-') h1Leg = legend({'Reference','Implicit Solver','Explicit Solver'});
結果は変曲点において異なっています。
結果の解析
結果を詳しく確認するために、時間 t = 約 1 秒直後の変曲点にズームします。
陰的ソルバーは、可変ステップ ソルバーが参照結果を生成する際に通るパスと同様のパスを通ります。陽的ソルバーが示す振動は、モデルが数値的にスティッフであることを示しています。また、この振動は、スティッフなモデルのシミュレーションを実行する場合に、陽的ソルバーの方が陰的ソルバーより計算コストが大きいことも示しています。不要な計算コストを避けるため、数値的にスティッフなモデルを使用したリアルタイム シミュレーションではグローバルまたはローカルの陰的固定ステップ ソルバーを使用してください。