メインコンテンツ

polyspacePackNGo

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

説明

polyspacePackNGo は、Polyspace® オプションを Simulink® モデルから抽出し、生成されたコードに対する Polyspace 解析の実行に必要なオプションが記載されているオプション ファイルを含むアーカイブを作成します。

archivePath = polyspacePackNGo(mdlName) は、Simulink モデル mdlName を検査して、そこから Polyspace オプション ファイルを抽出し、archivePath に配置された zip ファイルにオプション ファイルをパッケージ化します。polyspacePackNGo を使用する前に、Simulink モデルからコードを生成します。その後で、たとえば、packNGo を使用することによって、生成されたコードをアーカイブします。Simulink モデルから Polyspace オプション ファイルを生成し、それらを polyspacePackNGo を使用することによってコード アーカイブに含めます。別の開発環境では、生成されたコードの Polyspace 解析を実行中に、コード アーカイブに含まれているオプション ファイルを使用して、設計範囲指定などのモデル固有の情報を保存します。slbuild (Simulink) を使用するには、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 オプション ファイルを生成してパッケージ化するには、オプション引数 asModelReftrue に設定された関数 polyspacePacknGo を使用します。

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 (Simulink) を参照してください。

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

モデル参照として生成されたコードをパッケージ化するには、関数 packNGo を使用します。<working folder>/slprj/ert/polyspace_controller_demo にファイル buildinfo.mat を配置して、そのファイルへの絶対パスを 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 (Simulink) を使用してコードを生成します。

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

データ型: logical

出力引数

すべて折りたたむ

生成されたアーカイブへのパスを含む文字配列。オプション ファイルは、アーカイブ内の polyspace フォルダーに配置されます。polyspace フォルダーには以下のオプション ファイルが格納されています。

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

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

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

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

データ型: char

バージョン履歴

R2020b で導入