このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
高速化されたモデルでのコードの再生成
モデルの構造を変更すると、ラピッド アクセラレータ モードによって、スタンドアロンの実行ファイルが再生成され、アクセラレータ モードがターゲット コードを再生成し、既存の MEX ファイルを更新 (上書き) します。調整可能なパラメーターの値を変更すると、リビルドはトリガーされません。
リビルドが必要な変更かどうかの判別
アクセラレータ モードとラピッド アクセラレータ モードは、チェックサムを使用してモデルが変わったかどうかを判断し、コードが再生成する必要があるかどうかを示します。チェックサムとは、モデルとモデルに含まれるブロックの属性に基づき、MD5 チェックサム アルゴリズムを使用して計算された 4 つの整数の配列です。
関数
Simulink.BlockDiagram.getChecksum
を使用して、モデルのチェックサムを取得します。次に例を示します。cs1 = Simulink.BlockDiagram.getChecksum('myModel');
モデルを変更した後に 2 番目のチェックサムを取得します。新しいチェックサムが前のチェックサムに一致しない場合は、コードが再生成されます。
チェックサム内の情報を使用して、シミュレーション ターゲットをリビルドした理由を特定します。
この手順の詳細については、Simulink Accelerator がコードを再生成している原因の特定を参照してください。
ラピッド アクセラレータ モードでのパラメーター調整
ラピッド アクセラレータ モードでは、モデルのリビルドにおいて、モデル コンフィギュレーション パラメーターおよび実行時パラメーターの扱いが他のパラメーターと異なります。
モデル コンフィギュレーション パラメーターの調整
モデル コンフィギュレーション パラメーターの値を調整するには、以下の方法があります。
setModelParameter
関数を使用して、シミュレーションを構成するSimulink.SimulationInput
オブジェクトでパラメーターの値を指定します。set_param
関数を使用して、モデルのコンフィギュレーション パラメーターの値をプログラムで変更します。[コンフィギュレーション パラメーター] ダイアログ ボックスを使用して、モデルの値を変更します。[コンフィギュレーション パラメーター] ダイアログ ボックスを開くには、Simulink® ツールストリップの [モデル化] タブで [モデル設定] をクリックします。
一部のブロック線図パラメーターは、シミュレーション中にリビルドを必要とせずに変更できます。これには、以下の表に示すパラメーターが含まれます。
ソルバー パラメーター | ||
---|---|---|
AbsTol | MaxConsecutiveZCs | Refine |
ConsecutiveZCsStepRelTol | MaxOrder | RelTol |
ExtrapolationOrder | MaxStep | StartTime |
InitialStep | MinStep | StopTime |
MaxConsecutiveMinStep | OutputTimes |
実行時パラメーターの調整
ラピッド アクセラレータ シミュレーションで実行時パラメーターの調整に使用する手法は、ラピッド アクセラレータの実行可能ファイルがリビルドされるかどうかに影響する可能性があります。実行可能ファイルのリビルドには相当な時間がかかるため、パラメーターの調整に起因するリビルドを避けることで、ラピッド アクセラレータ シミュレーション ワークフローの効率が向上します。
最初に、調整対象のパラメーターが調整可能であり、モデルが目的のパラメーターの調整をサポートするように設定されていることを確認します。モデルの実行時パラメーターを特定するには、Simulink.BlockDiagram.buildRapidAcceleratorTarget
を使用します。ラピッド アクセラレータ シミュレーションでブロック パラメーターの値を直接調整することはサポートされていません。ラピッド アクセラレータ シミュレーションでブロック パラメーターの値を調整する場合は、ブロック パラメーターの値を変数として定義します。その後、変数の値を代わりに調整します。
ラピッド アクセラレータの実行可能ファイルをリビルドせずにモデルの実行時パラメーターの値を調整するには、次の手順に従います。
Simulink.SimulationInput
オブジェクトを作成してシミュレーションを構成します。simin = Simulink.SimulationInput(mdl);
setModelParameter
関数を使用して、SimulationMode
パラメーターの値を"rapid-accelerator"
、RapidAcceleratorUpToDateCheck
パラメーターの値を"off"
に設定します。simin = setModelParameter(simin,SimulationMode="rapid-accelerator"); simin = setModelParameter(simin,RapidAcceleratorUpToDateCheck="off");
setVariable
関数を使用して、シミュレーションで実行時パラメーターに使用する値を指定します。たとえば、次のコードは、値が10
のparam1
という名前の実行時パラメーターを構成します。simin = setVariable(mdl,"param1",10);
SimulationInput
オブジェクトを使用してシミュレーションを実行します。たとえば、次のコードは、SimulationInput
オブジェクトをsim
関数の入力引数として指定してシミュレーションを実行します。out = sim(simin);
ラピッド アクセラレータの最新チェックを無効にしている場合、ラピッド アクセラレータ シミュレーションのパラメーターを set_param
関数を使用して調整することはできません。set_param
関数はモデルのパラメーターを変更するのに対し、SimulationInput
オブジェクトはシミュレーションにおいてのみパラメーターを変更します。SimulationInput
オブジェクトの構成はシミュレーション中に適用され、シミュレーションが完了すると元に戻ります。
モデルに対する変更をラピッド アクセラレータ シミュレーションに反映するには、ラピッド アクセラレータ シミュレーション ターゲットを再生成する必要があります。set_param
関数を使用してパラメーターの値を調整するためにラピッド アクセラレータの最新チェックを有効にしている場合、SimulationInput
オブジェクトを使用してパラメーターの値を調整する場合に比べ、余分なラピッド アクセラレータ ターゲットがリビルドされる可能性があります。
パラメーターの調整可能性に関する制限の詳細については、その他のモデル化の目的に関する調整可能性の考慮事項と制限を参照してください。