ダイアグラム

ダイアグラムは、ブロック、リンク、注釈、およびモデル内のその他のコンポーネントのアセンブリです。

ひとつのモデルは多くのダイアグラムを含むことが可能です。そのうち1つのダイアグラムが階層構造のメインダイアグラムとして定義されます。Watertankモデルのメインダイアグラムを以下に示します:


メインダイアグラムにスーパーブロックが含まれている場合には、メインダイアグラムの内部に追加のダイアグラムが存在することことができます。Watertankモデルのメインダイアグラムには、ControllerとTankという2つのスーパーブロックが記述され、そのそれぞれに1つのダイアグラムがあります。スーパーブロックをダブルクリックすると、その内部のダイアグラムが表示されます。次の図は、Controllerスーパーブロックのダイアグラムを示しています。
Project Browserのツリーのデフォルト設定では、モデルのメインダイアグラムのブランチとスーパーブロックに関連する各ダイアグラムのブランチが表示されます。Watertankモデルでは、Project BrowserにメインダイアグラムWatertankのブランチとスーパーブロックControllerおよびTankが表示されます。


基本ブロックを含め、モデルに関連付けられたブロックをすべて表示するには、プロジェクトブラウザのフィルターを変更してすべてのブロックを含めます。次の図は、Controllerスーパーブロックに属するすべてのブロックを表示しています。


ダイアグラムの作成

ダイアグラムの作成プロセスには、modeling windowでブロックを追加、リンク、および組み立てる作業があります。ダイアグラム内のブロックには、ライブラリパレットからの事前定義済みブロックまたはユーザー定義ブロックを含めることができます。

ダイアグラムへのライブラリブロックの追加

Palette Browserからダイアグラムにライブラリブロックを追加します。

  1. Palette Browserを開くには、F6キーを押すか、ビュー#menucascade-separatorPalette Browserを選択します。


    Palette Browserに、インストール済みのライブラリのパレットが表示されます。
  2. ライブラリを選択してから、パレットを選択します。
    Palette Browserに、選択したパレットで使用可能なブロックが表示されます。
  3. ダイアグラムに追加するブロックを選択し、そのブロックをmodeling windowにドラッグ&ドロップします。
次の例は、ダイアグラムに追加した、Activateライブラリの3つのブロックを示します。
  • Activate#menucascade-separatorSignalGenerators#menucascade-separatorSineWaveGenerator
  • Activate#menucascade-separatorSignalViewers#menucascade-separatorScope
  • Activate#menucascade-separatorActivationOperations#menucascade-separatorEventclock

ダイアグラムへのユーザー定義ブロックの追加

インストールされているライブラリに関連付けられていないユーザー定義のブロックまたはカスタマイズブロックを、ダイアグラムに追加またはインポートします。これらのブロックは.scbファイルとして保存されます。

  1. File#menucascade-separatorライブラリ#menucascade-separatorライブラリからブロックを挿入を選択します。
  2. 表示されるFile Browserから、ダイアグラムに含める.scbファイルを選択します。
    指定したファイルがダイアグラム内のブロックとして表示されます。

ダイアグラムへのブロックのコピー

ダイアグラム内からブロックをコピーして、それを現在のモデルまたは開かれている任意のモデルに貼り付けることができます。

  1. ダイアグラムで、コピーするブロックを選択し、右クリックして、コンテキストメニューからコピーを選択します。
  2. 現在のモデルまたは開かれている任意のモデルのダイアグラムを選択し、右クリックして、コンテキストメニューから貼り付けを選択します。

ダイアグラム内のブロックの複製

複製オプションにより、複数のブロックを容易にダイアグラムに追加できます。

  1. ダイアグラムから複製するブロックを選択し、右クリックします。
  2. コンテキストメニューから、Duplicateを選択します。
    ブロックの複製がダイアグラムに表示されます。

ダイアグラム内のブロックのリンク

ブロックのポート同士を結ぶリンクでブロックを接続します。

  1. ダイアグラムで、接続する2つのブロックを特定します。
  2. 最初のブロックの出力ポートをクリックしてから、2つ目のブロックの入力ポートをクリックします。

    ブロック間にリンクが表示され、ブロックが接続されます。リンクには、リンクセグメントをまっすぐに保ち、ブロックの接続時にポートの選択を容易にするスナップ機能が含まれています。

    NoteColonSymbol 特定のブロックでは、ブロックがリンクを受け入れる前に、External Activationポートをオンにする必要があります。
次の図は、リンクで接続されているSineWaveGeneratorブロックとScopeブロックを示しています。

ダイアグラムパラメーター

ダイアグラムパラメーターは、ブロックパラメーターの定義に使用できる変数です。

ダイアグラムパラメーターの概要

ほとんどのブロックには、ユーザーが値を定義できるパラメーターが含まれています。ブロックパラメーターの値は、OMLの式であってもかまいません。式は単純な数値(12など)にすることも、数値と文字列を含む式(sin(cos(3)-1)など)や、OML変数を含む式(exp(a^2)など)にすることもできます。この最後の例では変数aがダイアグラムパラメーターです。

ダイアグラムパラメーターは、ダイアグラムに関連付けられたOML変数です。ダイアグラム内のブロックのブロックパラメーター値の定義に使用できます。これらの変数とその値がOML作業領域を構成します。

ダイアグラム(ここでは、”D”とします)のパラメーターは、ダイアグラムDのコンテキスト、Dが含まれるダイアグラムのコンテキスト、およびモデルの初期化スクリプトによって定義されます。例えば、D0, D1, … DnによってDの親ダイアグラムを表し、Dnが最も近い親、D0が最も遠い親であるとします。この場合、ソフトウェアのスコーピング規則は次のようになります。Dのコンテキストで、ある変数が定義されている場合、そのダイアグラムパラメーターの値は、対応する変数のその定義によって与えられます。その変数に対するが定義がそこにはない場合、最も近い親ダイアグラムの定義によってそのパラメーターの値が設定されます。

こうした定義がまったく存在しない場合は、モデルの初期化スクリプト内の定義によってそのパラメーターの値が設定されます。さらに具体的に言うと、ダイアグラムDの作業領域はダイアグラムDパラメーターの集合であり、以下のように取得されます:

  • モデルの初期化スクリプトが評価され、作業領域が作成されます。そこでの要素がモデルパラメーターと呼ばれます。
  • この作業領域でD0のコンテキストが評価され、ダイアグラムD0の作業領域が作成されます。
  • D1のコンテキストがダイアグラムD0の作業領域で評価され、ダイアグラムD1の作業領域が作成されます。以下同様に続きます。
  • 最終的に、ダイアグラムDの作業領域は、その親であるダイアグラムDnの作業領域のコンテキストを評価することで取得されます。
    NoteColonSymbol ダイアグラムとブロックパラメーターの評価は実行時に行われます。このため、初期化スクリプトまたはダイアグラムコンテキストに、データを読み込むか外部のスクリプトを実行して新しい変数を定義する手順が含まれる場合、シミュレーションの実行から別の実行の間に外部ファイルが変更された場合、これらの変数の値が変わる可能性があります。ブロックパラメーター値に対応する式が、ダイアグラムパラメーター以外の変数を参照すると、実行時にエラーが発生します。
ダイアグラムパラメーターとマスク

ダイアグラムパラメーターはマスク操作において重要な役割を果たします。マスクされたスーパーブロックには、そのスーパーブロック以外で定義された変数を参照するようにパラメーターが定義されているブロックは含まれません。すべての必須の変数は、スーパーブロック内部で定義されるか、マスクされたスーパーブロックのパラメーターである必要があります。自動マスク操作では、スーパーブロック内部で使用されているが、スーパーブロック以外で定義されたすべての変数を検索し、その変数をスーパーブロックパラメーターとして用いることで、この条件を適用します。OMLでモデルを(最適化などの目的で)バッチモードでシミュレーションする場合、モデルパラメーターを定義または再定義するために、OML作業領域を設定することができます(作業領域内の変数は初期化スクリプトの評価によって作成されます)。つまり、設定された作業領域は、初期化スクリプトの評価によって(競合する場合は既存の変数を上書きする)作成された作業領域に含まれます。

この作成された作業領域がモデルパラメーターを構成し、それがモデルの残りの部分で使用されます。このメカニズムによって、ダイアグラムパラメーターの変更が可能になり、.scmモデルファイルを変更します。