アクセラレータ モードのプログラムによる操作
プログラムで操作する理由
高速化されたモデルを作成し、シミュレーション モードを選択し、シミュレーションをプログラムによって実行できます。この柔軟性によって、バッチ モードでアクセラレータ モードの MEX ファイルを作成できるため、シミュレーションを実行する前に C コードと実行ファイルを作成できます。後でアクセラレータ モードを対話形式で使用する場合は、高速化されたシミュレーションの最初に、MEX ファイルを生成またはコンパイルする必要はありません。
JIT アクセラレータ実行エンジンの作成
accelbuild コマンドを使用して、モデルのシミュレーションを実際に行わずに JIT アクセラレータ実行エンジンを作成できます。たとえば、myModel のアクセラレータ モードのシミュレーションを作成するには、次のようにします。
accelbuild myModel
シミュレーションのコントロール
set_param コマンドを使用すると、プログラムによってシミュレーション モードを制御できます。
set_param('modelname','SimulationMode','mode')
シミュレーション モードは、normal、accelerator、rapid、または external のいずれかです。
たとえば、アクセラレータ モードを使用してモデルをシミュレートするには、次を使用します。
set_param('myModel','SimulationMode','accelerator')
sim を使用してシミュレーション モードを指定する方法をお勧めします。 simOut = sim('myModel','SimulationMode','accelerator');
モデル名を明示的に指定しない場合は、bdroot を使用すると、modelname でなく現在アクティブなモデル (つまり、アクティブなモデル ウィンドウ) のパラメーターを設定できます。
たとえば、ラピッド アクセラレータ モードを使用して現在開いているシステムをシミュレートするには、次を使用します。
simOut = sim(bdroot,'SimulationMode','rapid');
モデルのシミュレート
set_param を使用すると、シミュレーション モードや終了時刻などのモデル パラメーターを構成でき、sim コマンドを使用すると、シミュレーションを開始できます。
sim('modelname','ReturnWorkspaceOutputs','on');ただし、前の節で説明したように、sim コマンドを使用してモデル パラメーターを直接構成する方法をお勧めします。
モデル名を明示的に指定しない場合は、modelname の代わりに gcs を使用します。
ターゲット コードがまだ生成されていない限り、関数 sim は最初に実行ファイルを作成してから、シミュレーションを実行します。ただし、ターゲット コードが既に生成され、モデルに重大な変更が行われていない場合 (詳細については、高速化されたモデルでのコードの再生成を参照)、関数 sim はコードを再生成せずに、生成されたコードを実行します。このプロセスによって、モデルのリビルドを待つことなく簡単な変更を行った後でモデルを実行できます。
シミュレーションの例
次のコマンドは、ラピッド アクセラレータ モードで 10,000 秒間 myModel をプログラムでシミュレートする方法を示します。
最初に myModel を開いてから、コマンド ウィンドウに以下のコマンドを入力します。
simOut = sim('myModel','SimulationMode','rapid', ... 'StopTime','10000');
モデルに変更を行った後でシミュレートするには、関数 sim をもう一度使用します。マイナーな変更 (Gain ブロックのゲインを調整するなど) を行う場合は、シミュレーションはコードを再生成せずに実行されます。
高速化のためのビルド プロセスのカスタマイズ
アクセラレータ モードとラピッド アクセラレータ モードのビルド プロセスと表示する情報量をビルド プロセス中にプログラムで制御できます。この操作を実行する利点の詳細は、ビルド プロセスのカスタマイズを参照してください。
ビルド プロセスの制御
SimCompilerOptimization を使用して、高速化のためにコード生成時にコンパイラによって使用される最適化の度合いを設定します。入力可能な値は、on または off です。既定の設定は off です。
コンパイラの最適化をオンにするには、コマンド ウィンドウで次のように入力します。
set_param('myModel','SimCompilerOptimization','on')
JIT アクセラレータ モードで SimCompilerOptimization が on に設定されると、一部のモデルではシミュレーション時間が短縮されますが、ビルド時間は長くなる可能性があります。
コード生成中の詳細レベルの制御
コード生成中に進行状況に関する情報を表示するには、AccelVerboseBuild パラメーターを使用します。入力可能な値は、on または off です。既定の設定は off です。
詳細なビルドをオンにするには、コマンド ウィンドウで次のように入力します。
set_param('myModel','AccelVerboseBuild','on')