ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モデル コンポーネントの機能

コンポーネント化

コンポーネントとは、設計の一部で、単位レベルの項目またはサブアセンブリであり、モデルの上位レベル部分を必要とすることなく作業を行えるものです。

コンポーネント化には、モデルをコンポーネントで編成する方法が含まれています。コンポーネント化は、さまざまな機能の部分から構成される大規模な Simulink® モデルを開発する組織に大きなメリットを提供します。そのメリットには次のものがあります。

  • 次のような開発過程の要件を満たすこと。

    • コンポーネントの再利用

    • チームベースの開発

    • 知的所有権保護

    • 単体テスト

  • 以下に対するパフォーマンスを向上させること。

    • モデルの読み込み

    • シミュレーションの速度

    • メモリ使用量

コンポーネント化の手法

Simulink で使用できる主要なコンポーネント化の手法には次のものがあります。

  • サブシステム

  • ライブラリ

  • モデル参照

これらのコンポーネント化の手法は、サイズや複雑さがさまざまであるモデルの幅広いモデル化要件をサポートします。ほとんどの大規模モデルは、コンポーネント化の手法を組み合わせて使用しています。たとえば、参照モデルにサブシステムを含めることも、サブシステムに参照モデルを含めることもできます。他の例としては、大規模モデルは、最上位レベルのコンポーネント分割ではモデル参照 Accelerator ブロックを使用し、それよりも低いレベルではモデル参照 Accelerator と atomic サブシステム ライブラリを混在させることもあります。

Simulink は、サブシステムからモデル参照に変換するツールも提供します。サブシステムとモデル参照の違いにより、サブシステムからモデル参照への切り替えには数段階の手順がある可能性があります (サブシステムの参照モデルへの変換を参照)。モデルのサイズと複雑さがどのように増すか、また可能性のあるコード生成の要件など、予測される将来のモデル化要件のスケーラビリティとサポートを検討してください。スケーラブルなアーキテクチャを設計すると、今後発生する可能性のある変換コストを回避できます。

一般的なコンポーネント化のガイドライン

以下の表は、サブシステム、ライブラリおよびモデル参照それぞれに特に適しているさまざまなモデル化の目的とモデルに関する高水準のガイドラインを示しています。

コンポーネント化の手法その手法が特に適しているモデル化の目的

サブシステム

  • 整理する階層を追加し、モデルを視覚的に簡略化します。

  • コンテキスト依存の動作に対する継承属性で、最大限に設計を再利用します。

ライブラリ

  • 頻繁に使用し、変更はあまり頻繁には行わないモデル化ユーティリティを提供します。

  • 1 つのモデルまたは複数のモデル内でコンポーネントを繰り返し再利用します。

モデル参照

  • 参照モデルはそれを使用するモデルからは独立して開発します。

  • 参照モデルの内容は見えないようにできるので、知的財産であるモデルの内容を隠したまま配布できます。

  • 冗長なコピーを作成することなく、1 つのモデルを複数回参照します。

  • 最上位レベルのコンポーネントに対する定義済みのインターフェイスによって、複数のユーザーによる変更を容易にします。

  • 大規模モデル (10,000 ブロックあるモデルなど) に対して、インクリメンタルなモデル読み込み、ブロック線図の更新、シミュレーションおよびコード生成を使用することで全体のパフォーマンスを向上させます。

  • 単体テストを実行します。

  • 大規模モデルのデバッグを簡略化します。

  • モデル構造体を反映するコードを生成します。

これらのモデル化の手法の詳細な比較は、コンポーネント化手法の概要を参照してください。

コンポーネント化手法の概要

この節では、サブシステム、ライブラリおよびモデル参照を比較します。表には、モデル化要件の範囲と機能についての推奨事項と注意事項を記載しています。

要件または機能のモデル化サブシステムライブラリモデル参照

開発プロセス

コンポーネントの再利用

 サポートなし

 よく適している

 よく適している

チームベースの開発

 サポートなし

 制限付きでサポート

 よく適している

知的所有権保護

 サポートされていない

 サポートされていない

 よく適している

単体テスト

 制限付きでサポート

 制限付きでサポート

 よく適している

パフォーマンス

モデルの読み込み速度

 制限付きでサポート

 よく適している

 よく適している

大規模なモデルのシミュレーション速度

 制限付きでサポート

 制限付きでサポート

 よく適している

メモリ

 制限付きでサポート

 制限付きでサポート

 よく適している

疑似代数ループの回避

 よく適している

 よく適している

 制限付きでサポート

機能

信号プロパティの継承

 よく適している

 よく適している

 制限付きでサポート

状態の初期化

 よく適している

 よく適している

 制限付きでサポート

調整可能性

 よく適している

 よく適している

 制限付きでサポート

バス

 よく適している

 よく適している

 制限付きでサポート

S-Function

 よく適している

 よく適している

 制限付きでサポート

モデル コンフィギュレーション設定

 よく適している

 よく適している

 制限付きでサポート

ツール

 よく適している

 制限付きでサポート

 制限付きでサポート

コード生成

 制限付きでサポート

 制限付きでサポート

 よく適している

それぞれのモデル化手法については、前述のコンポーネント化手法の概要テーブルにあるリンクの詳細情報を含む概要テーブルを参照してください。

サブシステムの概要

この節では、コンポーネント化手法の概要で強調表示されているそれぞれのモデル化要件と機能についてサブシステムを使用するガイドラインを説明します。

サブシステムの詳細は、以下を参照してください。

要件または機能のモデル化サブシステムのガイドライン

開発プロセス

コンポーネントの再利用

サポートなし

  • サブシステムをコピーしてモデルで再利用します。

  • サブシステムのコピーは、互いに独立しています。

  • サブシステムを含むモデルを保存することによってサブシステムを保存します。

  • サブシステムの構成管理は困難です。

チームベースの開発

サポートなし

  • モデル内のサブシステムに対して、Simulink はソース管理ツールで直接のインターフェイスを提供しません。

  • サブシステムの作成または変更を行うには、親モデルのファイルを開く必要があります。これは、複数の人が 1 つのモデル内の複数のサブシステムに対して作業を行うとき、ファイルの競合が発生する可能性があります。

知的所有権保護

サポートされていない

代わりに、保護された参照モデルを使用してください。

単体テスト

制限付きでサポート

  • カバレッジ テストには、Signal Builder ブロックとソース ブロックを使用します。

  • サブシステムが変わるたびに、ハーネス モデルにサブシステムをコピーする必要があります。

  • テスト ハーネスは、バーチャルな境界のために、異なる Simulink のソート順になります。

  • テスト ハーネス ファイルには、構成管理オーバーヘッドが必要です。

パフォーマンス

モデルの読み込み速度

制限付きでサポート

モデルの読み込みによって、一度にすべてのサブシステムが読み込まれます。インクリメンタルな読み込みはありません。

大規模なモデルのシミュレーション速度

制限付きでサポート

  • シミュレーションを高速化するために、アクセラレータまたはラピッド アクセラレータのシミュレーション モードを使用します。

  • シミュレーション モードは、モデル全体に適用されます。モデル参照は、シミュレーション モードに、さらに細かいレベルの制御を提供します。

メモリ

制限付きでサポート

シミュレーションとコード生成用のメモリ使用量は、サブシステムとライブラリで同等です。500 ブロックを超えるモデルの場合、モデル参照アクセラレータ モードは、シミュレーションとコード生成のメモリ使用量を大幅に削減できます。

疑似代数ループの回避

よく適している

  • バーチャル サブシステムは疑似代数ループを避けます。

  • 非バーチャル サブシステムの場合、Subsystem ブロック パラメーターの [代数ループの発生の最小化] を有効にすることを検討してください。

機能

信号プロパティの継承

よく適している

  • サブシステム境界の外部から信号プロパティを継承することにより、どの信号に対してもプロパティを指定する手間を省きます。

  • 信号プロパティの伝播は、予測しなかった信号プロパティを使用して Simulink に導くことができます。

状態の初期化

よく適している

サブシステムの状態は初期化できます。

調整可能性

よく適している

  • ブロック パラメトリゼーションまたはマスク サブシステムを使用してサブシステムを調整します。

  • [コンフィギュレーション パラメーター][最適化][既定のパラメーター動作] を使用して、生成されたコードの調整可能性を制御します。

バス

よく適している

サブシステムは、バーチャル バスのバス オブジェクトの使用を必要としません。

S-Function

よく適している

サブシステムは、インライン化された S-Function またはインラインでない S-Function をサポートします。

モデル コンフィギュレーション設定

よく適している

サブシステムは、そのサブシステムを含むモデルのモデル コンフィギュレーション設定を使用します。

ツール

よく適している

サブシステムは Simulink ツールの広範なサポートを提供します。

コード生成

制限付きでサポート

  • サブシステムだけのコードを生成するには、Subsystem ブロックを右クリックしてから、コード生成オプションを選択します。

  • 最適化として、Simulink は同一のサブシステムを認識しようとします。検出した同一のサブシステムに対して、生成したコードは、複数のサブシステムのコードの 1 つのコピーのみを含みます。

  • バーチャル サブシステムの場合、コード生成のためのファイルまたは関数コード分割を指定できません。

ライブラリの概要

この節では、コンポーネント化手法の概要で強調表示されているそれぞれのモデル化要件と機能についてライブラリを使用するガイドラインを説明します。

ライブラリの詳細は、ライブラリを参照してください。

要件または機能のモデル化ライブラリのガイドライン

開発プロセス

コンポーネントの再利用

よく適している

  • 適切に定義されているユーティリティ ブロックの集合にアクセスします。

  • コンポーネントを 1 回作成して、それをモデルで再利用します。

  • 複数のコピーを作成することなく、同じライブラリ ブロックに複数回リンクします。

  • 複数のモデルから同じライブラリ ブロックにリンクします。

  • ライブラリ コンポーネントへの書き込みアクセスを制限します。

  • 1 つの真理を維持します。1 つのライブラリ ブロックからそのライブラリにリンクするすべてのブロックに変更を伝播します。

  • リンクしたブロックに個別の変更を許可するためにリンクを無効にします。

  • ライブラリ リンクの管理では何らかのオーバーヘッドが発生します。

  • Simulink モデルに似たファイルにライブラリを保存しますが、そのファイルの内容をシミュレートすることはできません。

  • コンポーネントの外部 (共通の親サブシステムのデータ ストアなど) でデータを定義してインスタンス間でデータを共有します。

チームベースの開発

制限付きでサポート

  • バージョン管理と構成の管理のために、ソース管理システムにライブラリ ファイルを配置します。

  • 1 つの真理を維持します。1 つのライブラリ ブロックからそのライブラリにリンクするすべてのブロックに変更を伝播します。

  • ファイル競合を減らすために、ライブラリごとに 1 つのサブシステムを使用します。

  • 複数のモデルから同じライブラリ ブロックにリンクします。

  • ライブラリ コンポーネントへの書き込みアクセスを制限します。

知的所有権保護

サポートされていない

代わりに、保護された参照モデルを使用してください。

単体テスト

制限付きでサポート

  • カバレッジ テストには、Signal Builder ブロックとソース ブロックを使用します。

  • テスト ハーネスは、バーチャルな境界のために、異なる Simulink のソート順になります。

  • テスト ハーネス ファイルには、構成管理オーバーヘッドが必要です。

パフォーマンス

モデルの読み込み速度

よく適している

Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に、必要となった時点で、ライブラリをインクリメンタルに読み込みます。

大規模なモデルのシミュレーション速度

制限付きでサポート

  • シミュレーションを高速化するために、アクセラレータまたはラピッド アクセラレータのシミュレーション モードを使用します。

  • シミュレーション モードは、モデル全体に適用されます。モデル参照は、シミュレーション モードに、さらに細かいレベルの制御を提供します。

メモリ

制限付きでサポート

  • Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に必要となった時点で、ライブラリをインクリメンタルに読み込みます。

  • Simulink はブロック更新中にライブラリ ブロック インスタンスを複製します。

  • シミュレーションとコード生成用のメモリ使用量は、サブシステムとライブラリで同等です。500 ブロックを超えるモデルの場合、モデル参照アクセラレータ モードは、シミュレーションとコード生成のメモリ使用量を大幅に削減できます。

疑似代数ループの回避

よく適している

  • バーチャル サブシステムは疑似代数ループを避けます。

  • 非バーチャル サブシステムの場合、Subsystem ブロック パラメーターの [代数ループの発生の最小化] を有効にすることを検討してください。

機能

信号プロパティの継承

よく適している

  • ライブラリ ブロック境界の外部から信号プロパティを継承することにより、どの信号に対してもプロパティを指定する手間を省きます。

  • 信号プロパティの伝播は、予測しなかった信号プロパティを使用して Simulink に導くことができます。

状態の初期化

よく適している

ライブラリ ブロックの状態は初期化できます。

調整可能性

よく適している

  • ブロック パラメトリゼーションまたはマスク サブシステムを使用してライブラリ ブロックを調整します。

  • [コンフィギュレーション パラメーター][最適化][既定のパラメーター動作] を使用して、生成されたコードの調整可能性を制御します。

バス

よく適している

ライブラリは、バーチャル バスのバス オブジェクトの使用を必要としません。

S-Function

よく適している

ライブラリは、インライン化された S-Function およびインラインでない S-Function をサポートします。

モデル コンフィギュレーション設定

よく適している

  • ライブラリ モデルにはモデル コンフィギュレーション設定がありません。

  • 参照ライブラリ ブロックは、そのブロックを含むモデルのモデル コンフィギュレーション設定を使用します。

ツール

制限付きでサポート

モデル アドバイザーなどのいくつかの Simulink ツールには、ライブラリと共に使用するときにいくつかの制限事項があります。

コード生成

制限付きでサポート

  • 最適化として、Simulink は同一のサブシステムを認識しようとします。検出した同一のサブシステムに対して、生成したコードは、複数のサブシステムのコードの 1 つのコピーのみを含みます。

  • バーチャル サブシステムの場合、コード生成のためのファイルまたは関数コード分割を指定できません。

モデル参照の概要

この節では、コンポーネント化手法の概要で強調表示されているそれぞれのモデル化要件と機能についてモデル参照を使用するガイドラインを説明します。

モデル参照の詳細については、以下を参照してください。

要件または機能のモデル化モデル参照のガイドライン

開発プロセスの要件

コンポーネントの再利用

よく適している

  • スタンドアロン コンポーネントを 1 回作成して、それを複数のモデルで再利用します。

  • 複数のコピーを作成せずに、1 つのモデルを複数回参照します。モデルの再利用を参照してください。

  • 複数のモデルから 1 つのモデルを参照します。

  • モデル参照は、コンポーネントの整合性を維持するために、指定した境界を使用します。

  • モデルの内部にデータ ストアを作成してインスタンス (Model ブロック) 間でデータを共有します。参照モデル インスタンス間でのデータの共有を参照してください。

チームベースの開発

よく適している

  • バージョン管理と構成管理のために、ソース管理システムにモデル参照ファイルを置くことができます。

  • モデルを参照するモデルとは別個に、参照されるモデルを設計、作成、シミュレート、テストします。

  • 複数のモデルから 1 つのモデル参照にリンクします。

  • 参照モデルに加えられる変更は、その参照モデルのすべてのインスタンスに適用されます。

  • Simulink はモデル参照を変更するためのアクセスに制限を設けていません。

  • 参照モデルを参照しているモデルとは別のファイルに参照モデルを保存します。独立したファイルを使用すると、ファイル競合を避けることができます。

知的所有権保護

よく適している

  • 保護モデル機能を使用して、分布モデルで参照モデルの内容をわかりにくくします。

  • 保護モデル機能を作成するには、Simulink Coder ライセンスが必要です。保護モデルの使用には Simulink Coder ライセンスは必要 "ありません"。

単体テスト

よく適している

  • スタンドアロンでシミュレートすることで動作を分離するために、コンポーネントを独立してテストします。

  • 変更されていないコンポーネントに対する単体の再テストは省略できます。

  • データ定義テスト ハーネスを、MATLAB テスト ベクトルとダイレクト カバレッジ集合と共に使用します。

  • カバレッジ テストには、ルートの Inport と Outport を使用します。

パフォーマンス

モデルの読み込み速度

よく適している

  • Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に必要となった時点で、参照モデルをインクリメンタルに読み込みます。

  • シミュレーション ターゲット ビルドが必要な場合、初回の読み込みは低速になる可能性があります。

大規模なモデルのシミュレーション速度

よく適している

  • 参照モデルをスタンドアロンでシミュレートします。

  • Model ブロックには、シミュレーション モードを指定するためのオプションがあります。

  • [コンフィギュレーション パラメーター][モデル参照][リビルド] のパラメーターの適切な設定を選択することで、リビルド性能を向上させることができます。

  • コード生成によるシミュレーションでは、起動時に低速になる可能性があり、プロトタイプ中には望ましくないものである可能性があります。

  • シミュレーションの要件と制限を参照してください。

メモリ

よく適している

  • Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中にモデルがナビゲーションに必要となった時点で、参照モデルを読み込みます。

  • モデル参照アクセラレータ モードを使用して、メモリ使用量を減らし、参照モデルのコンパイルされたバージョンをインクリメンタルに読み込みます。

疑似代数ループの回避

制限付きでサポート

[コンフィギュレーション パラメーター][モデル参照][代数ループの発生の最小化] を有効にすることを検討してください。

機能

信号プロパティの継承

制限付きでサポート

  • サンプル時間は、参照モデルがサンプル時間に依存しないときに継承します。連続サンプル時間は、サンプル時間に依存しない Model ブロックには伝播できません。

  • Model ブロックはコンテキストに依存しないため、信号プロパティを継承できません。入力信号プロパティと出力信号プロパティを明示的に設定します。

  • 参照モデル内に渡されるバス信号の信号データ型を定義するために、バス オブジェクトを使用します。

  • Goto および From ブロック ラインは、モデル参照の境界を越えることはできません。

  • インデックス ベースの制限を参照してください。

状態の初期化

制限付きでサポート

  • 最上位モデルから状態を初期化できます。

  • 最上位モデルと、最上位モデルが参照するモデルの状態を初期化するには、構造体形式または時間付き構造体形式を使用します。

  • モデル参照で SimState (シミュレーション状態) 機能を使用するには、すべての Model ブロックをノーマル モードでシミュレートします。

  • 参照モデルの状態情報を参照してください。

調整可能性

制限付きでサポート

  • 参照モデルの各インスタンスに異なる値を使用させるには、Model ブロックでモデル引数を使用します。

  • 参照モデルの各インスタンスに同じ値を使用させるには、Simulink.Parameter オブジェクトを使用します。

  • 既定の設定では、他のすべてのパラメーターは生成コード内でインライン化されます。

バス

制限付きでサポート

参照モデル境界を越えるバス信号のバス オブジェクトを使用しなければなりません (グローバル データ ストア、ルートの入力端子、ルートの出力端子など)。

S-Function

制限付きでサポート

モデル参照は、一般に、インライン化された S-Function またはインラインでない S-Function をサポートします。参照モデルにおける S-Functionを参照してください。

モデル コンフィギュレーション設定

制限付きでサポート

  • モデル階層内のすべてのモデルに同一のモデル コンフィギュレーション設定を適用するには、参照コンフィギュレーション セットを使用します。

  • ルート モデルおよび参照モデルのコンフィギュレーション設定は一貫していなければなりません。ただし、すべてのコンフィギュレーション設定をモデル階層全体で同じものにする必要はありません。

ツール

制限付きでサポート

  • Simulink デバッガーなどのいくつかの Simulink ツールには、モデル参照と共に使用するときにいくつかの制限事項があります。

  • 詳細については、ツールの要件と制限を参照してください。

コード生成

よく適している

  • 既定の設定では、モデル参照はコードをインクリメンタルに生成します。

  • [コンフィギュレーション パラメーター][モデル参照][リビルド] のパラメーターの適切な設定を選択することで、リビルド性能を向上させることができます。

関連する例

詳細