マスク パラメーターのカスタム制約
マスクには、ユーザー入力値を受け入れるパラメーターを含めることができます。マスク ダイアログ ボックスを使用して、マスク パラメーターの入力値を指定できます。マスク パラメーターの制約ではマスク パラメーターに対する検証を作成することができ、独自の検証コードを記述する必要はありません。制約により、マスク パラメーターの入力値が必ず制約に関連付けられたルールを満たすようになります。たとえば、Subsystem ブロックのマスクについて考えます。入力値が偶数でなければならないという制約を設定できます。偶数でない入力を提供すると、エラーが表示されます。指定するルールが属性の 1 つとして存在していない場合は、スカラーを返す MATLAB® 式を指定できます。
モデルの確認
モデル例には、ブロック パラメーター evenNoParam1
と evenNoParam2
が偶数でなければならないサブシステム ブロックが含まれています。指定するルールが属性の 1 つとして存在していないため、MATLAB 式を使用して制約をカスタマイズします。
open_system("slexMaskConstraints.slx");
カスタム制約の作成
モデル例のカスタム制約のセクションを参照してください。
カスタム制約を作成するには、以下を行います。
1. サブシステム ブロックにマスクを作成します。
2. マスク エディターで、[制約]、[パラメーター] を選択します。
i. 制約の名前を「evenNumberConstraint
」と入力します。
ii. [MATLAB 式] を「mod(value,2)==0
」と入力します。
メモ: 値トークンを使用して式をパラメーター化できます。これは、制約を複数のパラメーターに割り当てるのに役立ちます。検証中に、パラメーターの評価値で値トークンが置き換えられます。たとえば、制約の MATLAB 式が value
> 100 で、エディット タイプのマスク パラメーター Parameter1
と関連付けられている場合、MATLAB 式は Parameter1
> 100 として評価されます。これにより、制約を複数のパラメーターに割り当てることができます。
iii. [エラー メッセージ] に「The value of the parameter must be even number.
」と入力します。マスクを保存します。
マスク パラメーターへのカスタム制約の関連付け
制約をマスク パラメーターに関連付ける必要があります。同じ制約を複数のマスク パラメーターに関連付けることができます。
1. マスク エディターで [パラメーターとダイアログ] タブをクリックします。
2. マスク パラメーターをクリックします。
3. [プロパティ エディター] で、[属性] セクションに移動し、[制約] から制約を選択します。
メモ: 同じ制約を複数のマスク パラメーターに関連付けることができます。制約の管理には [拘束ブラウザー] が役立ちます。複数のパラメーターを含む制約を作成する場合は、カスタム制約の代わりにクロスパラメーター制約を使用します。
制約の検証
関連付けられた制約にパラメーターが従っているかどうかを確認するには、以下を実行します。
1. マスク エディターに移動し、パラメーターを選択します。
2. [プロパティ エディター] で、関連付けられた制約で指定されている範囲外の入力値を指定します。エラーが表示されます。