主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

バリアントブロックを含むモデルの削減

メモ

モデルを削減するためには,金宝app®设计验证器™ライセンスが必要です。

バリアントモデルには複数の変数構造と1つの固定構造を含めることができます。変数構造と固定構造の組み合わせにより,選択したバリアントの選択のさまざまな組み合わせに応じてモデルが作成されます。バリアントの選択の各組み合わせはバリアントコンフィギュレーションとして保存できます。

選択したバリアントコンフィギュレーションに応じて,バリアントモデルを削減して簡略化されたスタンドアロンモデルにすることができます。さらに,関連するすべてのファイルおよび変数の依存関係も削減されます。これらの削減されたアーティファクトは,ユーザー指定の出力フォルダーにパッケージされます。

モデルのバリアントリデューサーについて考えます。モデルには次のバリアントの選択をもつ变异来源ブロック,变体水槽ブロックおよび不同的子系统ブロックが含まれています。

  • 变异来源V = = 1およびV = = 2

  • 变体水槽W = = 1W = = 2およびW = = 3

  • 不同的子系统V = = 1およびV = = 2

モデルにconfig1V = = 1 & & W = = 2)およびconfig2V = = 2 & & W = = 2)という名前の事前定義された2つのバリアントコンフィギュレーションがあると仮定します。これらのコンフィギュレーションは,バリアントコンフィギュレーションデータオブジェクトvarConfigに保存されます。

モデルを削減するには,以下の手順を実行します。

  1. バリアントのバッジを右クリックして[バリアントマネージャーで開く]を選択します。バリアントマネージャーが開き,事前定義されたコンフィギュレーションが表示されます。

  2. [モデルの削減]をクリックします。[バリアントリデューサー]ダイアログボックスが開きます。

  3. (削減モード]セクションで,次を選択します。

    • [現在のバリアント制御値):グローバルワークスペースでバリアント制御変数の値に基づきモデルを削減する場合。

    • [バリアントコンフィギュレーションの指定):バリアントコンフィギュレーションデータオブジェクトおよび削減されたモデルで保持するコンフィギュレーションに関連付けられたモデルを削減する場合。

      メモ

      削減中に,最後に選択されたコンフィギュレーションの制御変数の値がグローバルワークスペースに保存されます。

    • [バリアント制御値の指定):バリアント制御変数の値に基づきモデルを削減する場合。異なるコンフィギュレーションに対応する複数の変数グループを作成することができます。(新しい変数グループ]をクリックして,バリアント制御変数の値を設定します。バリアント制御値を指定するか,またはドロップダウンリストから(全程)または(忽略)を選択することができます。バリアント制御値をベクトルとして指定しても,その変数のすべての組み合わせについてモデルを削減することができます。たとえば値V = 1W = [1, 2]を指定した場合,モデルは{V = = 1 W = = 1}{V = = 1 W = = 2}のコンフィギュレーションについて削減されます。バリアント制御値として(全程)を選択した場合,[参照値]列が有効になり,モデルのコンパイルを成功させるために必要な参照値を入力できます。モデルは指定したバリアント制御変数のすべての有効な値について削減されます。バリアント制御値として(忽略)を選択した場合,そのバリアント制御変数はモデル削減時に考慮されません。

      メモ

      全範囲のバリアント制御変数を使用するには,そのバリアント制御変数を使用するブロックの[ブロックパラメーター]ダイアログボックスの[バリアントのアクティベーションのタイミング][コードのコンパイル]に設定しなければなりません。

    メモ

    変数グループを指定してバリアント削減を呼び出すと,削減されたモデルには,関連付けられている変数グループに対応するバリアントコンフィギュレーションが含まれます。これにより,元のモデルにある既存のバリアントコンフィギュレーションが上書きされます。

  4. (信号属性を保持]を選択し,コンパイル済みの信号属性を元のモデルと削減されたモデル間で保持します。このオプションを選択すると,削減されたモデル内の適切なブロック端子に信号指定ブロックを追加することで,バリアントリデューサーはコンパイル済みの信号属性を元のモデルと削減されたモデル間で保持しようとします。コンパイル済み信号属性には,信号のデータ型,信号の次元,コンパイル済みサンプル時間などが含まれます。

  5. [詳細な概要の生成)を選択して,バリアントリデューサーの概要を出力フォルダーに生成します。バリアントリデューサーの概要には,[バリアントリデューサーのオプション](元のモデルと削減されたモデルの相違](依存アーティファクト][コールバック]および[警告]の概要が含まれます。

    詳細な概要を使用して,元のモデルと削減されたモデルとのトレーサビリティ情報を入手できます。また,自動では処理できず手動での介入が必要なアーティファクトの特定にも役立ちます。たとえば,変更が必要なコールバックコードです。

    メモ

    詳細な概要を生成するには,(金宝app仿真软件报告生成器)のライセンスが必要です。

  6. [モデルの接尾辞)フィールドで値を接尾辞として指定します。モデルの接尾辞の値が、削減されたモデル、データ ディクショナリおよび関連するアーティファクトに追加されます。既定では、_rが接尾辞です。

  7. 削減されたモデルを保存する出力フォルダーを指定します。

    メモ

    (削減されたモデルを開く]チェックボックスをオンにすると,現在作業中のフォルダーが出力フォルダーに変更されます。

  8. [削減]をクリックします。これで,必要なコンフィギュレーションに対して削減されたモデルが作成されました。関連付けられたライブラリリンクまたは参照モデルがモデルに含まれている場合,指定されたコンフィギュレーションに対応する親が削減され,モデル内で参照されます。削減されたモデル,削減された参照モデル,削減されたライブラリは,対応するモデル,参照モデルまたはライブラリから_r[モデルの接尾辞])が追加された名前を取得します。

金宝app仿真软件的功能ブロックに対するバリアント条件V==1 || V==2 || V==3 || V==4をもつ金宝app仿真软件的功能ブロックを含むバリアントモデルについて考えます。モデルが利用可能な何らかのバリアント条件または条件の組み合わせのために削減される場合、削減されたモデル内の金宝app仿真软件的功能ブロックは無条件です。たとえば,モデルがバリアント条件V=1 V=2 V=3のために削減された場合,削減されたモデル内の金宝app仿真软件的功能ブロックは無条件です。一方,モデルがバリアント条件V=1 V=2 V=5のために削減された場合,削減されたモデル内の金宝app仿真软件的功能ブロックは条件付きのままであり,そのバリアント条件はV V = = 1 | | = = 2です。

プログラムによるモデルの削減

プログラムでモデルを削減するには,以下の構文を使用します。

金宝appSimulink.VariantManager.reduceModel(模型中,<名称>,<价值>)

以下に例を示します。

  • グローバルワークスペースでバリアント制御変数の値に基づきモデルを削減する場合。

    金宝appSimulink.VariantManager.reduceModel(“sldemo_variant_subsystems”)
  • グローバルワークスペースでバリアント制御変数の値に基づき,指定したフォルダーにモデルを削減する場合。

    金宝appSimulink.VariantManager。reduceModel('sldemo_variant_subsystems', 'OutputFolder', 'outdir')
  • バリアントコンフィギュレーションデータオブジェクトおよび削減されたモデルで保持するコンフィギュレーションに関連付けられたモデルを削減する場合。

    金宝appSimulink.VariantManager。reduceModel('sldemo_variant_subsystems','NamedConfigurations', {'LinInterStd','NonLinExterHighFid'})
  • バリアント制御変数の構造体形式でコンフィギュレーションを指定し,モデルを削減する場合。

    金宝appSimulink.VariantManager。reduceModel('iv_model', 'VariableConfigurations', {'V',1,'W',[1 2]})

    ここでは,{V = 1, W = 1}{V = 1, W = 2}それぞれに対応する2つのコンフィギュレーションが指定されます。

  • バリアント制御値を指定してモデルを削減する場合。ここで”w“は全範囲のバリアント制御値。

    金宝appSimulink.VariantManager.reduceModel(‘slexVariantReducer’,‘VariableConfigurations’,{‘V’,1},FullRangeVariables, {' W ', 1});

    ここでは,それぞれ{v ==1, w ==1}, {v ==1, w ==2}, {v ==1, w ==3}および{V = = 1 W = = 0}に対応する4つのコンフィギュレーションが計算されます。

プログラムによるモデルの削減の詳細については,reduceModelを参照してください。

考慮事項および制限事項

  • 不同的连接器ブロックを含むモデルの削減はサポートされていません。

  • 削減されたモデルを保存する出力フォルダーはmatlabrootの下に存在してはなりません。

  • 出力フォルダーに前のモデル削減からのvariant_reducer.logファイルが含まれている場合,リデューサーは後続の削減のためにその出力内で利用可能なすべてのファイルを上書きします。

  • シミュレーションセマンティクスの一貫性を確保するために,削減されたモデルにさらなるブロックが自動的に追加されます。追加のブロックには,一貫した信号属性(データ型,次元,実数/複素数)を実現するための信号规范ブロック,または接続されていない信号のために地面ブロックと《终结者》ブロックを含めることができます。

  • モデルの削減中,アクティブパス上に存在するコメント化されたブロックは保持されますが,非アクティブパス上に存在するコメント化されたブロックは削除されます。

  • Stateflow®チャートの非アクティブな要素からの信号属性(データ型,実数/複素数,次元など)は,削減されたモデルでは保持されない可能性があります。

削減されないモデルのコンポーネント

自動的に削減されないモデルのコンポーネントには,手動での介入が必要となる場合があります。このようなアーティファクトを特定するには,モデルの削減中に[バリアントリデューサー]ダイアログボックスで[詳細な概要の生成)チェックボックスをオンにしてバリアントリデューサーの概要を生成します。

  • コールバックコード:

    • InitFcn预加载PostLoadなどのコールバック,マスク初期化コード,およびマスクパラメーターのコールバックコードは手動で変更しなければなりません。

    • 非アクティブなバリアントコンポーネントのコールバックコードは削除されます。削減されたモデルで,これは予期しない動作の原因になります。

  • モデルの削減中,バリアント遷移を含むStateflowキャンバス内の要素は変更されません。

  • モデルがmatlabroot(金宝app仿真软件ライブラリ,00ファイル,.matファイル,または.slddファイル)の下に配置されているファイルに依存している場合,モデルの削減中にこれらのファイルが変更されたり,出力フォルダーにコピーされたりすることはありません。

関連する例

詳細