Main Content

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

reduceModel

クラス: Simulink.VariantManager
パッケージ: Simulink

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

構文

Simulink.VariantManager.reduceModel(Model)
Simulink.VariantManager.reduceModel(Model, Name, Value)

説明

Simulink.VariantManager.reduceModel(Model) は、指定されたコンフィギュレーションの削減されたモデルを作成します。参照モデルとライブラリ ブロックも削減されます。既定の設定では、削減されたモデルの名前と、削減された子参照モデル名は、元のモデル名に接尾辞 _r が付いた名前になります。

Simulink.VariantManager.reduceModel(Model, Name, Value) では、削減パラメーターを引数 Name と Value の形式で指定します。

入力引数

すべて展開する

必須フィールド。削減するモデル。文字ベクトルとして指定します。

名前と値の引数

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

バリアント コンフィギュレーションの名前を指定します。既定では、バリアント制御変数の現在の値が削減に使用されます。

削減に使用されるバリアント制御変数値を指定します。既定では、バリアント制御変数の現在の値が使用されます。

指定した値はバリアント制御変数名と対応する値をもつ cell 配列でなければなりません。

メモ

'VariableGroups' と 'NamedConfigurations' は互いに排他的です。

以下の例を考えてみます。

Simulink.VariantManager.reduceModel('iv_model', ...
                                          'VariableGroups',...
                                          {{'V',1,'W',1},{'V',2,'W',2}})

削減に使用される全範囲のバリアント制御変数値を指定します。これにより、指定されたバリアント制御変数のすべての有効な値について、モデルを削減することができます。バリアント制御変数の参照値をモデルのコンパイルが成功するように指定します。

以下の例を考えてみます。

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

バリアント制御変数 'W' を全範囲のバリアント制御変数として指定できます。これにより、変数 'W' の有効なすべての値に対してモデルを削減できるようになります。この例では、全範囲のバリアント制御変数 W は参照値 1 を使用します。

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

削減されたモデルと関連のアーティファクトを保存するフォルダーを指定します。既定の設定では、削減されたモデルは元のモデル フォルダーの ./reducedModel サブフォルダーに生成されます。

値が true の場合、バリアント リデューサーは、削減されたモデルの適切なブロック端子に Signal Specification ブロックを追加して、元のモデルと削減されたモデル間でコンパイルされた信号属性を保持します。コンパイルされた信号属性には、信号のデータ型、信号の次元、コンパイルされたサンプル時間などがあります。

値が true の場合、バリアント リデューサーには、モデルの削減中に実行されるステップの詳細が表示されます。

削減されたモデルと関連のアーティファクトに追加する接尾辞を指定します。

値が true の場合、削減されたモデルとマスクおよびコールバックに必要な可能性のある任意の変更について、バリアント リデューサーは html ファイルを生成します。

メモ

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

% Reduce model based on its variant control variable values in the base workspace.
Simulink.VariantManager.reduceModel('sldemo_variant_subsystems');

% Reduce the model associated with a variant configuration data object and configurations to be retained in the reduced model.
Simulink.VariantManager.reduceModel('slexVariantManagement', ...
                                          'NamedConfigurations', {'LinInterStd',
                                          'NonLinExterHighFid'})

% Reduce the model by specifying variant control variable values. Here, two groups are specified corresponding to 
% {V==1, W==1}, and {V==2, W==2} respectively.
Simulink.VariantManager.reduceModel('iv_model', ...
                                          'VariableGroups',...
                                          {{'V',1,'W',1},{'V',2,'W',2}});

% Reduce the model by specifying variant control variable values where 'W' is a full-range variant control variable and 'V' is 1. Here, Variant Reducer 
% automatically maps the specification to correspond to the following four explicit groups: {V==1, W==1}, {V==1, W==2}, {V==1, W==3} and {V==1, W==0} respectively.
Simulink.VariantManager.reduceModel('slexVariantReducer',...
                                          'VariableGroups',...
                                          {'V',1},...
                                          'FullRangeVariables',{'W',1}); 

% Reduce the model by specifying the compilation mode as code generation.
Simulink.VariantManager.reduceModel...
('slexVariantReducer','NamedConfigurations', {'config1'},'CompileMode','codegen','OutputFolder','L:\Models');

バージョン履歴

R2016a で導入