Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink.VariantManager.reduceModel

クラス: Simulink.VariantManager
名前空間: Simulink

指定されたバリアント コンフィギュレーションの削減されたモデルを生成する

説明

メモ

このメソッドには Variant Manager for Simulink® が必要です。

Simulink.VariantManager.reduceModel(model) は、入力モデル model から削減されたモデルを生成します。

既定では、入力モデルのベース ワークスペースまたはデータ ディクショナリにおけるバリアント制御変数の現在の値が削減に使用されます。削減プロセスでは、それらの値に対応するバリアント コンフィギュレーションが保持され、非アクティブなモデル コンポーネントが削除されます。削減されたアーティファクトは、入力モデルのフォルダー内の ./reducedModel という名前のフォルダーに生成されます。既定では、削減されたモデルと削減された参照モデルの名前は、元のモデル名に接尾辞 _r が付いた名前になります。

Simulink.VariantManager.reduceModel(model,Name,Value) では、1 つ以上の Name,Value 引数を使用して追加の削減オプションを指定できます。

入力引数

すべて展開する

削減するモデルの名前。string または文字ベクトルとして指定します。

名前と値の引数

オプションの Name,Value の引数を指定します。Name は引数名、Value は対応する値です。Name1,Value1,...,NameN,ValueN のように、複数の名前と値の引数を任意の順序で指定できます。

削減されたモデルで保持するバリアント コンフィギュレーションの名前。string、文字ベクトル、string の cell 配列、または文字ベクトルの cell 配列として指定します。これらの名前付きバリアント コンフィギュレーションは、モデルに関連付けられたバリアント コンフィギュレーション データ オブジェクト (Simulink.VariantConfigurationData 型) に存在していなければなりません。

例: 'NamedConfigurations', 'C1'

例: 'NamedConfigurations', {'C2'}

データ型: char | string | cell

削減に使用する必要があるバリアント制御変数とその値。変数の名前と値を含む cell 配列として指定します。

メモ

VariableGroupsNamedConfigurations の両方を指定することはサポートされていません。

名前付き変数グループはモデルに対して複数作成できます。変数グループの名前を指定するには、NameVariantControls のフィールドをもつ struct 配列を指定します。Name は変数グループの名前を示し、VariantControls はバリアント制御変数とそれに対応する値を含む cell 配列でなければなりません。次に例を示します。

 Simulink.VariantManager.reduceModel('slexVariantReducer',...
 'VariableGroups', struct('Name', 'Group1', 'VariantControls', {{'V',1,'W',[1 2]}}));

例: 'VariableGroups', {{'V',1,'W',1},{'V',2,'W',2}}

データ型: cell

全範囲について削減を検討する必要がある変数。バリアント制御変数の名前とそれに対応する値を含む cell 配列として指定します。このオプションにより、指定したバリアント制御変数のすべての有効な値について、モデルを削減することができます。モデルが正常にコンパイルされるように、このバリアント制御変数の参照値も指定する必要があります。

たとえば、全範囲のバリアント制御変数として指定されたバリアント制御変数 W について考えます。W の参照値には 1 を使用します。削減プロセスで V=1W のすべての有効な値が検討されます。全範囲の解析を実行するために、バリアント リデューサーで値 {'V',1,'W',1} を使用してモデルが 1 回コンパイルされます。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
                    'VariableGroups',{'V',1},...
                    'FullRangeVariables',{'W',1});

データ型: cell

コンパイル モード。'sim' または 'codegen' として指定します。これらのオプションは、モデルを削減の一環としてシミュレーション用またはコード生成用のモードでコンパイルするかどうかをそれぞれ示します。モデルに [バリアント制御モード] パラメーターが sim codegen switching に設定されたバリアント ブロックが含まれている場合は、値を codegen として指定し、削減されたモデルでブロックのコード生成の分岐を保持できます。既定値が sim の場合、バリアント リデューサーは最上位モデルでシミュレーションの分岐をコンパイルして保持します。

削減対象から除外する、MATLAB® ルート フォルダーの外部にあるファイルのリスト。文字ベクトル、string 配列、あるいは文字ベクトルまたは string 配列の cell 配列として指定します。

以下を除外できます。

  • Simulink モデル ファイル (*.slx*.mdl)

  • Simulink データ ディクショナリ ファイル (*.sldd)

  • MAT ファイル (*.mat)

除外する必要があるフォルダーまたは特定のファイルの絶対パスを指定できます。これにはワイルドカード文字を含めることができます。

例: 'components\*.slx', {'mylib.slx','myssref.slx'}, '*.sldd', 'topData.sldd'

追加情報については、Model Components That Are Not Reducedの「除外ファイル」を参照してください。

データ型: char | string | cell

削減されたモデルで Variant Subsystem の 1 つの選択肢のみがアクティブなままの場合に Variant Subsystem の外側のレイヤーを削除するかどうか。数値または logical 1 (true) または 0 (false) として指定します。

既定では、このオプションは有効になっています。バリアント リデューサーは Variant Subsystem ブロックの外側のレイヤーを削除し、アクティブな選択肢を表すブロックを最上位レベルに移動します。このアクションでは、削除されたブロックに存在していた信号線がアクティブな選択肢に再接続されます。

データ型: logical

削減されたモデルと関連アーティファクトを配置するフォルダー。文字ベクトルまたは string として指定します。既定では、削減されたモデルは元のモデルのフォルダー内の ./reducedModel という名前のフォルダーに生成されます。

削減されたモデルで信号属性を保持するオプション。数値または logical 1 (true) または 0 (false) として指定します。値が true の場合、バリアント リデューサーで削減されたモデルの適切なブロック端子に Signal Specification ブロックが追加され、元のモデルのコンパイルされた信号属性が保持されます。コンパイルされた信号属性には、信号のデータ型、信号の次元、コンパイルされたサンプル時間が含まれます。

詳細な削減ステップを表示するオプション。数値または logical 1 (true) または 0 (false) として指定します。値が true の場合、モデルの削減時に実行されるステップの詳細がバリアント リデューサーに表示されます。

削減されたモデルと関連アーティファクトの名前に付加する接尾辞。文字ベクトルとして指定します。

概要 HTML ファイルを生成するオプション。数値または logical 1 (true) または 0 (false) として指定します。値が true の場合、削減されたモデルの詳細とマスクやコールバックのために必要になる可能性がある変更についての詳細が記載された HTML ファイルがバリアント リデューサーで生成されます。

メモ

概要を生成するには、Simulink Report Generator™ のライセンスが必要です。

制限

削減時にモデル コンポーネントに対して行われる変更や削減プロセスの制限の詳細については、Considerations for Variant Reductionを参照してください。

すべて展開する

モデル slexVariantReducersldemo_variant_subsystems を開きます。

open_system('slexVariantReducer');
open_system('sldemo_variant_subsystems');

ベース ワークスペースのバリアント制御変数の値に基づいて sldemo_variant_subsystems モデルを削減します。

Simulink.VariantManager.reduceModel('sldemo_variant_subsystems');
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/sldemo_variant_subsystems_r.slx'.

ベース ワークスペースのバリアント制御変数の値に基づいてモデルを削減し、削減されたモデルを指定した出力ディレクトリに配置します。

Simulink.VariantManager.reduceModel('sldemo_variant_subsystems',...
    'OutputFolder','outdir1');
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/outdir1/sldemo_variant_subsystems_r.slx'.

モデルに関連付けられたバリアント コンフィギュレーション データ オブジェクトにある名前付きバリアント コンフィギュレーションを指定してモデルを削減します。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
    'NamedConfigurations',{'config1','config2'});
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

バリアント制御変数とその値を指定してモデルを削減します。

次の構文では、{V==1,W==1}{V==2,W==2} に対応する 2 つのコンフィギュレーションを削減に指定しています。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
    'VariableGroups',{{'V',1,'W',1},{'V',2,'W',2}});
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

バリアント制御変数の構造体の形式でコンフィギュレーションを指定してモデルを削減します。

次の構文では、{V==1,W==1}{V==1,W==2}{V==2,W==1}、および {V==2,W==2} に対応する 4 つのコンフィギュレーションを削減に指定しています。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
    'VariableGroups',{'V',[1 2],'W',[1 2]});
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

変数グループの名前を指定してモデルを削減します。

次の構文では、Group1Group2 の 2 つの名前付き変数グループを指定しています。

削減されたモデルには、名前付き変数グループと同じ名前に接尾辞が付いた名前の名前付きコンフィギュレーションが含まれます。この例では、{V==1, W==1}{V==1, W==2}、および {V==2, W==1} にそれぞれ対応する Group1_1Group1_2、および Group2_1 という名前の 3 つのコンフィギュレーションが含まれます。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
    'VariableGroups',[struct('Name','Group1','VariantControls',{{'V',1,'W',[1 2]}}),...
    struct('Name','Group2','VariantControls',{{'V',2,'W',2}})]);
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

バリアント制御変数を全範囲の変数として指定してモデルを削減します。

次の構文では、W を参照値 1 の全範囲のバリアント制御変数として指定しています。削減プロセスで {V==1, W==1}{V==1, W==2}{V==1, W==3}、および {V==1, W==0} の 4 つのコンフィギュレーションが検討されます。

Simulink.VariantManager.reduceModel('slexVariantReducer',...
    'VariableGroups',{'V',1},...
    'FullRangeVariables',{'W',1});
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

依存 MAT ファイルを除外して、モデルを削減します。

Simulink.VariantManager.reduceModel...
    ('slexVariantReducer','NamedConfigurations',{'config1'},...
     'ExcludeFiles','*.mat');
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

コンパイル モードをコード生成として指定してモデルを削減します。

Simulink.VariantManager.reduceModel...
    ('slexVariantReducer','NamedConfigurations',{'config1'},...
    'CompileMode','codegen');
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.

モデルを削減し、削減後にバリアント リデューサーの概要レポートを生成します。この操作には Simulink® Report Generator™ のライセンスが必要です。

次のコマンドでは、概要を生成してパス outdir2\variantReducerRpt に保存しています。

Simulink.VariantManager.reduceModel...
    ('slexVariantReducer','NamedConfigurations',{'config1'},...
    'GenerateSummary',true,'OutputFolder','outdir2');
Successfully created reduced model
'/tmp/Bdoc23b_2441567_1855447/tp931666fd/simulink_variants-ex20490563/outdir2/slexVariantReducer_r.slx'.

バージョン履歴

R2016a で導入

すべて展開する