このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Simulink.VariantManager.reduceModel
指定されたバリアント コンフィギュレーションの削減されたモデルを生成する
説明
Simulink.VariantManager.reduceModel(
は、入力モデル model
)model
から削減されたモデルを生成します。
既定では、入力モデルのベース ワークスペースまたはデータ ディクショナリにおけるバリアント制御変数の現在の値が削減に使用されます。削減プロセスでは、それらの値に対応するバリアント コンフィギュレーションが保持され、非アクティブなモデル コンポーネントが削除されます。削減されたアーティファクトは、入力モデルのフォルダー内の reducedModel
という名前のフォルダーに生成されます。既定では、削減されたモデルと削減された参照モデルの名前は、元のモデル名に _r
が追加された名前になります。
Simulink.VariantManager.reduceModel(
は、前述の構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、コード生成モードでモデルをコンパイルするには、model
,Name,Value
)CompileMode
を 'codegen'
に設定します。
メモ
この関数を使用するには、Variant Manager for Simulink® サポート パッケージをインストールする必要があります。
例
モデル slexVariantReducer
と sldemo_variant_subsystems
を開きます。
open_system('slexVariantReducer'); open_system('sldemo_variant_subsystems');
ベース ワークスペースのバリアント制御変数の値に基づいて sldemo_variant_subsystems
モデルを削減します。
Simulink.VariantManager.reduceModel('sldemo_variant_subsystems');
Successfully created reduced model '/tmp/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/reducedModel/sldemo_variant_subsystems_r.slx'.
ベース ワークスペースのバリアント制御変数の値に基づいてモデルを削減し、削減されたモデルを指定した出力ディレクトリに配置します。
Simulink.VariantManager.reduceModel('sldemo_variant_subsystems',... 'OutputFolder','outdir1');
Successfully created reduced model '/tmp/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/outdir1/sldemo_variant_subsystems_r.slx'.
モデルに関連付けられたバリアント コンフィギュレーション データ オブジェクトにある名前付きバリアント コンフィギュレーションを指定してモデルを削減します。
Simulink.VariantManager.reduceModel('slexVariantReducer',... 'NamedConfigurations',{'config1','config2'});
Successfully created reduced model '/tmp/Bdoc25a_2843526_1740328/tp13763a4b/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/Bdoc25a_2843526_1740328/tp13763a4b/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/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.
変数グループの名前を指定してモデルを削減します。
次の構文では、Group1
と Group2
の 2 つの名前付き変数グループを指定しています。
削減されたモデルには、名前付き変数グループと同じ名前に接尾辞が付いた名前の名前付きコンフィギュレーションが含まれます。この例では、{V==1, W==1}
、{V==1, W==2}
、および {V==2, W==1}
にそれぞれ対応する Group1_1
、Group1_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/Bdoc25a_2843526_1740328/tp13763a4b/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/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.
依存 MAT ファイルを除外して、モデルを削減します。
Simulink.VariantManager.reduceModel... ('slexVariantReducer','NamedConfigurations',{'config1'},... 'ExcludeFiles','*.mat');
Successfully created reduced model '/tmp/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/reducedModel/slexVariantReducer_r.slx'.
コンパイル モードをコード生成として指定してモデルを削減します。
Simulink.VariantManager.reduceModel... ('slexVariantReducer','NamedConfigurations',{'config1'},... 'CompileMode','codegen');
Successfully created reduced model '/tmp/Bdoc25a_2843526_1740328/tp13763a4b/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/Bdoc25a_2843526_1740328/tp13763a4b/simulink_variants-ex20490563/outdir2/slexVariantReducer_r.slx'.
入力引数
削減するモデルの名前。string または文字ベクトルとして指定します。
例: 'slexVariantManagement'
名前と値の引数
例: NamedConfigurations='C1'
引数のオプションのペアを Name1,Value1,...,NameN,ValueN
として指定します。Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
削減されたモデルで保持するバリアント コンフィギュレーションの名前。string、文字ベクトル、string の cell 配列、または文字ベクトルの cell 配列として指定します。これらの名前付きバリアント コンフィギュレーションは、モデルに関連付けられたバリアント コンフィギュレーション データ オブジェクト (Simulink.VariantConfigurationData
型) に存在していなければなりません。
データ型: char
| string
| cell
削減に使用する必要があるバリアント制御変数とその値。変数の名前と値を含む cell 配列として指定します。
メモ
VariableGroups
と NamedConfigurations
の両方を指定することはサポートされていません。
名前付き変数グループはモデルに対して複数作成できます。変数グループの名前を指定するには、Name
と VariantControls
のフィールドをもつ 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 = 1
と W
のすべての有効な値が検討されます。全範囲の解析を実行するために、バリアント リデューサーで値 {'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およびLimitationsを参照してください。
バージョン履歴
R2016a で導入ExcludeFiles
引数を使用して、削減時に MATLAB ルート フォルダーの外にある Simulink モデル (*.slx
、*.mdl
) を除外できるようになりました。
関数 Simulink.VariantManager.reduceModel
を使用して VariantSubsystem ブロックを含むモデルを削減し、かつ削減後に Variant Subsystem ブロックの 1 つの選択肢のみがアクティブなままである場合、関数は Variant Subsystem ブロックの外側のレイヤーを削除し、アクティブな選択肢を表すブロックを削減されたモデルの最上位レベルに移動します。RemoveVariantSubsystemLayer
引数により、この動作を有効にします。その値は既定で true
に設定されています。
ExcludeFiles
引数を使用して、削減時に MATLAB ルート フォルダーの外にある Simulink データ ディクショナリ ファイル (*.sldd
) や MAT ファイル (*.mat
) を除外できます。
関数 Simulink.VariantManager.reduceModel
には Simulink Design Verifier™ のライセンスは不要になりました。この機能は Variant Manager for Simulink サポート パッケージの一部として利用できます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)