メインコンテンツ

polyspacePackNGo

R2026b

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

説明

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

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;

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

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

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

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

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

slbuild(mdlName)

PackageGeneratedCodeAndArtifacts は true に設定されているため、生成されたコードはアーカイブ 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)

PackageGeneratedCodeAndArtifacts は true に設定されているため、生成されたコードはアーカイブ 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 を使用してオプションの引数 asModelRef を true に設定します。

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 番目の引数 asModelRef を true に設定します。

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) とします。ここで、psOpt は pslinkoptions を呼び出すと作成されるオプション オブジェクトです。

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

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

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

    メモ

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

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

データ型: logical

出力引数

すべて折りたたむ

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

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

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

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

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

データ型: char

バージョン履歴

R2020b で導入