Main Content

高速化の実行

ビルド プロセスのカスタマイズ

コンパイラの最適化は既定の設定でオフになっています。その結果、ビルド時間は短縮されますが、シミュレーション時間が長くなります。シミュレーション時間が短縮されるように、ビルド プロセスを最適化できます。

  1. [モデル化] タブの [設定] で、[モデル設定] をクリックします。

  2. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[コンパイラ最適化レベル] ドロップダウン リストから [最適化オン (高速に実行)] を選択する。

    このオプションではコード生成に時間がかかりますが、シミュレーション速度は速くなります。

  3. コード生成を使用して進行状況を表示し、使用中のコンパイラを表示するには、[詳細なアクセラレータのビルド] を選択します。

生成されたコードの位置の変更

既定では、アクセラレータ モードは、生成したコードを slprj/accel/"modelname" (slprj/accel/f14 など) という、作業フォルダーのサブフォルダーに置きます。アクセラレータ モードにおける生成コードの書き込み先フォルダーの名前を変更するには、以下のようにします。

  1. Simulink® エディター ウィンドウの [モデル化] タブで、[環境][Simulink 基本設定] を選択します。

  2. [Simulink 基本設定] ウィンドウで [シミュレーション キャッシュ フォルダー] パラメーターに移動します。

  3. サブフォルダーの絶対パスまたは相対パスを入力して、[適用] をクリックします。

ユーザー インターフェイスからのアクセラレータ モードの実行

モデルを高速化するには、最初にモデルを開き、[シミュレーション] タブの [シミュレーション] セクションで、ドロップダウン リストから [アクセラレータ] または [ラピッド アクセラレータ] を選択します。その後、シミュレーションを開始します。

次の例は、アクセラレータ モードを使用して既に開いている f14 モデルを高速化する方法を示します。

  1. [シミュレーション] タブの [シミュレーション] セクションで、ドロップダウン リストから [アクセラレータ] を選択します。

  2. [シミュレーション] タブで [実行] をクリックします。

    アクセラレータ モードとラピッド アクセラレータ モードでは、最初に、コードがモデル用に前回コンパイルされたかどうかを確認します。コードを前回作成している場合は、アクセラレータ モードまたはラピッド アクセラレータ モードでモデルが実行されます。コードを前回作成しなかった場合は、C コードを最初に生成しコンパイルしてから、モデルを実行します。

    これらのモードがモデルをリビルドする理由の説明については、高速化されたモデルでのコードの再生成を参照してください。

アクセラレータ モードは、生成したコードを slprj/accel/"modelname" (slprj/accel/f14 など) という、作業フォルダーのサブフォルダーに置きます。このパスを変更する必要がある場合は、生成されたコードの位置の変更を参照してください。

ラピッド アクセラレータ モードは、生成したコードを slprj/raccel/"modelname" (slprj/raccel/f14 など) という、作業フォルダーのサブフォルダーに置きます。

メモ

アクセラレータ モードまたはラピッド アクセラレータ モードでモデルを実行する場合は、シミュレーション中にブロックが生成する警告 (ゼロ除算や整数オーバーフロー) は表示されません。

実行時の変更

アクセラレータ モードとラピッド アクセラレータ モードの機能の 1 つとして、シミュレーションの実行中に簡単な調整 (Gain または Constant ブロックの値の変更など) をモデルに対して行うことができることが挙げられます。実行時は、より複雑な変更 (関数 sin から関数 tan への変更など) を行うことはできません。

Simulink ソフトウェアは、許可されていない変更を実行しようとすると、警告が表示されます。警告が表示されない場合は、変更が許可されたことになります。警告が表示されても、実行中のシミュレーションは停止されずに、前の値で続行します。実行時に許可されていない方法でモデルを変更する場合は、最初にシミュレーションを停止し、変更を行ってから、シミュレーションを再開しなければなりません。

一般には、ラピッド アクセラレータ モードで簡単なモデルの変更を行う場合は、アクセラレータ モードで行う場合よりもコードが再生成される可能性が高くなります。

実行ごとのソルバーの切り替え

実行ごとに可変ステップ ソルバーを切り替えることができます。ソルバーの変更によってリビルドがトリガーされるかどうかは、モデルが常微分方程式 (ODE) または微分代数方程式 (DAE) モデルであるかどうか、ソルバーにヤコビアンが必要かどうか、質量行列を扱うかどうか、モデルに Rate Limiter ブロックが含まれているかどうかなど、モデルの数学的構造に基づいて Simulink で自動的に判別されます。

関連するトピック