アクセラレータ モードのプログラムによる操作
プログラムで操作する理由
高速化されたモデルを作成し、シミュレーション モードを選択し、シミュレーションをプログラムによって実行できます。この柔軟性によって、バッチ モードでアクセラレータ モードの 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')