システムの設計
このチュートリアルのこのパートでは、Requirements & Systems Portal 内でシステムを設計する際の典型的なユースケースを見ていきます。このプロセスには、システムのデジタルモデルと構成分解の作成、性能パラメータの計算、トレードオフ検討の実施、そして設計判断が含まれます。
Valitype の設定
Valitype を設定すると、新しく作成するすべてのブロックに、既定の式と単位を持つ特定タイプの vali(例: 質量、消費電力など)があらかじめ含まれるようになります。正しい valitype が存在していることを確認する必要があります。
-
左下の
アイコンをクリックし、表示されるメニューから Settings を選択します。開いたページで、左側ペインの Valitypes エントリを選択すると、既存の valitype をすべて確認できます。
-
valitype Mass と PowerConsumption が存在することを確認してください。存在しない場合は、ページ右下の
ボタンをクリックして、これらの名前で valitype を追加します。
-
PowerConsumption valitype の単位は kW または W になっている場合があります。単位が kW の場合は、そのセルをダブルクリックして kW を W に編集してください。また、このチュートリアルではブロックの質量プロパティをグラムで使用します。単位を kg のままにするか g にするかは任意です。
-
valitype Mass と PowerConsumption について、add by default プロパティを有効にします。これらの valitype のいずれかのセルをダブルクリックし、表示されるメニューから True を選択して、もう一方の valitype に対しても同じ操作を行ってください。 これらの valitype は、このチュートリアルの後半で新しく作成するすべてのブロックに自動的に追加されます。
プロジェクトへのシステムの追加
それでは、ファンの構築を始めましょう。あらゆる製品は、ツリー構造のようにサブシステムへ分解できます。この階層型システムツリーは、Requirements & Systems Portal の中核機能の 1 つです。
System Design Module では、システムツリーを作成してアクセスできます。このツリーには、技術パラメータ(vali)を含むすべてのシステムおよびサブシステムが含まれます。
-
左側の Module Navigation バーにある
アイコンをクリックして、System Design Module に移動します。
-
既定では、プロジェクトにはプロジェクト名と同じ名前のブロックが含まれています(この例では Valifan)。プロジェクトツリー内のそのエントリを右クリックし、Create block コマンドを選択します。表示される Create new block ウィンドウの Name フィールドに
Propellerと入力し、
をクリックします。
Valifan ブロックを展開して、ナビゲーションツリー内の新しいサブブロックを確認します。
-
同様に、Fan ブロックに対して次のサブブロックを作成します:
Motor、Speed_Controller、およびStructure。
技術パラメータ(Vali)の変更
Requirements & Systems Portal では、 Valis はエンジニアリング値を保持する技術パラメータです。Vali には、式、値、履歴など、さまざまなプロパティがあります。では、vali に値を追加していきましょう。
-
ナビゲーションペインで Valifan ブロックを選択します。ブロックの Properties ビューが開き、このブロックにすでに 2 つの vali、 Mass と PowerConsumption が含まれていることが確認できます(これらの vali は valitype 設定で既定で追加されるよう構成されているためです)。
-
次に、Fan ブロックの各サブブロックで、Mass と PowerConsumption の値を変更します。これを行うには、サブブロックを選択し、Value 列の該当セルをダブルクリックします。次の値を入力してください:
-
Motor: Mass =
110g, PowerConsumption =1W -
Propeller: Mass =
30g, PowerConsumption =0W(soc()ではなく0Wを入力するようにしてください) -
Speed_Controller: Mass =
15g, PowerConsumption =0.1W -
Structure: Mass =
80g, PowerConsumption =0W(soc()ではなく0Wを入力するようにしてください)
Motor サブブロックに追加された値の例を以下に示します。
-
-
Fan ブロックに移動すると、その合計 Mass が自動的に 235 g(または 0.235 kg)として計算され、合計 PowerConsumption は 1.1 W として計算されていることがわかります。
新しい Vali の追加
前の手順では、valitype の追加方法を示しました。ただし、vali(プロパティ)は質量や消費電力だけに限定されません。ブロックにはさまざまなプロパティを追加できます。Requirements & Systems Portal では、単位ありまたは単位なしの数値として新しい vali を作成できます。また、matrix、textvali(例: 材料)、datevali(例: 購入日)、dataset(二次元)にすることもできます。式内では、任意のフィールドで $ 記号を使用して vali にアクセスできます。
次の手順では、プロペラ効率と供給電力を追加します。
-
Propeller ブロックに移動します。
-
右上の
ボタンをクリックして Create Property ウィンドウを開きます。このウィンドウで、Vali タブが開いていることを確認し、Name フィールドに Efficiency、 Formula and unit フィールドに0.85を入力します。Display Unit フィールドは空のままにして、
をクリックします。
-
同様に、名前が
power_deliveredの別の vali を追加し、式として$Motor.PowerConsumption*$Propeller.efficiencyを入力します。Formula and unit フィールドで$記号を入力すると、必要な項目を選択できるドロップダウンが表示されます。 Display Unit フィールドは空のままにしてください(正しい単位 W は計算に基づいて自動的に割り当てられます)。その後、
をクリックします。
Propeller ブロックの vali は、以下に示すような状態になっているはずです。
-
power_deliveredvali の名前をクリックすると、追加情報やプロパティを含む詳細ページが開きます。 ここでは、Formula、Properties、Info、Connected Copies、Actions を確認でき、History、Sensitivity Analysis、Connections Graph などの追加機能にもアクセスできます。
設計の詳細化とブロックの再利用
基本設計ができたら、製品のより詳細なモデルを作成できます。複製が必要なブロックがある場合は、「connected copies」機能を利用できます。これにより、それらは同期された状態に保たれます。つまり、1 つの接続ブロックに変更を加えると、他のすべての接続ブロックも自動的に更新されます。
この例では、ローターブレードが 3 枚あり、すべて同一です。
-
ナビゲーションペインで Propeller Block を右クリックし、Add Block コマンドを選択します。新しい Block に
Blade1という名前を付けます。 -
新しい Blade1 ブロックを右クリックし、 Copy & connect を選択します。同じ階層に新しい connected Block Blade2 が表示されます。
-
同様に、connected block Blade3 を作成します。
-
3つのブロックのいずれかに移動し、その Mass 値を
10gに、さらに PowerConsumption 値を0Wに変更します。接続されているすべてのブレードブロックで、Mass と PowerConsumption が同じになっていることを確認できます。
式が soc()(子要素の合計)であるすべての vali には、関連付けられた予算テーブルとチャートがあり、vali 情報から表示できます。
-
Fan ブロックに移動し、Mass vali 名をクリックして詳細を開きます。
-
上部の Budget コントロールをクリックすると、ファンの総質量の内訳を表示できます。ブロック名の左側にある矢印をクリックすると、構造を展開できます。
-
Breakdown Chart コントロールをクリックすると、ファンの総質量の内訳を表示できます。円グラフには、直下レベルのサブシステムにおける質量の内訳が表示されます。
マージンの使用
開発の初期段階では、通常、どのプロパティの正確な値もまだ確定していません。そのため、値にマージンを追加すると便利です。Requirements & Systems Portal は、この不確実性をすべての計算にわたって伝播します(線形不確かさ伝播)。
たとえば、最終的な質量値が分からない場合があります。多くの場合、質量は予想より大きくなります。そのような場合には、vali に安全マージンを追加できます。このマージンを使用すると、Requirements & Systems Portal は vali のワーストケースを自動的に計算します。これをプロペラの質量で試してみましょう。
-
Propeller ブロックに移動し、右側の Columns コントロールを使用して、テーブル内の Margin + 列と Margin - 列を表示するようにします。
-
Mass vali の Margin + 列に、
10を入力します(これは 10% のマージン+ を意味します)。
-
Mass vali の名前をクリックして詳細ビューを開きます。10% のマージン+ により、Worst Case 値は 33g | 30g として表示されます。
-
Propeller Block で定義されたマージンに基づき、Requirements & Systems Portal は上位レベルのマージンとワーストケースを自動的に更新します。Fan ブロックに移動し、その Mass vali の詳細ビューを開きます。ご覧のとおり、ファンの質量には現在、合計マージン +1.28% とワーストケース 238g | 235g が設定されています。
カスタムニーズのためのタグ追加
タグは、チーム固有のニーズに対応する多目的ツールです。vali やブロックに印を付けるために使用できます。たとえば、次のような用途があります。
-
値の信頼性(例:
assumption/calculated/measured)。 -
チームメンバー向けのアクション(例:
review: Tom/approval: Christine)。 -
その他の任意のマーキングやグループ化。
-
Motor ブロックに移動します。
-
Mass vali の Tags 列のセルをダブルクリックし、
measurementと入力してEnterを押し、タグを追加します。
ブロックを要件にリンクする
基本的なシステム構造ができたので、Fan システムと Fan_Specs 仕様の要件を関連付けましょう。これにより、システム設計と要件の間に直接リンクが作成されます。
-
左側の Module Navigation バーにある
アイコンをクリックして Requirements Module に移動し、Fan_Specs 仕様を開きます。
-
Identifier 列ヘッダーの左側にあるチェックボックスをオンにして、仕様内のすべての要件を選択します。
-
Applicable Block 列のセル内をダブルクリックし、ドロップダウンから Fan を選択して、一括更新を確定します。
Applicable Blocks 機能の詳細については、Applicable Blocks ページを参照してください。
予算テーブルと円グラフの作成
これでシステムの予備的な設計内訳ができたので、先ほど作成した解析ドキュメント(Project_Summary)で質量予算を確認したいと思います。ドキュメントに新しいブロックを追加しましょう。
-
Module Navigation バーの
アイコンをクリックして Analyses Module に移動し、Project_Summary を選択します。
-
ドキュメント下部の Click to add new block コントロールをクリックします。
-
開いた Add Block ウィンドウで、Table エントリを展開し、Budget を選択します。
-
新しいブロックがドキュメントに追加されます。Add data to this table コントロールをクリックして Table Block ウィンドウを開くと、内訳を表示したい vali を選択できます。vali フィールドで Fan.Mass を選択します。
-
Table Block ウィンドウで
をクリックします。新しいテーブルがドキュメントに追加されます。このテーブルでは、完全な内訳、マージン、ワーストケースシナリオを含む Valifan の質量予算を確認できます。
-
チャートを使用して、質量内訳のグラフィカルな表現を作成することもできます。ドキュメント下部の Click to add new block コントロールをクリックします。
-
Add Block ウィンドウで、Charts エントリを展開し、Budget を選択します。
-
新しいブロックがドキュメントに追加されます。Add data to this table コントロールをクリックして Table Block ウィンドウを開きます。vali フィールドで Fan.Mass を選択し、
をクリックします。新しいチャートがドキュメントに追加されます。
モードの定義
一部の値は固定ではなく、構築中の製品の状態に依存します。そのためにあるのがモードです。モードは、異なる構成と、それらが製品とどう関係するかを追跡します。
このチュートリアルのこの部分では、ファンのモード、つまり異なる速度、電力モード、ON/OFF 状態を定義します。
モードの追加
モーターは 3 つの離散的な速度で動作でき、これらはモードとしてモデル化できます。
-
上部の Modelists タブに移動します。Modelists は、消費電力、回転速度、推力など、モード依存のプロパティをモデル化するために使用されます。
-
右上の
ボタンをクリックします。開いた Create Modelist ウィンドウで、speed_settingsを New Modelist name に入力し、3を # (Number of modes) フィールドに入力します。
-
Create Modelist ウィンドウで
ボタンをクリックすると、新しい modelist が作成されます。新しい modelist 名の左側にある矢印をクリックして展開します。
-
デフォルトのモード名 a、b、c を、それぞれ ZERO、LOW、HIGH に変更します。
-
ページ上部の Properties コントロールをクリックして、ブロックの vali に戻ります。
-
右上の
ボタンをクリックして Create Property ウィンドウを開きます。このウィンドウで次を行います。
-
Matrix タブを選択します。
-
rotational_speedsを Name フィールドに入力します。 -
Mode reference フィールドのドロップダウンから speed_settings を選択します。
-
rpmを Display Unit フィールドに入力します。
-
-
Create Property ウィンドウで
ボタンをクリックし、新しいプロパティ名の左側にある矢印をクリックして展開します。値(現在は 0)を次のように変更します。-
ZERO =
0rpm -
LOW =
2000rpm -
HIGH =
5000rpm
-
-
Speed_Controller Block 用に、
power_modesという名前で 2 つのモードを持つ modelist を作成します。デフォルトのモード名 a および b を、それぞれ ON および OFF に変更します。
-
Fan ブロックに対して、名前を
stateとし、3 つのモードを持つ modelist を作成します。モード名をデフォルトの a、b、c から、それぞれ OFF、MIN、MAX に変更します。
Vali をモード依存にする
これでシステムのモードが定義されたので、vali をそれらに依存させることができます。vali は常に同じ値を持つとは限らず、特定のモードに依存した値を持つ場合があります。
-
Fan ブロックのプロパティに移動し、PowerConsumption vali 名をクリックして詳細ビューを開きます。
-
ボタンをクリックして Select Modelist ウィンドウを開きます。ドロップダウンから state を選択し、
ボタンをクリックします。
-
同様に、Motor ブロックの PowerConsumption vali を
speed_settingsモードに依存させ、Speed_Controller ブロックの PowerConsumption vali をpower_modesモードに依存させます。 -
Motor ブロックの消費電力の値を次のように変更します:
-
ZERO =
0W -
LOW =
1W -
HIGH =
4W
-
-
Speed_Controller ブロックの消費電力の値を次のように変更します:
-
ON =
0.1W -
OFF =
0W
-
モードをリンクする
システムの状態は相互に依存することがあります。そのため、Requirements & Systems Portal では、関連するモード同士をリンクできます。
このチュートリアルのこのパートでは、ファンの状態と、モーターおよびスピードコントローラーのモードとの間に接続を作成します。
-
Fan ブロックの modelists に移動し、state modelist 名をクリックして詳細ペインを開きます。
-
ペイン上部の
アイコンをクリックします。ペイン下部の Select Modelist ドロップダウンで Speed_Controller.power_modes を選択し、
ボタンをクリックしてから、Motor.speed_settings と
ボタンをクリックします。モードは以下のように追加されます。
-
以下のようにモード間のリンクを編集し、
ボタンをクリックして変更を保存します。
-
Fan ブロックの Properties ビューでは、Power Consumption の値が以下のように変化していることを確認できます。
)
)をクリックすると、システムにリンクされた要件を確認できます。