Main Content

polyspacePackNGo

Simulink から生成されたコードで Polyspace 解析を実行するためのオプション ファイルを生成してパッケージ化

R2020b 以降

説明

archivePath = polyspacePackNGo(mdlName) は、Simulink® モデル mdlName を調べ、これから Polyspace® オプション ファイルを抽出して、このオプション ファイルを zip ファイルにパッケージ化して archivePath に配置します。polyspacePackNGo を使用する前に、Simulink モデルからコードを生成します。次に、生成されたコードを、たとえば packNGo を使用してアーカイブします。Simulink モデルから Polyspace オプション ファイルを生成し、これらを polyspacePackNGo を使用してコード アーカイブに含めます。さまざまな開発環境で、生成されたコードの Polyspace 解析を実行する場合、コード アーカイブに含まれているオプション ファイルを使用して、設計範囲指定などのモデル固有の情報を保持します。slbuild を使用するには、Embedded Coder® を所有していなければなりません。

archivePath = polyspacePackNGo(mdlName,psOpt) は、psOpt の仕様に従って生成される Polyspace オプション ファイルを生成してパッケージ化します。オブジェクト psOpt は、pslinkoptions を使用して生成される Polyspace オプション オブジェクトでなければなりません。psOpt を使用して、Polyspace 解析のオプションを変更します。

archivePath = polyspacePackNGo(mdlName,psOpt,asModelRef) は、モデル参照コードまたはスタンドアロン コードのオプション ファイルを生成するかどうかを指定するために、asModelRef を使用して Polyspace オプション ファイルを生成し、パッケージ化できます。

すべて折りたたむ

Simulink モデルの Polyspace オプション ファイルを生成してパッケージ化するには、polyspacePacknGo を使用します。

Simulink モデル polyspace_controller_demo を開き、生成されたコードを格納するフォルダーを指定します。

cd(matlabroot);
mdlName = 'polyspace_controller_demo';
openExample('polyspace_code_prover/OpenSimulinkModelForPolyspaceAnalysisExample',...
'supportingFile',mdlName);
mkdir TempDir;
load_system(mdlName);
cd TempDir;

生成されたコードのアーカイブへのパッキングを有効にするには、オプション PackageGeneratedCodeAndArtifactstrue に設定します。生成されたコードのアーカイブの名前を genCodeArchive.zip として指定します。

configSet = getActiveConfigSet(mdlName);
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
set_param(configSet, 'PackageName', 'genCodeArchive.zip');

モデルに Polyspace との互換性をもたせるには、SystemTargetFileert.tlc に設定します。

set_param(configSet, 'SystemTargetFile', 'ert.tlc');

モデルの構成が完了したら、コードを生成します。

slbuild(mdlName)

PackageGeneratedCodeAndArtifactstrue に設定されているため、生成されたコードはアーカイブ genCodeArchive.zip に挿入されます。

Polyspace オプション ファイルを生成してパッケージ化します。

zipFile = polyspacePackNGo(mdlName);
コード アーカイブ genCodeArchive.zip では、Polyspace オプション ファイルは TempDir\polyspace フォルダーにパッケージ化されます。

オプション ファイルをパッケージ化および生成するときに Polyspace 解析オプションを指定するには、pslinktoptions を使用します。

Simulink モデル polyspace_controller_demo を開いて、Polyspace と互換性のあるコード アーカイブを生成するためにモデルを構成します。

cd(matlabroot);
mdlName = 'polyspace_controller_demo';
openExample('polyspace_code_prover/OpenSimulinkModelForPolyspaceAnalysisExample', ...
'supportingFile',mdlName);
mkdir TempDir;
load_system(mdlName);
cd TempDir;
configSet = getActiveConfigSet(mdlName);
% Enable packing the generated code into an archive
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
% Specify a name for the code archive
set_param(configSet, 'PackageName', 'genCodeArchive.zip');
% Configure the model to be Polyspace Compatible
set_param(configSet, 'SystemTargetFile', 'ert.tlc');

モデルの構成が完了したら、コードを生成します。

slbuild(mdlName)

PackageGeneratedCodeAndArtifactstrue に設定されているため、生成されたコードはアーカイブ genCodeArchive.zip に挿入されます。

Polyspace 解析のモデル コンフィギュレーションを指定するには、pslinkoptions オブジェクトを使用します。関数 pslinkoptions を使用してオブジェクトを作成します。

psOpt = pslinkoptions(mdlName);
オブジェクト psopt は、ユーザーが指定できるモデル コンフィギュレーションをフィールドとしてもつ構造体です。

psOpt オブジェクトを使用してモデル コンフィギュレーションを指定します。たとえば、InputRangeMode の全範囲を設定します。完全なオプション リストについては、入力引数 psOpt を参照してください。

psOpt.InputRangeMode = 'FullRange';

Polyspace オプション ファイルを生成してパッケージ化します。psOpt オブジェクトを polyspacePacknGo の 2 番目の引数として使用します。

zipFile = polyspacePackNGo(mdlName,psOpt);
コード アーカイブ genCodeArchive.zip では、Polyspace オプション ファイルは TempDir\polyspace フォルダーにパッケージ化されます。ファイル optionsFile.txt には、指定された Polyspace 解析オプションが含まれます。

モデルのシミュレーションを高速化するには、参照される Simulink モデルをシミュレーション ターゲットとして呼び出します。Simulink モデルからモデル参照のシミュレーション ターゲットを生成するには、ModelReferenceCoderTarget として指定されるビルド プロセスで slbuild を使用してモデルからコードを生成します。次に、packNGo を使用して生成されたコードをパッケージ化します。このようなコードを解析するために Polyspace オプション ファイルを生成してパッケージ化するには、関数 polyspacePacknGo を使用してオプションの引数 asModelReftrue に設定します。

Simulink モデル polyspace_controller_demo を開いて、Polyspace と互換性のあるコード アーカイブを生成するためにモデルを構成します。

cd(matlabroot);
mdlName = 'polyspace_controller_demo';
openExample('polyspace_code_prover/OpenSimulinkModelForPolyspaceAnalysisExample', ...
'supportingFile',mdlName);
mkdir TempDir;
load_system(mdlName);
cd TempDir;
configSet = getActiveConfigSet(mdlName);
% Enable packing the generated code into an archive
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
% Specify a name for the code archive
set_param(configSet, 'PackageName', 'genCodeArchive.zip');
% Configure the model to be Polyspace Compatible
set_param(configSet, 'SystemTargetFile', 'ert.tlc');

モデルの構成が完了したら、関数 slbuild を使用してこのモデルからモデル参照シミュレーション ターゲットを生成します。オプション ModelReferenceCoderTarget を指定します。slbuild を参照してください。

slbuild(mdlName,'ModelReferenceCoderTarget');
生成されるコードは、フォルダー slprj に格納されます。

モデル参照として生成されるコードをパッケージ化するには、関数 packNGo を使用します。ファイル buildinfo.mat<working folder>/slprj/ert/polyspace_controller_demo に置いて、このファイルへの絶対パスを packNGo への入力として使用します。このコマンドは、生成されたコードとオブジェクト buildinfo.mat を含むアーカイブを生成します。packNGo (Embedded Coder) を参照してください。

% Locate buildinfo and generate code archive
buildinfo = fullfile(pwd,'slprj','ert',mdlName,'buildinfo.mat');
packNGo(buildinfo)

Polyspace オプション ファイルを生成してパッケージ化します。オプションの 2 番目の引数は省略します。3 番目の引数 asModelReftrue に設定します。

zipFile = polyspacePackNGo(mdlName,[],true);
コード アーカイブでは、Polyspace オプション ファイルは polyspace フォルダーにパッケージ化されます。

入力引数

すべて折りたたむ

Polyspace オプション ファイルを生成してパッケージ化するモデルの名前を含む文字配列です。

例: polyspacePackNGo('modelName')

データ型: char

pslinkoptions オブジェクトを使用して、Polyspace 解析のモデル コンフィギュレーションを指定します。個々のフィールドが解析オプションを表す構造体である psOpt を変更して、特定の解析オプションを変更できます。変更できるオプションの完全なリストについては、polyspacePacknGo によってサポートされる Polyspace 解析オプションのテーブルを参照してください。

polyspacePacknGo によってサポートされる Polyspace 解析オプション

プロパティ説明
EnableAdditionalFileList: 解析対象の追加ファイル リストを有効化します。true または false として指定します。AdditionalFileList オプションと共に使用します。 truePolyspace は、AdditionalFileList オプションで指定された追加ファイルを検証します。
false (既定の設定)Polyspace は、追加ファイルを検証しません。
AdditionalFileList: ファイルの cell 配列として指定する追加ファイルのリスト。これらのファイルを解析に追加するには、EnableAdditionalFileList オプションを使用します。cell 配列Polyspace は、検証でリストされたファイルを検討します。
InputRangeMode: 入力変数の範囲を指定します。'DesignMinMax' (既定の設定)Polyspace は、ワークスペースまたはブロックで定義される入力範囲を使用します。
'Fullrange'Polyspace は、全範囲の入力を使用します。
ParamRangeMode: 定数パラメーターの範囲を指定します。'DesignMinmax'Polyspace は、ワークスペースまたはブロックで定義される定数パラメーター範囲を使用します。
'None' (既定の設定)Polyspace は、コードで指定されるパラメーターの値を使用します。
OutputRangeMode: 出力アサーションを指定します。'DesignMinMax'Polyspace は、ブロックまたはワークスペースで定義される範囲を使用してアサーションを出力に適用します。
'None' (既定の設定)Polyspace は、アサーションを出力変数には適用しません。
ModelRefVerifDepth: 現在のモデルが参照するモデルを解析する深さを指定します。'Current model Only' (既定の設定)Polyspace は、参照モデルを解析せず、最上位モデルのみを解析します。ライブラリ モデルなど、解析する必要がないモデルを参照する場合は、このオプションを使用します。
'1'|'2'|'3'Polyspace は、参照階層の指定された深さまで参照モデルを解析します。最上位モデルが参照するモデルを解析するには、プロパティ ModelRefVerifDepth'1' として指定します。参照の最初のレベルが参照するモデルを解析するには、このプロパティを '2' として指定します。
'All'Polyspace は、すべての参照モデルを検証します。
ModelRefByModelRefVerif: すべての参照モデルをまとめて、または個別に解析するかどうかを指定します。truePolyspace は、最上位モデルと参照モデルをまとめて解析します。統合またはスケーリングの問題をチェックするには、このオプションを使用します。
false (既定の設定)Polyspace は、最上位モデルと参照モデルを別個に検証します。
AutoStubLUT: ルックアップ テーブルの使用方法を指定します。true (既定の設定)Polyspace は、ルックアップ テーブルをスタブし、ルックアップ テーブルのコードを解析せずにモデルを検証します。
falsePolyspace は、ルックアップ テーブルのコードを解析に含めます。
CheckConfigBeforeAnalysis: Polyspace の解析が開始する前にコンフィギュレーションのチェックが完了するレベルを指定します。'Off'Polyspace は、エラーのみを確認します。エラーが見つかると、解析は停止します。
'OnWarn' (既定の設定)Polyspace は、エラーが見つかり、警告が見つかったときのメッセージを表示する場合、解析を停止します。
'OnHalt'Polyspace は、エラーまたは警告が見つかった場合、解析を停止します。

例: polyspacePackNGo('modelName', psOpt) とします。ここで、psOptpslinkoptions を呼び出すと作成されるオプション オブジェクトです。

モデル参照の解析のインジケーター。true または false として指定します。

  • asModelReffalse (既定の設定) である場合、関数は、Polyspace が生成されたコードをスタンドアロン コードとして解析するためのオプション ファイルを生成します。

  • asModelReftrue である場合、関数は、Polyspace が生成されたコードをモデル参照コードとして解析するためのオプション ファイルを生成します。

    メモ

    asModelReftrue に設定する場合、slbuild を使用してコードを生成します。

例: polyspacePackNGo('modelName', psOpt,true)

データ型: logical

出力引数

すべて折りたたむ

生成されたアーカイブへのパスを含む文字配列です。オプション ファイルは、アーカイブ内の polyspace フォルダーにあります。polyspace フォルダーには、次のオプション ファイルが含まれます。

  • optionsFile.txt: 設計範囲指定などのモデル固有の情報を失わずに、生成されたコードで Polyspace 解析を実行するために必要な Polyspace オプションを含むテキスト ファイル。

  • model_drs.xml:モデルの設計範囲指定を含むファイル。

  • linksData.xml:生成されたコードをモデルのコンポーネントにリンクさせるファイル。

コードが Simulink モデルから生成された環境とは異なる環境において、生成されたコードで Polyspace 解析を実行するには、これらのファイルを使用します。

データ型: char

バージョン履歴

R2020b で導入