Main Content

複数のブロック マスクでのパラメーター制約の共有

この例では、パラメーター制約を作成し、それを同じモデルまたは別のモデルのさまざまなブロックのマスクで共有する方法を示します。XML ファイルにパラメーター制約を保存し、その制約を複数のブロック マスクで共有できます。XML ファイルで共有の制約を定義すると、データを編集し、ファイルを前のバージョンと比較できます。

マスクには、ユーザー入力値を受け入れるパラメーターを含めることができます。マスク ダイアログ ボックスを使用して、マスク パラメーターの入力値を指定できます。マスク パラメーターの制約ではマスク パラメーターに対する検証を作成することができ、独自の検証コードを記述する必要はありません。制約により、マスク パラメーターの入力値が必ず制約に関連付けられたルールを満たすようになります。たとえば、Subsystem ブロックのマスクについて考えます。入力値が 1 ~ 10 の範囲内でなければならないという制約を設定できます。指定された範囲外の入力を提供すると、エラーが表示されます。マスク パラメーター制約の詳細については、制約を使用したマスク パラメーターの検証を参照してください。

メモ: MAT ファイルで作成した共有の制約を使用するには、構文 Simulink.Mask.Constraints.convertMatToXML(matFileName, xmlFileName) を使用して XML ファイルに変換する必要があります。matFileName は変換する MAT ファイルの名前、xmlFileName は作成する XML ファイルの名前です。詳細については、Simulink.Mask.Constraints.convertMatToXMLを参照してください。

モデルの確認

このモデルには、SharedConstraintBlock1 および SharedConstraintBlock2 という名前の 2 つのサブシステム ブロックがあります。各サブシステム ブロックのそれぞれのブロック パラメーターの値は実数のスカラーでなければなりません。それらのブロックに対して個別の制約を作成する代わりに、XML ファイルで単一の制約を作成して 2 つのサブシステム ブロックで共有できます。

open_system("slexMaskConstraints.slx");

共有の制約の作成

モデル例の共有されている制約のブロック SharedConstraintBlock1SharedConstraintBlock2 を参照してください。

共有の制約を作成します。

1. SharedConstraintBlock1 ブロックにマスクを作成します。

2. [マスク エディター] に移動し、[制約] タブで [新規] をクリックして、XML ファイルの名前を「sharedConstraint」と入力します。

3. XML ファイルでパラメーター制約を作成します。[パラメーター制約] をクリックし、制約の属性を指定します。共有の制約の管理には [制約ブラウザー] が役立ちます。

4. [パラメーターとダイアログ] タブでパラメーターをクリックします。

5. [プロパティ エディター][属性][制約] を選択し、XML ファイルの制約を選択します。

複数のブロックまたはモデルへの制約の関連付け

制約 sharedConstraint:realScalarPositiveConstraintSharedConstraintBlock2 ブロックで再利用します。

1. SharedConstraintBlock2 ブロックにマスクを作成します。

2. [マスク エディター][制約][読み込み] を選択し、制約を読み込みます。XML ファイルを選択し、マスクを保存します。

3. [パラメーターとダイアログ] タブに移動し、パラメーターをクリックします。

4. [プロパティ エディター][属性][制約] を選択し、XML ファイルを選択します。

制約の検証

マスク ダイアログを使用して、パラメーターに無効な値を提供します。適用するとエラー ダイアログが表示されることを確認します。

参考