このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
モデル コンポーネントの機能の比較
特定のタイプのモデル コンポーネントを使用してシステムの一部を実装する前に、そのコンポーネント タイプがモデル化要件を満たしているかどうかを検討します。
ヒント
検討するコンポーネント タイプを特定するための大まかなガイドラインと使用例については、モデル コンポーネントのタイプの選択を参照してください。
コンポーネントに関する考慮事項 | モデル化要件 |
---|---|
開発プロセス |
|
パフォーマンス要件 |
|
機能 |
|
メモ
コード生成に関する考慮事項については、以下を参照してください。
サブシステム (Simulink Coder)
モデル参照階層向けのコードの生成 (Simulink Coder)
システム アーキテクチャの Simulink モデリング環境へのマッピング (Simulink Coder)
Map Embedded System Architecture to Simulink Modeling Environment (Embedded Coder)
開発プロセス
モデル化要件 | サブシステム | リンクされたサブシステム | サブシステム参照 | モデル参照 |
---|---|---|---|---|
独立したファイル | サポートなし サブシステムは親と同じファイルに保存します。 サブシステムを作成または変更するには、親ファイルを編集しなければなりません。そのため、ファイル競合やマージの問題が発生する可能性があります。 | サポートあり リンク付きブロックの親ライブラリ ブロックを独立したファイルに保存します。 独立したファイルを使用すると、ファイル競合を避けることができます。 | サポートあり 参照サブシステムを独立したファイルに保存します。 独立したファイルを使用すると、ファイル競合を避けることができます。 | サポートあり 参照モデルを独立したファイルに保存します。 独立したファイルを使用すると、ファイル競合を避けることができます。 |
コンポーネントの再利用 | サポートなし サブシステムをコピーしてモデル内で再利用できますが、コピーは互いに独立しています。 | サポートあり コピーを作成することなく、複数のモデル内で同じ親ライブラリ ブロックに複数回リンクすることができます。 ライブラリ リンクの管理では、切断されたリンク、無効リンク、パラメーター付きのリンクの管理など、何らかのオーバーヘッドが発生します。 | サポートあり コピーを作成することなく、複数のモデル内で同じサブシステムを複数回参照することができます。 | サポートあり コピーを作成することなく、複数のモデル内で同じモデルを複数回参照することができます。モデルの再利用を参照してください。 |
共有データ | サポートあり コンポーネントの外部でデータを定義することで、インスタンス間でデータを共有できます。たとえば、共通の親サブシステムのデータ ストアを使用します。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり モデル内でデータ ストアを作成することで、参照モデルのインスタンス間でデータを共有できます。参照モデル インスタンス間でのデータの共有を参照してください。 |
インスタンス固有の編集 | サポートあり サブシステムのコピーは、互いに独立しています。 | サポートあり 親ライブラリ ブロックを編集すると、その変更がライブラリ ファイルに適用され、そのブロックにリンクしているすべてのブロックに伝播します。 ブロックのインスタンスを編集するために、ライブラリ リンクを無効にできます。 親ライブラリ ブロックの書き込みアクセス権限が制限されている場合は、ライブラリ リンクを無効にできません。 | サポートなし 参照サブシステムのインスタンスを編集すると、その変更がサブシステム ファイルに適用され、参照サブシステムのその他すべてのインスタンスに伝播します。 | サポートなし 参照モデルのインスタンスを編集すると、その変更がモデル ファイルに適用され、参照モデルのその他すべてのインスタンスに伝播します。 参照モデルに対してインスタンス固有のパラメーター値を指定できます。詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。 |
バリアント | サポートあり サブシステムのバリアントを Variant Subsystem ブロックまたは Variant Model ブロックに追加します。 詳細については、Variant Subsystem を使用した個別の階層でのバリエーションの実装を参照してください。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり モデルのバリアントを Variant Subsystem ブロックまたは Variant Model ブロックに追加します。 詳細については、Variant Subsystem を使用した個別の階層でのバリエーションの実装を参照してください。 |
バージョン管理と構成管理 | サポートなし ソース管理システムにサブシステムを直接配置することはできません。 ファイルの競合を軽減し、サブシステムごとに個別のバージョン管理を使用するには、サブシステム参照を使用します。 | サポートあり ソース管理システムにライブラリ ファイルを配置できます。 ライブラリ ブロックごとに個別のバージョン管理を行うには、ライブラリ内でサブシステム参照とモデル参照を使用します。これらのブロックをライブラリからモデルにドラッグするときに、サブシステム ファイルまたはモデル ファイルが参照されます。 転送テーブルを使用することで、古いライブラリ ブロックを新しいバージョンのブロックにマッピングできます。 | サポートあり ソース管理システムにサブシステム ファイルを配置できます。 | サポートあり ソース管理システムにモデル ファイルを配置できます。 |
知的所有権保護 | サポートなし 代わりにモデル参照を使用します。 | サポートなし "動作はサブシステムと同じです。" | サポートなし "動作はサブシステムと同じです。" | サポートあり 保護モデルでは、モデルの内容が表示されません。これは、モデルを配布するときに役立ちます。 保護モデルを作成するには、Simulink® Coder™ ライセンスが必要です。詳細については、コンテンツを隠すためのモデルの保護 (Simulink Coder)を参照してください。 保護モデルの使用には Simulink Coder ライセンスは必要 "ありません"。詳細については、サードパーティからの保護モデルの参照を参照してください。 |
単体テスト | サポートあり サブシステムはモデルのコンテキストに依存しています。サブシステムのコンテキスト (入力信号のデータ型など) が変更された場合、関連するテスト ハーネスを更新しなければなりません。 Atomic でないサブシステムの場合、バーチャルな境界のために、テスト ハーネスは異なるブロック実行順序を使用する可能性があります。 サブシステムに関する体系的でシミュレーションベースのテストの作成、管理、および実行をサポートするツールについては、Create or Import Test Harnesses and Select Properties (Simulink Test)を参照してください。 どの程度までモデル コンポーネントがテストされるかを測定するには、モデル カバレッジ (Simulink Coverage)を参照してください。 | サポートあり "動作はサブシステムと同じです。" | サポートあり 参照サブシステムのテスト ハーネスの動作は、別のファイルに格納されないサブシステムのテスト ハーネスと同じです。 参照サブシステムのテスト ハーネスは作成できますが、参照サブシステム内のブロックのテスト ハーネスは作成できません。 | サポートあり 参照モデルを独立してテストして、それを最上位モデルとしてシミュレーションすることで動作を分離することができます。 データ定義テスト ハーネスを、MATLAB® テスト ベクトルとダイレクト カバレッジ集合と共に使用できます。 サブシステムに関する体系的でシミュレーションベースのテストの作成、管理、および実行をサポートするツールについては、Create or Import Test Harnesses and Select Properties (Simulink Test)を参照してください。 どの程度までモデル コンポーネントがテストされるかを測定するには、モデル カバレッジ (Simulink Coverage)を参照してください。 |
パフォーマンス要件
モデル化要件 | サブシステム | リンクされたサブシステム | サブシステム参照 | モデル参照 |
---|---|---|---|---|
インクリメンタル モデルの読み込み処理 | サポートなし モデルを読み込むと、そのモデルに保存されているすべてのサブシステム コンテンツが読み込まれます。 | サポートあり Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に、必要となった時点で、ライブラリをインクリメンタルに読み込みます。 | サポートあり Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に必要となった時点で、参照サブシステムをインクリメンタルに読み込みます。 | サポートあり Simulink は、ブロック線図の編集中や更新中、またはモデルのシミュレーション中に必要となった時点で、参照モデルをインクリメンタルに読み込みます。 |
ビルド アーティファクトの再利用 | サポートなし ビルド アーティファクト (シミュレーション ターゲットなど) はサブシステム用に生成されません。 | サポートなし "動作はサブシステムと同じです。" | サポートなし "動作はサブシステムと同じです。" | サポートあり Simulink キャッシュ ファイルを使用して、シミュレーション ターゲットなどのビルド アーティファクトを共有および再利用することができます。詳細については、シミュレーションを高速化するための Simulink キャッシュ ファイルの共有を参照してください。 |
大規模モデルでのメモリ使用量の削減 | サポートなし サブシステムでは、シミュレーションおよびコード生成のメモリ使用量が削減されません。 | サポートなし リンクされたサブシステムでは、シミュレーションおよびコード生成のメモリ使用量が削減されません。 Simulink はブロック更新中にライブラリ ブロック インスタンスを複製します。 | サポートなし サブシステム参照では、シミュレーションおよびコード生成のメモリ使用量が削減されません。 Simulink は、ブロックの更新中にサブシステム参照のインスタンスを複製します。 | サポートあり Simulink はコンパイル済みのモデルをインクリメンタルに読み込むため、アクセラレータ モードで参照されるモデルでは、シミュレーションとコード生成のメモリ使用量が削減されます。 |
疑似代数ループの削除 | サポートあり Atomic でないサブシステムは疑似代数ループを回避します。 サブシステムが Atomic である場合、Subsystem ブロック パラメーターの [代数ループの発生の最小化] を有効にすることで、疑似代数ループの削除を試行できます。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり [コンフィギュレーション パラメーター] 、 [モデル参照] 、 [代数ループの発生の最小化] を有効にすることで、疑似代数ループの削除を試すことができます。 |
機能
モデル化要件 | サブシステム | リンクされたサブシステム | サブシステム参照 | モデル参照 |
---|---|---|---|---|
互換性のあるコンフィギュレーション パラメーターの設定 | サポートあり サブシステムは、それらが含まれているモデルのコンフィギュレーション パラメーター設定を使用します。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 通常、コンフィギュレーション パラメーター設定は親モデルと参照モデルで異なる場合があります。互換性の詳細については、モデル階層のコンフィギュレーション パラメーターの設定を参照してください。 |
インターフェイスでの信号プロパティの指定 | サポートあり サブシステムのインターフェイスで信号プロパティを指定できます。 指定していない信号プロパティについては、サブシステムはその信号プロパティをコンテキストに基づいて継承します。信号プロパティの伝播は、Simulink が予測しない信号プロパティを使用することにつながる場合があります。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 大部分の信号プロパティは参照モデルのインターフェイスで指定しなければなりません。 参照モデルは境界が定義され、コンテキストに依存しないため、大部分の信号プロパティは継承されません。 参照モデルは、サンプル時間に依存しないときに離散サンプル時間を継承できます。 |
インターフェイスでの物理的な接続 | サポートあり サブシステムのインターフェイスで物理的な接続を指定できます。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートなし 物理的な接続は、参照モデル内に完全に含まれていなければなりません。モデル インターフェイスをまたぐことはできません。 |
バスの指定 | サポートあり
サブシステムは、バーチャル バスの | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり
In Bus Element ブロックおよび Out Bus Element ブロックを使用する場合、モデル参照ではバーチャル バス用に |
状態の初期化 | サポートあり サブシステムの状態は初期化できます。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 構造体形式または時間付き構造体形式のいずれかを使用して、状態を最上位モデルから初期化できます。 |
条件付き実行 | サポートあり サブシステムで条件付き実行がサポートされます。詳細については、条件付き実行サブシステムの概要を参照してください。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 参照モデルで条件付き実行がサポートされます。詳細については、参照モデルの条件付き実行を参照してください。 |
イベントベースの動作 | サポートあり サブシステムでイベントベースの動作がサポートされます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 参照モデルでイベントベースの動作がサポートされます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。 |
独立した関数 | サポートあり サブシステムで独立した関数を定義できます。詳細については、Simulink 関数の概要を参照してください。 | サポートあり "動作はサブシステムと同じです。" | サポートあり "動作はサブシステムと同じです。" | サポートあり 参照モデルで独立した関数を定義できます。詳細については、エクスポート関数モデルの概要を参照してください。 |