Twin Activateのモデルパラメータ
モデルパラメータの種類と確認について学びます。
Twin Activateモデルには数百から数千のパラメータが含まれることがあります。パラメータは、モデル内のブロックの動作を定義するために使用されます。シミュレーションを実行する前に、これらの値を提供する必要があります。Twin ActivateのモデルパラメータはOML変数で、OML 言語を使って定義、処理されます。
モデルパラメータの値は直接提供されるか、計算することができます。これらのパラメータの定義と計算は、モデルの初期化 スクリプト、またはスーパーブロックコンテキストスクリプトの 内部で行われます。ブロックパラメータを評価する式は、パラメータ値が定義されているブロックGUIやスーパーブロックマスクの内部で直接使用することもできます。
モデルシミュレーションの開始時に、モデルパラメータが評価され、その値がコンパイルとシミュレーションのためのモデルのインスタンス化に使用されます。モデル評価と呼ばれるこの段階では、 コンパイル済みモデルと呼ばれる新しい構造が作成されます。コンパイルされたモデルには、パラメータの数値のみが含まれています。パラメータ名と式はシミュレーションに必要ないため、取り除かれています。モデルパラメータの計算は、信号とは異なり、すべて時間的に一定であり、モデル評価段階で実行されます。
パラメータータイプ
パラメータという単語は、Twin Activateで異なるエンティティを指定するために使用されます。これらの異なるタイプのパラメータを区別することが重要です:
- ブロックパラメータとマスクパラメータはは、GUI で定義されるマスクパラメータとブロックパラメータです。カーソルを対応する パラメータの説明 フィールドの上に置くと表示されます。対応する名前のOML変数は、GUIで提供される式を評価することによって“暗黙的に“定義されます。
- モデルパラメータには、上で紹介したブロックパラメータやマスクパラメータに加えて、モデルの初期化スクリプトやスーパーブロック・コンテキストスクリプトの内部で定義されたOML変数が含まれます。モデル評価段階では、OMLスクリプトを実行し、OML式を評価することによって、すべてのモデルパラメータが評価されます。
- ブロックシミュレーション関数のパラメータは、ブロックに関連するOML関数によって定義され評価される内部パラメータです。これらの値はブロックパラメータ値の関数として計算され、エンドユーザーには見えません。これらのパラメータは文書化されておらず、Twin Activateのバージョンごとに変更される可能性があります。CCustomBlockブロックやOMLCustomBlockブロックなどを使って新しいブロックを作成する場合を除き、これらのブロックを直接操作すべきではありません。
Constantブロックを持つモデル
単一のConstantブロックを含む以下のモデルを想定します:

変数hとAは 、モデルの初期化スクリプトで定義されています。Constantブロックには3つのパラメータがあります:定数はC、出力データ型はtyp、外部アクティベーションはexternalActivationです。ブロックパラメータCは 、 A+1 式で定義されます( Aは 初期化スクリプトで定義されています)。その他のパラメータ:typと externalActivationは 、文字列値とチェックボックスで直接定義します。ここで、モデルのパラメータはh、A、C、typ、externalActivation。ブロックのパラメータは C、typ、externalActivation。ブロックのシミュレーション関数(データ型に依存)はCの値と同じ値を持つ1つのパラメータを持っています。例えば、伝達関数を実現するブロック(ContTransFunc)のパラメータは伝達関数の分子と分母ですが、対応するシミュレーション関数のパラメータは、この伝達関数の状態空間実現に対応する A、B、C、D 行列です。
目に見えるものが必ずしも手に入るとは限りません
モデルパラメータの確認は、評価モデルがグラフィカルエディターに表示されるオリジナルモデルと大きく異なる場合があるという事実によって、より複雑になります。モデル評価では、モデルのパラメータを処理するだけでなく、パラメータをフラットにし、モデル内部で使用されているライブラリブロックをインライン化します。Twin Activateライブラリには、評価段階でインライン化されるスーパーブロックもあります。一方、モデル内のブロックの中には、この段階で削除される仮想ブロックもあります。そのため、評価されたモデルには、元のモデルに比べて(基本)ブロックが多く含まれることもあれば、少なく含まれることもあります。モデルパラメータのセットは、一般に、モデルのグラフィカルなチェックで見えるセットよりもはるかに大きいです。その結果、シミュレーションモデルには、エンドユーザーにとって不明瞭で不可解な多くのシミュレーション機能パラメータが含まれていることがよくあります。
幸いなことに、ブロックシミュレーション関数とそのパラメータを操作する必要はありません。また、モデル階層のさまざまなレベルでモデルパラメータを定義する際に使用されるセミグローバルスコープのメカニズムにより、ライブラリブロックのインライン化によるモデルパラメータの追加から保護されます。したがって、多くの場合、モデルで表示されているブロックのパラメータだけを操作することになります。しかし、コンパイラからのエラーメッセージを理解できるように、モデルのコンパイル時に追加のライブラリブロックが導入されることに注意することが重要です。