ダイアグラム
ダイアグラムは、ブロック、リンク、注釈、およびモデル内のその他のコンポーネントのアセンブリです。
ダイアグラムの作成
ダイアグラムの作成プロセスには、modeling windowでブロックを追加、リンク、および組み立てる作業があります。ダイアグラム内のブロックには、ライブラリパレットからの事前定義済みブロックまたはユーザー定義ブロックを含めることができます。
ダイアグラムへのライブラリブロックの追加
Palette Browserからダイアグラムにライブラリブロックを追加します。
ダイアグラムへのユーザー定義ブロックの追加
インストールされているライブラリに関連付けられていないユーザー定義のブロックまたはカスタマイズブロックを、ダイアグラムに追加またはインポートします。これらのブロックは.scbファイルとして保存されます。
ダイアグラムへのブロックのコピー
ダイアグラム内からブロックをコピーして、それを現在のモデルまたは開かれている任意のモデルに貼り付けることができます。
- ダイアグラムで、コピーするブロックを選択し、右クリックして、コンテキストメニューからコピーを選択します。
- 現在のモデルまたは開かれている任意のモデルのダイアグラムを選択し、右クリックして、コンテキストメニューから貼り付けを選択します。
ダイアグラム内のブロックの複製
複製オプションにより、複数のブロックを容易にダイアグラムに追加できます。
ダイアグラム内のブロックのリンク
ブロックのポート同士を結ぶリンクでブロックを接続します。
ダイアグラムパラメーター
ダイアグラムパラメーターは、ブロックパラメーターの定義に使用できる変数です。
ダイアグラムパラメーターの概要
ほとんどのブロックには、ユーザーが値を定義できるパラメーターが含まれています。ブロックパラメーターの値は、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モデルファイルを変更します。