メインコンテンツ

Simulink でのコンポーネントベースのモデル化

コンポーネントベースのモデル化は、さまざまな機能要素によって構成される Simulink® モデルを組織で開発するときに役立ちます。インターフェイスをもつ設計の一部としてそれぞれの Simulink コンポーネントを作成することで、システムやさらに大きいコンポーネントの組み立てが簡単になります。役に立つコンポーネントとは、範囲が適切に定義されており、要件によって定義された機能を実行し、大規模なシステムの一部を構成しているものです。

コンポーネントにより、次が可能になります。

  • チームベースの開発 — 適切に定義されたインターフェイスによってファイル競合を軽減し、コンポーネントを個別に詳細化します。

  • 設計の複雑度を低減 — 比較的小さい問題をコンポーネントごとに解決します。

  • 再利用 — プロジェクト内および複数のプロジェクト間でアルゴリズムと環境モデルを再利用します。

  • 単体テスト — 変更されていないコンポーネントの再テストを排除し、検証にかかるコストを削減します。

  • その規模でのパフォーマンス上のメリット — メモリ使用量を削減し、モデルの読み込みとシミュレーションに要する時間を短縮します。

  • バリアント — コンポーネントの複数の実装から選択します。

  • 知的所有権保護 — サードパーティと共有するコンポーネントの機能とコンテンツの可視性を制限します。

既存の Simulink コンポーネント、サードパーティ製のツールを使用して作成されたコンポーネント、および使用している MATLAB®、C/C++、または Python® のコードを Simulink に統合するには、Choose Tools to Integrate Existing Components and MATLAB, C/C++, or Python Code into Simulinkを参照してください。

Simulink コンポーネントを作成する必要性

コンポーネントの定義と管理に必要な作業について考えると、メリットがコストを上回る場合にのみコンポーネントベースのモデル化を使用すべきです。

既存の Simulink モデルを複数のコンポーネントに分割することは、大きなコード (C、Java®、または MATLAB コード) を取得して、いくつかの関数に分けることと似ています。設計がもともとモジュール化されていない場合、この変換にはかなりの作業と大規模な変更が必要になる可能性があります。

モデルのスケーラビリティと潜在的な要件を事前に考慮すると、Simulink モデルをより簡単にコンポーネントに分割できるようになります。コンポーネントを事前に特定することで、次の問題を回避できます。

  • 不適切なコンポーネント定義 — サブシステムの範囲が経時的に増大することで、コンポーネントの要件を満たすことができない可能性があります。たとえば、サブシステムに含まれる機能の数が多すぎたり少なすぎることが原因で再利用できなかったり、従来の機能と統合するコードを生成できなかったり、ハードウェアインザループ テストをサポートできない場合があります。

  • マージ競合 — 元々 1 人のエンジニアが開発を行うために設計されていたモデルに対して、別のエンジニアが作業を開始すると、マージに時間がかかったり、エラーが発生しやすくなる場合があります。

  • 疑似代数ループ — 1 人のエンジニアがボトムアップ方式でモデルを開発する場合、モデルの複雑度が上がるにつれて、ブロックをサブシステムにグループ化する傾向が強くなります。モデル内のサブシステムは視覚的にグループ化するようなものであり、モデルの実行に影響を与えません。これらのサブシステムを Atomic にするか、サブシステムを参照モデルに変換するときに、疑似代数ループが発生して、診断や修正が困難になる可能性があります。

設計が複雑になり過ぎて、1 人ですべての詳細を管理することができない場合にも、コンポーネントが役立ちます。たとえば、複雑なモデルとは次のようなものをもつモデルです。

  • 数千のブロック

  • 数百の論理判定

  • 同じ機能に対する複数のバリアント コンフィギュレーション

プロジェクトおよびソース管理はコンポーネントの管理に役立ちます。詳細については、Simulink における MATLAB プロジェクトとはおよび構成管理を参照してください。

Simulink コンポーネントを使用して機能を実装する前にシステム アーキテクチャを設計するには、アーキテクチャ モデルを使用したシステムの構成と解析 (System Composer)を参照してください。

Simulink コンポーネントの定義

1. モデル コンポーネントのタイプの検討

高水準のモデル化要件に合致している Simulink コンポーネントを特定します。

2. モデル コンポーネントの機能の比較低水準のモデル化要件を満たす Simulink コンポーネントのタイプを調査します。
3. モデル コンポーネントのインターフェイスの定義インターフェイスで設計属性を構成し、Simulink コンポーネントのデータを管理します。