メインコンテンツ

速度と精度の向上

速度と精度は、モデルをリアルタイム対応にするための重要な決定要因です。モデルがオーバーランなしで精度の基準を満たしている場合、モデルはリアルタイム対応です。リアルタイム クロックによって、モデルがリアルタイム シミュレーションに十分な速度を備えているかどうかが決定されます。ソルバーが実行するステップごとに、リアルタイム ハードウェア システムは、ソルバーが以下の処理タスクを完了するために必要な時間を追跡します。

  • シミュレーションの実行。

  • 入出力処理。

  • 一般的なコンピューター タスクの実行。

オーバーランは、任意のタイム ステップに対して、システムがタスク処理に要する時間が、タスクのリアルタイム制限を超過した場合に発生します。モデルのシミュレーション実行時に使用するターゲット マシンでオーバーランが報告された場合、モデルはリアルタイム シミュレーションの実行に十分な速度を備えていません。

モデルが精度の基準を満たしているかどうかを判断するときは、次の質問を考慮します。

  • モデルは、測定対象の現象を表しているか。

  • それらの現象を正しく表しているか。

  • モデルを使用してコントローラーの設計をテストする計画がある場合、モデルはシステムの検定で信頼できる結果を生成するのに十分な精度を備えているか。

速度と精度のバランスの調整

シミュレーションの速度と精度は、次の要素の選択と相互に関連します。

  • モデルの忠実度とスコープ

  • リアルタイム ハードウェアの計算能力

  • ソルバーのサンプル時間 (ステップ サイズ) と反復回数

精度が低下したとしてもシミュレーションの速度を上げるには、以下を行います。

  • モデルの忠実度を下げるか、スコープを狭くする。

  • サンプル時間を増やす。

  • ソルバーの反復回数を減らす。

速度が低下したとしてもシミュレーションの精度を上げるには、以下を行います。

  • モデルの忠実度を上げるか、スコープを広げる。

  • サンプル時間を減らす。

  • ソルバーの反復回数を増やす。

精度と速度を両方とも上げたい場合、あるいはもう一方を犠牲にせずにどちらかを上げたい場合は、計算能力を上げます。計算能力を上げるには、より高速なリアルタイム プロセッサを使用するか、並列計算を行います。

指定するソルバーのタイプも、シミュレーションの速度と精度に影響します。固定ステップ シミュレーションの場合、Simscape™ ローカル ソルバーは高速で、Simulink® グローバル ソルバーと同じくらい正確です。陰的ソルバーの方が高速ですが、精度は陽的ソルバーより劣ります。しかし、ネットワークの数値的剛性も、陰的ソルバーと陽的ソルバーのどちらを使用するかを判断するための決定要因となります。数値的にスティッフなネットワークでは、陽的ソルバーの方が精度の高い結果を生成します。

モデルの複雑度が速度と精度に与える影響の詳細は、大量の計算が必要となる影響の除去を参照してください。ソルバー構成が速度と精度に与える影響の詳細は、ローカルおよびグローバル ソルバー構成の最適化を参照してください。

モデルをリアルタイム対応にできるモデルの複雑度とソルバー設定の組み合わせがない場合もあります。システムの各部を並行してシミュレートして、速度と精度を向上させることができます。詳細については、システムの各部分の並列シミュレーションを参照してください。

大量の計算が必要となる影響の除去

デスクトップ シミュレーション解析の結果、モデルがおそらくリアルタイム シミュレーションの実行に十分な速度を備えていないことが示された場合、大量の計算が必要となる影響を除去します。不連続点や急激な変化など、大量の計算が必要となる影響を引き起こすモデル要素を特定します。これらはシミュレーションの速度低下の原因となります。

不連続点を発生させる要素には次のようなものがあります。

  • ハード ストップまたはバックラッシュ

  • スティックスリップ摩擦

  • スイッチまたはクラッチ

時定数が小さく、急激な変化を引き起こす要素には次のようなものがあります。

  • スティッフなバネに付加され、減衰が最小限になっている小さな質量

  • 静電容量、インダクタンス、抵抗の小さい電気回路

  • 圧縮可能な小さなボリュームがある油圧回路

シミュレーションの速度を低下させる影響の原因となる要素を除去するか修正するには、次のアプローチを使用します。

  • 非線形コンポーネントを線形コンポーネントに置き換える。

  • 複素方程式を、その解を格納したルックアップ テーブルで置き換える。

  • 複雑なコンポーネントを単純なモデルに置き換える。

  • フィルターや遅延などの手法を使用し、不連続の関数 (ステップの変化) を平滑化する。

ローカルおよびグローバル ソルバー構成の最適化

また、ソルバーの指定でも、シミュレーションの速度と精度に影響を与えることができます。リアルタイム ターゲット マシンで実現される精度のレベルは、ある単一モデルのすべてのネットワークにまたがる特定のステップ サイズと相関があるとは限りません。リアルタイム ターゲット マシンは、モデル内の単純なネットワークでは正確な結果を出しても、より複雑なネットワークでは不正確な結果となることがあります。Simscape モデルで、ネットワークごとに異なるソルバー構成を指定できる機能を活用します。モデルをリアルタイム対応にするために、固定ステップのグローバル ソルバーと各ローカル ソルバーを個別に構成します。

ソルバーのオプションと、Simscape モデルをリアルタイム対応にするために役立つソルバーを決定する方法の詳細は、リアルタイム シミュレーションのソルバーを参照してください。

システムの各部分の並列シミュレーション

精度を維持しながら速度を上げるもう 1 つのアプローチは、複数の物理ネットワークを並列に評価できるようにモデルを構成することです。ネットワークが相互に依存していなければ、モデルを分割できます。このアプローチを使用するには、モデル、生成コードおよびリアルタイム ターゲット マシンを使用して試してみます。

初期化コスト

初期化は、シミュレーションの開始時、シミュレーション時間 t がモデルの [開始時間] になっているときに行われます。ModelOutputs の初回呼び出し時に、Simscape がモデルの初期化を実行します。ソルバーは、すべてのシステム変数の初期値を繰り返し計算することによって、シミュレーションの開始点を決定します。非線形システムのモデル方程式を満たす解を求めるには、タイム ステップで許可される時間より長くかかることがあります。計算時間がタイム ステップを上回る場合、中央演算装置 (CPU) のオーバーロードが発生します。リアルタイム プロセッサは、通常、モデル実行を終了することによって CPU オーバーロードに対応します。

t がモデルの [開始時間] になっているときにリアルタイム アプリケーションが終了する場合は、その期間について、CPU オーバーロードに対するリアルタイム ハードウェアでの自動シャットダウン応答を無効にしてください。このような処理を無効にする方法を調べるには、ハードウェア ベンダーにお問い合わせください。

参考

トピック