最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モデルの高速化の紹介

Simulink® Accelerator™ は、Simulink® がノーマル モードのとき (つまりアクセラレータ モードでないとき) に使用する解釈コードの代わりとなる C コードを作成してコンパイルすることにより、モデルの実行速度を向上させます。Simulink Accelerator は、Simulink モデルから C コードを生成し、MATLAB® MEX 関数を呼び出して、生成されたコードをコンパイルして Simulink に動的にリンクします。このコード生成およびコンパイル処理は、はじめてモデルを高速化したときと、再生成する必要があるほど大幅にモデルが変更されたとき (たとえばブロックの追加など) に実行されます。

次の例は、slAccelDemoF14 モデルを使用して、Simulink Accelerator の使用法を説明しています。

高速化されていない時間の計測

slAccelDemoF14 モデルを開き、終了時間を 3000 秒に設定します。TIC/TOC を使用して、モデルとその所要時間をシミュレートします。

modelName = 'slAccelDemoF14';
open_system(modelName)
set_param(modelName,'stoptime','3000')
tic
sim(modelName);
toc
Elapsed time is 6.430437 seconds.

アクセラレータをオンにする

Simulink® Accelerator を有効にするには、Simulink エディターの [シミュレーション] タブにある [シミュレーション] で、Accelerator を選択します。MATLAB® コマンド プロンプトで set_param コマンドを発行することもできます。

set_param(modelName,'SimulationMode','Accelerator')

一時作業ディレクトリの作成

高速モードで実行するといくつかのファイルが作成されるため、まず、一時領域に移動します。

originalDir = pwd;
tempDir = tempname;
mkdir(tempDir)
cd(tempDir)

高速化されたモデルの作成

高速化されたモデルを作成してシミュレートします。アクセラレータ モードでの実行時にモデルを起動するには、[シミュレーション] タブから [実行] を選択するか、次のコマンドを実行します。

    sim(modelName)

を MATLAB プロンプトで実行します。どちらの場合も、MATLAB コマンド ウィンドウにコード生成処理の進行状況が表示されます。この表示を抑制するには、sim コマンドを evalc 内にラップします。

evalc('sim(modelName);');

高速化されたモデルのシミュレーション

モデルを再度シミュレートします。後続の実行では、モデルのシミュレーションがはるかに高速に実行されます。

tic
sim(modelName);
toc
Elapsed time is 1.292147 seconds.

調整可能なパラメーターの変更および高速化されたモデルのシミュレーション

モデル内調整可能なパラメーターのいずれかの値を変更し、モデルを再度シミュレートします。高速バージョンのモデルは再生成する必要がないため、高速モードにしても、ノーマル モードのときよりもシミュレーションが高速に実行されます。

modelWorkspace = get_param(modelName,'ModelWorkspace');
evalin(modelWorkspace,'Mw=Mw*2;')
tic
sim(modelName);
toc
Elapsed time is 1.226310 seconds.

クリーン アップ

モデルを閉じて、生成されたファイルを削除します。

bdclose(modelName)
clear([modelName,'_acc'])
cd(originalDir)
rmdir(tempDir,'s')