Simulink

大規模モデリングにおける Simulink のベストプラクティス

これらのベストプラクティスでは、効率的、スケーラブル、かつメンテナンスしやすい Simulink® モデルを実現することが証明されているモデリングパターン、ツール、プロセスを取り上げます。具体的なトピックは以下のとおりです。

  • コンポーネント化とインターフェイス
  • MATLAB® プロジェクトを使用したコラボレーション
  • データ管理
  • シミュレーション パフォーマンスの改善

大規模モデリングにおける Simulink のベストプラクティス

大規模モデリングにおけるベストプラクティス: アーキテクチャとパフォーマンス

拡張可能な Simulink モデルを作成するためのテクニックを、コンポーネント化、データ、インターフェイス、コラボレーション、パフォーマンス、保守可能なワークフローなどの観点からご紹介します。

通常、大規模モデリングには複雑な閉ループシステムが関わってきます。このシステムには、プラントモデル、コントローラー、複数のサブシステム、場合によっては数十万個から数百万個にも達するブロックが含まれます。

一般的な課題には、モデルの可読性の低さ、共同作業の難しさ、データ管理の複雑さ、シミュレーションの遅さ、メンテナンスコストの上昇などが挙げられます。

コンポーネント化では、モデルを管理しやすい単位に分割することで、可読性、テスト、再利用、保守性、共同作業を改善します。

モデルベースデザインでは、実行可能なモデルを使用して、エンジニアリングのライフサイクル全体で複雑なシステムの開発、テスト、検証、妥当性確認を行います。

モデルのアーキテクチャ、コンポーネント インターフェイス、データ管理、共同作業のワークフロー、シミュレーション パフォーマンスです。

モデル参照、データディクショナリ、MATLAB プロジェクト、ソース管理、明確なインターフェイス定義を使用します。

自動車、航空宇宙、ロボティクス、産業オートメーション、エネルギーシステム、医療機器、自律システムです。

大規模な産業モデルには数十万個のブロックがごく普通に含まれ、エンタープライズ規模のモデルではブロック数が百万個を超える場合もあります。

開発の生産性、シミュレーションの効率性、共同作業性、モデルの再利用性が向上し、メンテナンスの労力が減少します。

単一のモノリシックなモデルを作成する代わりに、コンポーネント化されたアーキテクチャを確立することです。

Simulink によるコンポーネント化のベストプラクティス: モデル参照、ライブラリ、インターフェイス

Simulink のコンポーネント化: モデル参照とインターフェイス

モデル参照、ライブラリ、サブシステムを使用して拡張性の高い Simulink アーキテクチャを構築し、再利用性、コラボレーション、テスト、パフォーマンスを向上させます。

コンポーネント化では、大規模モデルを、より小さい、再利用可能で、適切に定義されたインターフェイスをもつコンポーネントに分割します。

モデル参照を使用すると、個別の開発ワークフローを維持しながら、個々のモデルをより大きなシステムに統合できます。

モデル参照は、各コンポーネントの個別の開発、シミュレーション、テスト、再利用、または高速化が必要なときに使用します。

一般的に、ライブラリは再利用可能なユーティリティに使用されますが、モデル参照はスタンドアロンのシミュレーション、高速化、インクリメンタル ビルドをサポートします。

サブシステム参照は、共有コンポーネント、Simscape ワークフロー、そして特定の HDL 開発シナリオで便利です。

バスは、関連する複数の信号を、大規模モデルの接続をシンプルにする、構造化されたインターフェイスにグループ化します。

バスは可読性を向上させ、ブロック線図の煩雑さを緩和し、インターフェイスを保守しやすくします。

Bus Element Port は、バス内の信号へのアクセスを簡略化し、個別の Bus Selector ブロックの必要性を軽減します。

複数のエンジニアが、同じモデルファイルを頻繁に変更せずに、個別のコンポーネントで作業できます。

はい。コンポーネント化されたアーキテクチャにより、アクセラレータモード、インクリメンタル ビルド、キャッシュの再利用、初期化の高速化が可能になります。

MATLAB プロジェクトと Git を使用した、Simulink での共同開発

MATLAB プロジェクトと Git を使用した Simulink の共同開発

MATLAB プロジェクトを使用すると、ソース管理、依存関係分析、テスト、CI/CD、保守可能なワークフローを備えた Simulink モデルで共同作業を行うことができます。

MATLAB プロジェクトは、環境管理、依存関係管理、ソース管理統合、コラボレーション ツールを提供します。

プロジェクトは、セットアップ作業の自動化、環境の標準化、手動での構成作業の削減に役立ちます。

プロジェクトを開くと、パス、変数、スタートアップ スクリプト、ショートカット、プロジェクト設定が自動で構成されます。

はい。MATLAB プロジェクトは Git と統合されており、コミット、プル、プッシュ、比較、およびマージ操作用のツールを提供します。

依存関係アナライザーは、ファイル、モデル、テスト、ライブラリ、データディクショナリ間の関係を識別します。

はい。プロジェクトは、優先順位の低いファイル、保存されていない変更、欠落している依存関係、パスの競合について警告します。

プロジェクト参照を使用すると、環境構成を保持したまま、あるプロジェクトが別のプロジェクトを使用し、そのプロジェクトへの依存関係を維持できます。

MATLAB には、モデルの機能に影響する変更と機能に影響しない変更を強調表示するグラフィカルな比較ツールが含まれています。

MATLAB は、Simulink ファイル専用に設計されたビジュアルなマージツールを提供しています。

はい。プロジェクトは、Jenkins、GitHub、GitLab、Azure DevOps、およびその他の自動化プラットフォームと連携して動作します。

はい。プロジェクトのスタートアップ スクリプトと API により、テスト、レポート、およびコード生成ワークフローを自動化できます。

Simulink データディクショナリ: 設計データ管理のベストプラクティス

Simulink データディクショナリ: 設計データ管理のベストプラクティス

拡張性と一貫性のあるモデルベースデザインを実現するために、データディクショナリ、モデルワークスペース、引数、値のタイプを使用して Simulink 設計データを管理します。

設計データには、モデルで使用されるパラメーター、信号、データ型、列挙、バス、エイリアス、および構成情報が含まれます。

Simulink データディクショナリは、設計データをモデルファイルと別個に保存する、専用の .sldd ファイルです。

データディクショナリは、データの整理、永続性、変更の追跡、再利用、共同作業を改善します。

ベースワークスペースはグローバルかつセッションベースですが、データディクショナリは構造的かつ永続的なストレージを提供します。

はい。複数のモデルで、同じデータディクショナリを参照できます。

はい。データディクショナリは階層的な参照をサポートしており、これにより組織は共通の定義を共有できます。

モデル引数を使用すると、参照モデルの複数のインスタンスそれぞれに異なるパラメーター値を設定できます。

値のタイプは、データ型、単位、範囲、寸法などの再利用可能なプロパティを定義します。

徐々に移行できます。Simulink は、データディクショナリと既存のワークスペース変数との併用をサポートしています。

はい。変更の追跡、比較ワークフロー、ソース管理システムとの統合がサポートされています。

コンポーネントレベルのデータディクショナリを階層化し、共通の定義には共有ディクショナリを使用するアーキテクチャです。

高速リスタート、アクセラレータモード、並列計算を使用した Simulink シミュレーションの高速化

高速リスタートと並列計算による Simulink の高速化

プロファイリング、アクセラレータモード、高速リスタート、並列計算、およびアーキテクチャのベストプラクティスを活用して、Simulink シミュレーションを高速化します。

モデルの複雑度、ソルバーの設定、不適切なアーキテクチャ、過剰なログ取得、非効率なワークフローによりパフォーマンスのボトルネックが発生する場合があります。

Simulink プロファイラー、ソルバー プロファイラー、パフォーマンス アドバイザー、シミュレーション メタデータです。

Simulink プロファイラーは、ブロック間やサブシステム間の実行時間を測定して、遅い領域を特定します。

ソルバー プロファイラーは、ソルバーの動作を解析し、過剰なゼロクロッシングやソルバーのリセットなどの問題を特定します。

パフォーマンス アドバイザーは、一般的なパフォーマンスの問題を自動的にチェックして、改善事項を推奨します。

アクセラレータモードは、モデル実行用のコンパイル済みコードを生成し、シミュレーションのオーバーヘッドを削減します。

ラピッド アクセラレータ モードは、スタンドアロンで実行可能なシミュレーション ターゲットを生成して、さらに実行速度を改善します。

高速リスタートでは、パラメーターのみが変更された場合に、シミュレーション実行間の再コンパイルを行いません。

キャッシュファイルは、コンパイル済みアーティファクトやシミュレーション ターゲットを保存して、シミュレーション セッション間で再利用できるようにします。

はい。parsim ワークフローを使用すると、複数のシミュレーションを複数の CPU コア間で同時に実行できます。

コンポーネント化されたモデルでは、インクリメンタル ビルド、選択的な加速、キャッシュの再利用、初期化の高速化がサポートされています。

最初にプロファイリング ツールを使用してボトルネックを特定し、モデルのコンポーネント化、アクセラレータ モードの活用、高速リスタートの有効化、複数のシミュレーションの並列実行を行います。