ノミナル値によるシステムのスケーリング
ノミナル値は、モデル内で予想される変数の大きさを指定する方法を提供します。これは、変圧器の定格の指定や電圧計の範囲の設定に似ています。ノミナル値に基づくシステムのスケーリングを使用すると、シミュレーションのロバスト性が向上します。この機能を使用すると、モデル内の個々の変数のスケーリングを微調整することができます。これは、初期条件の収束と最小ステップ サイズの維持に特に役立ちます。
ノミナル値によるシステムのスケーリングの有効化または無効化
ノミナル値に基づくシステムのスケーリングを使用するとシミュレーションのロバスト性が向上するため、Simscape™ モデルではこの方法がベスト プラクティスです。そのため、モデルの新規作成時には、ノミナル値によるスケーリングが既定で有効になっています。
ノミナル値によるシステムのスケーリングは、[ノミナル値を使用して正規化] コンフィギュレーション パラメーターで制御します。
モデル ウィンドウ上部の Simulink® ツールストリップで、[モデル化] タブを開いて [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。
[コンフィギュレーション パラメーター] ダイアログ ボックスの左側のペインで、[Simscape] を選択します。右側のペインに [ノミナル値を使用して正規化] チェック ボックスが表示されます。
チェック ボックスをオンにすると、モデルは、指定したノミナル値に基づいてソルバーにスケーリング情報を提供します。モデルの値と単位のペアを表示、追加、編集するには、[ノミナル値を使用して正規化] チェック ボックスの横にある [ノミナル値を指定] ボタンをクリックします。
チェック ボックスをオフにすると、ノミナル値によるスケーリングが無効になります。
想定されるノミナル値のソースとその評価順序
各変数のスケーリングは、そのノミナル値と物理単位によって決まります。ノミナル値はさまざまなソースから得られます。
BLOCK — ノミナル値とノミナル単位を、ブロックの基となっている Simscape コンポーネント ファイルで変数宣言属性として指定できます。これらの属性は、ブロック パラメーター
およびx
_nominal_value
(x
_nominal_unitx
は変数名) に変換されます。また、モデルの個々のブロックで対応するブロック パラメーター
をx
_nominal_specify'on'
に設定し、
とx
_nominal_value
に別の値を指定することによって、これらの値をオーバーライドすることもできます。これらのパラメーターの値は、ブロックのダイアログ ボックス、プロパティ インスペクター、または関数x
_nominal_unitset_param
とget_param
を使用して表示および変更できます。詳細については、ブロック変数のノミナル値の変更を参照してください。MODEL — ブロックにノミナル値が指定されていない場合、変数は、モデル テーブルに指定されている相応する物理単位のノミナル値を使用します。すべてのモデルには、ノミナル値とノミナル単位の既定のテーブルがあります (出荷時設定)。モデルの値と単位のペアを表示、追加、編集するには、[ノミナル値を使用して正規化] チェック ボックスの横にある [ノミナル値を指定] ボタンをクリックします。詳細については、モデルのノミナル値とノミナル単位のペアの指定を参照してください。
DERIVED — モデルのノミナル値のテーブルに変数の物理単位に相応する単位の行が含まれていない場合、この変数のノミナル値は基本の寸法から導かれます。たとえば、変数の初期値が
lbf
単位であり、テーブルに力のエントリはない一方で{10,'lbm'}
、{12,'ft'}
、{2,'min'}
が含まれている場合、その変数のノミナル値は{10*12/2^2,'lbm*ft/min^2'}
になります。FIXED — イベント変数、最上位モデルの入力、および Simscape Multibody™ 変数は、ノミナル値に従ってスケーリングできません。
詳細構成の変数ビューアーには、各変数のノミナル値とノミナル単位がソースと共に表示されます。詳細については、変数ビューアーを参照してください。
モデルのノミナル値とノミナル単位のペアの指定
すべてのモデルには、ノミナル値とノミナル単位の既定のテーブルがあります (出荷時設定)。モデルの値と単位のペアを表示、追加、編集するには、以下を行います。
モデル ウィンドウ上部の Simulink ツールストリップで、[モデル化] タブを開いて [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。
[コンフィギュレーション パラメーター] ダイアログ ボックスの左側のペインで、[Simscape] を選択します。
[ノミナル値を使用して正規化] チェック ボックスがオンになっていることを確認します。
[ノミナル値を使用して正規化] チェック ボックスの横にある [ノミナル値を指定] ボタンをクリックします。
ノミナル値のモデル テーブルが新しいウィンドウで開きます。これには、現在モデルに定義されている値と単位のペアがすべて含まれています。
値と単位のペアを編集するには、対応するセルを選択し、新しい値または単位を入力します。
新しい値と単位のペアを追加するには、テーブルを含むウィンドウの最上部のツール バーで をクリックします。このアクションにより、新しい空の行がテーブルの一番下に追加されます。この行のセルを選択し、新しい値と単位のペアのノミナル値とノミナル単位を入力します。
値と単位のペアを削除するには、対応する行を選択して をクリックします。
テーブルの編集が終了したら、[OK] をクリックします。モデルを保存すると、テーブル データが保存されます。
ブロック変数のノミナル値の変更
ブロックの各変数には、関連する 3 つのブロック パラメーターがあります (x
は変数名)。
— この特定ブロック内の変数x
_nominal_specifyx
に対する、システムの既定のノミナル値をオーバーライドできます。既定のパラメーター値は'off'
です。この場合、変数のノミナル値は想定されるノミナル値のソースとその評価順序に記載されている評価順序に従って決定されます。スケーリングに
とx
_nominal_value
のパラメーター値を使用するには、このパラメーターをx
_nominal_unit'on'
に設定します。
—x
_nominal_value
パラメーターがx
_nominal_specify'on'
に設定されている場合、この値が、ノミナル単位のパラメーターとともに、この特定ブロック内の変数x
のスケーリングを決定します。パラメーター値は数値で、文字ベクトルとして指定しなければなりません。既定のパラメーター値は'1'
です。
—x
_nominal_unit
パラメーターがx
_nominal_specify'on'
に設定されている場合、この単位が、ノミナル値のパラメーターとともに、この特定ブロック内の変数x
のスケーリングを決定します。パラメーター値は有効な物理単位名で、文字ベクトルとして指定しなければなりません。この単位は、変数の初期値に指定された単位に相応するものでなければなりません。既定の単位は初期値の単位と同じです。
メモ
ノミナル値とノミナル単位は、ブロックの基となっている Simscape コンポーネント ファイルで変数宣言属性として指定できます。詳細については、Nominal Value and Unit for a Variableを参照してください。この場合、その変数のノミナル値とノミナル単位のパラメーターは、既定値を変数宣言属性から取得します。
これらのパラメーターの値は、関数 set_param
と get_param
を使用して表示および変更できます。
たとえば、1 つのブロックの i
(電流) のノミナル値とノミナル単位を変更するには、モデル内でこのブロックを選択して以下を入力します。
set_param(gcb,'i_nominal_specify','on') set_param(gcb,'i_nominal_value','10') set_param(gcb,'i_nominal_unit','mA')
この一連のコマンドは、ブロック変数の既定のノミナル値をオーバーライドして 10 mA に設定します。
ブロックのダイアログ ボックスを使用して同じ操作を実行するには次のようにします。
モデル内のブロックをダブルクリックします。
ブロックのダイアログ ボックスで、[ノミナル値] セクションを展開します。
[電流] の横にあるチェック ボックスをオンにします。この操作は、
i_nominal_specify
パラメーターを'on'
に設定することと等価です。[電流] チェック ボックスがオンになると、その [値] フィールドが編集可能になります。「
10
」と入力し、単位のドロップダウン リストからmA
を選択します。