このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
宇宙ベースの用途向けのモデルベース システムズ エンジニアリング
この例では、Simulink® スタート ページから入手できる Aerospace Blockset™ の [CubeSat Model-Based System Engineering Project] テンプレートの概要を説明します。System Composer™ と Aerospace Blockset を使用して Simulink で低軌道 (LEO) における 1U CubeSat の宇宙ミッション アーキテクチャをモデル化する方法を示します。CubeSat のミッションは、マサチューセッツ州ネイティックにある MathWorks 本社を少なくとも 1 日に 1 回撮影することです。このプロジェクトは、Aerospace Blockset の "CubeSat シミュレーション プロジェクト" を参照し、そのプロジェクトで定義された機体ダイナミクス、環境モデル、データ ディクショナリ、および飛行制御システム モデルを再利用します。
このプロジェクトでは、以下を実行する方法を示します。
Simulink で CubeSat ミッションのシステム レベルの要件を定義する
System Composer でミッションのシステム アーキテクチャを構成する
Requirements Toolbox™ でシステムレベルの要件をアーキテクチャ内のコンポーネントにリンクする
Aerospace Blockset で機体ダイナミクスと飛行制御システムをモデル化する
ミッション解析ツールと Simulink Test™ を使用して軌道要件を検証する
プロジェクトを開く
[CubeSat Model-Based System Engineering Project] の新しいインスタンスを作成するには、Simulink スタート ページで [プロジェクトを作成] を選択します。プロジェクトが読み込まれると、CubeSat のアーキテクチャ モデルが開きます。
open("asbCubeSatMBSEProject.sltx");
システムレベルの要件の定義
ミッションに関する一連のシステムレベルの要件を定義します。これらの要件は、ReqIF (要件交換形式) ファイルなどのサードパーティ製要件管理ツールからインポートすることも、要件エディターで直接作成することもできます。
この例には、"SystemRequirements.slreqx" に保存されている一連のシステムレベルの要件が含まれています。この要件仕様ファイルを [要件エディター] で開きます。[要件エディター] には、[アプリ] タブからアクセスするか、プロジェクト フォルダー ブラウザーで "SystemRequirements.slreqx" をダブルクリックしてアクセスします。
このミッションの最上位の要件は次のとおりです。
システムは、MathWorks® 本社 [北緯 42.2775 度、西経 71.2468 度] の視覚的なイメージを 1 日に 1 回、10 メートルの解像度で提供し、保存します。
この最上位の要件から追加の要件が分解され、アーキテクチャの要件の階層が作成されます。
システム アーキテクチャの構成
System Composer は、モデルベース システムズ エンジニアリングのためのアーキテクチャの仕様と解析を可能にします。上記で定義したシステムレベルの要件を使用して、System Composer でのアーキテクチャ モデルの作成をガイドします。この例のアーキテクチャは、International Council on Systems Engineering (INCOSE) の Space Systems Working Group (SSWG) によって開発された "CubeSat 参照モデル (CRM)" に基づいています。
アーキテクチャは、コンポーネント、ポート、コネクタで構成されます。コンポーネントは、アーキテクチャのコンテキストにおいて明確な機能を果たす、システムのパーツです。システム、サブシステム、ハードウェア、ソフトウェア、その他の概念項目などのアーキテクチャ要素を定義します。
ポートは、その環境との相互作用点を表すコンポーネントまたはアーキテクチャ上のノードです。ポートにより、他のコンポーネントまたはシステムと情報をやりとりできるようになります。コネクタはポート間の接続を提供するラインです。コネクタは、アーキテクチャに含まれるコンポーネント間の情報の流れを表します。
ステレオタイプとインターフェイスによるアーキテクチャの拡張
ステレオタイプとインターフェイスを使用して、アーキテクチャにさらに詳細レベルを追加できます。
ステレオタイプ
ステレオタイプは、各要素にドメイン固有のメタデータを追加することで、アーキテクチャ要素を拡張します。ステレオタイプは、コンポーネント、コネクタ、ポート、およびその他のアーキテクチャ要素に適用され、これらの要素に質量、コスト、パワーなどの一連の共通プロパティを提供します。
1 つ以上のアーキテクチャで使用されるステレオタイプのパッケージは、プロファイルに保存されます。この例には、"CubeSatProfile.xml" というステレオタイプのプロファイルが含まれています。プロファイルを表示、編集したり、プロファイルに新しいステレオタイプを追加したりするには、[モデル化] タブの [プロファイル エディター] でこのプロファイルを開きます。
次のプロファイルは、CubeSat アーキテクチャのコンポーネントとコネクタに適用される一連のステレオタイプを定義します。
ステレオタイプは、抽象ベース ステレオタイプからプロパティを継承することもできます。たとえば、上記のプロファイルの BaseSCComponent
には、サイズ、質量、コスト、パワー需要のプロパティが含まれています。プロファイルに別のステレオタイプ CubeSatTotal
を追加し、BaseSCComponent
をそのベース ステレオタイプとして定義できます。CubeSatTotal
は独自のプロパティ nominalVoltage を追加しますが、ベース ステレオタイプからもプロパティを継承します。
アーキテクチャ モデルで、CubeSat システム コンポーネント (asbCubeSatArchModel/CubeSat Mission Enterprise/Space Segment/CubeSat
) に CubeSatTotal
ステレオタイプを適用します。モデルでコンポーネントを選択します。プロパティ インスペクターで、ドロップダウン ウィンドウから目的のステレオタイプを選択します。次に、CubeSat コンポーネントのプロパティ値を設定します。
インターフェイス
データ インターフェイスは、ポートを流れる情報の種類を定義します。同じインターフェイスを複数のポートに割り当てることができます。データ インターフェイスは複合にできます。つまり、インターフェイス信号のプロパティを表すデータ要素を含めることができます。インターフェイスは [インターフェイス エディター] から作成および管理します。Simulink の既存のユーザーは、System Composer のインターフェイスと Simulink のバスを比較できます。実際、バスを使用してインターフェイスを定義できます (逆も可能)。たとえば、データ ディクショナリ "asbCubeSatModelData.sldd" には ACSOutBus
を含むいくつかのバス定義が含まれており、これらは [インターフェイス エディター] で表示して、アーキテクチャ ポートに適用できます。
アーキテクチャ ビューによるシステムの可視化
コンポーネント、ステレオタイプ、ポート、インターフェイスを使用してアーキテクチャを実装したので、アーキテクチャ ビューでシステムを可視化できます。[モデル化] タブで、[ビュー] を選択します。
[コンポーネント階層] ビューを使用してシステム コンポーネント階層を表示します。各コンポーネントには、ステレオタイプ プロパティの値とポートもリストされます。
アーキテクチャの異なる深さの階層を表示することもできます。たとえば、アーキテクチャの Power System Plant
コンポーネントに移動するには、[ビュー ブラウザー] でそのコンポーネントをダブルクリックします。
要件のアーキテクチャ コンポーネントへのリンク
要件を、それを実装するアーキテクチャ要素にリンクするには、[要件マネージャー] を使用します。要件を対応するコンポーネント、ポート、またはインターフェイスにドラッグします。このリンク メカニズムを使用すると、アーキテクチャ モデルで要件がどのように満たされているかを特定できます。[要件マネージャー] の [実装済み] というラベルの付いた列には、テキストによる要件が特定のモデル内のコンポーネントにリンクされているかどうかが表示されます。たとえば、最上位の要件 "Provide visual imagery" は最上位のコンポーネント CubeSat Mission Enterprise
にリンクされており、分解された要件はそれぞれの分解されたアーキテクチャ コンポーネントにリンクされています。
アーキテクチャと設計モデルの接続
解析やその他のシステムズ エンジニアリング プロセスを通じて設計プロセスが成熟するにつれて、アーキテクチャにダイナミクス モデルと動作モデルを追加できるようになります。System Composer は Simulink の上のレイヤーとして構築されているため、作成したコンポーネントから Simulink モデルを直接参照できます。その後、アーキテクチャ モデルを Simulink モデルとしてシミュレートし、結果を生成して解析できます。たとえば、GNC subsystem
コンポーネントには、"CubeSat シミュレーション プロジェクト" の一部である 3 つの Simulink モデル参照が含まれています。
これらの参照コンポーネントをダブルクリックすると、基となる Simulink モデルが開きます。アーキテクチャで定義されたインターフェイスが Simulink モデルのバス信号にマッピングされていることに注目してください。
この例では、Aerospace Blockset の "Spacecraft Dynamics" ブロックを使用して、CubeSat の軌道と回転の状態を伝播しています。
軌道要件を検証するためのシステム アーキテクチャのシミュレーション
シミュレーションを使用してシステムレベルの要件を検証できます。このシナリオでは、最上位の要件として、CubeSat オンボード カメラが [北緯 42.2775 度、西経 71.2468 度] にある MathWorks 本社のイメージを 1 日に 1 回、10 メートルの解像度でキャプチャすることが規定されています。さまざまなミッション解析ツールを使用してこの要件を手動で検証できます。これらの解析の例については、プロジェクト ショートカット "Analyze with Mapping Toolbox" および "Analyze with Satellite Scenario" をクリックしてください。
"Analyze with Satellite Scenario" ショートカットの例で作成された衛星シナリオを上図に示しています。
Simulink Test を使用した軌道要件の検証
MATLAB® を使用して CubeSat の動作を可視化および解析できますが、Simulink Test を使用してテスト ケースを作成することもできます。このテスト ケースでは、テスト フレームワークを使用して CubeSat の軌道と姿勢が上位レベルの要件を満たしているかどうかをテストすることにより、要件に基づくテスト プロセスを自動化します。テスト ケース アプローチにより、テキストによる要件に基づいて、スケーラブルで保守しやすい柔軟なテスト インフラストラクチャを作成できます。
この例には、テスト ファイル "systemTests.mldatx" が含まれています。プロジェクト フォルダー ブラウザーでこのファイルをダブルクリックすると、[テスト マネージャー] に表示されます。テスト ファイルには、最上位の要件を検証するためのテストが含まれています。"Verify visual imagery" テスト ポイントは要件 "Provide visual imagery" にマッピングされており、テストのカスタム基準として使用する MATLAB 関数を定義しています。このテスト ケースは、ミッション全体を包括的に検証するものではありませんが、開発の初期段階で最初の軌道選択が妥当であることを確認するのに役立ち、アーキテクチャの改良と詳細の追加を継続できます。
[テスト マネージャー] でテスト ポイントを実行し、テストにパスすることを確認します。パスの結果が得られた場合、CubeSat オンボード カメラはシミュレーション時間中にイメージング ターゲットを視認できています。
参考
Orbit Propagator Kepler (unperturbed) (Aerospace Blockset) | Spacecraft Dynamics (Aerospace Blockset) | Attitude Profile (Nadir Pointing) (Aerospace Blockset)