Main Content

制約を使用したマスク パラメーターの検証

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

制約の作成と関連付け

マスク エディターには、制約を作成するための属性とオプションを備えた制約マネージャーが組み込まれています。制約を作成したり既存の制約を読み込むには、[制約] タブをクリックします。

制約の作成

制約マネージャーで組み込み属性を使用して、仕様に従って制約を作成できます。制約を作成するには、以下を行います。

  1. マスク エディターで [制約] タブをクリックし、ツールストリップの [新規] をクリックして制約を作成します。

  2. [ルール] セクションで制約の属性を選択します。データ型の選択に基づいて、該当するルールの属性が有効または無効になります。

    ルールの属性の詳細については、ルールの属性を参照してください。

constraints

マスク パラメーターへの制約の関連付け

制約が作成されたら、[マスク エディター] でその制約を [エディット] パラメーターまたは [コンボボックス] パラメーターに関連付けることができます。

  1. [マスク エディター] で、制約を関連付けるパラメーターを選択します。

  2. [制約] ドロップダウン メニューから制約名を選択します。

    Associate constraint

制約の検証

関連付けられた制約にパラメーターが従っているかどうかを確認するには、以下を実行します。

  1. 制約が関連付けられいるパラメーターを選択します。

  2. プロパティ エディターでパラメーターの入力値を指定します。入力値が関連付けられた制約の仕様の範囲外である場合、エラーが表示されます。

    validate constraint

メモ

パラメーターのコールバック コードは、パラメーターの値が関連付けられた制約について検証されてから実行されます。検証に失敗した場合、コールバック コードは実行されません。

クロスパラメーター制約の作成

クロスパラメーター制約は [エディット] または [コンボボックス] タイプの 2 つ以上のマスク パラメーター間に適用されます。Parameter1 が Parameter2 よりも大きくなければならないといったシナリオを指定する場合に、クロスパラメーター制約を使用できます。

  1. マスク エディターで [制約] タブをクリックします。

  2. [クロス パラメーター制約] をクリックします。

  3. [制約の作成] をクリックします。新しいクロスパラメーター制約が既定の名前 (Constraint_1) で作成されます。制約名は変更できます。

  4. 新しい制約に次の値を指定します。

    • 名前 – 制約の名前を指定します。

    • MATLAB® 式 – 有効な MATLAB 式を指定します。編集時およびシミュレーション中にこの式が評価されます。

    • エラー メッセージ – 制約ルールが満たされない場合にエラー メッセージが表示されることを指定します。エラー メッセーを指定しないと、既定のエラー メッセージが表示されます。

ルールの属性

制約を作成するためのルールの属性を次の表に示します。

ルールの属性属性値説明

データ型

numeric, double, single, half, int8, uint8, int16, uint16, int32, uint32, int64, uint64 boolean, enum, string

マスク パラメーター値の許容可能なデータ型を指定します。データ型は複数選択できます。[データ型] プロパティではパラメーター値の範囲についての検証は行われないため、パラメーター値を特定の範囲について検証するには [最小値][最大値] のプロパティを使用します。たとえば、パラメーター値が数値データ型で範囲 0 ~ 127 であることを検証するには、[データ型]numeric を選択し、[最小値] プロパティと [最大値] プロパティにそれぞれ 0 と 127 を入力します。

実数/複素数

real, complex

マスク パラメーター値を実数または複素数のどちらにするか指定します。

次元

scalar, row vector, column vector, 2-D matrix, n-D matrix

マスク パラメーターで許容可能な次元を指定します。

符号

positive, negative, zero

入力値が正、負、またはゼロのいずれでなければならないかを指定します。

有限性

finite, inf, -inf, NaN

マスク パラメーター値の許容可能な有限性を指定します。

小数部

integer, decimal

入力値が整数または小数のいずれでなければならないかを指定します。

範囲

Minimum, Maximum

マスク パラメーター値の許容可能な範囲を指定します。

カスタム ルール

有効な MATLAB 式

有効な MATLAB 式を使用してマスク パラメーターのカスタム制約を指定します。値トークンを使用して、式をパラメーター化できます。検証中に、パラメーターの評価値で値トークンが置き換えられます。

エラー メッセージ

文字ベクトル

カスタム制約用のカスタム エラー メッセージを指定します。エラー メッセージは文字ベクトルまたはメッセージ カタログ ID として指定できます。

リテラル編集パラメーターでの制約のサポート

制約をリテラル編集パラメーターに関連付けることができます。[評価] オプションが選択されていない場合、Simulink はマスク パラメーターのダイアログ ボックスで入力された入力エントリをリテラルとしてそのまま読み取ります。たとえば、リテラル編集パラメーターに格納されている IP アドレスはカスタム ルールに照らして検証されます。

関連するトピック