ドキュメンテーション

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

合成信号の技術の選択

モデル化要件に対応する合成信号の技術を選択します。各技術の背景情報については、合成信号手法を参照してください。

バーチャル バスの使用ガイドライン

バーチャル バスを使用してブロック線図の信号の煩雑さを軽減します。一般的に、バーチャル バスは非バーチャル バスに比べ簡単に使用することができ、効率も上がります。ただし、一部のモデリング機能には、MATLAB Function ブロックまたは Stateflow® チャートの境界を越えるバス データなど、非バーチャル バスが必要です。たとえば、次のようなバス信号にはバーチャル バスを使用します。

  • サンプルレートの異なるバス要素があること

  • 参照モデルが一部のバス要素のみを使用する場合に、モデル参照の境界を越えること

非バーチャル バスに比べ、バーチャル バスではメモリ要件が軽減されます。バーチャル バスは、別の連続するストレージ ブロックを必要としません。シミュレーション時に、バーチャル バスはそのブロックに対するデータのコピーを必要としないため処理が高速です。生成されたコードの処理速度も非バーチャル バスよりバーチャル バスの方が高速です。

非バーチャル バスの使用ガイドライン

非バーチャル バスを使用して次のことを行います。

  • Scope ブロックでバス信号を表示および記録。

  • バス配列の構成。

  • バス データが MATLAB Function ブロックまたは Stateflow チャートの境界を越えるように設定。

  • S-Function を介した外部コードとのインターフェイス接続。

  • バス データを生成された C コードの構造体としてパッケージ化。

生成されたコードは非バーチャル バスを構造体として表します。構造体は、モデルとコード間の対応関係を追跡するのに役立ちます。非バーチャル バスで生成されたコードによって、いくつかのバス信号の複数のコピーが生成される場合があります。バーチャル バスと非バーチャル バスの生成コードの違いの例については、バスのコードの生成を参照してください。非バーチャル バスでのコード生成に関するその他のガイドラインについては、生成されたコードにおける構造体へのデータの整理 (Simulink Coder)を参照してください。

ブロックへの非バーチャル バス入力のすべての信号は、関連するバス オブジェクトの要素が継承されたサンプル時間を指定する場合でも、同じサンプル時間を使用しなければなりません。Rate Transition ブロックを使って個々の信号のサンプル時間、またはバス内のすべての信号のサンプル時間を変更することができます。

バス要素端子の使用ガイドライン

サブシステムに接続する多くのバス要素で構成されるバス信号を含むモデルについては、In Bus Element ブロックと Out Bus Element ブロックを使用することを検討してください。入力用の Bus Selector ブロックをもつ Inport と出力用の Bus Creator ブロックをもつ Outport を使用する代わりに、これらのバス要素端子ブロックを使用できます。これらのバス要素端子ブロックにより、次が可能です。

  • ブロック線図における信号線の複雑さと煩雑さを低減する。

  • インターフェイスの段階的な変更を容易にする。

  • 使用ポイントに近いバス要素へのアクセスを許可して、Bus Selector および Goto ブロック構成の使用を回避する。

たとえば、以下は InportBus SelectorBus Creator および Outport ブロックを使用するモデルを示しています。

以下は、バス要素端子ブロックを使用する等価のモデルを示しています。

モデル開発プロセス中に頻繁に変更されることが予想されるバス信号をもつモデルに対してバス要素端子の使用を検討します。

バス要素端子ブロックには、次の制限があります。

  • Out Bus Element 出力バスはバーチャル バスです。

  • バス要素端子ブロックで使用される信号に関連付けられたバス オブジェクトは無視されます。

  • 基となる Inport または Outport のブロック仕様 (語長など) は指定できません。

InportBus SelectorBus Creator および Outport ブロックを使用するサブシステム インターフェイスをリファクタリングして、In Bus Element ブロックと Out Bus Element ブロックを使用できます。変換操作は、信号線またはブロックに追加仕様がない場合のみサポートされます。シングルクリック操作を使用して、次を実行できます。

  • サブシステム内の Inport ブロックと Bus Selector ブロックを In Bus Element ブロックに変換する。

  • サブシステム内の Outport ブロックと Bus Creator ブロックを Out Bus Element ブロックに変換する。

  • サブシステムの入力インターフェイスまたは出力インターフェイスを変換してバス要素端子ブロックを使用する。

詳細については、サブシステム バス インターフェイスの簡略化を参照してください。

バス配列の使用ガイドライン

複数の非バーチャル バスを 1 つの配列に結合します。バス配列は MATLAB® の構造体の配列と同等です。バス配列の使用例としては、多チャネル システムのモデル化があります。同じバス オブジェクトを使用してすべてのチャネルをモデル化できますが、チャネルはそれぞれ異なる値をもつ場合があります。

バス配列内の各要素は、非バーチャルであり、かつ同じバス オブジェクトでなければなりません。各バス オブジェクトは、そのバス要素として同じ信号名、階層および属性をもちます。バス配列では、バス オブジェクトを使用する必要があります。詳細については、バス配列へのバスの統合を参照してください。

Mux の使用ガイドライン

同じタイプの信号を 1 つのベクトルに結合するには Mux ブロックを使用します。Mux は特殊な種類の不連続 (バーチャル) ベクトルです。Mux は、通常の (連続する) ベクトルが使用可能であれば、どこでも使用できます。たとえば、mux で計算を実行できます。計算を実行すると、値が連続するベクトルに存在する場合と同様に Mux の各構成値が影響を受けます。複数のベクトルに対して計算を実行するために Mux を使用することによって、連続するストレージに別々の値をコピーするオーバーヘッドが回避できます。また、Mux ブロックを使用して、関数呼び出しのベクトルを作成できます。

ベクトルまたは行列を結合するには、Vector Concatenate ブロックまたは Matrix Concatenate ブロックを使用します。これらのブロックは、連続する出力信号を作成するのに役立ちます。

インデックス ベースのアクセスが必要な場合は、Mux ブロックを使用します。名前ベースのアクセスが必要な場合は、バスを使用します。

連結された連続する出力信号のガイドライン

Vector Concatenate ブロックまたは Matrix Concatenate ブロックを使用してベクトルまたは行列を結合できます。これらのブロックは、連続する出力信号を作成するのに役立ちます。この連結を数学演算で使用できます。これらのブロックの使用例については、Vector Concatenate ブロックおよび Matrix Concatenate ブロックのドキュメンテーションを参照してください。

参考

ブロック

関数

クラス

関連するトピック