オクターブエンジン
はじめに
スクリプト・モジュール内のオクターブ・エンジン(オープンソースの MatLab 互換/ツール)を使用すると、システム設計モジュールでは実行/計算が容易でない複雑な計算を Requirements & Systems Portal 内で実行することができます。計算に必要な Valis を入力 Valis として参照し、結果を出力 Valis として参照できます。このような計算の一般的な例としては、非線形方程式の解法、行列の乗算、条件ケースなどがあります。
Octave エンジンのスクリプトの流れ
スクリプト・モジュールを使用する典型的なワークフローを以下に示す。各ステップは各サブセクションで説明されています。
-20220823-133931.webp)
1.新しいOctaveスクリプトの作成
プロジェクトに新しいオクターブ・スクリプトを作成するには,シミュレーション・モジュールにカーソルを合わせ
2.入力と出力
ユーザは入力と出力のValiを追加することができます。例えば、ユーザーが入力または出力内でValiを参照する場合、ユーザーはValiの短い名前を指定することができ、その名前はオクターブ計算コードで使用されます。
コンポーネントモジュールから "PowerConsumption.CRUISE "という Vali を使用する場合、"cruise "のような変数の略称を割り当てることができます。
ユーザはシミュレーション単位を変更することもできます。例えば、System Design Moduleで定義されたクルーズのPowerConsumptionはWですが、シミュレーションではkWが使用されます。
システム・デザイン・モジュールのどのヴァリスも入力または出力として使用できますが、同時に両方として使用することはできません。
3.計算/オクターブ・コード
前述のように、Requirements & Systems Portal のシミュレーション・モジュールは、Octave構文を使用できる octave エンジンを使用しています。これはMatlabと似ており、互換性に優れているので、複雑な計算を行うために新しいフレームワークに慣れる必要はありません。さらに詳しい情報が必要な場合は、GNU Octaveドキュメンテーション・ページをお読みください。
ユーザは,"main.m "ファイルにOctaveコードを書かなければならない。
main.mファイルにコードが追加されると,"Save "をクリックしてスクリプトを保存することができます。
4.シミュレーション/結果の実行
スクリプトの作成が完了したら、図のように左下にある再生ボタンをクリックします。
シミュレーションが完了すると、Requirements & Systems Portal は出力値を自動的に更新します。その結果、システム設計モジュールの出力値も自動的に更新されます。出力値が他の値を計算する式の定数として使用されている場合、Requirements & Systems Portal は、出力値に関連するすべての値を自動的に再計算します。
5.スクリプト + 自動化 使用例
システム設計モジュールで入力値が変更された場合、ユーザーはシミュレーションを再実行して出力値を再計算する必要があります。
入力値を変更するたびにシミュレーションを実行するのを避けるために、オートメーションとスクリプト・モジュールの間にリンクを作成することができます。実際、以下の短いクリップに示すように、一定のトリガーを持つ新しいオートメーションは、Valiの変更の影響を受けるすべてのシミュレーションを自動的に再実行するように設定することができます。
このケースでは、バリコプタの飛行時間が15分から10分に調整され、必要なバッテリ容量の合計が自動的に再計算されます。パワーサブシステムの総質量は必要なバッテリー容量(必要なバッテリーの数)に基づいて計算されるため、飛行時間が短くなれば必要なバッテリー容量も少なくなり、パワーサブシステムの質量も再計算されて減少します。